OpenAI Azure Endpunktunterstützung für gpt-4-32k?

Hallo,

Ich stoße auf ein Problem mit dem OpenAI Azure-Endpunkt. Es scheint, dass er für die folgende URL nicht wie erwartet funktioniert:

https://***.openai.azure.com/openai/deployments/DEPLOYMENT_NAME/chat/completions?api-version=2023-07-01-preview

Wobei DEPLOYMENT_NAME auf gpt-4-32k gesetzt ist.

Könnten Sie bitte bei der Lösung dieses Problems helfen? Jede Anleitung oder jeder Vorschlag wäre sehr willkommen.

Zusätzlich habe ich einige Fragen zu Discourse-Plugins:

  1. Wie man ein Discourse-Plugin forkt: Könnten Sie detaillierte Anweisungen oder eine Anleitung geben, wie man ein bestehendes Discourse-Plugin forkt?
  2. Testen des geforkten Plugins: Sobald ich ein Plugin geforkt habe, welche Schritte sind erforderlich, um diese geforkte Version auf meiner eigenen Discourse-Instanz zu testen?
  3. Hochladen und Aktivieren des Plugins: Wie kann ich dieses geforkte Plugin nach dem Testen auf meiner Discourse-Instanz hochladen und aktivieren?

Ihre Hilfe bei diesen Fragen wäre äußerst hilfreich. Vielen Dank für Ihre Zeit und Unterstützung.

Mit freundlichen Grüßen,

Haben Sie das in der Einstellung ai openai gpt4 32k url gesetzt?

Ja, das habe ich, aber das Problem scheint zu sein, dass in der Datei lib/summarization/entry_point.rb das gpt-4-32k-2023-07-01-preview überhaupt nicht behandelt wird.

module DiscourseAi
  module Summarization
    class EntryPoint
      def inject_into(plugin)
        foldable_models = [
          Models::OpenAi.new("gpt-4", max_tokens: 8192),
          Models::OpenAi.new("gpt-4-32k", max_tokens: 32_768),
          Models::OpenAi.new("gpt-4-1106-preview", max_tokens: 100_000),
          Models::OpenAi.new("gpt-3.5-turbo", max_tokens: 4096),
          Models::OpenAi.new("gpt-3.5-turbo-16k", max_tokens: 16_384),
          Models::Anthropic.new("claude-2", max_tokens: 200_000),
          Models::Anthropic.new("claude-instant-1", max_tokens: 100_000),
          Models::Llama2.new("Llama2-chat-hf", max_tokens: SiteSetting.ai_hugging_face_token_limit),
          Models::Llama2FineTunedOrcaStyle.new(
            "StableBeluga2",
            max_tokens: SiteSetting.ai_hugging_face_token_limit,
          ),
          Models::Gemini.new("gemini-pro", max_tokens: 32_768),
          Models::Mixtral.new("mistralai/Mixtral-8x7B-Instruct-v0.1", max_tokens: 32_000),
        ]

        foldable_models.each do |model|
          plugin.register_summarization_strategy(Strategies::FoldContent.new(model))
        end

        truncable_models = [
          Models::Discourse.new("long-t5-tglobal-base-16384-book-summary", max_tokens: 16_384),
          Models::Discourse.new("bart-large-cnn-samsum", max_tokens: 1024),
          Models::Discourse.new("flan-t5-base-samsum", max_tokens: 512),
        ]

        truncable_models.each do |model|
          plugin.register_summarization_strategy(Strategies::TruncateContent.new(model))
        end
      end
    end
  end
end

Wir sehen diesen Fehler in den Protokollen:

