Permite gerar um histórico de perguntas.
O parâmetro history é uma lista de objetos JSON, onde cada objeto representa uma interação anterior contendo uma pergunta (question) e a respectiva resposta (answer).
Cabeçalho
Authorization
(obrigatório): Sua chave de API Nama.ai no formatoBearer YOUR_API_KEY
. (Substitua YOUR_API_KEY pela sua chave de API.)
Content-Type
(obrigatório): Indicar o tipo de conteúdo enviado no corpo da requisição. Deve ser application/json.
Dica:
Você pode optar por utilizar o Token da aba 'Consumir' e ele preencherá automaticamente as informações da conta e do projeto.
Posição do Parâmetro History
- Composição do campo
question
no history deve utilizar a última pergunta realizada.
Exemplo: "question": "Quem foi Dom Pedro I?"
- Composição do campo
answer
no history deve utilizar a resposta gerada (generational.content
) e, opcionalmente, incluir informações adicionais do contexto da busca (search.context
).
Exemplo: "answer": "Dom Pedro I é um dos grandes nomes da história do Brasil. Foi um dos condutores do processo de independência, além de ter sido imperador brasileiro de 1822 a 1831. D. Pedro foi uma das figuras mais importantes da história brasileira e esteve envolvido em acontecimentos marcantes. Herdeiro da dinastia Bragança, abriu mão do seu direito de ocupar o trono português para assumir o trono brasileiro. Uma das maiores curiosidades que envolvem d. Pedro I é o seu nome completo, que ficou bastante famoso por ser um nome consideravelmente longo: Pedro de Alcântara Francisco Antônio João Carlos Xavier de Paula Miguel Rafael Joaquim José Gonzaga Pascoal Cipriano Serafim de Bragança e Bourbon."
Resposta
A (answer
) deve ser composta pela resposta gerada (generational.content
) e, opcionalmente, por informações adicionais provenientes do contexto da busca.
"history": [
{
"question": "Pergunta anterior",
"answer": "Resposta anterior"
},
{
"question": "Pergunta anterior",
"answer": "Resposta anterior"
}
...
]
Dica
Adicionar o context é especialmente útil se a resposta gerada a partir do contexto foi resumida. Incluir o context torna a resposta mais completa e útil para novas interações subsequentes.
Payload do Parâmetro History
Para um exemplo mais completo, considere que o usuário passou o seguinte payload na requisição:
{
"dataset": "historia_do_brasil",
"question": "Quando ele nasceu?",
"history": [
{
"question": "Quem foi Dom Pedro?",
"answer": "Dom Pedro I é um dos grandes nomes da história do Brasil. Foi um dos condutores do processo de independência, além de ter sido imperador brasileiro de 1822 a 1831."
},
{
"question": "Ele é filho de quem?",
"answer": "Dom Pedro I é filho de d. João VI, rei de Portugal."
}
],
"generational_presset": "presset_0150a1d7-25bf-42e8-9dbb-57a374efcd2e"
}
Retorno do Parâmetro history
Quando se utiliza o parâmetro history, o usuário pode manter o contexto da conversa. Aqui está um exemplo de retorno, mostrando como a resposta é estruturada:
{
"search": [
{
"content": {
"name": "História do Brasil",
"source": "",
"subject": "Dom Pedro I",
"media_video": "",
"media_image": "",
"created_at": "2024-03-23T10:22:56.089803-03:00",
"updated_at": "2024-03-25T14:44:03.992530-03:00"
},
"score": 1,
"answer": "",
"context": "Dom Pedro I foi o fundador e primeiro governante do Brasil independente. Ele proclamou a independência do Brasil em 7 de setembro de 1822...",
"date": "2024-07-10 00:00:00"
},
{
"content": {
"name": "Família Real Portuguesa",
"source": "https://pt.wikipedia.org/wiki/Dom_Pedro_I_do_Brasil",
"subject": "Dom Pedro I",
"media_video": null,
"media_image": null,
"created_at": "2022-04-26T14:40:46.472651-03:00",
"updated_at": "2022-04-26T14:41:03.204674-03:00"
},
"score": 1,
"answer": "",
"context": "Dom Pedro I era filho de Dom João VI, rei de Portugal. Ele nasceu em 12 de outubro de 1798...",
"date": "2024-07-10 00:00:00"
}
],
"generational": {
"total_tokens": 1500,
"content": "Dom Pedro I foi uma figura central na independência do Brasil e seu primeiro imperador. Nascido em 12 de outubro de 1798, ele era filho de Dom João VI, rei de Portugal..."
}
}
Casos Especiais com History
Poderão haver casos em que o objeto search retorna um array vazio. Isso pode ocorrer quando a pergunta atual depende diretamente do contexto das interações anteriores.
Por exemplo, se um usuário pergunta "Quem foi Michael Jordan?"
, recebe uma resposta e depois faz outra pergunta usando o history ,"Nascimento?"
, por exemplo.
A API pode entender que a nova pergunta está se referindo ao Michael Jordan, mesmo que a palavra "Nascimento" por si só não forneça muito contexto.
{
"search": \[],
"generational": {
"total_tokens": 500,
"content": "Michael Jordan nasceu em 17 de fevereiro de 1963. Ele é amplamente reconhecido como um dos maiores jogadores de basquete de todos os tempos..."
}
}
Utilizar o history aumenta o consumo de tokens:
- Entrada de Dados Maior: Cada interação adicionada ao histórico aumenta a quantidade de texto na requisição.
- Saída de Dados Maior: A resposta da API pode ser mais detalhada para manter a coerência com o histórico, consumindo mais tokens.
Dica
Para manter um contexto aceitável, é uma boa prática limitar o history a 3 ou 4 objetos. Isso equilibra a necessidade de contexto com a eficiência do consumo de tokens.