API ChatGPT OpenAI не понимает подсказкуC#

Место общения программистов C#
Ответить
Anonymous
 API ChatGPT OpenAI не понимает подсказку

Сообщение Anonymous »

Итак, я хочу перевести конкретное приглашение, например, с английского на Нидерланды и предоставить для этого 3 разных варианта, иногда кажется, что это работает, а иногда ChatGPT выдает текст после текста, который он должен перевести. Поскольку он не всегда понимает подсказку, как я могу это исправить, есть ли способ сделать его лучше и более последовательным, чтобы всегда давать 3 перевода и только текст перевода?
следующий код дает базовую подсказку о том, что и на какой язык следует перевести

Код: Выделить всё

public async Task TranslateVariant(TranslateModel model)
{

_model = new TranslateModel()
{
Default = model.Default,
Variant = model.Variant,
Property = model.Property,
Id = model.Id
};

_textModel = new GenerateTextModel()
{
Prompt = $"Translate the following text from {_model.Default} to the language of the language code {_model.Variant} Only answer with the translation for that specific text nothing else. This is the text you should translate: {_model.Property} "
};

var choices = await _chatGPTService.CreateMultipleOptionsForTranslation(_textModel);

return choices;
}
Этот код предоставит 3 варианта и добавит подсказку с предыдущим сообщением в качестве уже заданного варианта, но иногда в ответ мне выдается перевод с надписью «Сделать его отличным от предыдущего перевода» после перевод.

Код: Выделить всё

        {

var api = new OpenAIAPI(_settings.ApiKey);
var choices = new List();

for (int i = 0; i < 3; i++)
{
var result = await api.Chat.CreateChatCompletionAsync(new ChatRequest()
{
Model = _model,
NumChoicesPerMessage = 1,
Temperature = 0.7,
MaxTokens = 2000,
PresencePenalty = 0.7,
Messages = new ChatMessage[]
{
new ChatMessage(ChatMessageRole.User, model.Prompt)
}
});

var choice = result.Choices[0].Message.Content.Trim();
bool isDuplicate = choices.Contains(choice);

if (!isDuplicate)
{
choices.Add(choice);
var optionNumber = choices.Count;
model.Prompt += $"{(optionNumber > 1 ? "and " : "")}Make it different than the previous translation {optionNumber}: {choice}";
}
}

return choices;
}
Как я могу это сделать лучше, у кого-нибудь есть идеи, или у OpenAI API есть лучший способ предоставить 3 разных варианта перевода?

Подробнее здесь: https://stackoverflow.com/questions/764 ... and-prompt
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»