Método no definido dig para nil:NilClass" Error con el plugin Discourse AI
Estoy encontrando el siguiente error al usar el plugin Discourse AI:
Mensaje de error:
Excepción del trabajo: método no definido `dig` para nil:NilClass
Ubicación:
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/gemini.rb:107:in extract_completion_from’`
Contexto:
Este error parece ocurrir cuando el código intenta usar el método dig en un valor nil, probablemente al procesar una respuesta de API dentro del método extract_completion_from.
1 me gusta
Falco
(Falco)
17 Junio, 2024 13:09
2
¿Puede compartir el backtrace completo?
1 me gusta
Excepción de trabajo: método `dig' indefinido para nil:NilClass
Backtrace
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/gemini.rb:107:in `extract_completion_from'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:224:in `block (4 levels) in perform_completion!'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:216:in `each'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:216:in `block (3 levels) in perform_completion!'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:535:in `call_block'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:526:in `<'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:168:in `read'
/usr/local/lib/ruby/3.2.0/net/http/response.rb:631:in `read_chunked'
/usr/local/lib/ruby/3.2.0/net/http/response.rb:595:in `block in read_body_0'
/usr/local/lib/ruby/3.2.0/net/http/response.rb:588:in `inflater'
/usr/local/lib/ruby/3.2.0/net/http/response.rb:593:in `read_body_0'
/usr/local/lib/ruby/3.2.0/net/http/response.rb:363:in `read_body'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:184:in `block (2 levels) in perform_completion!'
/usr/local/lib/ruby/3.2.0/net/http.rb:2353:in `block in transport_request'
/usr/local/lib/ruby/3.2.0/net/http/response.rb:320:in `reading_body'
/usr/local/lib/ruby/3.2.0/net/http.rb:2352:in `transport_request'
/usr/local/lib/ruby/3.2.0/net/http.rb:2306:in `request'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.1/lib/patches/net_patches.rb:19:in `block in request_with_mini_profiler'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.1/lib/mini_profiler/profiling_methods.rb:50:in `step'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rack-mini-profiler-3.3.1/lib/patches/net_patches.rb:18:in `request_with_mini_profiler'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:122:in `block in perform_completion!'
/usr/local/lib/ruby/3.2.0/net/http.rb:1570:in `start'
/usr/local/lib/ruby/3.2.0/net/http.rb:1029:in `start'
/var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:105:in `perform_completion!'
/var/www/discourse/plugins/discourse-ai/lib/completions/llm.rb:216:in `generate'
/var/www/discourse/plugins/discourse-ai/lib/ai_bot/bot.rb:72:in `reply'
/var/www/discourse/plugins/discourse-ai/lib/ai_bot/playground.rb:324:in `reply_to_chat_message'
/var/www/discourse/plugins/discourse-ai/app/jobs/regular/create_ai_chat_reply.rb:21:in `execute'
/var/www/discourse/app/jobs/base.rb:305:in `block (2 levels) in perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rails_multisite-6.0.0/lib/rails_multisite/connection_management/null_instance.rb:49:in `with_connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/rails_multisite-6.0.0/lib/rails_multisite/connection_management.rb:21:in `with_connection'
/var/www/discourse/app/jobs/base.rb:292:in `block in perform'
/var/www/discourse/app/jobs/base.rb:288:in `each'
/var/www/discourse/app/jobs/base.rb:288:in `perform'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:202:in `execute_job'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:170:in `block (2 levels) in process'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:177:in `block in invoke'
/var/www/discourse/lib/sidekiq/pausable.rb:132:in `call'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:179:in `block in invoke'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/middleware/chain.rb:182:in `invoke'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:169:in `block in process'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:136:in `block (6 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:113:in `local'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:135:in `block (5 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq.rb:44:in `block in <module:Sidekiq>'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:131:in `block (4 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:263:in `stats'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:126:in `block (3 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:13:in `call'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:125:in `block (2 levels) in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/job_retry.rb:80:in `global'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:124:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/job_logger.rb:39:in `prepare'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:123:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:168:in `process'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:78:in `process_one'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/processor.rb:68:in `run'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:8:in `watchdog'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/sidekiq-6.5.12/lib/sidekiq/component.rb:17:in `block in safe_thread'
Falco
(Falco)
17 Junio, 2024 14:08
4
Gemini 1.5 está funcionando bien para nosotros aquí, ¿estás seguro de que tu clave API está funcionando y de que tu servidor puede acceder a la API de Gemini?
1 me gusta
Sí, de hecho lo he estado usando sin ningún problema.
Si funciona correctamente sin tener que hacer una autenticación separada de Google OAuth para la clave de API, confío en que he configurado todo correctamente.
sam
(Sam Saffron)
24 Abril, 2025 05:08
6
Lo siento, cierro esto porque está inactivo, 2.5 Flash y Pro están muy bien soportados en estos días.