Вызов функции LLM завершается сбоем из-за неправильного определения намерения при вводе произвольного текста пользователPython

Программы на Python
Ответить
Anonymous
 Вызов функции LLM завершается сбоем из-за неправильного определения намерения при вводе произвольного текста пользовател

Сообщение Anonymous »

Я создаю помощника по операциям на базе искусственного интеллекта, используя LLM (Groq / LLaMA 3) с вызовом функций. Система предназначена для ввода произвольного текста пользователя, обнаружения намерений, извлечения аргументов, а затем вызова соответствующей внутренней функции (например, Approv_Completion, update_priority и т. д.).
Однако я столкнулся с серьезной проблемой с надежностью обнаружения намерений.

Проблема
LLM часто неправильно классифицирует намерения пользователя, особенно если вводимые данные короткие, двусмысленные или диалоговые. Это приводит к:
  • Выбирается неправильная функция
  • Необходимые аргументы собираются неправильно
  • Вызов функции завершается неудачно из-за отсутствия или неправильных параметров
Пример
Ввод пользователя:

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

approve
Ожидаемое поведение:
  • Система должна распознать это как неоднозначное действие
  • Запросить разъяснения (например, выполнить действие вместо запроса ИЛИ запросить Issue_id)
Фактическое Поведение:
  • LLM иногда направляет его в функцию запроса.
  • Или вызывает Approved_Completion без обязательных аргументов.
  • Или выдает противоречивые результаты при разных запусках.
Другой случай
Ввод пользователя:

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

make it high priority
Ожидается:

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

update_priority(issue_id=?, priority="HIGH")
Фактическое:
  • Намерение иногда определяется как query_function
  • Или не удается извлечь приоритет
  • Или происходит сбой из-за отсутствия Issue_id, даже если он был указан ранее в разговоре
Текущий подход
  • Использование маршрутизации на основе подсказок LLM с вызовом инструментов
  • Передача истории разговоров для контекста
  • Использование модели для:

    Обнаружения намерение
  • Извлечение аргументов
  • Обработка последующих действий, таких как «это», «эта проблема»


Почему это проблема
В производстве это ведет к:
  • Ненадежной автоматизации
  • Нарушенным рабочим процессам
  • Плохому пользовательскому опыту
Что я ищу
Что лучше всего сделать эта система надежна в производстве?
В частности:
  • Следует ли мне избегать полной зависимости от LLM для обнаружения намерений?
  • Рекомендуется ли гибридный подход (на основе правил + LLM)?
  • Как Вы обрабатываете:
    • Неоднозначные входные данные, такие как «одобрить», «переназначить»
    • Последующие действия, такие как «это», «тот»
  • Следует ли мне реализовать конечный автомат (например, Redis) для сбора аргументов вместо использования памяти LLM?
Цель
Я хочу построить систему, в которой:
  • Обнаружение намерений является детерминированным
  • Сбор аргументов надежный
  • Вызовы функций никогда не завершаются сбоем из-за отсутствия параметров
Tech Stack
  • Python (FastAPI)
  • Groq (LLaMA 3)
  • Вызов функций через схемы инструментов
  • Redis (для памяти сеанса)
Ответить

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

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

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

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

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