maritaca-ai / maritalk-api

Code and documentation for the MariTalk API
https://docs.maritaca.ai
MIT License
240 stars 12 forks source link

Uso de API com fetch erro: {"detail":[{"loc":["body"],"msg":"value is not a valid dict","type":"type_error.dict"}]} #13

Closed Uriel29 closed 9 months ago

Uriel29 commented 9 months ago

Olá, estou tentando fazer uma chamada simples para a api da Maritaca. Mas fiz algo de errado, veja meu código:

OBS: node 20.X

async function run(input) {
  const response = await fetch(
    "https://chat.maritaca.ai/api/chat/inference",
    {

      headers: { 

        Authorization: "Key 101039243575376049169$resto-da-key" 
},

      method: "POST",
      body: JSON.stringify(input),
    }
  );
  const result = await response.json();
  return result;
}

const messages = [
  {"role": "user", "content": "bom dia, esta é a mensagem do usuario"},
  {"role": "assistant", "content": "bom dia, esta é a resposta do assistente"},
  {"role": "user", "content": "Você pode me falar quanto é 25 + 27?"},
]

const request_data ={
  "messages": messages,
  "do_sample": true,
  'max_tokens': 200,
  "temperature": 0.7,
  "top_p": 0.95,
}

run(request_data).then((response) => {
  console.log(JSON.stringify(response));
}).catch((response) => {
  console.log(JSON.stringify(response));
});

Acabei recebendo o seguinte erro: {"detail":[{"loc":["body"],"msg":"value is not a valid dict","type":"type_error.dict"}]}

O que pode ser?

ZanezZephyrs commented 9 months ago

Oi @Uriel29.

O fetch do javascript provavelmente não esta incluindo o header "content-type", tente mudar os headers para o seguinte:

headers: { 

          "Authorization": "Key <KEY>" ,
          "Content-Type": "application/json",
        },
Uriel29 commented 9 months ago

O fetch do javascript provavelmente não esta incluindo o header "content-type", tente mudar os headers para o seguinte:

headers: { 

          "Authorization": "Key <KEY>" ,
          "Content-Type": "application/json",
        },

Funcionou, era exatamente isso! Sugestão colocar fetch no Exemplo de Uso.

É mais simples de usar tanto no back com node/bun/deno ou em navegadores!

Abraços