Запустіть агентні конвеєри 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, тож вважайте там пряму маршрутизацію постачальника, доки апстрим не додасть таку.