FinGPT-এর agent pipeline একটা কাস্টম OpenAI-compatible endpoint-এ চালান।

Updated 2026-07-30

FinGPT-এর multi-agent analysis pipeline তার LLM configure করে একটা AG2 LLMConfig dict দিয়ে যা api_type "openai" এবং একটা base_url নেয়। base_url-কে https://api.apisrouter.com/v1-এ সেট করুন, এক key পাস করুন, এবং researcher, sentiment, এবং advisor agent catalog-এর যেকোনো 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 হিসেবে বানায় চারটা key দিয়ে: model, api_key, api_type, এবং base_url। Upstream notebook নিজেই base_url-কে api.openai.com-এর বদলে একটা OpenAI-compatible router endpoint-এ point করে, তাই একটা gateway দিয়ে route করা এখানে একটা workaround না, documented pattern। APIsRouter দিয়ে pipeline চালাতে, api_type-কে "openai"-তে সেট করুন, base_url-কে https://api.apisrouter.com/v1-এ সেট করুন, api_key-তে আপনার gateway key দিন, এবং model-কে যেকোনো catalog 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 কল করে।

FinGPT (GitHub-এ AI4Finance-Foundation, প্রায় 21K star) এক নামের নিচে দুইটা জিনিস, এবং আপনি কোন অর্ধেক চালাচ্ছেন তা জানাই ঠিক করে দেয় একটা কাস্টম endpoint আদৌ গুরুত্বপূর্ণ কিনা। প্রথম অর্ধেক হলো fine-tuned open weights: Llama এবং ChatGLM-এর জন্য LoRA training notebook যা project-কে পরিচিত করেছে। এগুলো locally বা ভাড়া করা GPU-তে Hugging Face transformers দিয়ে চলে, কোনো chat-completions call করে না, এবং কোনো base URL তাদের জন্য প্রযোজ্য না। দ্বিতীয় অর্ধেক হলো application pipeline, এবং এখানেই OpenAI-compatible surface থাকে। AG2 multi-agent analysis pipeline তিনটা AssistantAgent-কে (একজন news researcher, একজন sentiment analyst, এবং একজন investment advisor) এক LLMConfig-এ wire করে, তাদের yfinance tool call এবং একটা local FinBERT sentiment classifier দিয়ে augment করে, এবং তাদের role-দের মধ্যে একটা equity analysis pass করতে দেয়। Financial report analysis pipeline (fingpt/FinGPT_FinancialReportAnalysis) sec-api এবং Financial Modeling Prep দিয়ে টানা SEC filing-এর বিরুদ্ধে LangChain-এর ChatOpenAI চালায়। দুটো pipeline-ই standard /v1/chat/completions request পাঠায়, দুটোই endpoint-কে একটা parameter হিসেবে expose করে, এবং দুটোই model field একটা plain string হিসেবে forward করে, যা একটা "openai" api_type-এ একটা Claude বা DeepSeek id চড়তে দেয় যখন base_url-এর পেছনের endpoint সেটা serve করে।

সম্পূর্ণ সেটআপ: AG2 pipeline এবং report-analysis pipeline।

AG2 pipeline সবচেয়ে clean integration। Notebook-এর LLMConfig value-কে gateway endpoint এবং আপনার পছন্দের model id দিয়ে replace করুন, এবং তিনটা agent প্লাস তাদের tool-calling loop অপরিবর্তিতভাবে চলে। Financial-data side (yfinance quote, FinBERT sentiment scoring) local এবং API key ছাড়া মুক্ত, তাই LLM endpoint-ই একমাত্র external dependency যা আপনি move করছেন। Report-analysis pipeline LangChain-এর ChatOpenAI ব্যবহার করে, যা api_key এবং base_url constructor argument হিসেবে accept করে; upstream notebook ঠিক এই জোড়াই demonstrate করে যখন এটা দেখায় কীভাবে একটা local OpenAI-compatible server swap করতে হয়। একই দুইটা argument gateway-তে point করুন। লক্ষ্য করুন এই notebook-এর data pull-এর জন্য SEC এবং Financial Modeling Prep credential-ও দরকার; সেগুলো market-data key, 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 agent-এর জন্য model বেছে নেওয়া।

