pipeline های agent در FinGPT را روی یک endpoint سفارشی سازگار با OpenAI اجرا کنید.

Updated 2026-07-30

pipeline تحلیل چند-agent در FinGPT مدل LLM خود را از طریق یک dict به‌نام AG2 LLMConfig پیکربندی می‌کند که api_type "openai" و یک base_url می‌گیرد. base_url را روی https://api.apisrouter.com/v1 تنظیم کنید، یک کلید پاس دهید، و agent های پژوهشگر، احساسات، و مشاور می‌توانند روی هر id مدل در کاتالوگ اجرا شوند.

پاسخ سریع: base_url در dict AG2 LLMConfig.

pipeline تحلیل مالی چند-agent در FinGPT (fingpt/ag2_financial_analysis_pipeline.ipynb در repo upstream) پیکربندی LLM خود را به‌عنوان یک dict AG2 LLMConfig با چهار کلید می‌سازد: model، api_key، api_type، و base_url. خود notebook upstream مقدار base_url را به یک endpoint router سازگار با OpenAI اشاره می‌دهد نه به api.openai.com، پس مسیردهی از طریق یک gateway اینجا الگوی مستند است، نه یک راه‌حل موقت. برای اجرای pipeline از طریق APIsRouter، api_type را روی "openai" تنظیم کنید، base_url را روی https://api.apisrouter.com/v1 تنظیم کنید، کلید gateway خود را در api_key بگذارید، و model را روی هر id کاتالوگی تنظیم کنید. هر AssistantAgent در notebook همان شیء llm_config را دریافت می‌کند، پس یک dict کل تیم agent را جابه‌جا می‌کند.

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 واقعاً یک API از LLM را فرا می‌خواند.

FinGPT (AI4Finance-Foundation در GitHub، حدود ۲۱ هزار ستاره) دو چیز زیر یک نام است، و دانستن اینکه کدام نیمه را اجرا می‌کنید تصمیم می‌گیرد آیا اصلاً یک endpoint سفارشی اهمیت دارد. نیمه اول وزن‌های باز fine-tuned است: notebook های آموزش LoRA برای Llama و ChatGLM که پروژه را شناخته‌شده کرد. آن‌ها به‌صورت محلی یا روی GPU های اجاره‌ای از طریق Hugging Face transformers اجرا می‌شوند، هیچ فراخوانی chat-completions نمی‌سازند، و هیچ base URL ای روی آن‌ها اعمال نمی‌شود. نیمه دوم pipeline های اپلیکیشن است، و اینجا جایی است که سطح سازگار با OpenAI زندگی می‌کند. pipeline تحلیل چند-agent در AG2 سه AssistantAgent (یک پژوهشگر اخبار، یک تحلیل‌گر احساسات، و یک مشاور سرمایه‌گذاری) را به یک LLMConfig سیم‌کشی می‌کند، آن‌ها را با فراخوانی‌های tool از yfinance و یک طبقه‌بند احساسات محلی FinBERT تقویت می‌کند، و اجازه می‌دهد یک تحلیل سهام را بین نقش‌ها پاس دهند. pipeline تحلیل گزارش مالی (fingpt/FinGPT_FinancialReportAnalysis) ChatOpenAI از LangChain را در برابر filing های SEC که از طریق sec-api و Financial Modeling Prep کشیده شده‌اند هدایت می‌کند. هر دو pipeline درخواست‌های استاندارد /v1/chat/completions می‌فرستند، هر دو endpoint را به‌عنوان یک پارامتر افشا می‌کنند، و هر دو فیلد model را به‌عنوان رشته ساده فوروارد می‌کنند، که همان چیزی است که اجازه می‌دهد یک id از Claude یا DeepSeek روی یک api_type برابر "openai" سوار شود وقتی endpoint پشت base_url آن را سرویس دهد.

راه‌اندازی کامل: pipeline AG2 و pipeline تحلیل-گزارش.

pipeline AG2 تمیزترین integration است. مقادیر LLMConfig در notebook را با endpoint gateway و id مدل ترجیحی خود جایگزین کنید، و سه agent به‌علاوه حلقه tool-calling آن‌ها بدون تغییر اجرا می‌شوند. سمت داده-مالی (نرخ‌های yfinance، امتیازدهی احساسات FinBERT) محلی و بدون کلید API است، پس endpoint LLM تنها وابستگی خارجی است که جابه‌جا می‌کنید. pipeline تحلیل-گزارش از ChatOpenAI در LangChain استفاده می‌کند، که api_key و base_url را به‌عنوان آرگومان‌های سازنده می‌پذیرد؛ notebook upstream دقیقاً همین جفت را نشان می‌دهد وقتی نحوه جایگزینی یک سرور محلی سازگار با OpenAI را نشان می‌دهد. همان دو آرگومان را به‌جای آن به gateway اشاره دهید. توجه کنید این notebook همچنین credential های SEC و Financial Modeling Prep را برای کشیدن‌های داده‌اش می‌خواهد؛ آن‌ها کلیدهای داده-بازار هستند، نامرتبط با endpoint 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)

