При разработке системы возникли несколько неопределенностей, о которых я расскажу далее.
Выбор языковой модели: Использование библиотеки Langchain позволило нам легко тестировать различные языковые модели, меняя их с помощью одной строки кода. В результате наилучшие результаты показала модель ChatGPT 4o. Мы также проводили тестирование с российскими ИИ, например, GigaChat Pro от Сбера, но она показала себя хуже, так как не всегда правильно следовала инструкциям. Сейчас ожидаем публикацию API для недавно вышедшей GigaChat Max. Яндекс в свою очередь в октябрьском анонсе новой модели пообещал поддержку функций в YandexGPT 4, но пока не опубликовал её.
Загрузка файлов из битрикс24: Изначально было неясно, как интегрировать загрузку файлов в текстовой модели. Мы решили эту задачу следующим образом: при получении сообщений с вложениями, агент получает информацию о типе файла и его ID на диске Битрикс24. И уже при вызове нужной функции, агент передает список этих ID, которые используются при создании задачи в Битрикс24.
Решение проблемы с галлюцинациями и тестирование: В процессе тестирования мы пришли к следующим решениям, чтобы максимально избежать возможные галлюцинаций агента:
- Установлен параметр temperature = 0.5, чтобы уменьшить вероятность генерации неточных данных (Параметр temperature в языковых моделях регулирует уровень случайности и креативности в ответах)
- Каждый раз после создания задачи мы очищаем историю сообщений, чтобы исключить влияние устаревшего контекста на текущие запросы.
- Для тестирования было разработано несколько бенчмарков, которые мы использовали после изменения системного промта и других настроек, чтобы удостовериться, что модель отвечает корректно и без ошибок.