যেহেতু প্রতিটা candidate একই endpoint-এর বিরুদ্ধে একটা model string, practical loop হলো আপনার ticker এবং date fix করা, প্রতি candidate id-তে pipeline একবার চালানো, এবং advisor output diff করা। per-key usage log আপনার জন্য প্রতিটা candidate run price করে, যা quality-per-token argument-কে instinct-এর বদলে সংখ্যা দিয়ে মেটায়।

  • Advisor role reasoning-এর bottleneck। এটা researcher-এর findings, sentiment score, এবং risk picture-কে একটা outlook-এ synthesize করে, এবং একটা frontier reasoning model (claude-opus-4-7, gpt-5.5) হলো সেই জায়গা যেখানে সেই synthesis generic হওয়া বন্ধ হয়।
  • Researcher এবং analyst role volume role: headline পড়া, tool output structure করা, draft 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 side-এ gemini-3.1-pro-preview বা claude-sonnet-4-6 test করুন।
  • FinGPT-এর শিকড় bilingual। আপনার pipeline যদি Chinese-language filing বা news পড়ে, glm-5.2 এবং deepseek-v4-pro সেখানে natively strong এবং একই endpoint দিয়ে id-তে addressable।
  • সব agent-এর জন্য এক LLMConfig চালানো notebook-এর default, কিন্তু একই base_url-এর বিরুদ্ধে দুইটা dict বানানো থেকে কিছুই আটকায় না, advisor-এর জন্য একটা frontier এবং reader-দের জন্য একটা fast, এবং per 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

Caveat: FinGPT-এর প্রতিটা base_url-ই LLM না।

FinGPT একটা research monorepo, এবং কিছু জিনিস LLM endpoint setting-এর মতো দেখায় কিন্তু আসলে তা না। Forecaster-এর market_sentiment.py-তে api_key এবং base_url parameter আছে, কিন্তু সেগুলো একটা market-data sentiment service configure করে (ADANOS_API_KEY থেকে পড়া), chat-completions endpoint না। সেই base_url পাল্টালে কোনো LLM traffic route হয় না। FinGPT-Forecaster-এর মডেলগুলো নিজেই fine-tuned Llama weight যা Hugging Face দিয়ে serve হয়, তাই forecaster demo মোটেও একটা OpenAI-compatible consumer না। Repo-র ভেতরে newer Finogrid platform একটা FINGPT_LLM_PROVIDER environment variable (openai, minimax, বা fingpt) দিয়ে তার LLM select করে এবং openai provider-এর জন্য OPENAI_API_KEY পড়ে। 2026-এর জুলাই পর্যন্ত এর example environment file provider switch এবং key documents করে, কিন্তু কোনো base-URL override variable না, তাই upstream একটা documents না করা পর্যন্ত Finogrid-কে একটা gateway-র জন্য out of scope ধরুন। শেষে, AG2 notebook ag2[openai]-কে 0.11.4 বা তার পরে pin করে। পুরনো pyautogen 0.2-era install LLMConfig class-এর বদলে config_list entry দিয়ে একই চারটা key configure করে; key একই, তাই routing কাজ করে, কিন্তু আপনার আসলে যা install করা আছে সেই AutoGen generation-এর সাথে আপনার import style মিলিয়ে নিন।

কারা একটা gateway দিয়ে FinGPT route করে।

  • একটা ticker list জুড়ে multi-agent analysis চালানো Quant researcher। প্রতি equity ডজন ডজন agent turn মানে per-key usage visibility প্রতি provider-এ একটা vendor dashboard-এর চেয়ে বেশি useful।
  • Model family জুড়ে analysis quality তুলনা করা Team। প্রতিটা candidate LLMConfig-এ একটা model string, নতুন provider integration এবং account না।
  • Bulk-এ report pipeline দিয়ে filing process করা Analyst, যেখানে id-দের মধ্যে long-context pricing পার্থক্য bill-কে dominate করে।
  • glm-5.2 বা deepseek-v4-pro-এর মতো Chinese-strong id-কে Claude বা GPT reasoning-এর সাথে জোড়া লাগানো Bilingual finance team, সবই এক endpoint-এর পিছনে।
  • Developer যাদের কোনো নির্দিষ্ট vendor-এর billing-এ access নেই। কোনো card requirement ছাড়া Top-up based access per-provider sign-up dependency সরিয়ে দেয়।

