Skip to content

Saída Estruturada

O LabsLLM permite definir esquemas de saída estruturados para seus prompts, garantindo que a resposta do modelo siga um formato específico.

Definindo Esquema de Saída

Você pode definir um esquema de saída usando os mesmos tipos de parâmetros usados para definições de funções:

php
use LabsLLM\Parameters\ObjectParameter;
use LabsLLM\Parameters\StringParameter;
use LabsLLM\Parameters\NumberParameter;
use LabsLLM\Parameters\ArrayParameter;
use LabsLLM\Parameters\BooleanParameter;

// Define uma saída estruturada simples para uma avaliação de produto
$structureObject = new ObjectParameter('review', 'Dados da avaliação do produto', [
    new StringParameter('title', 'Título da avaliação'),
    new NumberParameter('rating', 'Avaliação de 1 a 5'),
    new StringParameter('comment', 'Comentário detalhado da avaliação'),
    new ArrayParameter('tags', 'Tags da avaliação', 
        new StringParameter('tag', 'Uma única tag')
    ),
    new BooleanParameter('recommended', 'Se o produto é recomendado')
], ['title', 'rating', 'comment']);

// Use o esquema em seu prompt
$execute = LabsLLM::text()
    ->using(new OpenAI('sua-chave-api', 'gpt-4'))
    ->withOutputSchema($structureObject)
    ->executePrompt('Escreva uma avaliação para o último modelo de iPhone');

$response = $execute->getResponseData();

Formato da Resposta

Ao usar saída estruturada, você pode obter a resposta estruturada usando getStructureResponse():

php
// Obter o objeto de resposta estruturada
$reviewData = $response->getStructureResponse();

echo $reviewData->title;     // "Experiência Incrível com iPhone"
echo $reviewData->rating;    // 5
echo $reviewData->comment;   // "O novo iPhone superou todas as minhas expectativas..."

// Acessando propriedades de array
foreach ($reviewData->tags as $tag) {
    echo $tag->tag;         // "bateria", "câmera", etc.
}

// Acessando propriedades booleanas
if ($reviewData->recommended) {
    echo "Este produto é recomendado!";
}

Melhores Práticas

  1. Mantenha os esquemas simples: Comece com estruturas básicas e adicione complexidade conforme necessário
  2. Use nomes de campos claros: Escolha nomes descritivos que indiquem claramente o propósito de cada campo
  3. Valide as respostas: Sempre valide se a resposta JSON corresponde à estrutura esperada
  4. Trate erros: Esteja preparado para lidar com casos em que o modelo pode não seguir exatamente o esquema

Importante: Embora o modelo tente seguir seu esquema, é importante validar a resposta, pois o modelo pode ocasionalmente desviar da estrutura exata que você definiu.

Lançado sob a Licença MIT.