Eccezione job LLM personalizzati [deepseek-coder-v2:latest non supporta gli strumenti", "tipo": "api_error", "param": null, "codice": null]

Abbiamo abilitato il LLM personalizzato, ma stiamo riscontrando un problema quando proviamo il chatbot.

Log

Messaggio (2 copie segnalate)

Job exception: {"error":{"message":"registry.ollama.ai/library/deepseek-coder-v2:latest does not support tools","type":"api_error","param":null,"code":null}}

Backtrace

/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:173:in `block (2 levels) in perform_completion!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:2433:in `block in transport_request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http/response.rb:320:in `reading_body'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:2430:in `transport_request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:2384:in `request'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/net_patches.rb:19:in `block in request_with_mini_profiler'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/mini_profiler/profiling_methods.rb:51:in `step'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rack-mini-profiler-4.0.1/lib/patches/net_patches.rb:18:in `request_with_mini_profiler'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:168:in `block in perform_completion!'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1632:in `start'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http.rb:1070:in `start'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:139:in `perform_completion!'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/open_ai.rb:53:in `perform_completion!'
/var/www/discourse/plugins/discourse-ai/lib/completions/llm.rb:415:in `generate'
/var/www/discourse/plugins/discourse-ai/lib/personas/bot.rb:89:in `reply'
/var/www/discourse/plugins/discourse-ai/lib/ai_bot/playground.rb:494:in `reply_to'
/var/www/discourse/plugins/discourse-ai/app/jobs/regular/create_ai_reply.rb:18:in `execute'
/var/www/discourse/app/jobs/base.rb:318:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-7.0.0/lib/rails_multisite/connection_management.rb:17:in `with_connection'
/var/www/discourse/app/jobs/base.rb:305:in `block in perform'
/var/www/discourse/app/jobs/base.rb:301:in `each'
/var/www/discourse/app/jobs/base.rb:301:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:220:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:185:in `block (4 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:180:in `traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
/var/www/discourse/lib/sidekiq/discourse_event.rb:6:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
/var/www/discourse/lib/sidekiq/pausable.rb:131:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/job/interrupt_handler.rb:9:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:in `block in traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:26:in `track'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:134:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:in `traverse'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:173:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:183:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:145:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/job_retry.rb:118:in `local'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:144:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/config.rb:39:in `block in <class:Config>'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:139:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:281:in `stats'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:134:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/job_logger.rb:15:in `call'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:133:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/job_retry.rb:85:in `global'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:132:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/job_logger.rb:40:in `prepare'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:131:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:183:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:182:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `handle_interrupt'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:181:in `process'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:86:in `process_one'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:76:in `run'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/component.rb:10:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/component.rb:19:in `block in safe_thread'
curl -X POST http://localhost:11434/v1/chat/completions -H "Content-Type: application/json" -d '{
  "model": "deepseek-coder-v2:latest",
  "messages": [
    {
      "role": "system",
      "content": "Sei un assistente utile."
    },
    {
      "role": "user",
      "content": "Qual è l'ultima versione di Conan secondo il 2025"
    }
  ],
  "temperature": 0.7,
  "max_tokens": 200
}'

{"id":"chatcmpl-940","object":"chat.completion","created":1757057197,"model":"deepseek-coder-v2:latest","system_fingerprint":"fp_ollama","choices":[{"index":0,"message":{"role":"assistant","content":" A partire dal mio ultimo aggiornamento all'inizio del 2023, non ci sono informazioni specifiche su \"Conan\" dopo il 2025 poiché non ho capacità di previsione futura o dati in tempo reale. Tuttavia, posso fornire alcuni consigli generali su come trovare l'ultima versione di Conan, che è un gestore di pacchetti per la gestione delle dipendenze C/C++:\n\n1. **Visita il sito ufficiale:** Il modo più affidabile per ottenere informazioni sull'ultima versione di Conan è visitare il sito ufficiale su https://conan.io/. Lì puoi solitamente trovare le ultime note di rilascio e la documentazione relativa all'ultima versione.\n\n2. **Controlla il repository GitHub:** Il codice di Conan è ospitato su GitHub, quindi puoi anche controllare il repository (https://github.com/conan-io/conan) per rilasci o tag che corrispondono a diverse versioni. Il repository include spesso note di rilascio sotto forma di commit e pull request.\n\n3"}},"finish_reason":"length"}],"usage":{"prompt_tokens":30,"completion_tokens":200,"total_tokens":230}}

Sembra che questo sia l’errore chiave:

deepseek-coder-v2:latest non supporta gli strumenti

Guardando l’elenco dei modelli qui: deepseek-coder · Ollama Search
sembra che deepseek-coder-v2 non supporti gli strumenti — dovresti rimuovere gli strumenti dalla tua persona o passare a un modello con tool calling come deepseek-coder-v2-tool-calling

2 Mi Piace

Quando eseguiamo il comando CURL con gli input, produce l’output senza alcun problema. Non abbiamo apportato alcuna personalizzazione nella persona e nelle rispettive impostazioni.

@awesomerobot

Potresti fornire maggiori dettagli e alcuni esempi? Questo ci aiuterebbe a ottenere una comprensione piĂą chiara e a promuovere migliori discussioni.

Sembra che il comando curl non includa le chiamate agli strumenti, quindi potrebbe essere questo il motivo? Nelle impostazioni della persona, sono elencati qui degli strumenti?

1 Mi Piace

@awesomerobot

Non abbiamo ancora incluso Personas personalizzate, quindi tutte quelle che vedi nell’app sono solo le opzioni predefinite. Inoltre, al momento non ne stiamo utilizzando nessuna!

Personas:

Strumenti

Dopo aver dato un’altra occhiata allo screenshot precedente, vedo che stai usando la persona forum helper per il tuo bot… questa include alcuni strumenti predefiniti che non puoi rimuovere e che non funzioneranno con il modello che stai utilizzando.

Dovresti provare una delle persone preconfigurate che non include strumenti (“creativo” è un’opzione) o creare una nuova persona che non includa strumenti.

Potresti chiarire se avere una persona è essenziale per il funzionamento efficace dei LLM?

Sì, le nostre funzionalità AI utilizzano un LLM con una persona specificata.

Quando hai piĂą di una persona abilitata e crei un nuovo messaggio, vedrai un menu a discesa che ti consente di scegliere la persona:

A scopo di test, se abiliti la persona Creativa integrata:

e poi aggiorni la pagina e inizi un nuovo messaggio con essa, mi aspetto che questo funzioni con il tuo LLM perché la persona Creativa non include alcuno strumento.

1 Mi Piace

Vedo solo queste opzioni, potresti aiutarmi con l’impostazione?

Devi visitare /admin/plugins/discourse-ai/ai-personas e creare una nuova persona o abilitarne una senza strumenti. Se vuoi provare una persona esistente, “Creative” sarebbe una buona opzione da testare poiché non include alcuno strumento.

Quindi dovresti fare clic su modifica qui:

e in fondo alle impostazioni della persona, dovrai abilitarla, fare clic su “crea utente” e salvare le modifiche.

Una volta fatto, la persona “Creative” dovrebbe apparire nell’elenco (potrebbe essere necessario aggiornare la pagina prima).

Dobbiamo anche selezionare la modale predefinita?

Inoltre, si prega di assistere con le seguenti impostazioni:

AI helper proofreader persona
AI helper title suggestions persona
AI helper explain persona
AI helper post illustrator persona
AI helper smart dates persona
AI helper translator persona
AI helper markdown tables persona
AI helper custom prompt persona
AI helper image caption persona
AI embeddings semantic search hyde persona
AI summarization persona
AI summary gists persona
AI bot discover persona
AI Discord search persona
AI translation locale detector persona
AI translation post raw translator persona
AI translation topic title translator persona
AI translation short text translator persona
Inferred concepts generate persona
Inferred concepts match persona
Inferred concepts deduplicate persona
AI embeddings generate for PMs
AI bot public sharing allowed groups

Come porre la mia domanda ai LLM e quale persona utilizzare per ottenere un output migliore

Voglio ottenere la risposta basata sui dati del mio Forum e del Modello se non disponibili

@awesomerobot

Grazie mille per il tuo contributo! Lo apprezzo molto. Ricevo risposte dal bot, ma sembra che il contenuto del mio forum non sia ancora incluso. Hai qualche suggerimento su come potremmo migliorarlo? Grazie ancora!

1 Mi Piace

Dovrai passare a un LLM che supporti l’uso di strumenti, la nostra persona inclusa “aiutante del forum”, ad esempio, utilizza gli strumenti “cerca” e “leggi” per trovare contenuti pertinenti nel forum da incorporare nelle sue risposte.

Se il modello non dispone del supporto nativo per gli strumenti, è sempre possibile utilizzare l’alternativa XML, che li include nel prompt:

3 Mi Piace

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.