انتخاب مدل‌ها برای agent های تحلیل مالی.

چون هر کاندید یک رشته مدل در برابر همان endpoint است، حلقه عملی این است که ticker ها و تاریخ‌های خود را ثابت کنید، pipeline را یک‌بار به ازای هر id کاندید اجرا کنید، و خروجی مشاور را diff کنید. usage log هر-کلید هر اجرای کاندید را برای شما قیمت‌گذاری می‌کند، که بحث کیفیت-به-ازای-token را با اعداد به‌جای غریزه حل می‌کند.

  • نقش مشاور گلوگاه استدلال است. یافته‌های پژوهشگر، امتیازهای احساسات، و تصویر ریسک را به یک outlook سنتز می‌کند، و یک مدل استدلال frontier (claude-opus-4-7، gpt-5.5) جایی است که آن سنتز از عمومی‌بودن دست می‌کشد.
  • نقش‌های پژوهشگر و تحلیل‌گر نقش‌های حجمی‌اند: خواندن تیترها، ساختاردهی خروجی tool، امتیازدهی پیش‌نویس‌ها. claude-sonnet-4-6 یا deepseek-v4-pro آن‌ها را بدون قیمت‌گذاری frontier در هر نوبت میانی تیز نگه می‌دارد.
  • تحلیل گزارش یک workload long-context است. یک بخش 10-K به‌علاوه context هدف-قیمت یک prompt بزرگ است، پس gemini-3.1-pro-preview یا claude-sonnet-4-6 را روی سمت filing قبل از فرض پیش‌فرض تست کنید.
  • ریشه‌های FinGPT دوزبانه است. اگر pipeline شما filing ها یا اخبار زبان چینی را می‌خواند، glm-5.2 و deepseek-v4-pro به‌طور native آنجا قوی و از طریق همان endpoint با id قابل‌آدرس‌دهی‌اند.
  • اجرای یک LLMConfig برای همه agent ها پیش‌فرض notebook است، اما هیچ‌چیز شما را از ساختن دو dict در برابر همان base_url، یکی frontier برای مشاور و یکی سریع برای خواننده‌ها، و اختصاص آن‌ها به ازای هر agent باز نمی‌دارد.

پرداخت بر اساس مصرف · پایین‌تر از قیمت رسمی

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 یک monorepo پژوهشی است، و چند چیز شبیه تنظیمات endpoint LLM به‌نظر می‌رسند بدون اینکه باشند. market_sentiment.py در Forecaster پارامترهای api_key و base_url دارد، اما آن‌ها یک سرویس احساسات داده-بازار (خوانده‌شده از ADANOS_API_KEY) را پیکربندی می‌کنند، نه یک endpoint chat-completions. تغییر آن base_url هیچ ترافیک LLM ای را مسیردهی نمی‌کند. خود مدل‌های FinGPT-Forecaster وزن‌های fine-tuned Llama سرویس‌داده‌شده از طریق Hugging Face هستند، پس دموی forecaster اصلاً یک مصرف‌کننده سازگار با OpenAI نیست. پلتفرم جدیدتر Finogrid داخل repo، LLM خود را از طریق یک متغیر محیطی FINGPT_LLM_PROVIDER (openai، minimax، یا fingpt) انتخاب می‌کند و OPENAI_API_KEY را برای provider برابر openai می‌خواند. تا ژوئیه ۲۰۲۶، فایل محیطی نمونه آن سوییچ provider و کلید را مستند می‌کند، اما هیچ متغیر override برای base-URL ندارد، پس Finogrid را خارج از دامنه یک gateway در نظر بگیرید تا وقتی upstream یکی را مستند کند. در آخر، notebook AG2 مقدار ag2[openai] را روی ۰.۱۱.۴ یا جدیدتر pin می‌کند. نصب‌های قدیمی‌تر دوران pyautogen 0.2 همان چهار کلید را از طریق ورودی‌های config_list به‌جای کلاس LLMConfig پیکربندی می‌کنند؛ کلیدها یکسان‌اند، پس مسیردهی کار می‌کند، اما سبک import خود را با نسل AutoGen ای که واقعاً نصب کرده‌اید تطبیق دهید.

چه کسانی FinGPT را از طریق یک gateway مسیردهی می‌کنند.

  • پژوهشگران quant که تحلیل چند-agent را در سرتاسر یک فهرست ticker اجرا می‌کنند. ده‌ها نوبت agent به ازای هر سهام دید usage هر-کلید را مفیدتر از یک dashboard vendor به ازای هر provider می‌کند.
  • تیم‌هایی که کیفیت تحلیل را در سرتاسر خانواده‌های مدل مقایسه می‌کنند. هر کاندید یک رشته مدل در LLMConfig است، نه یک integration و حساب provider جدید.
  • تحلیل‌گرانی که filing ها را به‌صورت انبوه از طریق pipeline گزارش پردازش می‌کنند، جایی که تفاوت‌های قیمت long-context بین id ها بر صورت‌حساب غالب می‌شوند.
  • تیم‌های مالی دوزبانه که id های قوی-چینی مثل glm-5.2 یا deepseek-v4-pro را با استدلال Claude یا GPT جفت می‌کنند، همه پشت یک endpoint.
  • توسعه‌دهندگان بدون دسترسی به صورت‌حساب یک vendor خاص. دسترسی مبتنی بر شارژ بدون الزام کارت وابستگی ثبت‌نام هر-provider را حذف می‌کند.

