راه‌اندازی Custom API برای ai-hedge-fund

Updated 2026-09-05

انتخاب ارائه‌دهنده پیش از پیکربندی endpoint می‌آید. factory و registry جاری مدل را دنبال کنید و داده، خروجی عامل و ارزیابی را مرحله‌هایی جدا اعتبارسنجی کنید.

مسیر جاری برنامه را شناسایی کنید

برای برنامه فعلی ai-hedge-fund پیش از تنظیم OPENAI_API_BASE، provider مدل را در registry تأیید کنید. در revision fc1bf250، factory کلاینت در hedge_fund/llm/client.py قرار دارد و registry کنار آن را می‌خواند. آموزش‌های قدیمی که فقط به src/llm/models.py اشاره می‌کنند مسیر برنامه دیگری را توضیح می‌دهند. checkout را pin و entrypointی را استفاده کنید که factory جاری را import می‌کند. با preflight ارائه‌دهنده زیر شروع کنید و سپس پیش از جمع‌آوری داده مالی برای چرخه کامل، کلاینت پروژه را اجرا کنید.

پیش از تنظیم base URL ارائه‌دهنده را حل کنید

make_llm ارائه‌دهنده را از شناسه مدل انتخاب‌شده تعیین می‌کند. شاخه OpenAI، OPENAI_API_BASE را به ChatOpenAI می‌دهد و کلید API متناظر را می‌خواند. شناسه ناشناخته در source بازبینی‌شده به transport Anthropic برمی‌گردد؛ پس صرفاً exportکردن base URL OpenAI کافی نیست. ابتدا تأیید کنید ID دقیق مدل endpoint تحت OpenAI ثبت شده است. اینجا OpenAI آداپتور انتقال را مشخص می‌کند، نه فروشنده زیربنایی مدل را. ورودی registry سراسری را تغییر ندهید مگر اینکه همه گردش‌کارهای مصرف‌کننده آن را بفهمید.

تنظیمهدفکنترل
HEDGE_FUND_LLM_MODELانتخاب ID دقیق مدلregistry به ارائه‌دهنده موردنظر resolve می‌شود
OPENAI_API_BASEoverrideکردن endpoint انتقال OpenAIروی شاخه OpenAI اعمال می‌شود
OPENAI_API_KEYاحراز هویت همان انتقالبرای فرایند کلاینت در دسترس است
api_models.jsonنگاشت ID مدل به ارائه‌دهندهمسیر جاری hedge_fund/llm/ است

پیکربندی را بدون ارسال درخواست بررسی کنید

نمونه زیر پیش از ساخت کلاینت شکست می‌خورد اگر registry محلی انتقال دیگری انتخاب کند. RESEARCH_MODEL_ID را روی ID کاتالوگی بگذارید که ثبت برنامه‌اش را بررسی کرده‌اید. اگر موجود نیست، با استفاده از فیلدهای display_name، model_name و provider موجود یک ردیف محلی اضافه کنید و ورودی‌های نامرتبط را حفظ کنید. placeholder ادعای مدل پشتیبانی‌شده نیست. کلید را از محیط یا secret store بدهید. این 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.

مسیر پیشنهادی مدل را ردیابی کنید

مسیر مدل پس از resolveشدن registry آغاز می‌شود. برنامه همچنان به کلاینت داده مالی، تعریف جهان و تاریخ پژوهشی صریح نیاز دارد. کلید gateway اعتبارنامه Financial Datasets یا حق بازتوزیع داده بازار نیست. شناسه شرکت، ارز و معنای timestamp را مستقل اعتبارسنجی کنید. برای شرکت‌های فهرست‌شده در چند بازار مشخص کنید تحلیل درباره ناشر، کلاس سهم محلی یا رسید سپرده‌گذاری است. شواهد درخواست مدل را از شواهد داده ارائه‌دهنده جدا نگه دارید تا سری مالی مفقود به‌اشتباه مشکل LLM تشخیص داده نشود.

مسیر انتقال OpenAI در ai-hedge-fund پس از انتخاب registry مدل.ai-hedge-fund routes through ارائه‌دهنده registry OpenAI + OPENAI_API_BASE to the APIsRouter gateway (api.apisrouter.com/v1), which fans out to: Registered research model.ai-hedge-fundviaارائه‌دهنده registryOpenAI +OPENAI_API_BASEAPIsRouterapi.apisrouter.com/v1Registered research model
مسیر کلاینت مستند پس از انتخاب ارائه‌دهنده. داده مالی کلاینت خودش را دارد.

تصمیم‌های parseشده را مانند داده اعتبارسنجی کنید

factory بازبینی‌شده کلاینت‌های ارائه‌دهنده را پشت متد کامل(system, user) قرار می‌دهد. متن پاسخ خودکار نتیجه معتبر پژوهشی نیست. لایه agent را که JSON را parse، امتناع را مدیریت و خروجی‌ها را ترکیب می‌کند بررسی کنید. پاسخ ممکن است غیرخالی اما malformed، متناقض یا بی‌پشتوانه ورودی باشد. پاسخ خام redacted و object parseشده را زیر یک رکورد درخواست حفظ کنید. فیلدهای مورد انتظار و وضعیت‌های مجاز را اعتبارسنجی کنید، نه جمله اطمینان‌بخشی را. نتیجه مفقود یا ردشده را در دسترس‌نبودنی بدانید، نه سیگنال خنثایی که بی‌صدا وارد aggregation پرتفوی شود.

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.

