FinGPT کی agent pipelines کو ایک custom OpenAI-compatible endpoint پر چلائیں۔

Updated 2026-07-30

FinGPT کی multi-agent analysis pipeline اپنی LLM کو ایک AG2 LLMConfig dict کے ذریعے configure کرتی ہے جو api_type "openai" اور ایک base_url لیتی ہے۔ base_url کو https://api.apisrouter.com/v1 پر سیٹ کریں، ایک key pass کریں، اور researcher، sentiment، اور advisor agents کیٹلاگ کی کسی بھی model id پر چل سکتے ہیں۔

فوری جواب: AG2 LLMConfig dict میں base_url۔

FinGPT کی multi-agent financial analysis pipeline (upstream repo میں fingpt/ag2_financial_analysis_pipeline.ipynb) اپنا LLM configuration ایک AG2 LLMConfig dict کے طور پر چار keys کے ساتھ بناتی ہے: model، api_key، api_type، اور base_url۔ upstream notebook خود base_url کو api.openai.com کی بجائے ایک OpenAI-compatible router endpoint کی طرف point کرتا ہے، تو gateway کے ذریعے routing یہاں documented pattern ہے، کوئی workaround نہیں۔ pipeline کو APIsRouter کے ذریعے چلانے کے لیے، api_type کو "openai" پر سیٹ کریں، base_url کو https://api.apisrouter.com/v1 پر سیٹ کریں، اپنی gateway key api_key میں ڈالیں، اور model کو کوئی بھی کیٹلاگ id پر سیٹ کریں۔ notebook کا ہر AssistantAgent وہی llm_config object وصول کرتا ہے، تو ایک dict پوری agent team کو move کرتا ہے۔

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 API کو call کرتا ہے۔

FinGPT (GitHub پر AI4Finance-Foundation، تقریباً 21K stars) ایک نام کے تحت دو چیزیں ہے، اور یہ جاننا کہ آپ کون سا آدھا حصہ چلا رہے ہیں یہ فیصلہ کرتا ہے کہ کیا ایک custom endpoint بالکل اہم ہے۔ پہلا آدھا حصہ fine-tuned open weights ہے: Llama اور ChatGLM کے لیے LoRA training notebooks جنہوں نے project کو معروف بنایا۔ یہ locally یا Hugging Face transformers کے ذریعے rented GPUs پر چلتے ہیں، کوئی chat-completions calls نہیں کرتے، اور ان پر کوئی base URL لاگو نہیں ہوتا۔ دوسرا آدھا حصہ application pipelines ہیں، اور یہیں OpenAI-compatible surface رہتا ہے۔ AG2 multi-agent analysis pipeline تین AssistantAgents (ایک news researcher، ایک sentiment analyst، اور ایک investment advisor) کو ایک LLMConfig سے جوڑتی ہے، انہیں yfinance tool calls اور ایک local FinBERT sentiment classifier سے مضبوط کرتی ہے، اور انہیں کرداروں کے درمیان ایک equity analysis pass کرنے دیتی ہے۔ financial report analysis pipeline (fingpt/FinGPT_FinancialReportAnalysis) sec-api اور Financial Modeling Prep کے ذریعے کھینچی گئی SEC filings کے خلاف LangChain کی ChatOpenAI چلاتی ہے۔ دونوں pipelines standard /v1/chat/completions requests بھیجتی ہیں، دونوں endpoint کو ایک parameter کے طور پر expose کرتی ہیں، اور دونوں model field کو ایک plain string کے طور پر forward کرتی ہیں، جو یہی ہے جو ایک Claude یا DeepSeek id کو "openai" api_type پر سوار ہونے دیتا ہے جیسے ہی base_url کے پیچھے endpoint اسے serve کرے۔

مکمل سیٹ اپ: AG2 pipeline اور report-analysis pipeline۔

AG2 pipeline سب سے صاف integration ہے۔ notebook کی LLMConfig values کو gateway endpoint اور اپنی پسندیدہ model id سے تبدیل کریں، اور تینوں agents اور ان کی tool-calling loop بغیر کسی تبدیلی کے چلتی ہیں۔ financial-data کا حصہ (yfinance quotes، FinBERT sentiment scoring) local ہے اور API keys سے آزاد، تو LLM endpoint واحد بیرونی dependency ہے جسے آپ move کر رہے ہیں۔ report-analysis pipeline LangChain کی ChatOpenAI استعمال کرتی ہے، جو api_key اور base_url کو constructor arguments کے طور پر قبول کرتی ہے؛ upstream notebook بالکل یہی جوڑا دکھاتا ہے جب یہ ظاہر کرتا ہے کہ ایک local OpenAI-compatible server کیسے swap کیا جائے۔ اسی کی بجائے دونوں arguments کو gateway کی طرف point کریں۔ نوٹ کریں کہ یہ notebook اپنی data pulls کے لیے SEC اور Financial Modeling Prep credentials بھی چاہتی ہے؛ وہ market-data keys ہیں، LLM endpoint سے غیر متعلق، اور وہ ویسے ہی رہتی ہیں۔

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)

