Как получить продолжение ответа в openai api?

-BeeR-

Client
Регистрация
24.12.2012
Сообщения
12
Благодарностей
9
Баллы
3
Добрый день!

Использую решение по получению контента через API из этой темы все работает

105480


но не могу разобраться как сделать запрос если ответ сформирован не полностью.

Спрашивал ChatGPT, получил такой ответ:
Вот пример кода на C# для продолжения генерации текста на основе вашего первоначального запроса:
using OpenAI;

var openai = new OpenAIApi("YOUR API KEY");

string model = "gpt-3.5-turbo";
string prompt = "запрос";
int maxTokens = 1024;

CompletionRequest request = new CompletionRequest()
{
Engine = model,
Prompt = prompt,
MaxTokens = maxTokens
};

CompletionResponse response = openai.Completions.CreateCompletion(request);
string text = response.Choices[0].Text;
Console.WriteLine(text);

// Продолжение генерации текста
request.Prompt = text;
response = openai.Completions.CreateCompletion(request);
text = response.Choices[0].Text;
Console.WriteLine(text);


В этом примере мы используем библиотеку OpenAI для C#, которая предоставляет удобный способ взаимодействия с OpenAI API. Мы создаем экземпляр объекта OpenAIApi с указанием ключа API, а затем создаем объект CompletionRequest для задания параметров запроса. Запрос отправляется методом CreateCompletion объекта Completions в экземпляре OpenAIApi. Ответ возвращается в объекте CompletionResponse, из которого мы извлекаем текст с помощью свойства Choices и метода Text.
Вроде бы все понятно, отслеживаем получен полный ответ или нет, по этой переменной:

105479


и надо ей отправить предыдущий ответ и попросить продолжить, но не хватает знаний как это реализовать или в C# кубике или через POST запрос.

Если у кого есть решение, буду благодарен!
 

Rimen

Client
Регистрация
28.10.2019
Сообщения
405
Благодарностей
235
Баллы
43
У меня решено примерно так:
C#:
project.Variables["history"].Value = project.Variables["history"].Value + @"{""role"": ""user"", ""content"" : """ + project.Variables["text_for_ChatGPT"].Value + @"""},
{""role"": ""assistant"", ""content"" : """ + project.Variables["is_text"].Value + @"""},";
}
где в переменной text_for_ChatGPT записан прошлый промт, в is_text уже находится полученный от GPT ответ.
После отправляю новый запрос с промтом "продолжай с того символа на котором закончил" и историей так:
 

-BeeR-

Client
Регистрация
24.12.2012
Сообщения
12
Благодарностей
9
Баллы
3

Rimen

Client
Регистрация
28.10.2019
Сообщения
405
Благодарностей
235
Баллы
43
Спасибо, то что нужно!
но тут есть нюанс который я пока не придумал как решить: иногда он дает ответы длиннее чем в него можно отправить. и в таком случае упираюсь в лимиты токенов... пока хз что с этим делать
 

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)