چرخه اول پژوهش را کوچک و قابل‌بازبینی کنید

پس از آزمون مجاز کلاینت، یک ناشر و پرسش محدود با شواهد عمومی یا دارای مجوز انتخاب کنید. برگشت هر ابزار لازم برای شرکت و دوره مورد انتظار را تأیید و توضیح تولیدشده را با اسناد اصلی مقایسه کنید. اجرای اول را فقط‌خواندنی و یک مرحله بازبینی انسانی صریح را حفظ کنید. بررسی کنید خروجی شواهد پشتیبان و مخالف، داده مفقود و تمایز فرض از محاسبه را ثبت می‌کند یا نه. نام نقش تحلیلگر یا سبک سرمایه‌گذاری ثابت نمی‌کند استدلال تولیدشده روش یا قضاوت شخص واقعی را بازتولید می‌کند.

شواهد backtest را مستقل نگه دارید

برنامه می‌تواند چرخه پژوهش را تمام کند درحالی‌که ارزیابی تاریخی‌اش نامعتبر است. زمان انتشار، داده اصلاح‌شده، انتخاب شرکت‌های باقی‌مانده و استفاده از خبر جاری در prompt تاریخی را بررسی کنید. پیش از تکرار prompt یا تنظیمات راهبرد، دوره‌های توسعه، اعتبارسنجی و خارج از نمونه را جدا کنید. benchmark، فرض‌های هزینه معامله و هر پیکربندی آزموده را ذخیره کنید. انتخاب مکرر prompt بر اساس همان دوره آزمون، آن دوره را به داده توسعه تبدیل می‌کند. ارزیابی ناقص را صادقانه گزارش کنید و جدول نتیجه را با بازده نمونه‌ای که ممکن است اندازه‌گیری تلقی شود پر نکنید.

شکست‌ها و کل هزینه پژوهش را کنترل کنید

فراخوانی مدل، تلاش مجدد، شکست parsing، هزینه داده مالی و محاسبه محلی را در سطح کار بشمارید. timeout endpoint ممکن است تا تطبیق مصرف، صورتحساب را نامعلوم بگذارد. شکست‌های موقت انتقال را در بودجه ثابت دوباره امتحان کنید؛ خطای احراز هویت یا انتخاب ارائه‌دهنده را بدون تغییر تکرار نکنید. مرحله شکست‌خورده و خطای پاک‌سازی‌شده‌اش را برای بازبینی نگه دارید. پاسخ hello عمومی gateway به جداسازی انتقال کمک می‌کند، اما فقط test کلاینت خود پروژه رفتار adapter را می‌آزماید. برای مقایسه هزینه، بسته منبع، نقش‌ها و معیار پذیرش خروجی را بین مدل‌ها ثابت نگه دارید.

شواهد و محدودیت‌ها

factory و registry جاری در fc1bf250 در September 5, 2026 بررسی شدند. نمونه‌ها قالب‌های متکی بر منبع‌اند؛ برای این راهنما هیچ درخواست APIsRouter یا چرخه کامل پژوهش اجرا نشده است. تماس‌های قبلی از gatewayهای دیگر این یکپارچه‌سازی را ثابت نمی‌کنند. هنگام اعتبارسنجی محیط، نتیجه کلاینت، ابزار داده و artifact کامل را جدا نگه دارید.

پرسش‌های پرتکرار

چرا ID سفارشی من کلید Anthropic می‌خواهد؟

در factory بازبینی‌شده، ID مدل ثبت‌نشده به Anthropic برمی‌گردد. پیش از ساخت کلاینت provider_for(model) و registry جاری hedge_fund/llm/api_models.json را بررسی کنید.

آیا OPENAI_API_BASE همه ارائه‌دهنده‌ها را تغییر مسیر می‌دهد؟

خیر. در شاخه کلاینت OpenAI خوانده می‌شود. ارائه‌دهنده‌های دیگر registry کلاینت خود را می‌سازند و ممکن است تنظیمات متفاوتی داشته باشند.

کدام فیلدهای registry مهم‌اند؟

registry بازبینی‌شده display_name، model_name و provider را می‌خواند. ID دقیق endpoint را حفظ و انتقال را آگاهانه انتخاب کنید.

آیا مدل موجود در منوی برنامه یعنی endpoint هم به آن دسترسی دارد؟

خیر. ID دقیق و دسترسی حساب را با endpoint انتخابی بررسی کنید. registry برنامه انتخاب کلاینت را تعیین می‌کند، نه کاتالوگ gateway را.

پس از برگشت JSON از کلاینت چه چیزی را بررسی کنم؟

ابزارهای داده مالی، schema خروجی agent، رفتار امتناع و artifact پژوهشی نهایی متصل به شواهد را با یک کار محدود اعتبارسنجی کنید.

آیا می‌توانم از خروجی خودکار سفارش بگذارم؟

این راهنما پیکربندی پژوهش را پوشش می‌دهد. مجوز سفارش، limitها، تطبیق و بازبینی عملیاتی به سامانه اجرای جداگانه و اعتبارسنجی‌شده تعلق دارند.