إعداد API مخصصة لـ ai-hedge-fund
Updated 2026-09-05
يأتي اختيار المزود قبل تهيئة نقطة النهاية. اتبع مصنع النموذج والسجل الحاليين ثم تحقق من البيانات ومخرج الوكيل والتقييم كمراحل منفصلة.
حدد مسار التطبيق الحالي
في تطبيق ai-hedge-fund الحالي، أكد مزود النموذج في السجل قبل ضبط OPENAI_API_BASE. في المراجعة fc1bf250، يوجد مصنع العميل في hedge_fund/llm/client.py ويقرأ سجلًا بجواره. تصف الدروس القديمة التي تشير إلى src/llm/models.py فقط مسار تطبيق مختلفًا. ثبّت checkout واستخدم نقطة الدخول التي تستورد المصنع الحالي. ابدأ بـ preflight المزود أدناه، ثم اختبر عميل المشروع قبل جمع البيانات المالية لدورة بحث كاملة.
احسم المزود قبل ضبط عنوان الأساس
تختار make_llm مزودًا من معرّف النموذج المختار. يمرر فرع OpenAI منه OPENAI_API_BASE إلى ChatOpenAI ويقرأ مفتاح API المقابل. وتعود المعرفات غير المعروفة إلى نقل Anthropic في المصدر الذي راجعناه، لذلك لا يكفي تصدير عنوان أساس OpenAI وحده. أكد أولًا تسجيل معرّف نموذج نقطة النهاية الدقيق تحت OpenAI. يحدد OpenAI هنا محول النقل ولا يشهد على مزود النموذج الأساسي. لا تغير إدخال سجل عالميًا قبل فهم كل سير عمل يستهلكه.
| الإعداد | الغرض | الفحص |
|---|---|---|
| HEDGE_FUND_LLM_MODEL | اختيار معرّف النموذج الدقيق | يحل السجل إلى المزود المقصود |
| OPENAI_API_BASE | تجاوز نقطة نهاية نقل OpenAI | ينطبق على فرع OpenAI |
| OPENAI_API_KEY | مصادقة ذلك النقل | متاح لعملية العميل |
| api_models.json | تعيين معرّفات النماذج إلى المزودين | المسار الحالي هو hedge_fund/llm/ |
افحص التهيئة دون تقديم طلب
يفشل المثال أدناه قبل إنشاء العميل إذا اختار السجل المحلي نقلًا مختلفًا. اضبط RESEARCH_MODEL_ID على معرّف كتالوج راجعت تسجيله في التطبيق. إذا غاب، أضف بوعي صف سجل محليًا باستخدام حقول display_name وmodel_name وprovider الموجودة، مع الحفاظ على الإدخالات غير المرتبطة. العنصر النائب ليس ادعاء نموذج مدعوم. قدم المفتاح عبر البيئة أو مخزن الأسرار. يتحقق هذا preflight من الاختيار فقط؛ ولا يثبت الوصول إلى الشبكة أو استحقاق الحساب أو المخرج المنظم أو جودة البحث.
import os
from hedge_fund.llm.registry import provider_for
model = os.environ["RESEARCH_MODEL_ID"]
if provider_for(model) != "OpenAI":
raise RuntimeError("MODEL_TRANSPORT_MISMATCH")
os.environ["HEDGE_FUND_LLM_MODEL"] = model
os.environ["OPENAI_API_BASE"] = "https://api.apisrouter.com/v1"
assert os.environ["OPENAI_API_KEY"]
# Selection check only; no make_llm() or model request.تتبع مسار النموذج المقترح
يبدأ مسار النموذج بعد حل السجل. ولا يزال التطبيق يحتاج إلى عميل بيانات مالية وتعريف كون وتاريخ بحث صريح. مفتاح البوابة ليس بيانات اعتماد Financial Datasets ولا حقًا في إعادة توزيع بيانات السوق. تحقق من معرّفات الشركات ودلالات العملة والطوابع الزمنية بصورة مستقلة. للشركات المدرجة في أكثر من بورصة، حدد ما إذا كان تحليلك يتناول المُصدر أو فئة سهم محلية أو إيصال إيداع. أبقِ أدلة طلب النموذج منفصلة عن أدلة بيانات المزود حتى لا يُشخّص غياب سلسلة مالية خطأً على أنه مشكلة LLM.
تحقق من القرارات المحللة كبيانات
يلف المصنع الذي راجعناه عملاء المزود خلف طريقة complete(system, user) كاملة. نص الاستجابة ليس تلقائيًا نتيجة بحث صالحة. افحص طبقة الوكيل التي تحلل JSON وتعالج الامتناع وتجمع المخرجات. قد تكون الاستجابة غير فارغة لكنها مشوهة أو متناقضة داخليًا أو غير مدعومة بالمدخلات. احتفظ بالاستجابة الخام المنقحة والكائن المحلل تحت سجل طلب واحد. تحقق من الحقول والحالات المسموح بها بدل مطابقة جملة مطمئنة. عامل النتيجة المفقودة أو المرفوضة كغير متاحة لا إشارة محايدة تدخل تجميع المحفظة بصمت.
import os
from hedge_fund.llm.client import make_llm, extract_json
from hedge_fund.llm.registry import provider_for
model = os.environ["HEDGE_FUND_LLM_MODEL"]
assert provider_for(model) == "OpenAI"
client = make_llm(model=model)
result = extract_json(client.complete(
"Return a JSON object with a boolean ready field.",
"Set ready to true.",
))
assert result.get("ready") is True
# This request tests the client and parser, not financial research.اجعل دورة البحث الأولى صغيرة وقابلة للمراجعة
بعد اختبار عميل مصرح به، اختر مُصدرًا واحدًا وسؤالًا محدودًا مع أدلة مرخصة أو عامة. أكد إعادة كل أداة مطلوبة للشركة والفترة المتوقعتين، ثم قارن التفسير المولّد بالوثائق الأصلية. أبقِ التشغيل الأول للقراءة فقط واحتفظ بخطوة مراجعة بشرية صريحة. قيّم ما إذا كان المخرج يستشهد بأدلة مؤيدة ومعارضة ويسجل البيانات المفقودة ويميز الافتراضات عن الحسابات. لا يثبت اسم دور محلل أو أسلوب استثمار أن الاستدلال المولد يعيد أساليب شخص حقيقي أو حكمه.
أبقِ أدلة الاختبار التاريخي مستقلة
قد ينهي التطبيق دورة بحث بينما يظل تقييمه التاريخي غير صالح. افحص طوابع نشر البيانات والبيانات المنقحة واختيار الشركات الباقية وأي استخدام لأخبار حالية في prompts تاريخية. افصل فترات التطوير والتحقق والتقييم المحجوز قبل التكرار على prompts أو إعدادات الاستراتيجية. احفظ المعيار وافتراضات تكاليف المعاملة وكل تهيئة مجربة. إن اختيار prompt مرارًا بناءً على فترة الاختبار نفسها يحولها إلى بيانات تطوير. أبلغ عن التقييم غير المكتمل بصدق بدل ملء جدول النتائج بعائد توضيحي قد يُفهم كقياس.
تحكم في الإخفاقات وإجمالي إنفاق البحث
احسب استدعاءات النموذج والإعادات وإخفاقات التحليل ورسوم البيانات المالية والحساب المحلي على مستوى المهمة. قد تترك مهلة نقطة النهاية الفوترة مجهولة حتى مطابقة الاستخدام. أعد محاولات النقل المؤقتة ضمن ميزانية ثابتة، ولا تعد محاولات المصادقة أو اختيار المزود دون تغيير. أبقِ المرحلة الفاشلة وخطأها المنقح متاحين للمراجعة. قد تساعد استجابة hello عامة من البوابة في عزل النقل، لكن اختبارات عميل المشروع وحدها تختبر سلوك محوله. تقارن التكلفة المفيدة المرشحين مع ثبات حزمة المصدر والأدوار ومعايير قبول المخرج.
الأدلة والقيود
رُوجعت قاعدة المصنع والسجل الحالية في fc1bf250 في 5 سبتمبر 2026. الأمثلة قوالب مدعومة بالمصدر؛ ولم تُنفذ طلبة APIsRouter أو دورة بحث كاملة لهذا الدليل. لا تثبت الاستدعاءات السابقة عبر بوابات أخرى هذا التكامل. أبقِ نتائج العميل وأداة البيانات والأثر الكامل منفصلة عند التحقق من بيئتك.
الأسئلة الشائعة
لماذا يطلب معرّفي المخصص مفتاح Anthropic؟
في المصنع الذي راجعناه، يعود معرّف نموذج غير مسجل إلى Anthropic. افحص provider_for(model) وسجل hedge_fund/llm/api_models.json الحالي قبل إنشاء العميل.
هل يعيد OPENAI_API_BASE توجيه كل مزود؟
لا. يُقرأ في فرع عميل OpenAI. ينشئ مزودو السجل الآخرون عملاءهم وقد يستخدمون إعدادات مختلفة.
ما حقول السجل المهمة؟
يقرأ السجل الذي راجعناه display_name وmodel_name وprovider. حافظ على معرّف نقطة النهاية الدقيق واختر النقل بوعي.
هل يعني وجود نموذج في قائمة التطبيق الوصول إلى نقطة النهاية؟
لا. تحقق من المعرّف الدقيق ووصول الحساب عبر نقطة النهاية المختارة. يحدد سجل التطبيق اختيار العميل لا كتالوج البوابة.
ما الذي أفحصه بعد إعادة العميل JSON؟
تحقق من أدوات البيانات المالية ومخطط مخرج الوكيل وسلوك الامتناع وأثر البحث النهائي المرتبط بالأدلة باستخدام مهمة محدودة.
هل أستطيع استخدام المخرج لوضع أمر تلقائيًا؟
يغطي هذا الدليل تهيئة البحث. تنتمي مصادقة الأوامر والحدود والمطابقة والمراجعة التشغيلية إلى نظام تنفيذ متحقق منه بصورة منفصلة.