Запустите агентные пайплайны 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 на самом деле вызывает LLM API.

FinGPT (AI4Finance-Foundation на GitHub, около 21K звёзд) — это две вещи под одним именем, и понимание того, какую половину вы запускаете, решает, имеет ли вообще значение кастомный эндпоинт. Первая половина — это дообученные открытые веса: ноутбуки LoRA-обучения для Llama и ChatGLM, которые и сделали проект известным. Они работают локально или на арендованных GPU через Hugging Face transformers, не делают вызовов chat-completions, и никакой base URL к ним не применяется. Вторая половина — это прикладные пайплайны, и именно здесь живёт OpenAI-совместимая поверхность. Мультиагентный пайплайн анализа AG2 связывает трёх AssistantAgent (новостной исследователь, аналитик настроений и инвестиционный советник) с одним LLMConfig, дополняет их вызовами инструментов yfinance и локальным классификатором настроений FinBERT, и позволяет им передавать анализ акции между ролями. Пайплайн анализа финансовых отчётов (fingpt/FinGPT_FinancialReportAnalysis) управляет LangChain ChatOpenAI против поданных 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 — единственная внешняя зависимость, которую вы двигаете. Пайплайн анализа отчётов использует LangChain ChatOpenAI, который принимает api_key и base_url как аргументы конструктора; апстримный ноутбук демонстрирует именно эту пару, показывая, как подставить локальный OpenAI-совместимый сервер. Направьте те же два аргумента на шлюз вместо этого. Учтите, что этому ноутбуку также нужны credentials 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 года её пример env-файла документирует переключение провайдера и ключ, но не переменную для переопределения 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, всё за одним эндпоинтом.
  • Разработчики без доступа к биллингу конкретного вендора. Доступ на основе пополнения без требования карты убирает зависимость от регистрации у каждого провайдера.

Проверьте эндпоинт и отладьте первый прогон.

Перед запуском ноутбука получите список моделей, доступных вашему ключу; строка модели в LLMConfig должна точно совпадать с обслуживаемым id. Сбои первого прогона следуют короткому списку. 401 означает, что api_key в словаре — не валидный ключ для эндпоинта в base_url; поскольку оба живут в одном словаре, выведите словарь (без ключа) и проверьте, что вы отредактировали именно ту копию, которую реально получили агенты. Ошибка model-not-found — это опечатка в id, а вывод /v1/models — авторитетное написание. Ошибка подключения обычно означает, что base_url потерял суффикс /v1, поскольку клиент добавляет /chat/completions к тому, что вы дали в качестве базы. А если шаг настроений падает, пока чат агентов работает, это локальный классификатор FinBERT или отсутствующая установка transformers, а не шлюз. Как только запросы начинают идти, консоль APIsRouter показывает модель на запрос, счётчики токенов и расходы. Мультиагентные пайплайны быстро умножают вызовы, и вид использования — это способ увидеть, какая роль агента потребляет токены, прежде чем масштабировать прогон на весь watchlist.

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 в LangChain ChatOpenAI. Оба — апстримные паттерны; дообученные локальные модели — это отдельная, офлайн половина проекта.

Могут ли агенты 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-ключей, а credentials SEC и Financial Modeling Prep у пайплайна отчётов — отдельные ключи данных. Эндпоинт LLM — единственное, что двигает base_url.

А что насчёт параметра base_url в market_sentiment.py у Forecaster?

Он настраивает сервис настроений рыночных данных, аутентифицируемый ADANOS_API_KEY, а не эндпоинт LLM. Собственные модели Forecaster — это дообученные веса, обслуживаемые через Hugging Face, так что OpenAI-совместимая маршрутизация там не применяется.

Поддерживает ли платформа Finogrid внутри FinGPT кастомный эндпоинт тоже?

Не задокументировано по состоянию на июль 2026 года. Finogrid выбирает провайдера через FINGPT_LLM_PROVIDER и читает OPENAI_API_KEY, но её пример env-файла не показывает переопределения base URL, так что считайте маршрутизацию там прямой к вендору, пока апстрим не добавит такую возможность.