Skip to content

Chat

O LabsLLM permite manter conversas com modelos de IA através de sua interface de chat. Isso possibilita interações mais naturais onde o modelo pode lembrar mensagens anteriores na conversa.

Continuando Conversas com Histórico de Chat

Você pode continuar uma conversa existente fornecendo um histórico de mensagens:

php
// Criar ou carregar um histórico de mensagens existente
$messages = MessagesBag::create([
    Message::assistant('Estou bem! Como posso ajudá-lo hoje?')
    Message::user('Olá, como você está?'),
    Message::assistant('Estou bem! Como posso ajudá-lo hoje?')
]);

$execute = LabsLLM::text()
    ->using(new OpenAI('sua-chave-api', 'gpt-4o'))
    ->executeChat($messages); // Use executeChat em vez de executePrompt

$response = $execute->getResponseData();

echo $response->response;

Como o Chat Funciona

A funcionalidade de chat no LabsLLM funciona através de:

  1. Criação de um objeto MessagesBag que contém o histórico da conversa
  2. Uso de executeChat() em vez de executePrompt() para enviar o histórico completo ao modelo
  3. Anexação de novas mensagens ao histórico para solicitações futuras

Isso é particularmente útil para aplicações como:

  • Chatbots que precisam manter contexto ao longo de múltiplos turnos
  • Aplicações de atendimento ao cliente onde o histórico é importante
  • Aplicações interativas que requerem interações em várias etapas

Trabalhando com Chat

php
// Usando OpenAI para chat
$messages = MessagesBag::create([
    Message::assistant('Estou bem! Como posso ajudá-lo hoje?')
    Message::user('Fale-me sobre computação quântica.')
]);

$execute = LabsLLM::text()
    ->using(new OpenAI('sua-chave-api', 'gpt-4o'))
    ->executeChat($messages);

$response = $execute->getResponseData();
echo $response->response;

// Continuar a conversa
$messages = $execute->getMessagesBag();
$messages->add(Message::user('Como ela é diferente da computação clássica?'));

$execute = LabsLLM::text()
    ->using(new OpenAI('sua-chave-api', 'gpt-4o'))
    ->executeChat($messages);

$response = $execute->getResponseData();
echo $response->response;

Entendendo as Respostas do Chat

Assim como com a execução de prompts, quando você chama getResponseData() após uma interação de chat, você recebe um objeto de resposta que contém:

php
$response = $execute->getResponseData();

// A resposta de texto do modelo
echo $response->response;

// Quaisquer chamadas de ferramentas que foram feitas
if (!empty($response->function_calls)) {
    // Lidar com chamadas de função
}

// Resultados de ferramentas executadas
if (!empty($response->called_tools)) {
    // Lidar com resultados de ferramentas
}

Para uma explicação detalhada da estrutura de resposta, consulte o guia Objeto de Resposta da API.

Salvando e Carregando Histórico de Conversas

O LabsLLM facilita o salvamento do histórico de conversas para uso posterior, permitindo que você persista conversas entre sessões ou as armazene em um banco de dados.

Obtendo o MessageBag Após a Execução

Após executar um chat, você pode recuperar o MessageBag atualizado:

php
$execute = LabsLLM::text()
    ->using(new OpenAI('sua-chave-api', 'gpt-4o'))
    ->executeChat($messages);

// Obter a resposta
$response = $execute->getResponseData();

// Obter o MessageBag atualizado com todas as mensagens, incluindo a nova resposta
$updatedMessageBag = $execute->getMessagesBag();

Persistindo Conversas

Você pode serializar o MessageBag para JSON para armazenamento:

php
// Converter MessageBag para string JSON
$jsonHistory = $updatedMessageBag->asJson();

// Armazenar em banco de dados ou arquivo
file_put_contents('historico_conversa.json', $jsonHistory);
// Ou em um banco de dados
// $db->query("INSERT INTO conversas (user_id, historico) VALUES (?, ?)", [$userId, $jsonHistory]);

Restaurando Conversas

Posteriormente, você pode restaurar a conversa a partir do JSON salvo:

php
// Recuperar do arquivo ou banco de dados
$jsonHistory = file_get_contents('historico_conversa.json');
// Ou do banco de dados
// $jsonHistory = $db->query("SELECT historico FROM conversas WHERE user_id = ?", [$userId])->fetchColumn();

// Criar MessageBag a partir do JSON salvo
$messages = MessagesBag::createFromJson($jsonHistory);

// Continuar a conversa
$messages->add(Message::user('Conte-me mais sobre portas quânticas.'));

$execute = LabsLLM::text()
    ->using(new OpenAI('sua-chave-api', 'gpt-4o'))
    ->executeChat($messages);

$response = $execute->getResponseData();
echo $response->response;

Esta abordagem permite que você:

  • Persista conversas entre sessões de usuários
  • Armazene histórico de conversas em bancos de dados, arquivos ou caches
  • Implemente recursos como navegação no histórico de conversas
  • Crie chatbots com múltiplas sessões que se lembram de interações passadas

TIP

Consulte as seções MessageBag e Mensagens para mais detalhes sobre como trabalhar com mensagens de chat.

Lançado sob a Licença MIT.