peyrusse
(PEYRUSSE Christian)
1
こんにちは。
OpenAI Azure エンドポイントで問題が発生しています。以下の URL で期待どおりに動作していないようです。
https://***.openai.azure.com/openai/deployments/DEPLOYMENT_NAME/chat/completions?api-version=2023-07-01-preview
ここで DEPLOYMENT_NAME は gpt-4-32k に設定されています。
この問題の解決にご協力いただけますでしょうか?ガイダンスや提案をいただけると幸いです。
また、Discourse プラグインに関していくつか質問があります。
- Discourse プラグインのフォーク方法: 既存の Discourse プラグインをフォークする方法について、詳細な手順またはガイドを提供していただけますか?
- フォークしたプラグインのテスト: プラグインをフォークした後、このフォークしたバージョンを自分の Discourse インスタンスでテストする手順は何ですか?
- プラグインのアップロードと有効化: テスト後、このフォークしたプラグインを Discourse インスタンスにアップロードして有効化するにはどうすればよいですか?
これらの質問についてご協力いただけると大変助かります。お時間とサポートをいただきありがとうございます。
よろしくお願いいたします。
Falco
(Falco)
2
設定 ai openai gpt4 32k url で設定しましたか?
peyrusse
(PEYRUSSE Christian)
3
はい、確認しました。問題は lib/summarization/entry_point.rb ファイルで gpt-4-32k-2023-07-01-preview がまったく処理されていないことのようです。
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
peyrusse
(PEYRUSSE Christian)
4
ログでこのエラーを確認できます。
DiscourseAi::Completions::Endpoints::OpenAi: status: 400 - body: {
"error": {
"message": "Unrecognized request argument supplied: tools",
"type": "invalid_request_error",
"param": null,
"code": null
}
}
プロンプトを使用したペイロードの準備: [{:role=>"system", :content=>"あなたは役立つDiscourseアシスタントです。\nDiscourse Markdownを理解し、生成します。\nあなたはDiscourseフォーラムメッセージ内にいます。\n\nあなたは以下のURLのフォーラムにいます: https://<URL>\nサイトのタイトル: Discourse\n説明: \nこの会話の参加者は: gpt4_bot, Chris\n現在の日付: 2024-01-19 10:10:05 UTC。トレーニングから多くのことが変更されました。\n\n古いデータでトレーニングされたため、検索に頼ってこのフォーラムの最新情報を入手してください。\n検索する際は、検索用語を単純化してください。\nDiscourseの検索では、すべての用語がANDで結合されます。より多くの結果を見つけるために、用語を減らして単純化してください。"}, {:role=>"user", :content=>"dartでループを作成するにはどうすればよいですか?", :name=>"Chris"}], model_params: {}, dialect: #<DiscourseAi::Completions::Dialects::ChatGpt:0x00007f230513e6e0>
Falco
(Falco)
5
ああ、わかりました。つまり、ツールをサポートする更新されたエンドポイントが必要ということですね。Azureは内部で使用しているので、対応できます。
「いいね!」 1
Zak
(Zak)
6
いいえ、Microsoft Azure の特殊性だとは思いません。純粋な JavaScript でリクエストをテストしましたが、問題なく動作しました。「ツール」という概念はありませんでした。ここでは、プラグインの問題のように思われます(私は Ruby 開発者ではありませんが)。使用されている抽象化レイヤーが物事をより複雑にしているようです。念のため、そのプラグインをフォークして、すべてのデバッガーを配置しました。Azure に送信される URL とヘッダーは 100% 準拠しています。
DiscourseAi::Completions::Endpoints::OpenAi: status: 400 - body: { “error”: { “message”: “Unrecognized request argument supplied: tools”, “type”: “invalid_request_error”, “param”: null, “code”: null } }
「ツール」を呼び出している唯一の場所は、次のとおりのようです。./lib/completions/endpoints/open_ai.rb (DiscourseAi::Completions::Endpoints::OpenAi):
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
これは、./lib/completions/dialects/chat_gpt.rb (payload[:tools] = dialect.tools if dialect.tools.present?) につながるようです。
PEYRUSSE Christian のメッセージから、「dialect」は「dialect: #DiscourseAi::Completions::Dialects::ChatGpt:0x00007f230513e6e0」であることがわかります。
お役に立てば幸いです。
ありがとうございます。
Falco
(Falco)
7
最新のエンドポイントを使用している限り、そうではありません。
このサイトではAzureのエンドポイントを使用していますが、パラメータは api-version=2023-12-01-preview です。このAPIバージョンでエンドポイントを試していただけますか?
peyrusse
(PEYRUSSE Christian)
9
We check this out and let you know surely next week, regards.
peyrusse
(PEYRUSSE Christian)
10
こんにちは。
今朝、Discourse AI プラグインを更新したところ、動作するようになりました。素晴らしいです。ご協力ありがとうございました。
「いいね!」 2
system
(system)
クローズされました:
11
This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.