دعم نقطة نهاية OpenAI Azure لـ gpt-4-32k؟

مرحباً،

أواجه مشكلة مع نقطة نهاية 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:

  1. كيفية عمل Fork لإضافة Discourse: هل يمكنك تقديم تعليمات مفصلة أو دليل حول كيفية عمل Fork لإضافة Discourse موجودة؟
  2. اختبار الإضافة التي تم عمل Fork لها: بمجرد عمل Fork لإضافة، ما هي الخطوات اللازمة لاختبار هذه النسخة التي تم عمل Fork لها على مثيل Discourse الخاص بي؟
  3. تحميل وتفعيل الإضافة: بعد الاختبار، كيف يمكنني تحميل وتفعيل هذه الإضافة التي تم عمل Fork لها على مثيل Discourse الخاص بي؟

ستكون مساعدتك في هذه الاستفسارات مفيدة للغاية. شكراً لوقتك ودعمك.

مع خالص التقدير،

هل قمت بتعيين ذلك في الإعداد ai openai gpt4 32k url؟

نعم فعلت، ولكن المشكلة تبدو في أن الملف 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

يمكننا رؤية هذا الخطأ في السجلات:

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 مفيد.\nأنت _تفهم_ و **تنشئ** Discourse 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عند البحث، حاول تبسيط مصطلحات البحث\nينضم بحث Discourse إلى جميع المصطلحات باستخدام AND. قلل وبسط المصطلحات للعثور على المزيد من النتائج."}, {:role=>"user", :content=>"comment faire une boucle en dart ?", :name=>"Chris"}], model_params: {}, dialect: #<DiscourseAi::Completions::Dialects::ChatGpt:0x00007f230513e6e0>

أوه، فهمت، هذا يعني أنك بحاجة إلى نقطة نهاية محدثة تدعم الأدوات. يمكن لـ Azure التعامل معها، حيث إننا نستخدمها داخليًا.

إعجاب واحد (1)

لا، لا أعتقد أن هذه خصوصية خاصة بـ Microsoft Azure، لقد اختبرت الطلبات باستخدام JavaScript عادي وهي تعمل دون أي مشاكل، دون أي مفهوم لـ “الأدوات”. هنا، لدي انطباع بأنها مشكلة في المكون الإضافي (أوضح أنني لست مطور Ruby) ولكن يبدو أن طبقة التجريد المستخدمة تجعل الأمور أكثر تعقيدًا. في حالة الشك، قمنا بعمل نسخة من هذا المكون الإضافي ووضعنا مصححات الأخطاء في كل مكان، عنوان URL، الرؤوس التي تذهب إلى Azure متوافقة بنسبة 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: #DiscourseAi::Completions::Dialects::ChatGpt:0x00007f230513e6e0

إذا كان ذلك يمكن أن يساعد…

شكرا لك.

ليست كذلك، طالما أنك تستخدم نقطة نهاية محدثة.

نحن نستخدم نقاط نهاية Azure على هذا الموقع، ولكن مع المعلمة api-version=2023-12-01-preview. هل يمكنك محاولة استخدام نقطة نهاية بهذه النسخة من واجهة برمجة التطبيقات؟

سنتحقق من ذلك ونعلمك بالتأكيد الأسبوع المقبل، مع خالص التقدير.

مرحباً،

لقد قمت بتحديث المكونات الإضافية Discourse AI هذا الصباح وهي تعمل الآن … هذا رائع شكراً لمساعدتك.

إعجابَين (2)

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