Dépannage de l'ajout d'un nouveau LLM

J’essaie d’ajouter un LLM personnalisé au plugin Discourse AI. Lorsque j’appuie sur le bouton « tester », j’obtiens une « erreur de serveur interne ».

Existe-t-il un moyen de déboguer cela ou d’obtenir un message d’erreur plus précis ? Lorsque je vais dans l’image Docker et que j’utilise curl sur /v1/models, je peux récupérer cela correctement.

Le nom du modèle est « models/Meta-Llama-3-8B-Instruct.Q6_K.gguf » et je ne suis pas sûr qu’il puisse y avoir un problème avec les caractères spéciaux.

Essayer une autre option donne : Trying to contact the model returned this error: {"error":{"code":404,"message":"File Not Found","type":"not_found_error"}}

Mais cela n’affiche pas l’URL/le modèle qu’il essaie de récupérer, ce qui pourrait aider au débogage.

Les mêmes paramètres ont été collés dans Open WebUI, qui a pu contacter les deux points de terminaison LLM et effectuer l’inférence correctement.

Quel serveur d’inférence utilisez-vous ? vLLM ?

Lors de la configuration de l’URL, ajoutez le chemin /v1/chat/completions à la fin.

C’était le problème. Notez que dans les logiciels LLM, il est d’usage de n’inclure que jusqu’à /v1 comme URL de point de terminaison. La sélection de /chat/completion, etc. est ensuite normalement ajoutée par le logiciel.

J’essaie d’en faire fonctionner un sur le localhost pour tester, j’ai donc mis l’URL : « http://172.17.0.1:8081/v1/chat/completions » et j’obtiens une erreur interne du serveur. Je suis capable de faire un curl sur « http://172.17.0.1:8081/v1/models » depuis le conteneur Docker de Discourse, donc la connectivité fonctionne.

Y a-t-il d’autres pièges (par exemple, Discourse autorise-t-il les ports non HTTPS et arbitraires pour le point de terminaison LLM) ?

Les deux devraient fonctionner.

Quelle est l’erreur que vous voyez sur /logs ?

Ah. Je ne connaissais pas /logs !

NameError (variable locale ou méthode 'tokenizer' non définie pour une instance de DiscourseAi::Completions::Dialects::ChatGpt) app/controllers/application_controller.rb:424:in 'block in with_resolved_local

Hmm. Celle qui fonctionne est pour un modèle que j’ai quantifié moi-même. Je vais essayer de quantifier les autres pour voir s’il s’agit d’un problème de format de modèle.

Quelqu’un a-t-il réussi à faire fonctionner l’API DeepSeek ? J’essaie de trouver la bonne formule pour la faire fonctionner avec Discourse.

Je l’ai fait fonctionner dans Open WebUI et d’autres clients.

Il y a un sujet à ce sujet ici

2 « J'aime »