Semantic quick search gives error 500

AI-generated summary

Jagster reports encountering an error 500 after enabling the ai embeddings semantic quick search enabled feature, despite having recently upgraded. They provide technical details of their setup, including the use of the GPT-4 Turbo and text-embedding-3-small model, and share an error log indicating an issue with an argument error due to a nil or empty address in the response process. Despite trying safe-mode, the problem persists.

Falco responds by explaining that the feature Jagster is attempting to use is experimental and requires additional settings, like per post embeddings and a re-ranker model, which are still under evaluation. Falco suggests that the setting will be made hidden to avoid confusion and accidental enabling by users.

I enabled ai embeddings semantic quick search enabled but it gives error 500. It works here, and error 500 quite often happends because of issues of servers, aka. at my end, but I’m a bit lost how to start solving out this.

I upgraded a couple days ago, but it hasn’t work ever. Sementic suggestions works just nice when searched as usual.

Used model is GPT-4 Turbo, and embeddings model is text-embedding-3-small — if that matters. I used large at some point, but changed it to small, because I didn’t get wanted results, and at that point OpenAI has some issues with large-model.

Safe-mode doesn’t help.

And error I get:

Message

Failed to process hijacked response correctly : ArgumentError : address cannot be nil or empty

Backtrace

/var/www/discourse/lib/final_destination/http.rb:5:in `connect'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-http-0.4.1/lib/net/http.rb:1580:in `do_start'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/net-http-0.4.1/lib/net/http.rb:1569:in `start'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/faraday-net_http-3.1.0/lib/faraday/adapter/net_http.rb:112:in `request_with_wrapped_block'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/faraday-net_http-3.1.0/lib/faraday/adapter/net_http.rb:102:in `perform_request'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/faraday-net_http-3.1.0/lib/faraday/adapter/net_http.rb:66:in `block in call'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/faraday-2.9.0/lib/faraday/adapter.rb:45:in `connection'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/faraday-net_http-3.1.0/lib/faraday/adapter/net_http.rb:65:in `call'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/faraday-2.9.0/lib/faraday/rack_builder.rb:152:in `build_response'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/faraday-2.9.0/lib/faraday/connection.rb:444:in `run_request'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/faraday-2.9.0/lib/faraday/connection.rb:280:in `post'
/var/www/discourse/plugins/discourse-ai/lib/inference/hugging_face_text_embeddings.rb:50:in `rerank'
/var/www/discourse/plugins/discourse-ai/lib/embeddings/semantic_search.rb:136:in `quick_search'
/var/www/discourse/plugins/discourse-ai/app/controllers/discourse_ai/embeddings/embeddings_controller.rb:62:in `block in quick_search'
/var/www/discourse/lib/hijack.rb:64:in `instance_eval'
/var/www/discourse/lib/hijack.rb:64:in `block in hijack'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/promises.rb:911:in `callback_on_resolution'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/promises.rb:797:in `call_callback'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/promises.rb:803:in `call_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/promises.rb:692:in `resolve_with'
/var/www/discourse/vendor/bundle/ruby/3.2.0/gems/concurrent-ruby-1.2.3/lib/concurrent-ruby/concurrent/promises.rb:1325:in `resolve'
/var/www/discourse/lib/scheduler/defer.rb:115:in `block in do_work'
/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/lib/scheduler/defer.rb:109:in `do_work'
/var/www/discourse/lib/scheduler/defer.rb:97:in `block (2 levels) in start_thread'

Env

HTTP HOSTS: foorumi.katiska.eu

Ideas?

That’s an experimental feature that requires you to enable per post embeddings and to use a re-ranker model, which we are still evaluating the feasibility of.

I will move this setting to a hidden one so people don’t enable it by mistake.