Financial analysis agents کے لیے models چننا۔

چونکہ ہر candidate اسی endpoint کے خلاف ایک model string ہے، عملی loop یہ ہے کہ اپنے tickers اور dates fix کریں، فی candidate id ایک بار pipeline چلائیں، اور advisor output کا diff لیں۔ per-key usage log ہر candidate run کی قیمت آپ کے لیے لگاتا ہے، جو quality-per-token کی بحث کو instinct کی بجائے numbers سے طے کرتا ہے۔

  • advisor کا کردار reasoning bottleneck ہے۔ یہ researcher کی findings، sentiment scores، اور risk picture کو ایک outlook میں synthesize کرتا ہے، اور ایک frontier reasoning model (claude-opus-4-7، gpt-5.5) وہ جگہ ہے جہاں یہ synthesis عام ہونا چھوڑ دیتی ہے۔
  • researcher اور analyst کے کردار volume کردار ہیں: headlines پڑھنا، tool output کو structure دینا، drafts کو score کرنا۔ claude-sonnet-4-6 یا deepseek-v4-pro انہیں ہر intermediate turn پر frontier pricing کے بغیر sharp رکھتے ہیں۔
  • Report analysis ایک long-context workload ہے۔ ایک 10-K section اور price-target context ملا کر ایک بڑا prompt بنتا ہے، تو default فرض کرنے سے پہلے filing کے پہلو پر gemini-3.1-pro-preview یا claude-sonnet-4-6 ٹیسٹ کریں۔
  • FinGPT کی جڑیں bilingual ہیں۔ اگر آپ کی pipeline Chinese-language filings یا news پڑھتی ہے، تو glm-5.2 اور deepseek-v4-pro وہاں native طور پر strong ہیں اور اسی endpoint کے ذریعے id سے addressable ہیں۔
  • تمام agents کے لیے ایک LLMConfig چلانا notebook کا default ہے، مگر کوئی چیز آپ کو اسی base_url کے خلاف دو dicts بنانے سے نہیں روکتی، advisor کے لیے ایک frontier اور readers کے لیے ایک fast، اور انہیں فی agent assign کرنے سے۔

استعمال کے مطابق ادائیگی · سرکاری قیمت سے کم

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

احتیاطیں: FinGPT میں ہر base_url LLM نہیں ہے۔

FinGPT ایک research monorepo ہے، اور چند چیزیں LLM endpoint settings جیسی لگتی ہیں بغیر ایسی ہوئے۔ Forecaster کی market_sentiment.py میں api_key اور base_url parameters ہیں، مگر یہ ایک market-data sentiment service کو configure کرتے ہیں (ADANOS_API_KEY سے پڑھا جاتا ہے)، chat-completions endpoint نہیں۔ اس base_url کو تبدیل کرنا کوئی LLM traffic route نہیں کرتا۔ FinGPT-Forecaster کے models خود fine-tuned Llama weights ہیں جو Hugging Face کے ذریعے serve ہوتے ہیں، تو forecaster demo بالکل بھی OpenAI-compatible consumer نہیں ہے۔ repo کے اندر نیا Finogrid platform اپنا LLM ایک FINGPT_LLM_PROVIDER environment variable (openai، minimax، یا fingpt) کے ذریعے منتخب کرتا ہے اور openai provider کے لیے OPENAI_API_KEY پڑھتا ہے۔ جولائی 2026 تک اس کی example environment file provider switch اور key کو document کرتی ہے، مگر کوئی base-URL override variable نہیں، تو Finogrid کو gateway کے لیے out of scope سمجھیں جب تک upstream ایک document نہ کرے۔ آخر میں، AG2 notebook ag2[openai] کو 0.11.4 یا نئے پر pin کرتا ہے۔ پرانے pyautogen 0.2-era installs وہی چار keys LLMConfig class کی بجائے config_list entries کے ذریعے configure کرتی ہیں؛ keys ایک جیسی ہیں، تو routing کام کرتی ہے، مگر اپنے import style کو اس AutoGen generation سے میچ کریں جو آپ نے واقعی install کیا ہے۔

کون FinGPT کو gateway کے ذریعے route کرتا ہے۔

  • Quant researchers جو ایک ticker list کے پار multi-agent analysis چلاتے ہیں۔ فی equity درجنوں agent turns فی-key usage visibility کو فی-provider vendor dashboard سے زیادہ کارآمد بناتے ہیں۔
  • وہ teams جو model families کے پار analysis quality compare کرتی ہیں۔ ہر candidate LLMConfig میں ایک model string ہے، کوئی نیا provider integration اور account نہیں۔
  • وہ analysts جو report pipeline کے ذریعے filings کو bulk میں process کرتے ہیں، جہاں ids کے درمیان long-context pricing کے فرق بل پر حاوی ہوتے ہیں۔
  • Bilingual finance teams جو glm-5.2 یا deepseek-v4-pro جیسی Chinese-strong ids کو Claude یا GPT reasoning کے ساتھ جوڑتی ہیں، سب ایک ہی endpoint کے پیچھے۔
  • وہ developers جن کے پاس کسی مخصوص vendor کی billing تک رسائی نہیں۔ Top-up پر مبنی رسائی بغیر کارڈ کی شرط کے فی-provider sign-up کا انحصار ختم کر دیتی ہے۔

