Проблема перевода 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».