Endpoint verify করুন এবং প্রথম run debug করুন।

Notebook launch করার আগে আপনার key যেসব model address করতে পারে তা list করুন; LLMConfig-এর model string exactly একটা served id-র সাথে মিলতে হবে। প্রথম-run failure একটা ছোট list অনুসরণ করে। একটা 401 মানে dict-এর api_key base_url-এর endpoint-এর জন্য একটা valid key না; দুটোই একই dict-এ থাকে বলে, dict print করুন (key বাদে) এবং check করুন agent-রা আসলে যে copy পেয়েছে সেটাই আপনি edit করেছেন। একটা model-not-found error একটা id typo, এবং /v1/models output-ই authoritative spelling। একটা connection error সাধারণত মানে base_url তার /v1 suffix হারিয়েছে, যেহেতু client আপনার দেওয়া base-এ /chat/completions append করে। এবং agent chat কাজ করলেও sentiment step fail করলে, সেটা local FinBERT classifier বা একটা missing transformers install, gateway না। Request flow শুরু হলে, APIsRouter console per-request model, token count, এবং spend দেখায়। Multi-agent pipeline দ্রুত call গুণ করে, এবং run-কে পুরো একটা watchlist-এ scale করার আগে usage view-ই যেখানে দেখা যায় কোন agent role token consume করছে।

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

সাধারণ প্রশ্ন

FinGPT কি out of the box একটা কাস্টম OpenAI-compatible endpoint সাপোর্ট করে?

হ্যাঁ, এর API-driven pipeline-এ। AG2 multi-agent analysis notebook api_type "openai" প্লাস একটা base_url দিয়ে LLMConfig configure করে, এবং report-analysis notebook LangChain-এর ChatOpenAI-তে base_url পাস করে। দুটোই upstream pattern; fine-tuned local model project-এর একটা আলাদা, offline অর্ধেক।

FinGPT agent কি এভাবে Claude বা DeepSeek model-এ চলতে পারে?

হ্যাঁ। api_type "openai"-ই থাকে এবং model field একটা plain string হিসেবে /v1/chat/completions-এর উপর দিয়ে forward হয়। base_url-এর পেছনের endpoint যা serve করে সেই id কাজ করে, Claude, DeepSeek, GLM, এবং Gemini id সহ।

AG2 pipeline-এর জন্য কি আমার এখনও একটা OpenAI account দরকার?

না। base_url gateway-তে point করা এবং api_key একটা gateway key ধরে রাখা অবস্থায়, কোনো request OpenAI host ছুঁয়ে যায় না। Upstream notebook নিজেই একটা non-OpenAI compatible endpoint দিয়ে route করে এটা demonstrate করে।

একটা কাস্টম base_url কি FinGPT-এর market data বা FinBERT sentiment scoring-কে প্রভাবিত করে?

না। yfinance quote এবং FinBERT classifier API key ছাড়া locally চলে, এবং report pipeline-এর SEC ও Financial Modeling Prep credential আলাদা data key। LLM endpoint-ই একমাত্র জিনিস যা base_url move করে।

Forecaster-এর market_sentiment.py-এর base_url parameter সম্পর্কে কী?

সেটা ADANOS_API_KEY দিয়ে authenticate করা একটা market-data sentiment service configure করে, LLM endpoint না। Forecaster-এর নিজস্ব model fine-tuned weight যা Hugging Face দিয়ে serve হয়, তাই সেখানে কোনো OpenAI-compatible routing প্রযোজ্য না।

FinGPT-এর ভেতরের Finogrid platform-ও কি কাস্টম endpoint সাপোর্ট করে?

2026-এর জুলাই পর্যন্ত documented না। Finogrid FINGPT_LLM_PROVIDER দিয়ে একটা provider select করে এবং OPENAI_API_KEY পড়ে, কিন্তু এর example environment file কোনো base-URL override দেখায় না, তাই upstream একটা যোগ না করা পর্যন্ত সেখানে direct vendor routing ধরে নিন।