# 为 AI 助手“explain”设置角色会导致错误

**URL:** <https://meta.discourse.org/t/setting-a-persona-for-ai-helper-explain-causes-error/369562>\
**Category:** Bug\
**Tags:** ai, ai-helper\
**Created:** [2025年六月10日 15:29 UTC](https://meta.discourse.org/t/setting-a-persona-for-ai-helper-explain-causes-error/369562 "2025-06-10T15:29:19Z")\
**Posts on this page:** 1\
**Showing post:** 1

<div class="post-metadata">

**Author:** ![MachineScholar](https://sea3.discourse-cdn.com/meta/user_avatar/meta.discourse.org/machinescholar/32/424719_2.png) [@MachineScholar](https://meta.discourse.org/u/MachineScholar)\
**Post date:** [2025年六月10日 15:29 UTC](https://meta.discourse.org/t/setting-a-persona-for-ai-helper-explain-causes-error/369562/1 "2025-06-10T15:29:19Z")

</div>

我将 AI 助手“解释”功能的角色设置为自定义角色（使用 GPT-4.1-mini），然后点击解释会导致无限期加载。我将其切换回默认值后，它又开始工作了。

> **错误日志**
>
> 消息（报告了 2 个副本）
> 
> 作业异常：nil 无法隐式转换为 String
> 
> 回溯
> 
> /var/www/discourse/plugins/discourse-ai/lib/ai\_helper/assistant.rb:143:in `block in generate_prompt' /var/www/discourse/plugins/discourse-ai/lib/personas/bot.rb:159:in `block in reply’  
> /var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:187:in `block (3 levels) in perform_completion!' /var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:230:in `block (5 levels) in perform\_completion!’  
> /var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:230:in `each' /var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:230:in `block (4 levels) in perform\_completion!’  
> /var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:221:in `each' /var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:221:in `block (3 levels) in perform\_completion!’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:535:in `call_block' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:526:in ` \<\<’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-protocol-0.2.2/lib/net/protocol.rb:168:in `read' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http/response.rb:631:in `read\_chunked’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http/response.rb:595:in `block in read_body_0' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http/response.rb:588:in `inflater’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http/response.rb:593:in `read_body_0' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/net-http-0.6.0/lib/net/http/response.rb:363:in `read\_body’  
> /var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:216: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-3.3.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-3.3.1/lib/mini\_profiler/profiling\_methods.rb:50:in `step' /var/www/discourse/vendor/bundle/ruby/3.3.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:158: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:在 `start' /var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/base.rb:129:在 `perform\_completion!’  
> /var/www/discourse/plugins/discourse-ai/lib/completions/endpoints/open\_ai.rb:53:在 `perform_completion!' /var/www/discourse/plugins/discourse-ai/lib/completions/llm.rb:374:在 `generate’  
> /var/www/discourse/plugins/discourse-ai/lib/personas/bot.rb:90:在 `reply' /var/www/discourse/plugins/discourse-ai/lib/ai_helper/assistant.rb:148:在 `generate\_prompt’  
> /var/www/discourse/plugins/discourse-ai/lib/ai\_helper/assistant.rb:197:在 `stream_prompt' /var/www/discourse/plugins/discourse-ai/app/jobs/regular/stream_post_helper.rb:30:在 `execute’  
> /var/www/discourse/app/jobs/base.rb:316:在 `block (2 levels) in perform' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails_multisite-6.1.0/lib/rails_multisite/connection_management/null_instance.rb:49:在 `with\_connection’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/rails\_multisite-6.1.0/lib/rails\_multisite/connection\_management.rb:21:在 `with_connection' /var/www/discourse/app/jobs/base.rb:303:在 `block in perform’  
> /var/www/discourse/app/jobs/base.rb:299:在 `each' /var/www/discourse/app/jobs/base.rb:299:在 `perform’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:220:在 `execute_job' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:185:在 `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:在 `traverse' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:在 `block in traverse’  
> /var/www/discourse/lib/sidekiq/discourse\_event.rb:6:在 `call' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:在 `traverse’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:在 `block in traverse' /var/www/discourse/lib/sidekiq/pausable.rb:131:在 `call’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:在 `traverse' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:在 `block in traverse’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/job/interrupt\_handler.rb:9:在 `call' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:在 `traverse’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:183:在 `block in traverse' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:26:在 `track’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/metrics/tracking.rb:134:在 `call' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:182:在 `traverse’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/middleware/chain.rb:173:在 `invoke' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:184:在 `block (3 levels) in process’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:145:在 `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:在 `local’  
> /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/processor.rb:144:在 `block (5 levels) in dispatch' /var/www/discourse/vendor/bundle/ruby/3.3.0/gems/sidekiq-7.3.9/lib/sidekiq/config.rb:39:在 `block in"  
> /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’

---

_[View the full topic](https://meta.discourse.org/t/setting-a-persona-for-ai-helper-explain-causes-error/369562)._
