شغّل أنابيب وكلاء FinGPT على نقطة نهاية مخصصة متوافقة مع OpenAI.
Updated 2026-07-30
يُهيِّئ أنبوب التحليل متعدد الوكلاء الخاص بـ FinGPT نموذج LLM عبر قاموس AG2 LLMConfig يأخذ api_type "openai" وbase_url. اضبط base_url على https://api.apisrouter.com/v1، مرّر مفتاحاً واحداً، ويمكن لوكلاء الباحث والمشاعر والمستشار العمل على أي معرّف نموذج في الكتالوج.
إجابة سريعة: base_url في قاموس AG2 LLMConfig.
يبني أنبوب التحليل المالي متعدد الوكلاء الخاص بـ FinGPT (fingpt/ag2_financial_analysis_pipeline.ipynb في المستودع الأصلي) إعداد LLM الخاص به كقاموس AG2 LLMConfig بأربعة مفاتيح: model وapi_key وapi_type وbase_url. دفتر Jupyter الأصلي نفسه يُوجِّه base_url إلى نقطة نهاية مُوجِّهة متوافقة مع OpenAI بدلاً من api.openai.com، لذا التوجيه عبر بوابة هو النمط الموثَّق هنا، لا حلاً بديلاً. لتشغيل الأنبوب عبر APIsRouter، اضبط api_type على "openai"، اضبط base_url على https://api.apisrouter.com/v1، ضع مفتاح بوابتك في api_key، واضبط model على أي معرّف كتالوج. كل AssistantAgent في الدفتر يستقبل نفس كائن llm_config، لذا قاموس واحد يُحرِّك فريق الوكلاء بأكمله.
from autogen import LLMConfig # ag2[openai]>=0.11.4
llm_config = LLMConfig({
"model": "claude-sonnet-4-6",
"api_key": os.environ["APISROUTER_API_KEY"],
"api_type": "openai",
"base_url": "https://api.apisrouter.com/v1",
})أين يستدعي FinGPT فعلياً واجهة LLM.
FinGPT (AI4Finance-Foundation على GitHub، بنحو 21 ألف نجمة) هو شيئان تحت اسم واحد، ومعرفة أي نصف تُشغِّله يقرر ما إذا كانت نقطة نهاية مخصصة تهم على الإطلاق. النصف الأول أوزان مفتوحة مضبوطة دقيقاً: دفاتر تدريب LoRA لـ Llama وChatGLM التي جعلت المشروع معروفاً. تعمل هذه محلياً أو على GPUs مُستأجَرة عبر Hugging Face transformers، لا تُجري استدعاءات chat-completions، ولا ينطبق عليها أي base URL. النصف الثاني هو أنابيب التطبيقات، وهنا يعيش السطح المتوافق مع OpenAI. أنبوب التحليل متعدد الوكلاء بواسطة AG2 يُوصِّل ثلاثة AssistantAgents (باحث أخبار، مُحلِّل مشاعر، ومستشار استثمار) بـ LLMConfig واحد، يُعزِّزهم باستدعاءات أدوات yfinance ومُصنِّف مشاعر FinBERT محلي، ويتيح لهم تمرير تحليل سهم بين الأدوار. أنبوب تحليل التقارير المالية (fingpt/FinGPT_FinancialReportAnalysis) يُشغِّل ChatOpenAI الخاص بـ LangChain مقابل ملفات SEC المسحوبة عبر sec-api وFinancial Modeling Prep. كلا الأنبوبين يُرسِلان طلبات /v1/chat/completions قياسية، وكلاهما يعرض نقطة النهاية كمعامل، وكلاهما يُمرِّر حقل model كسلسلة عادية، وهذا ما يتيح لمعرّف Claude أو DeepSeek الركوب على api_type "openai" بمجرد أن تخدمه نقطة النهاية خلف base_url.
الإعداد الكامل: أنبوب AG2 وأنبوب تحليل التقارير.
أنبوب AG2 هو التكامل الأنظف. استبدل قيم LLMConfig في الدفتر بنقطة نهاية البوابة ومعرّف النموذج المُفضَّل لديك، وتعمل الوكلاء الثلاثة بالإضافة إلى حلقة استدعاء أدواتهم دون تغيير. جانب البيانات المالية (أسعار yfinance، تسجيل مشاعر FinBERT) محلي وخالٍ من مفاتيح API، لذا نقطة نهاية LLM هي التبعية الخارجية الوحيدة التي تُحرِّكها. أنبوب تحليل التقارير يستخدم ChatOpenAI من LangChain، الذي يقبل api_key وbase_url كوسيطَي بانٍ؛ الدفتر الأصلي يُظهِر بالضبط هذا الزوج عندما يُظهِر كيفية استبدال خادم محلي متوافق مع OpenAI. وجّه نفس الوسيطَين إلى البوابة بدلاً من ذلك. لاحظ أن هذا الدفتر يريد أيضاً بيانات اعتماد SEC وFinancial Modeling Prep لسحوبات بياناته؛ تلك مفاتيح بيانات سوق، غير مرتبطة بنقطة نهاية LLM، وتبقى كما هي.
import os
from autogen import AssistantAgent, LLMConfig
llm_config = LLMConfig({
"model": "claude-sonnet-4-6", # any catalog id
"api_key": os.environ["APISROUTER_API_KEY"],
"api_type": "openai",
"base_url": "https://api.apisrouter.com/v1",
})
researcher = AssistantAgent(name="News_Researcher", llm_config=llm_config)
analyst = AssistantAgent(name="Sentiment_Analyst", llm_config=llm_config)
advisor = AssistantAgent(name="Investment_Advisor", llm_config=llm_config)اختيار نماذج لوكلاء التحليل المالي.
بما أن كل مرشّح هو سلسلة نموذج واحدة مقابل نفس نقطة النهاية، الحلقة العملية هي تثبيت رموز الأسهم والتواريخ لديك، تشغيل الأنبوب مرة واحدة لكل معرّف مرشّح، ومقارنة مُخرَج المستشار. سجل الاستخدام لكل مفتاح يُسعِّر كل تشغيل مرشّح لك، ما يحسم جدل الجودة مقابل token بالأرقام لا بالحدس.
- دور المستشار هو عنق زجاجة الاستدلال. يُوحِّد نتائج الباحث ودرجات المشاعر وصورة المخاطر في نظرة مستقبلية، ونموذج استدلال طليعي (claude-opus-4-7، gpt-5.5) هو حيث يتوقف ذلك التوحيد عن كونه عاماً.
- دورا الباحث والمُحلِّل هما دورا حجم: قراءة العناوين، هيكلة مُخرَجات الأدوات، تقييم المسودات. claude-sonnet-4-6 أو deepseek-v4-pro يُبقيهما حادَّين دون تسعير طليعي على كل جولة وسيطة.
- تحليل التقارير عبء عمل بسياق طويل. قسم 10-K بالإضافة إلى سياق سعر مستهدف هو موجِّه كبير، لذا اختبر gemini-3.1-pro-preview أو claude-sonnet-4-6 على جانب الملف قبل افتراض الافتراضي.
- جذور FinGPT ثنائية اللغة. إذا كان أنبوبك يقرأ ملفات أو أخباراً باللغة الصينية، glm-5.2 وdeepseek-v4-pro قويان بشكل أصيل هناك وقابلان للعنونة عبر نفس نقطة النهاية بالمعرّف.
- تشغيل LLMConfig واحد لكل الوكلاء هو افتراضي الدفتر، لكن لا شيء يمنعك من بناء قاموسَين مقابل نفس base_url، طليعي للمستشار وسريع للقارئين، وتعيينهما لكل وكيل.
ادفع حسب الاستخدام · أقل من السعر الرسمي
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| النموذج | السعر الرسمي | سعرنا |
|---|---|---|
| Claude Opus 4.7 | $5.00 / $25.00 per M | $4.00 / $20.00 per M |
| Claude Sonnet 4.6 | $3.00 / $15.00 per M | $2.40 / $12.00 per M |
| GPT-5.5 | $5.00 / $30.00 per M | $4.00 / $24.00 per M |
| DeepSeek V4 Pro | $0.43 / $0.87 per M | $0.40 / $0.90 per M |
| GLM-5.2 | $1.14 / $4.00 per M | $1.10 / $4.00 per M |
تحذيرات: ليس كل base_url في FinGPT هو LLM.
FinGPT مستودع أبحاث واحد، وأشياء قليلة تبدو كإعدادات نقطة نهاية LLM دون أن تكون كذلك. market_sentiment.py الخاص بـ Forecaster له معاملا api_key وbase_url، لكنهما يُهيِّئان خدمة مشاعر بيانات سوق (تُقرَأ من ADANOS_API_KEY)، لا نقطة نهاية chat-completions. تغيير ذلك base_url لا يُوجِّه أي حركة LLM. نماذج FinGPT-Forecaster نفسها هي أوزان Llama مضبوطة دقيقاً تُخدَم عبر Hugging Face، لذا عرض Forecaster ليس مستهلك OpenAI-compatible على الإطلاق. منصة Finogrid الأحدث داخل المستودع تختار LLM الخاص بها عبر متغيّر بيئة FINGPT_LLM_PROVIDER (openai، minimax، أو fingpt) وتقرأ OPENAI_API_KEY لمزوّد openai. اعتباراً من يوليو 2026، يوثّق ملف بيئتها النموذجي تبديل المزوّد والمفتاح، لكن لا متغيّر تجاوز base URL، لذا عامل Finogrid كخارج النطاق لبوابة حتى يوثّق المشروع واحداً. أخيراً، دفتر AG2 يُثبِّت ag2[openai] عند 0.11.4 أو أحدث. نُسَخ pyautogen 0.2 الأقدم تُهيِّئ نفس المفاتيح الأربعة عبر مُدخَلات config_list بدلاً من صنف LLMConfig؛ المفاتيح متطابقة، لذا التوجيه يعمل، لكن طابق أسلوب الاستيراد لديك مع جيل AutoGen الذي تملكه فعلياً.
من يوجّه FinGPT عبر بوابة.
- باحثو الكمّ الذين يُشغِّلون التحليل متعدد الوكلاء عبر قائمة رموز أسهم. عشرات جولات الوكلاء لكل سهم تجعل رؤية الاستخدام لكل مفتاح أكثر فائدة من لوحة تحكم بائع لكل مزوّد.
- الفرق التي تقارن جودة التحليل عبر عائلات النماذج. كل مرشّح سلسلة نموذج واحدة في LLMConfig، لا تكامل حساب ومزوّد جديد.
- المحلّلون الذين يُعالِجون ملفات بالجملة عبر أنبوب التقارير، حيث تُهيمن فروق التسعير بالسياق الطويل بين المعرّفات على الفاتورة.
- فرق التمويل ثنائية اللغة التي تُزاوِج معرّفات قوية بالصينية مثل glm-5.2 أو deepseek-v4-pro مع استدلال Claude أو GPT، كلها خلف نقطة نهاية واحدة.
- المطورون الذين لا يملكون وصولاً إلى فوترة بائع معيّن. الوصول القائم على تعبئة الرصيد بدون شرط بطاقة يزيل الاعتماد على التسجيل لكل مزوّد.
تحقق من نقطة النهاية وصحّح أخطاء أول تشغيل.
قبل تشغيل الدفتر، اسرد النماذج التي يمكن لمفتاحك مخاطبتها؛ سلسلة النموذج في LLMConfig يجب أن تطابق معرّفاً مخدوماً تماماً. أخطاء أول تشغيل تتبع قائمة قصيرة. 401 يعني أن api_key في القاموس ليس مفتاحاً صالحاً لنقطة النهاية في base_url؛ بما أن كليهما يعيش في نفس القاموس، اطبع القاموس (بدون المفتاح) وتحقّق من أنك عدّلت النسخة التي استقبلها الوكلاء فعلياً. خطأ model-not-found هو خطأ إملائي في المعرّف، ومُخرَج /v1/models هو الإملاء الموثوق. خطأ اتصال يعني عادة أن base_url فقد لاحقة /v1، بما أن العميل يُلحِق /chat/completions بأياً كان القاعدة التي تُعطيها. وإذا فشلت خطوة المشاعر بينما تعمل دردشة الوكلاء، فذلك مُصنِّف FinBERT المحلي أو تثبيت transformers مفقود، لا البوابة. بمجرد تدفّق الطلبات، تعرض لوحة APIsRouter النموذج لكل طلب، وعدد tokens، والإنفاق. الأنابيب متعددة الوكلاء تُضاعِف الاستدعاءات بسرعة، وعرض الاستخدام هو كيفية رؤية أي دور وكيل يستهلك tokens قبل توسيع التشغيل إلى قائمة مراقبة كاملة.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50الأسئلة الشائعة
هل يدعم FinGPT نقطة نهاية مخصصة متوافقة مع OpenAI خارج الصندوق؟
نعم، في أنابيبه المدفوعة بالـ API. دفتر التحليل متعدد الوكلاء بواسطة AG2 يُهيِّئ LLMConfig بـ api_type "openai" بالإضافة إلى base_url، ودفتر تحليل التقارير يُمرِّر base_url إلى ChatOpenAI من LangChain. كلاهما نمطان أصليان؛ النماذج المحلية المضبوطة دقيقاً نصف منفصل غير متصل بالإنترنت من المشروع.
هل يمكن لوكلاء FinGPT العمل على نماذج Claude أو DeepSeek بهذه الطريقة؟
نعم. يبقى api_type "openai" ويُمرَّر حقل model كسلسلة عادية عبر /v1/chat/completions. أي معرّف تخدمه نقطة النهاية خلف base_url يعمل، بما في ذلك معرّفات Claude وDeepSeek وGLM وGemini.
هل لا أزال أحتاج حساب OpenAI لأنبوب AG2؟
لا. مع توجيه base_url إلى البوابة وحمل api_key مفتاح بوابة، لا يلمس أي طلب مضيفات OpenAI. الدفتر الأصلي نفسه يُظهِر هذا بالتوجيه عبر نقطة نهاية غير متوافقة مع OpenAI أصلاً.
هل يؤثر base_url مخصص على بيانات السوق أو تسجيل مشاعر FinBERT في FinGPT؟
لا. أسعار yfinance ومُصنِّف FinBERT يعملان محلياً بدون مفاتيح API، وبيانات اعتماد SEC وFinancial Modeling Prep الخاصة بأنبوب التقارير مفاتيح بيانات منفصلة. نقطة نهاية LLM هي الشيء الوحيد الذي يُحرِّكه base_url.
ماذا عن معامل base_url في market_sentiment.py الخاص بـ Forecaster؟
ذلك يُهيِّئ خدمة مشاعر بيانات سوق مُصادَقة بـ ADANOS_API_KEY، لا نقطة نهاية LLM. نماذج Forecaster نفسها أوزان مضبوطة دقيقاً تُخدَم عبر Hugging Face، لذا لا ينطبق توجيه متوافق مع OpenAI هناك.
هل تدعم منصة Finogrid داخل FinGPT نقطة نهاية مخصصة أيضاً؟
غير موثَّق اعتباراً من يوليو 2026. تختار Finogrid مزوّداً عبر FINGPT_LLM_PROVIDER وتقرأ OPENAI_API_KEY، لكن ملف بيئتها النموذجي لا يُظهِر تجاوز base URL، لذا افترض توجيهاً أصيلاً للبائع هناك حتى يضيف المشروع واحداً.