Проблема перевода OpenAI API GPT-3.5: неправильный вывод при переводе с турецкого на японский

Я использую API OpenAI и пытаюсь перевести турецкие данные на японский, используя модель GPT-3.5. Однако результаты, которые я получаю, не такие, как ожидалось. Предоставленные данные JSON содержат коды турецкого языка («tr»), которые следует заменить правильным кодом японского языка.

Я ожидаю, что выходные данные будут иметь правильный код японского языка («ja») вместо «JA» и будут показаны правильные переводы предоставленных турецких данных.

Может ли кто-нибудь помочь мне определить проблему и предложить решение для получения правильных переводов с турецкого на японский с использованием API OpenAI и модели GPT-3.5? Спасибо!

Вот фрагмент кода, который я использую:

      const { Configuration, OpenAIApi } = require("openai");
const { getLanguageString } = require('../../../helpers/auto_translate_helpers');

async function gptTranslateHelper(chunks, schema, target_language) {
    const responseData = [];
    const configuration = new Configuration({
        apiKey: process.env.OPENAI_API_KEY,
    });

    const openai = new OpenAIApi(configuration);
    try {
        for (const chunk of chunks) {
            const userMessage = {
                "role": "user",
                "content": `I am a restaurant owner and I manage my data in Turkish.My data : ${chunk.data} Please translate my data to ${getLanguageString(target_language)}. Replace all occurrences of "TR" with ${target_language}.
                `,
            };

            const completion = await openai.createChatCompletion({
                model: "gpt-3.5-turbo-16k",
                messages: [
                    { "role": "system", "content": "You are a helpful assistant." },
                    userMessage,
                ],
                functions: [{ name: "set_schema", parameters: schema }],
                function_call: { name: "set_schema" },
            });

            const generatedText = completion.data.choices[0].message.content;
            const parsedMenu = JSON.parse(generatedText);

            responseData.push(...parsedMenu.data);
        }
    } catch (e) {
        console.log(e);
    }
    console.log(responseData);

    return responseData;
}

module.exports = { gptTranslateHelper };

Быстрый:

I am a restaurant owner and I manage my data in Turkish.My data : [{"_id":"64adce3a897a661ba27dcc4b","name":{"tr":"Yemekler"}},{"_id":"64adce44897a661ba27dcc4c","name":{"tr":"İçecekler"}}] Please translate my data to Japanese. Replace all occurrences of "tr" with ja.

Неправильный результат:[ { _id: '64adce3a897a661ba27dcc4b', name: { ja: 'Yemekler' } }, { _id: '64adce44897a661ba27dcc4c', name: { ja: 'İçecekler' } } ]

Схема

1 ответ

Вы можете использовать такую ​​схему:

      {
  "name": "translate",
  "description": "Return Japanese translation of input",
  "parameters": {
    "type": "object",
    "properties": {
      "tr": {
        "type": "string",
        "description": "Turkish word"
      },
      "ja": {
        "type": "string",
        "description": "Japanese translation of Turkish word"
      }
    },
    "required": ["ja"]
  }
}

Вызов функций OpenAI предназначен для генерации параметров для известных функций вместо генерации результатов этой функции. Как и в этом примере с погодой, ChatGPT не возвращает фактическую информацию о погоде, а извлекает информацию о местоположении, которую можно использовать для получения информации о погоде.

В вашем примере подумайте о функции под названиемtranslateи он принимает два аргумента; «тр» и «джа». «Йемеклер» будет извлечен и помещен в аргумент «tr», а его перевод будет помещен в «ja».

Другие вопросы по тегам