Endpoint verify کریں اور پہلا run debug کریں۔

notebook لانچ کرنے سے پہلے، ان models کی list کریں جنہیں آپ کی key address کر سکتی ہے؛ LLMConfig میں model string کو ایک served id سے بالکل میچ ہونا چاہیے۔ First-run failures ایک مختصر list کی پیروی کرتی ہیں۔ ایک 401 کا مطلب ہے dict میں api_key، base_url میں موجود endpoint کے لیے valid key نہیں ہے؛ چونکہ دونوں ایک ہی dict میں رہتے ہیں، dict پرنٹ کریں (key کے بغیر) اور چیک کریں کہ آپ نے وہ کاپی edit کی جو agents نے واقعی وصول کی۔ ایک model-not-found error ایک id typo ہے، اور /v1/models output مستند spelling ہے۔ ایک connection error عام طور پر مطلب ہے base_url نے اپنا /v1 suffix کھو دیا، کیونکہ client جو بھی base آپ دیں اس میں /chat/completions append کرتا ہے۔ اور اگر sentiment step فیل ہو جبکہ agent chat کام کرے، تو یہ local FinBERT classifier ہے یا ایک missing transformers install، gateway نہیں۔ ایک بار requests چلنے لگیں، APIsRouter console per-request model، token counts، اور spend دکھاتا ہے۔ Multi-agent pipelines calls کو تیزی سے ضرب دیتی ہیں، اور usage view وہ طریقہ ہے جس سے آپ دیکھتے ہیں کہ کون سا agent role tokens استعمال کر رہا ہے، اس سے پہلے کہ آپ run کو ایک پورے watchlist تک scale کریں۔

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

عمومی سوالات

کیا FinGPT out of the box ایک custom OpenAI-compatible endpoint سپورٹ کرتا ہے؟

جی ہاں، اپنی API-driven pipelines میں۔ AG2 multi-agent analysis notebook LLMConfig کو api_type "openai" اور ایک base_url کے ساتھ configure کرتا ہے، اور report-analysis notebook base_url کو LangChain کی ChatOpenAI میں pass کرتا ہے۔ دونوں upstream patterns ہیں؛ fine-tuned local models project کا ایک الگ، offline آدھا حصہ ہیں۔

کیا FinGPT agents اس طریقے سے Claude یا DeepSeek models پر چل سکتے ہیں؟

جی ہاں۔ api_type "openai" رہتا ہے اور model field /v1/chat/completions پر ایک plain string کے طور پر forward ہوتا ہے۔ base_url کے پیچھے endpoint سے serve کی گئی کوئی بھی id کام کرتی ہے، Claude، DeepSeek، GLM، اور Gemini ids سمیت۔

کیا مجھے اب بھی AG2 pipeline کے لیے ایک OpenAI account چاہیے؟

نہیں۔ base_url کے gateway کی طرف point کرنے اور api_key کے ایک gateway key رکھنے سے، کوئی request OpenAI hosts کو نہیں چھوتی۔ upstream notebook خود ایک non-OpenAI compatible endpoint کے ذریعے routing کر کے یہ ظاہر کرتا ہے۔

کیا ایک custom base_url FinGPT کے market data یا FinBERT sentiment scoring کو متاثر کرتا ہے؟

نہیں۔ yfinance quotes اور FinBERT classifier بغیر API keys کے locally چلتے ہیں، اور report pipeline کے SEC اور Financial Modeling Prep credentials الگ data keys ہیں۔ LLM endpoint واحد چیز ہے جسے base_url move کرتا ہے۔

Forecaster کی market_sentiment.py میں base_url parameter کا کیا؟

وہ ایک market-data sentiment service کو configure کرتا ہے جو ADANOS_API_KEY سے authenticate ہوتی ہے، کوئی LLM endpoint نہیں۔ Forecaster کے اپنے models Hugging Face کے ذریعے serve ہونے والے fine-tuned weights ہیں، تو وہاں کوئی OpenAI-compatible routing لاگو نہیں ہوتی۔

کیا FinGPT کے اندر Finogrid platform بھی ایک custom endpoint سپورٹ کرتا ہے؟

جولائی 2026 تک documented نہیں۔ Finogrid FINGPT_LLM_PROVIDER کے ذریعے ایک provider منتخب کرتا ہے اور OPENAI_API_KEY پڑھتا ہے، مگر اس کی example environment file کوئی base-URL override نہیں دکھاتی، تو وہاں direct vendor routing فرض کریں جب تک upstream ایک شامل نہ کرے۔