Olá, Eu recentemente fiz uma integração desse tipo. Acredito que tenha outras formas, mas essa está funcionando pra mim:
1 - Criei um "Assistants” na OpenAI
2 - Criei uma Conversa (threads):
Tipo POST, URL: https://api.openai.com/v1/threads
Corpo da Requisição:
{ "metadata": {} }
3 - Nessa mesma requisição, salvei o ID da conversa recém criada:
Na guia "Mapeamento de Respostas”, em JSONPath: "$.id”
4 - Adicionei mensagens à essa Conversa (threads) recém criada :
Tipo POST,
URL: https://api.openai.com/v1/threads/{{ID_da_Conversa_que_foi_Mapeado_na_Etapa_Anterior}}/messages
Corpo da Requisição:
Para adicionar somente uma mensagem de texto à conversa: { "role": "user", "content": "{{Última_mensagem_do_usuário}}" }Para adicionar uma mensagem de textp e uma imagem à conversa:
{ "role": "user", "content": { "type": "text", "text": "{{Última_mensagem_do_usuário}}" }, { "type": "image_url", "image_url": { "url": "{{URL_da_imagem}}" } } ] }
Não precisa fazer mapeamento nessa etapa
5 - Fiz a execução
Tipo POST, URL:https://api.openai.com/v1/threads/{{ID_da_Conversa_que_foi_Mapeado_na_Etapa_Anterior}}/runs
Corpo da Requisição:
{ "assistant_id": "número_do_assistants_que_foi_criado_na_openAI_na_primeira_etapa" }
6 - Aguardei 10 segundos e fiz uma requisição pra listar as mensagens, salvando a última mensagem que a IA gerou:
Tipo GET, URL: https://api.openai.com/v1/threads/ {{ID_da_Conversa_que_foi_Mapeado_na_Etapa_Anterior}} /messages
7 - Nessa mesma requisição, salvei a última mensagem que a IA gerou:
Na guia "Mapeamento de Respostas”, em JSONPath: "$..dataa?(@.role=='assistant')].contentg-1].text.value”
Opa, MUITO obrigado Rogerio!! Gratidão mesmo!!
Eu vou seguir sua orientação e assim que concluir eu retorno!