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:
Wie man ein Discourse-Plugin forkt: Könnten Sie detaillierte Anweisungen oder eine Anleitung geben, wie man ein bestehendes Discourse-Plugin forkt?
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?
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.
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
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.
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.
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.
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?