Gemini Embeddings Problem nach Discourse-Update auf 3.6.0 Beta 2

Nachdem ich Discourse auf 2.6.0 Beta 2 aktualisiert habe, sind die Embeddings ausgefallen und ich kann nicht herausfinden, warum.

Ich verwende Gemini Flash und Flash Lite LLMs, und sie funktionieren einwandfrei, der KI-Bot funktioniert usw.

Wenn ich jedoch zum Embedding-Modell gehe und auf dem Gemini-Embedding auf test klicke, erhalte ich diesen Fehler (und die Logs sind auch voll davon).

Trying to contact the model returned this error: { "error": { "code": 429, "message": "Sie haben Ihr aktuelles Kontingent überschritten. Überprüfen Sie Ihre Plan- und Abrechnungsdetails. Weitere Informationen zu diesem Fehler finden Sie unter: https://ai.google.dev/gemini-api/docs/rate-limits.\n* Kontingent überschritten für Metrik: generativelanguage.googleapis.com/embed_content_free_tier_requests, Limit: 0\n* Kontingent überschritten für Metrik: generativelanguage.googleapis.com/embed_content_free_tier_requests, Limit: 0\n* Kontingent überschritten für Metrik: generativelanguage.googleapis.com/embed_content_free_tier_requests, Limit: 0\n* Kontingent überschritten für Metrik: generativelanguage.googleapis.com/embed_content_free_tier_requests, Limit: 0", "status": "RESOURCE_EXHAUSTED", "details": [ { "@type": "type.googleapis.com/google.rpc.QuotaFailure", "violations": [ { "quotaMetric": "generativelanguage.googleapis.com/embed_content_free_tier_requests", "quotaId": "EmbedContentRequestsPerMinutePerProjectPerModel-FreeTier" }, { "quotaMetric": "generativelanguage.googleapis.com/embed_content_free_tier_requests", "quotaId": "EmbedContentRequestsPerMinutePerUserPerProjectPerModel-FreeTier" }, { "quotaMetric": "generativelanguage.googleapis.com/embed_content_free_tier_requests", "quotaId": "EmbedContentRequestsPerDayPerUserPerProjectPerModel-FreeTier" }, { "quotaMetric": "generativelanguage.googleapis.com/embed_content_free_tier_requests", "quotaId": "EmbedContentRequestsPerDayPerProjectPerModel-FreeTier" } ] }, { "@type": "type.googleapis.com/google.rpc.Help", "links": [ { "description": "Mehr über Gemini API-Kontingente erfahren", "url": "https://ai.google.dev/gemini-api/docs/rate-limits" } ] } ] } }

Das funktionierte bis 3.6.0 Beta 1 perfekt, nach dem Update auf Beta 2 trat dieser Fehler auf. Ich verwende denselben Schlüssel für dieses Embedding wie für die LLM. Ich habe sogar versucht, einen neuen Schlüssel zu generieren, 48 Stunden gewartet usw., aber nichts scheint das Problem zu beheben.

Kann mir jemand sagen, warum es plötzlich aufgehört hat zu funktionieren, warum der LLM-KI-Bot funktioniert, aber dieses nicht, und wie ich es beheben kann?

Ich werde meine eigene Antwort auf meinen Beitrag geben. Das Problem ist nicht der Build, sondern das Timing. Im Oktober hat Google das aktuelle Einbettungsmodell (embedding-001) obsolet gemacht, sodass es nicht mehr funktionierte. Das neue Modell ist gemini-embedding-001

Sie müssen die Einbettungskonfiguration von
https://generativelanguage.googleapis.com/v1beta/models/embedding-001:embedContent
zu
https://generativelanguage.googleapis.com/v1beta/models/gemini-embedding-001:embedContent
ändern.

Die Details finden Sie hier: https://ai.google.dev/gemini-api/docs/embeddings

@Falco Vielleicht muss die Standard-Gemini-Konfiguration in Discourse aktualisiert werden, da beim Erstellen einer neuen Gemini-Einbettung immer noch embedding-001 anstelle von gemini-embedding-001 verwendet wird.

1 „Gefällt mir“

