Запустіть агентні конвеєри FinGPT на кастомному OpenAI-сумісному ендпоінті.
Updated 2026-07-30
Конвеєр мультиагентного аналізу FinGPT налаштовує свій LLM через словник AG2 LLMConfig, що приймає api_type "openai" і base_url. Встановіть base_url на https://api.apisrouter.com/v1, передайте один ключ — і агенти дослідника, настрою й радника можуть працювати на будь-якому id моделі каталогу.
Коротка відповідь: base_url у словнику AG2 LLMConfig.
Конвеєр мультиагентного фінансового аналізу FinGPT (fingpt/ag2_financial_analysis_pipeline.ipynb в апстрим-репозиторії) будує конфігурацію LLM як словник AG2 LLMConfig з чотирма ключами: model, api_key, api_type і base_url. Сам апстрим-ноутбук вказує base_url на OpenAI-сумісний ендпоінт роутера, а не на api.openai.com, тож маршрутизація через шлюз — це задокументований патерн тут, а не обхідний шлях. Щоб запустити конвеєр через APIsRouter, встановіть api_type на "openai", base_url на https://api.apisrouter.com/v1, покладіть ваш ключ шлюзу в api_key і встановіть model на будь-який id каталогу. Кожен AssistantAgent у ноутбуці отримує той самий об'єкт llm_config, тож один словник рухає всю команду агентів.
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, приблизно 21 тис. зірок) — це дві речі під однією назвою, і знання, яку з половин ви запускаєте, вирішує, чи має значення кастомний ендпоінт узагалі. Перша половина — це донавчені відкриті ваги: ноутбуки LoRA-тренування для Llama і ChatGLM, які й прославили проєкт. Вони працюють локально чи на орендованих GPU через Hugging Face transformers, не роблять жодних викликів chat-completions, і жоден base URL до них не застосовний. Друга половина — прикладні конвеєри, і саме тут живе OpenAI-сумісна поверхня. Конвеєр мультиагентного аналізу AG2 з'єднує трьох AssistantAgent (новинний дослідник, аналітик настрою й інвестиційний радник) з одним LLMConfig, доповнює їх викликами інструментів yfinance й локальним класифікатором настрою FinBERT і дозволяє їм передавати аналіз акції між ролями. Конвеєр аналізу фінансових звітів (fingpt/FinGPT_FinancialReportAnalysis) керує ChatOpenAI від LangChain проти звітностей SEC, отриманих через sec-api і Financial Modeling Prep. Обидва конвеєри надсилають стандартні запити /v1/chat/completions, обидва відкривають ендпоінт як параметр, і обидва пересилають поле model як звичайний рядок, що й дозволяє id Claude чи DeepSeek їхати на api_type "openai", щойно ендпоінт за base_url його обслуговує.
Повне налаштування: конвеєр AG2 і конвеєр аналізу звітів.
Конвеєр AG2 — найчистіша інтеграція. Замініть значення LLMConfig ноутбука на ендпоінт шлюзу й ваш бажаний id моделі, і три агенти плюс їхній цикл виклику інструментів працюють без змін. Бік фінансових даних (котирування yfinance, оцінка настрою FinBERT) локальний і без API-ключів, тож ендпоінт LLM — єдина зовнішня залежність, яку ви переміщуєте. Конвеєр аналізу звітів використовує ChatOpenAI від LangChain, який приймає api_key і base_url як аргументи конструктора; апстрим-ноутбук демонструє саме цю пару, показуючи, як підмінити локальним OpenAI-сумісним сервером. Спрямуйте ті самі два аргументи на шлюз натомість. Зверніть увагу, що цей ноутбук також хоче облікові дані SEC і Financial Modeling Prep для своїх запитів даних; це ключі ринкових даних, не пов'язані з ендпоінтом 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)Вибір моделі для агентів фінансового аналізу.
Оскільки кожен кандидат — один рядок моделі проти того самого ендпоінта, практичний цикл — зафіксувати ваші тікери й дати, прогнати конвеєр раз на кожен id-кандидат і порівняти вивід радника. Лог використання за ключем оцінює кожен прогін кандидата за вас, що вирішує суперечку про якість на токен цифрами, а не інтуїцією.
- Роль радника — вузьке місце міркування. Вона синтезує знахідки дослідника, оцінки настрою й картину ризику в прогноз, і фронтирна модель міркування (claude-opus-4-7, gpt-5.5) — те місце, де цей синтез перестає бути загальним.
- Ролі дослідника й аналітика — об'ємні: читання заголовків, структурування виводу інструментів, оцінка чернеток. claude-sonnet-4-6 чи deepseek-v4-pro тримає їх гострими без фронтирної ціни на кожному проміжному ході.
- Аналіз звітів — навантаження з довгим контекстом. Розділ 10-K плюс контекст цільової ціни — великий промпт, тож протестуйте gemini-3.1-pro-preview чи claude-sonnet-4-6 на боці звітності, перш ніж припускати типовий вибір.
- Коріння FinGPT білінгвальне. Якщо ваш конвеєр читає китайськомовні звітності чи новини, glm-5.2 і deepseek-v4-pro нативно сильні там і адресовні через той самий ендпоінт за id.
- Запуск одного LLMConfig на всіх агентів — типовий варіант ноутбука, але ніщо не заважає побудувати два словники проти того самого base_url, фронтирний для радника й швидкий для читачів, і призначити їх по агенту.
Оплата за фактом · нижче офіційних цін
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 — дослідницький монорепозиторій, і кілька речей виглядають як налаштування ендпоінта LLM, не будучи ними. market_sentiment.py у Forecaster має параметри api_key і base_url, але вони налаштовують сервіс настрою ринкових даних (зчитує ADANOS_API_KEY), а не ендпоінт chat-completions. Зміна цього base_url не маршрутизує жоден трафік LLM. Самі моделі FinGPT-Forecaster — це донавчені ваги Llama, що обслуговуються через Hugging Face, тож демо форкастера взагалі не є OpenAI-сумісним споживачем. Новіша платформа Finogrid усередині репозиторію обирає свій LLM через змінну середовища FINGPT_LLM_PROVIDER (openai, minimax чи fingpt) і зчитує OPENAI_API_KEY для провайдера openai. Станом на липень 2026 її приклад файлу середовища документує перемикач провайдера й ключ, але жодної змінної перевизначення base URL, тож вважайте Finogrid поза обсягом для шлюзу, доки апстрим не задокументує таку. Нарешті, ноутбук AG2 закріплює ag2[openai] на версії 0.11.4 чи новіше. Старіші установки pyautogen 0.2-ери налаштовують ті самі чотири ключі через записи config_list замість класу LLMConfig; ключі ідентичні, тож маршрутизація працює, але узгодьте стиль вашого імпорту з тим поколінням AutoGen, яке ви справді встановили.
Хто спрямовує FinGPT через шлюз.
- Квант-дослідники, що прогонюють мультиагентний аналіз по списку тікерів. Десятки ходів агентів на акцію роблять видимість використання за ключем кориснішою за панель постачальника на кожного провайдера.
- Команди, що порівнюють якість аналізу по родинах моделей. Кожен кандидат — один рядок моделі в LLMConfig, а не нова інтеграція й обліковий запис провайдера.
- Аналітики, що обробляють звітності масово через конвеєр звітів, де різниці в ціні на довгий контекст між id домінують у рахунку.
- Білінгвальні фінансові команди, що поєднують сильні для китайської id на кшталт glm-5.2 чи deepseek-v4-pro з міркуванням Claude чи GPT, усе за одним ендпоінтом.
- Розробники без доступу до білінгу певного постачальника. Доступ на основі поповнення без вимоги картки прибирає залежність від реєстрації в кожного провайдера.
Перевірте ендпоінт і налагодьте перший прогін.
Перш ніж запускати ноутбук, перелічіть моделі, доступні вашому ключу; рядок model у LLMConfig має точно збігатися з обслуговуваним id. Збої першого прогону йдуть за коротким списком. 401 означає, що api_key у словнику — не валідний ключ для ендпоінта в base_url; оскільки обидва живуть в одному словнику, виведіть словник (без ключа) і перевірте, що ви редагували саме ту копію, яку отримали агенти. Помилка model-not-found — одруківка в id, і вивід /v1/models — авторитетне написання. Помилка з'єднання зазвичай означає, що base_url втратив суфікс /v1, оскільки клієнт додає /chat/completions до будь-якої бази, яку ви даєте. А якщо крок настрою провалюється, поки чат агентів працює, це локальний класифікатор FinBERT чи відсутнє встановлення transformers, а не шлюз. Щойно запити потечуть, консоль APIsRouter показує модель на запит, кількість токенів і витрати. Мультиагентні конвеєри швидко множать виклики, і вигляд використання — це те, як ви бачите, яка роль агента споживає токени, перш ніж масштабувати прогін на повний список спостереження.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Поширені запитання
Чи підтримує FinGPT кастомний OpenAI-сумісний ендпоінт з коробки?
Так, у своїх API-керованих конвеєрах. Ноутбук мультиагентного аналізу AG2 налаштовує LLMConfig з api_type "openai" плюс base_url, а ноутбук аналізу звітів передає base_url в ChatOpenAI від LangChain. Обидва — апстрим-патерни; донавчені локальні моделі — окрема, офлайн половина проєкту.
Чи можуть агенти FinGPT працювати на моделях Claude чи DeepSeek у такий спосіб?
Так. api_type лишається "openai", а поле model пересилається як звичайний рядок через /v1/chat/completions. Працює будь-який id, обслуговуваний ендпоінтом за base_url, включно з id Claude, DeepSeek, GLM і Gemini.
Чи все ще потрібен мені акаунт OpenAI для конвеєра AG2?
Ні. Коли base_url вказує на шлюз, а api_key містить ключ шлюзу, жоден запит не торкається хостів OpenAI. Сам апстрим-ноутбук демонструє це, маршрутизуючи через не-OpenAI-сумісний ендпоінт.
Чи впливає кастомний base_url на ринкові дані FinGPT чи оцінку настрою FinBERT?
Ні. Котирування yfinance й класифікатор FinBERT працюють локально без API-ключів, а облікові дані SEC і Financial Modeling Prep конвеєра звітів — окремі ключі даних. Ендпоінт LLM — єдине, що рухає base_url.
Що щодо параметра base_url у market_sentiment.py форкастера?
Той налаштовує сервіс настрою ринкових даних, автентифікований ADANOS_API_KEY, а не ендпоінт LLM. Власні моделі форкастера — донавчені ваги, що обслуговуються через Hugging Face, тож OpenAI-сумісна маршрутизація там не застосовна.
Чи підтримує платформа Finogrid усередині FinGPT кастомний ендпоінт теж?
Не задокументовано станом на липень 2026. Finogrid обирає провайдера через FINGPT_LLM_PROVIDER і зчитує OPENAI_API_KEY, але приклад файлу середовища не показує перевизначення base URL, тож вважайте там пряму маршрутизацію постачальника, доки апстрим не додасть таку.