endpoint را تأیید کنید و اولین اجرا را عیب‌یابی کنید.

قبل از راه‌اندازی notebook، مدل‌هایی را که کلید شما می‌تواند آدرس دهد فهرست کنید؛ رشته model در LLMConfig باید دقیقاً با یک id سرویس‌داده‌شده مطابقت داشته باشد. شکست‌های اجرای اول از یک فهرست کوتاه پیروی می‌کنند. یک ۴۰۱ یعنی api_key در dict یک کلید معتبر برای endpoint در base_url نیست؛ چون هر دو در همان dict زندگی می‌کنند، dict را (منهای کلید) چاپ کنید و چک کنید کپی‌ای که agent ها واقعاً دریافت کردند را ویرایش کرده‌اید. یک خطای model-not-found یک غلط‌تایپی id است، و خروجی /v1/models نگارش معتبر است. یک خطای اتصال معمولاً یعنی base_url پسوند /v1 خود را گم کرده، چون client مسیر /chat/completions را به هر base ای که بدهید اضافه می‌کند. و اگر مرحله احساسات شکست بخورد در حالی که چت agent کار می‌کند، آن طبقه‌بند محلی FinBERT یا یک نصب گم‌شده transformers است، نه gateway. وقتی درخواست‌ها جاری شوند، کنسول APIsRouter مدل، شمارش token، و هزینه هر-درخواست را نشان می‌دهد. pipeline های چند-agent فراخوانی‌ها را سریع ضرب می‌کنند، و نمای usage روشی است که می‌بینید کدام نقش agent token ها را مصرف می‌کند قبل از اینکه اجرا را به یک watchlist کامل مقیاس دهید.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $APISROUTER_API_KEY" | head -50

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

آیا FinGPT از یک endpoint سفارشی سازگار با OpenAI به‌طور پیش‌فرض پشتیبانی می‌کند؟

بله، در pipeline های API-محور آن. notebook تحلیل چند-agent در AG2، LLMConfig را با api_type برابر "openai" به‌علاوه یک base_url پیکربندی می‌کند، و notebook تحلیل-گزارش base_url را به ChatOpenAI در LangChain پاس می‌دهد. هر دو الگوهای upstream هستند؛ مدل‌های محلی fine-tuned نیمه جدا و آفلاین پروژه هستند.

آیا agent های FinGPT می‌توانند این‌طوری روی مدل‌های Claude یا DeepSeek اجرا شوند؟

بله. api_type روی "openai" می‌ماند و فیلد model به‌عنوان رشته ساده روی /v1/chat/completions فوروارد می‌شود. هر id ای که توسط endpoint پشت base_url سرویس داده شود کار می‌کند، شامل id های Claude، DeepSeek، GLM، و Gemini.

آیا هنوز برای pipeline AG2 به یک حساب OpenAI نیاز دارم؟

خیر. با base_url اشاره‌کرده به gateway و api_key که یک کلید gateway نگه می‌دارد، هیچ درخواستی به host های OpenAI نمی‌رسد. خود notebook upstream این را با مسیردهی از طریق یک endpoint سازگار غیر-OpenAI نشان می‌دهد.

آیا یک base_url سفارشی روی داده بازار یا امتیازدهی احساسات FinBERT در FinGPT اثر می‌گذارد؟

خیر. نرخ‌های yfinance و طبقه‌بند FinBERT بدون کلید API به‌صورت محلی اجرا می‌شوند، و credential های SEC و Financial Modeling Prep در pipeline گزارش کلیدهای داده جدا هستند. endpoint LLM تنها چیزی است که base_url جابه‌جا می‌کند.

پارامتر base_url در market_sentiment.py مربوط به Forecaster چطور؟

آن یکی یک سرویس احساسات داده-بازار احراز-هویت‌شده با ADANOS_API_KEY را پیکربندی می‌کند، نه یک endpoint LLM. مدل‌های خود Forecaster وزن‌های fine-tuned سرویس‌داده‌شده از طریق Hugging Face هستند، پس هیچ مسیردهی سازگار با OpenAI آنجا اعمال نمی‌شود.

آیا پلتفرم Finogrid داخل FinGPT هم از یک endpoint سفارشی پشتیبانی می‌کند؟

تا ژوئیه ۲۰۲۶ مستند نشده. Finogrid یک provider را از طریق FINGPT_LLM_PROVIDER انتخاب می‌کند و OPENAI_API_KEY را می‌خواند، اما فایل محیطی نمونه آن هیچ override برای base-URL نشان نمی‌دهد، پس تا وقتی upstream یکی اضافه کند، مسیردهی مستقیم-vendor آنجا را فرض کنید.