DiscourseAi::Completions::Endpoints::OpenAi: status: 400 - body: {
  "error": {
    "message": "Unrecognized request argument supplied: tools",
    "type": "invalid_request_error",
    "param": null,
    "code": null
  }
}


 
Vorbereitung der Nutzlast mit Prompt: [{:role=>"system", :content=>"Du bist ein hilfreicher Discourse-Assistent.\nDu _verstehst_ und **generierst** Discourse Markdown.\nDu lebst in einer Discourse-Forum-Nachricht.\n\nDu lebst im Forum mit der URL: https://<URL>\nDer Titel deiner Seite: Discourse\nDie Beschreibung ist: \nDie Teilnehmer dieser Konversation sind: gpt4_bot, Chris\nDas aktuelle Datum ist: 2024-01-19 10:10:05 UTC, seit deinem Training hat sich viel verändert.\n\nDu wurdest mit alten Daten trainiert, nutze die Suche, um aktuelle Informationen über dieses Forum zu erhalten.\nVereinfache bei der Suche die Suchbegriffe.\nDie Discourse-Suche verbindet alle Begriffe mit UND. Reduziere und vereinfache Begriffe, um mehr Ergebnisse zu finden."}, {:role=>"user", :content=>"comment faire une boucle en dart ?", :name=>"Chris"}], model_params: {}, dialect: #<DiscourseAi::Completions::Dialects::ChatGpt:0x00007f230513e6e0>

Oh, ich verstehe, das bedeutet, Sie benötigen einen aktualisierten Endpunkt mit Tool-Unterstützung. Azure kann das handhaben, da wir es intern verwenden.

1 „Gefällt mir“

Nein, ich glaube nicht, dass es sich um eine Besonderheit von Microsoft Azure handelt. Ich habe die Anfragen in reinem JavaScript getestet und es funktioniert ohne Probleme, ohne jegliche Erwähnung von „Tools“. Hier habe ich den Eindruck, dass es ein Problem mit dem Plugin gibt (ich weise darauf hin, dass ich kein Ruby-Entwickler bin), aber es scheint, dass die verwendete Abstraktionsschicht die Dinge komplizierter macht. Im Zweifel haben wir dieses Plugin geforkt und überall Debugger platziert. Die URL und die Header, die an Azure gesendet werden, sind zu 100 % konform.

DiscourseAi::Completions::Endpoints::OpenAi: status: 400 - body: { “error”: { “message”: “Unrecognized request argument supplied: tools”, “type”: “invalid_request_error”, “param”: null, “code”: null } }

Es scheint, dass der einzige Ort, an dem wir „tools“ in ./lib/completions/endpoints/open_ai.rb (DiscourseAi::Completions::Endpoints::OpenAi) aufrufen, folgender ist:

    def prepare_payload(prompt, model_params, dialect)
      Rails.logger.warn("Preparing payload with prompt: #{prompt}, model_params: #{model_params}, dialect: #{dialect}")
      default_options
        .merge(model_params)
        .merge(messages: prompt)
        .tap do |payload|
          payload[:stream] = true if @streaming_mode
          payload[:tools] = dialect.tools if dialect.tools.present?
        end
    end

was uns zu ./lib/completions/dialects/chat_gpt.rb (payload[:tools] = dialect.tools if dialect.tools.present?) zu führen scheint.

In der Nachricht von PEYRUSSE Christian erkennen wir, dass der „dialect“ „dialect: #DiscourseAi::Completions::Dialects::ChatGpt:0x00007f230513e6e0“ ist.

Wenn das helfen kann…

Vielen Dank.

Das ist es nicht, solange Sie einen aktuellen Endpunkt verwenden.

Wir verwenden Azure-Endpunkte auf dieser Website, aber mit dem Parameter api-version=2023-12-01-preview. Können Sie versuchen, einen Endpunkt mit dieser API-Version zu verwenden?

Wir prüfen das und geben Ihnen nächste Woche Bescheid, mit freundlichen Grüßen.

Hallo,

Ich habe heute Morgen die Plugins Discourse AI aktualisiert und es funktioniert jetzt … das ist großartig, vielen Dank für Ihre Hilfe.

2 „Gefällt mir“

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