Как делать запросы yandex gpt api в js на сервере node js?

Не могу понять как делать запросы к yandex gpt api и получать ответ

async function query() {
  await fetch('https://llm.api.cloud.yandex.net/foundationModels/v1/completion', {
    method: "POST",
    headers: {
      'Authorization': `Api-Key xxxxxx`,
    },
    json: {
      "modelUri": "gpt://xxxxxxxx/yandexgpt-lite",
      "completionOptions": {
        "stream": true,
        "temperature": 0.6,
        "maxTokens": "2000"
      },
      "messages": [
        {
          "role": "system",
          "text": "Ты профессиональный математик"
        },
        {
          "role": "user",
          "text": "Сколько будет 2+9"
        }
      ]
    }
  })
    .then(response => {
      if (response.status === 200) {
        console.log(response.json())
      }
    })
    .then(data => {
      console.log(data)
    })
    .catch(error => {
      console.error(error);
    })
}

Этот код не работает.

С другой стороны пробовал тоже самое на python и все работает


Ответы (1 шт):

Автор решения: Artem Gafarov

Проблема может быть связана с несколькими параметрами в запросе:

  1. В поле "stream" вы указали значение true. Согласно API Yandex GPT, в этом случае будет приходить ответ не в едином JSON, а несколько JSON-строк с различными частями генерируемого текста. Попробуйте заменить значение на false
  2. В параметр "maxTokens" передана строка. Из документации к API Yandex GPT следует, что это поле должно содержать значение типа integer (int64). Попробуйте заменить строку на число
→ Ссылка