Ого, это действительно довольно сложно.
Думаю, если бы пользовательские инструменты были достаточно функциональными, они могли бы это реализовать… Это, конечно, напоминает машину Руба Голдберга, но представьте:
- ЕСЛИ конфигурация с персонажем:
- Принудительно вызывает инструменты,
- И принудительно использует пользовательский инструмент без параметров,
- ТО мы не вызываем LLM, а просто передаем управление инструменту.
- ТО предоставляем инструменту необходимую инфраструктуру для потоковой передачи результатов обратно в приложение через инверсию управления каким-либо образом.
Это колоссальное количество изменений, и в итоге поддержка такого решения станет настоящей головной болью.
Другой вариант — создать новый пользовательский плагин, который зависит от Discourse-AI и определяет собственный диалект и конечную точку. Это, безусловно, самый простой способ решить задачу.