Каждый шаг зависит от результатов предыдущего, а некоторые шаги включают вызов функции function_call: "auto", в то время как другие требуют динамического внедрения предыдущего контекста.
Вопросы:
Передача контекста:
Лучше ли передавать необработанные выходные данные JSON из предыдущих шагов в систему или подсказку пользователя?
Да внедрение промежуточных выходных данных в виде вызовов инструментов или добавление их к сообщениям обеспечивает лучшее выравнивание?
Поток вызова функции:
В многошаговых потоках мне следует вручную анализировать вызов функции и немедленно вызывать следующий шаг, или я могу вложить эту логику в определение инструмента для более чистой цепочки?
Безопасно ли передавать сгенерированные выходные данные обратно в GPT через системные подсказки, или это загрязняет контекст в тонкими способами?
Эффективность памяти?
Каков наилучший способ обрезать избыточную информацию между этапами без ухудшения качества?
Существует ли предел тому, сколько структурированного вывода GPT может «запомнить» и надежно повторно использовать в цепочке запросов?
Код: Выделить всё
response_1 = openai.ChatCompletion.create(
model="gpt-4-turbo",
messages=[{ "role": "system", "content": "You are an intent classifier..." },
{ "role": "user", "content": user_input }]
)
response_2 = openai.ChatCompletion.create(
model="gpt-4-turbo",
messages=[
{ "role": "system", "content": f"Intent: {intent}" },
{ "role": "user", "content": "Proceed to handle the request using tool if needed." }
],
tools=[...],
tool_choice="auto"
)
Если вы сделали это в большом масштабе, как вам удалось избежать беспорядочного раздувания контекста и проблем с задержкой?
Спасибо!>
Мобильная версия