Mensagens
A classe Message
no LabsLLM é usada para criar vários tipos de mensagens para interações de chat. Cada mensagem tem um papel (como 'user', 'assistant' ou 'system') e conteúdo.
Tipos de Mensagens
O LabsLLM suporta vários tipos de mensagens, cada um servindo a um propósito diferente nas conversas com modelos de IA:
Mensagens do Usuário
Mensagens do usuário representam entradas do usuário final:
$userMessage = Message::user('O que é computação quântica?');
Mensagens do Assistente
Mensagens do assistente representam respostas do modelo de IA:
$assistantMessage = Message::assistant('Computação quântica é um tipo de computação que usa fenômenos quânticos como superposição e entrelaçamento para realizar operações em dados.');
Você também pode criar mensagens do assistente com chamadas de ferramentas:
$assistantMessageWithToolCall = Message::assistant(null, [
[
'id' => 'call_12345',
'type' => 'function',
'function' => [
'name' => 'getDate',
'arguments' => '{}'
]
]
]);
2
3
4
5
6
7
8
9
10
Mensagens do Sistema
Mensagens do sistema fornecem instruções ou contexto para o modelo de IA:
$systemMessage = Message::system('Você é um assistente útil especializado em explicar tópicos complexos em termos simples.');
Mensagens de Ferramenta
Mensagens de ferramenta representam respostas de ferramentas que a IA chamou:
// Mensagem completa de ferramenta com todos os parâmetros
$toolMessage = Message::tool(
content: '2024-05-05', // O conteúdo da resposta
id: 'call_12345', // O ID da chamada da ferramenta
name: 'getDate', // O nome da ferramenta
description: 'Obter data atual', // Descrição do que a ferramenta faz
arguments: ['format' => 'Y-m-d'], // Argumentos passados para a ferramenta
response: '2024-05-05' // A resposta real da ferramenta
);
2
3
4
5
6
7
8
9
Trabalhando com Mensagens
As mensagens podem ser usadas individualmente ou coletadas em um MessagesBag
para conversas de chat:
// Criar mensagens
$assistantMessage = Message::assistant('Estou bem! Como posso ajudá-lo hoje?')
$userMessage = Message::user('Olá, quem é você?');
// Adicionar a um MessagesBag
$messages = MessagesBag::create([$systemMessage, $userMessage]);
// Obter detalhes da mensagem
echo $userMessage->getRole(); // 'user'
echo $userMessage->getContent(); // 'Olá, quem é você?'
// Converter para formato de array
$messageArray = $userMessage->toArray();
2
3
4
5
6
7
8
9
10
11
12
13
Estrutura da Mensagem
Internamente, cada mensagem tem:
role
: Identifica de quem é a mensagem ('user', 'assistant', 'system' ou 'tool')content
: O conteúdo de texto da mensagemtoolCalls
: Array opcional de chamadas de ferramentas feitas pelo assistentetoolCallId
: ID opcional que vincula uma resposta de ferramenta à sua solicitação
Para mais informações sobre como usar mensagens em conversas, consulte a seção MessageBag.