…und es scheint, dass Discourse möglicherweise nicht für die Handhabung des neuen gemini-embedding-001-Modells eingerichtet ist. Der Test ausführen funktioniert einwandfrei, aber wenn ich versuche, das Forum zu durchsuchen, sehe ich jetzt diese Fehler in den Protokollen:

Nachricht (2 Kopien gemeldet)

Fehler FEHLER: erwartete 768 Dimensionen, nicht 3072
Abfrage von Einbettungen für Modell gemini

Backtrace

/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.3/lib/active_support/broadcast_logger.rb:218:in `block in dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.3/lib/active_support/broadcast_logger.rb:217:in `map'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.3/lib/active_support/broadcast_logger.rb:217:in `dispatch'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/activesupport-8.0.3/lib/active_support/broadcast_logger.rb:129:in `error'
/var/www/discourse/plugins/discourse-ai/lib/embeddings/schema.rb:192:in `rescue in asymmetric_similarity_search'
/var/www/discourse/plugins/discourse-ai/lib/embeddings/schema.rb:139:in `asymmetric_similarity_search'
/var/www/discourse/plugins/discourse-ai/lib/embeddings/semantic_search.rb:89:in `search_for_topics'
/var/www/discourse/plugins/discourse-ai/app/controllers/discourse_ai/embeddings/embeddings_controller.rb:56:in `block in search'
/var/www/discourse/lib/hijack.rb:68:in `instance_eval'
/var/www/discourse/lib/hijack.rb:68:in `block (2 levels) in hijack'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/i18n-1.14.7/lib/i18n.rb:353:in `with_locale'
/var/www/discourse/lib/hijack.rb:68:in `block in hijack'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:911:in `callback_on_resolution'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:797:in `call_callback'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:803:in `call_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:692:in `resolve_with'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:1325:in `resolve'
/var/www/discourse/lib/scheduler/defer.rb:125:in `block in do_work'
/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/lib/scheduler/defer.rb:119:in `do_work'
/var/www/discourse/lib/scheduler/defer.rb:105:in `block (2 levels) in start_thread'
Nachricht (2 Kopien gemeldet)

Fehler bei der Verarbeitung der gekaperten Antwort: DiscourseAi::Embeddings::Schema::MissingEmbeddingError : DiscourseAi::Embeddings::Schema::MissingEmbeddingError

Backtrace

/var/www/discourse/plugins/discourse-ai/lib/embeddings/schema.rb:193:in `rescue in asymmetric_similarity_search'
/var/www/discourse/plugins/discourse-ai/lib/embeddings/schema.rb:139:in `asymmetric_similarity_search'
/var/www/discourse/plugins/discourse-ai/lib/embeddings/semantic_search.rb:89:in `search_for_topics'
/var/www/discourse/plugins/discourse-ai/app/controllers/discourse_ai/embeddings/embeddings_controller.rb:56:in `block in search'
/var/www/discourse/lib/hijack.rb:68:in `instance_eval'
/var/www/discourse/lib/hijack.rb:68:in `block (2 levels) in hijack'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/i18n-1.14.7/lib/i18n.rb:353:in `with_locale'
/var/www/discourse/lib/hijack.rb:68:in `block in hijack'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:911:in `callback_on_resolution'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:797:in `call_callback'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:803:in `call_callbacks'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:692:in `resolve_with'
/var/www/discourse/vendor/bundle/ruby/3.3.0/gems/concurrent-ruby-1.3.5/lib/concurrent-ruby/concurrent/promises.rb:1325:in `resolve'
/var/www/discourse/lib/scheduler/defer.rb:125:in `block in do_work'
/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/lib/scheduler/defer.rb:119:in `do_work'
/var/www/discourse/lib/scheduler/defer.rb:105:in `block (2 levels) in start_thread'

…und was zu funktionieren scheint, ist, ein neues Modell zu erstellen und die Embedding dimensions auf 3072 anstelle der Standardeinstellung 768 zu ändern.

Möglicherweise müssen die Discourse Gemini Embeddings mit ihren Standardeinstellungen überarbeitet werden, und ein kleiner Leitfaden „So konfigurieren Sie Gemini Embedding“ im ersten Beitrag könnte ebenfalls eine gute Idee sein.

1 „Gefällt mir“

Duplikat von Gemini-Einbettungseinstellung übergibt output_dimensionality nicht?