Отладка добавления нового LLM

Я пытаюсь добавить пользовательскую LLM в плагин Discourse AI. При нажатии кнопки «тест» появляется сообщение «Internal Server Error».

Есть ли способ отладить это или получить более подробное сообщение об ошибке? Когда я захожу в Docker-образ и выполняю curl запрос к /v1/models, я успешно получаю данные.

Название модели — “models/Meta-Llama-3-8B-Instruct.Q6_K.gguf”, и я не уверен, не может ли проблема быть связана со специальными символами.

Попытка использовать другой вариант дала следующий результат: При попытке связаться с моделью возникла ошибка: {"error":{"code":404,"message":"Файл не найден","type":"not_found_error"}}

Однако не отображается, какой именно URL или модель пытается загрузить система, что могло бы помочь в отладке.

Те же настройки были вставлены в Open WebUI, которая успешно связалась с обоими конечными точками LLM и корректно выполнила вывод.

Какой сервер инференса вы используете? vLLM?

При настройке URL добавьте в конце путь /v1/chat/completions.

В этом и была проблема. Обратите внимание, что в программном обеспечении для LLM принято указывать в качестве URL конечной точки только часть до /v1. Выбор таких путей, как /chat/completion и т.д., обычно добавляется самим программным обеспечением.

Я пытаюсь запустить его на localhost для тестирования, поэтому указал URL: “http://172.17.0.1:8081/v1/chat/completions”, но получаю ошибку внутреннего сервера. Я могу выполнить curl-запрос к “http://172.17.0.1:8081/v1/models” из контейнера Docker с Discourse, так что соединение работает.

Есть ли какие-то другие подводные камни (например, разрешает ли Discourse использование не-HTTPS и произвольных портов для конечной точки LLM)?

Оба варианта должны работать.

Какую ошибку вы видите в /logs?

Ах. Я не знал о /logs!

NameError (неопределённая локальная переменная или метод 'tokenizer' для экземпляра DiscourseAi::Completions::Dialects::ChatGpt) app/controllers/application_controller.rb:424:in 'block in with_resolved_local'

Хм. Тот, который работает, относится к модели, которую я квантовал сам. Попробую квантовать остальные, чтобы проверить, не проблема ли это в формате модели.

Кто-нибудь смог заставить API DeepSeek работать? Я пытаюсь понять, какие именно команды нужны, чтобы подключить его к Discourse.

У меня он уже работает в Open WebUI и других клиентах.

Об этом есть тема здесь