הריצו את צינורות ה-agent של FinGPT על endpoint תואם OpenAI מותאם אישית.
Updated 2026-07-30
צינור הניתוח רב-ה-agent של FinGPT מגדיר את ה-LLM שלו דרך dict בשם AG2 LLMConfig שלוקח api_type "openai" ו-base_url. הגדירו את base_url ל-https://api.apisrouter.com/v1, העבירו מפתח אחד, וה-agents של החוקר, הסנטימנט, והיועץ יכולים לרוץ על כל id מודל בקטלוג.
תשובה מהירה: base_url ב-dict של AG2 LLMConfig.
צינור הניתוח הפיננסי רב-ה-agent של FinGPT (fingpt/ag2_financial_analysis_pipeline.ipynb במאגר ה-upstream) בונה את הגדרת ה-LLM שלו כ-dict בשם AG2 LLMConfig עם ארבעה מפתחות: model, api_key, api_type, ו-base_url. ה-notebook ה-upstream עצמו מפנה את base_url אל endpoint של router רב-ספקים במקום אל api.openai.com, כך שניתוב דרך gateway הוא הדפוס המתועד כאן, לא פתרון עוקף. כדי להריץ את הצינור דרך APIsRouter, הגדירו את api_type ל-"openai", הגדירו את base_url ל-https://api.apisrouter.com/v1, שימו את מפתח ה-gateway שלכם ב-api_key, והגדירו את model לכל id מהקטלוג. כל AssistantAgent ב-notebook מקבל את אותו אובייקט llm_config, כך ש-dict אחד מזיז את כל צוות ה-agents.
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, כ-21K כוכבים) הוא שני דברים תחת שם אחד, וידיעת איזה חצי אתם מריצים קובעת אם endpoint מותאם אישית משנה בכלל. החצי הראשון הוא משקלים פתוחים מכוונים-עדין: ה-notebooks לאימון LoRA עבור Llama ו-ChatGLM שהפכו את הפרויקט למוכר. אלה רצים מקומית או על GPUs שכורים דרך Hugging Face transformers, לא עושים קריאות chat-completions, ואף base URL לא חל עליהם. החצי השני הוא צינורות היישום, וכאן חי השטח התואם-OpenAI. צינור הניתוח רב-ה-agent של AG2 מחווט שלושה AssistantAgents (חוקר חדשות, אנליסט סנטימנט, ויועץ השקעות) אל LLMConfig אחד, מעצים אותם עם קריאות כלי yfinance ומסווג סנטימנט FinBERT מקומי, ונותן להם להעביר ניתוח מניה בין תפקידים. צינור ניתוח דוחות כספיים (fingpt/FinGPT_FinancialReportAnalysis) מניע את ChatOpenAI של LangChain מול דיווחי SEC שנשלפו דרך sec-api ו-Financial Modeling Prep. שני הצינורות שולחים בקשות /v1/chat/completions סטנדרטיות, שניהם חושפים את ה-endpoint כפרמטר, ושניהם מעבירים את שדה ה-model כמחרוזת פשוטה, וזה מה שמאפשר ל-id של Claude או DeepSeek לרכוב על api_type בשם "openai" ברגע שה-endpoint מאחורי base_url משרת אותו.
הגדרה מלאה: צינור AG2 וצינור ניתוח הדוחות.
צינור ה-AG2 הוא האינטגרציה הנקייה ביותר. החליפו את ערכי ה-LLMConfig של ה-notebook ב-endpoint ה-gateway וב-id המודל המועדף עליכם, ושלושת ה-agents בתוספת לולאת שימוש-הכלים שלהם רצים ללא שינוי. הצד של הנתונים הפיננסיים (ציטוטי yfinance, ניקוד סנטימנט FinBERT) מקומי וללא מפתחות API, כך שה-endpoint של ה-LLM הוא התלות החיצונית היחידה שאתם מזיזים. צינור ניתוח הדוחות משתמש ב-ChatOpenAI של LangChain, שמקבל api_key ו-base_url כארגומנטים של בנאי; ה-notebook ה-upstream מדגים בדיוק את הזוג הזה כשהוא מראה איך להחליף שרת תואם-OpenAI מקומי. הפנו את אותם שני ארגומנטים אל ה-gateway במקום. שימו לב שה-notebook הזה גם רוצה אישורי SEC ו-Financial Modeling Prep עבור המשיכות שלו; אלה מפתחות נתוני שוק, לא קשורים ל-endpoint של ה-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)בחירת מודלים ל-agents של ניתוח פיננסי.
מכיוון שכל מועמד הוא מחרוזת מודל אחת מול אותו endpoint, הלולאה המעשית היא לקבע את הטיקרים והתאריכים שלכם, להריץ את הצינור פעם אחת לכל id מועמד, ולהשוות diff על פלט היועץ. לוג השימוש לפי מפתח מתמחר כל הרצת מועמד עבורכם, מה שמיישב את הוויכוח איכות-לטוקן במספרים במקום באינטואיציה.
- תפקיד היועץ הוא צוואר הבקבוק של הנימוק. הוא מסנתז את ממצאי החוקר, ניקודי הסנטימנט, ותמונת הסיכון לתחזית, ומודל נימוק מהחזית (claude-opus-4-7, gpt-5.5) הוא המקום שבו הסינתזה הזו מפסיקה להיות גנרית.
- תפקידי החוקר והאנליסט הם תפקידי נפח: קריאת כותרות, מבנה פלט כלים, ניקוד טיוטות. claude-sonnet-4-6 או deepseek-v4-pro שומר עליהם חדים בלי תמחור-חזית בכל תור ביניים.
- ניתוח דוחות הוא עומס עבודה בהקשר-ארוך. חלק מדוח 10-K בתוספת הקשר יעד-מחיר הוא prompt גדול, אז בדקו את gemini-3.1-pro-preview או claude-sonnet-4-6 בצד הדיווח לפני שאתם מניחים את ברירת המחדל.
- השורשים של FinGPT דו-לשוניים. אם הצינור שלכם קורא דיווחים או חדשות בשפה הסינית, glm-5.2 ו-deepseek-v4-pro חזקים באופן נטיבי שם וניתנים לכתובת דרך אותו endpoint לפי id.
- הרצת LLMConfig אחד לכל ה-agents היא ברירת המחדל של ה-notebook, אבל שום דבר לא מונע מכם לבנות שני dicts מול אותו base_url, אחד מהחזית עבור היועץ ואחד מהיר עבור הקוראים, ולהקצות אותם לכל agent.
תשלום לפי שימוש · מתחת למחיר הרשמי
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 הוא monorepo מחקרי, וכמה דברים נראים כמו הגדרות endpoint של LLM בלי להיות כאלה. ה-market_sentiment.py של ה-Forecaster יש לו פרמטרים api_key ו-base_url, אבל הם מגדירים שירות סנטימנט של נתוני שוק (נקרא מ-ADANOS_API_KEY), לא endpoint של chat-completions. שינוי ה-base_url הזה לא מנתב שום תעבורת LLM. מודלי FinGPT-Forecaster עצמם הם משקלי Llama מכוונים-עדין שמוגשים דרך Hugging Face, כך שהדמו של ה-forecaster בכלל לא צרכן תואם-OpenAI. פלטפורמת ה-Finogrid החדשה יותר בתוך המאגר בוחרת את ה-LLM שלה דרך משתנה סביבה בשם FINGPT_LLM_PROVIDER (openai, minimax, או fingpt) וקוראת OPENAI_API_KEY עבור ה-provider בשם openai. נכון ליולי 2026, קובץ הסביבה לדוגמה שלה מתעד את מתג ה-provider והמפתח, אבל אין משתנה דריסת base-URL, אז התייחסו ל-Finogrid כמחוץ לתחום עבור gateway עד שה-upstream יתעד אחד. לבסוף, ה-notebook של AG2 נועץ את ag2[openai] בגרסה 0.11.4 ומעלה. התקנות ישנות יותר מעידן pyautogen 0.2 מגדירות את אותם ארבעת המפתחות דרך רשומות config_list במקום מחלקת LLMConfig; המפתחות זהים, כך שהניתוב עובד, אבל התאימו את סגנון ה-import שלכם לדור ה-AutoGen שבאמת מותקן אצלכם.
מי מנתב את FinGPT דרך gateway.
- חוקרי quant שמריצים את הניתוח רב-ה-agent על פני רשימת טיקרים. תריסרי תורות agent לכל מניה הופכים נראות שימוש-לפי-מפתח לשימושית יותר מלוח מחוונים ספק לכל provider.
- צוותים שמשווים איכות ניתוח על פני משפחות מודלים. כל מועמד הוא מחרוזת מודל אחת ב-LLMConfig, לא אינטגרציית ספק וחשבון חדשים.
- אנליסטים שמעבדים דיווחים בכמות גדולה דרך צינור הדוחות, שם הפרשי תמחור בהקשר-ארוך בין ids שולטים בחשבון.
- צוותי פיננסים דו-לשוניים שמזווגים ids חזקים בסינית כמו glm-5.2 או deepseek-v4-pro עם נימוק של Claude או GPT, כולם מאחורי endpoint אחד.
- מפתחים ללא גישה לחיוב של ספק נתון. גישה מבוססת-הטענה בלי דרישת כרטיס מסירה את התלות בהרשמה לכל ספק.
אמתו את ה-endpoint ובצעו דיבוג להרצה הראשונה.
לפני שאתם משיקים את ה-notebook, רשמו את המודלים שהמפתח שלכם יכול לכתוב אליהם; מחרוזת ה-model ב-LLMConfig חייבת להתאים בדיוק ל-id מוגש. כשלי ההרצה הראשונה עוקבים אחר רשימה קצרה. 401 אומר שה-api_key ב-dict אינו מפתח תקף עבור ה-endpoint ב-base_url; מכיוון ששניהם חיים באותו dict, הדפיסו את ה-dict (בלי המפתח) ובדקו שערכתם את העותק שה-agents באמת קיבלו. שגיאת model-not-found היא טעות הקלדה ב-id, ופלט ה-/v1/models הוא האיות הסמכותי. שגיאת חיבור בדרך כלל אומרת ש-base_url איבד את הסיומת /v1 שלו, מכיוון שה-client מוסיף /chat/completions למה שלא תתנו כבסיס. ואם שלב הסנטימנט נכשל בעוד שיחת ה-agent עובדת, זה מסווג FinBERT המקומי או התקנת transformers חסרה, לא ה-gateway. ברגע שבקשות זורמות, קונסולת APIsRouter מציגה מודל לכל בקשה, ספירות טוקן, והוצאה. צינורות רב-agent מכפילים קריאות מהר, ותצוגת השימוש היא הדרך לראות איזה תפקיד agent צורך את הטוקנים לפני שאתם מרחיבים את ההרצה לרשימת מעקב שלמה.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50שאלות נפוצות
האם FinGPT תומך ב-endpoint תואם OpenAI מותאם אישית מהקופסה?
כן, בצינורות המונעים-API שלו. ה-notebook רב-ה-agent של AG2 מגדיר את LLMConfig עם api_type "openai" בתוספת base_url, וה-notebook של ניתוח הדוחות מעביר base_url אל ChatOpenAI של LangChain. שניהם דפוסי upstream; המודלים המקומיים המכוונים-עדין הם חצי נפרד ולא-מקוון של הפרויקט.
האם ה-agents של FinGPT יכולים לרוץ על מודלי Claude או DeepSeek בדרך הזו?
כן. ה-api_type נשאר "openai" ושדה ה-model מועבר כמחרוזת פשוטה מעל /v1/chat/completions. כל id שה-endpoint מאחורי base_url משרת עובד, כולל ids של Claude, DeepSeek, GLM, ו-Gemini.
האם אני עדיין צריך חשבון OpenAI עבור צינור ה-AG2?
לא. כש-base_url מצביע אל ה-gateway ו-api_key מחזיק מפתח gateway, אף בקשה לא נוגעת ב-hosts של OpenAI. ה-notebook ה-upstream עצמו מדגים את זה על ידי ניתוב דרך endpoint לא-תואם-OpenAI.
האם base_url מותאם אישית משפיע על נתוני השוק או ניקוד הסנטימנט של FinBERT ב-FinGPT?
לא. ציטוטי yfinance ומסווג FinBERT רצים מקומית בלי מפתחות API, ואישורי SEC ו-Financial Modeling Prep של צינור הדוחות הם מפתחות נתונים נפרדים. ה-endpoint של ה-LLM הוא הדבר היחיד ש-base_url מזיז.
מה לגבי הפרמטר base_url ב-market_sentiment.py של ה-Forecaster?
זה מגדיר שירות סנטימנט של נתוני שוק שמאומת על ידי ADANOS_API_KEY, לא endpoint של LLM. המודלים העצמיים של ה-Forecaster הם משקלים מכוונים-עדין שמוגשים דרך Hugging Face, כך שאין ניתוב תואם-OpenAI שם.
האם פלטפורמת Finogrid בתוך FinGPT תומכת גם ב-endpoint מותאם אישית?
לא מתועד נכון ליולי 2026. Finogrid בוחרת provider דרך FINGPT_LLM_PROVIDER וקוראת OPENAI_API_KEY, אבל קובץ הסביבה לדוגמה שלה לא מראה דריסת base-URL, אז הניחו ניתוב ישיר-לספק שם עד שה-upstream יוסיף אחת.