הגדרת API מותאם ל-ai-hedge-fund
Updated 2026-09-05
בחירת ספק קודמת להגדרת endpoint. עקבו אחר factory המודל והרישום הנוכחיים, ואז אמתו נתונים, פלט סוכן והערכה כשלבים נפרדים.
זהו את נתיב היישום הנוכחי
עבור יישום ai-hedge-fund הנוכחי אשרו את ספק המודל ברישום לפני הגדרת OPENAI_API_BASE. ב-revision fc1bf250 ה-client factory נמצאת ב-hedge_fund/llm/client.py וקוראת רישום שנמצא לצדה. מדריכים ישנים שמתייחסים רק ל-src/llm/models.py מתארים נתיב יישום אחר. קבעו את ה-checkout והשתמשו ב-entrypoint שמייבא את ה-factory הנוכחית. התחילו בבדיקת הספק המוקדמת שלהלן, ואז הפעילו את לקוח הפרויקט לפני איסוף נתונים פיננסיים למחזור מחקר מלא.
פתרו את הספק לפני הגדרת base URL
make_llm בוחר ספק לפי מזהה המודל שנבחר. ענף OpenAI שלו מעביר OPENAI_API_BASE אל ChatOpenAI וקורא את מפתח ה-API המתאים. מזהה לא מוכר נופל לתעבורת Anthropic במקור שנבדק, לכן ייצוא OpenAI base URL לבדו אינו מספיק. תחילה אשרו ש-ID מודל ה-endpoint המדויק רשום תחת OpenAI. כאן OpenAI מזהה את מתאם התעבורה; היא אינה מאשרת את ספק המודל הבסיסי. אל תשנו רשומת registry גלובלית לפני שהבנתם כל תהליך שצורך אותה.
| הגדרה | מטרה | בדיקה |
|---|---|---|
| HEDGE_FUND_LLM_MODEL | בחירת ID מודל מדויק | ה-registry פותר את הספק המיועד |
| OPENAI_API_BASE | עקיפת endpoint תעבורת OpenAI | חל על ענף OpenAI |
| OPENAI_API_KEY | אימות התעבורה הזו | זמין לתהליך הלקוח |
| api_models.json | מיפוי מזהי מודל לספקים | הנתיב הנוכחי הוא hedge_fund/llm/ |
בדקו תצורה בלי לבצע בקשה
הדוגמה שלהלן נכשלת לפני יצירת הלקוח אם ה-registry המקומי בוחר תעבורה אחרת. הגדירו RESEARCH_MODEL_ID ל-ID קטלוג שרישום היישום שלו נבדק אצלכם. אם הוא חסר, הוסיפו בכוונה שורת registry מקומית באמצעות השדות הקיימים display_name, model_name ו-provider ושמרו רשומות לא קשורות. ה-placeholder אינו טענת תמיכה במודל. ספקו את המפתח דרך הסביבה או מאגר סודות. בדיקה מוקדמת זו בודקת בחירה בלבד; היא אינה יכולה לבסס גישה לרשת, זכאות חשבון, פלט מובנה או איכות מחקר.
import os
from hedge_fund.llm.registry import provider_for
model = os.environ["RESEARCH_MODEL_ID"]
if provider_for(model) != "OpenAI":
raise RuntimeError("MODEL_TRANSPORT_MISMATCH")
os.environ["HEDGE_FUND_LLM_MODEL"] = model
os.environ["OPENAI_API_BASE"] = "https://api.apisrouter.com/v1"
assert os.environ["OPENAI_API_KEY"]
# Selection check only; no make_llm() or model request.עקבו אחר נתיב המודל המוצע
נתיב המודל מתחיל לאחר פתרון ה-registry. ליישום עדיין נדרשים לקוח נתונים פיננסיים, הגדרת יקום ותאריך מחקר מפורש. מפתח gateway אינו פרטי גישה ל-Financial Datasets ואינו זכות להפיץ נתוני שוק. אמתו מזהי חברה, מטבע וסמנטיקת חותמות זמן בנפרד. עבור חברות ברישומים מקבילים ציינו אם הניתוח עוסק במנפיק, בסוג מניה מקומי או בקבלה פיקדונית. שמרו ראיות בקשת מודל נפרדות מראיות ספק נתונים כדי שסדרת נתונים פיננסית חסרה לא תאובחן כבעיית LLM.
אמתו החלטות מפוענחות כנתונים
ה-factory שנבדקה עוטפת לקוחות ספק מאחורי מתודת complete(system, user). טקסט התגובה שלה אינו אוטומטית תוצאת מחקר תקינה. בדקו את שכבת הסוכן שמפענחת JSON, מטפלת בהימנעות ומשלבת פלטים. תגובה יכולה להיות לא ריקה אך פגומה, סותרת את עצמה או לא נתמכת בקלט. שמרו את התגובה הגולמית שעברה sanitization ואת האובייקט המפוענח תחת רשומת בקשה אחת. אמתו שדות צפויים ומצבים מותרים במקום להתאים משפט מרגיע. תוצאת missing או rejected היא לא זמינה, לא אות ניטרלי שנכנס בשקט לאגרגציית תיק.
import os
from hedge_fund.llm.client import make_llm, extract_json
from hedge_fund.llm.registry import provider_for
model = os.environ["HEDGE_FUND_LLM_MODEL"]
assert provider_for(model) == "OpenAI"
client = make_llm(model=model)
result = extract_json(client.complete(
"Return a JSON object with a boolean ready field.",
"Set ready to true.",
))
assert result.get("ready") is True
# This request tests the client and parser, not financial research.הפכו את מחזור המחקר הראשון לקטן וניתן לבדיקה
לאחר בדיקת לקוח מורשית בחרו מנפיק אחד ושאלה מוגבלת עם ראיות מורשות או ציבוריות. ודאו שכל כלי נדרש החזיר את החברה והתקופה הצפויות, ואז השוו את ההסבר שנוצר למסמכים המקוריים. השאירו את ההרצה הראשונה לקריאה בלבד ושמרו שלב בדיקה אנושי מפורש. העריכו אם הפלט מצטט ראיות תומכות ומנוגדות, מתעד נתונים חסרים ומבחין בין הנחות לחישובים. שם של תפקיד אנליסט או סגנון השקעה אינו ראיה שההיגיון שנוצר משחזר שיטות או שיפוט של אדם אמיתי.
שמרו על עצמאות ראיות backtest
יישום יכול להשלים מחזור מחקר בזמן שההערכה ההיסטורית שלו אינה תקפה. בדקו חותמות זמן פרסום, נתונים מתוקנים, בחירת חברות ששרדו ושימוש בחדשות נוכחיות ב-prompts היסטוריים. הפרידו תקופות פיתוח, validation ו-held-out לפני איטרציה על prompts או הגדרות אסטרטגיה. שמרו benchmark, הנחות על עלויות עסקה וכל תצורה שנוסתה. בחירה חוזרת של prompt לפי אותה תקופת בדיקה הופכת את התקופה לנתוני פיתוח. דווחו בכנות על הערכה חלקית במקום למלא טבלת תוצאות בתשואה להמחשה שאפשר לטעות ולחשוב שהיא מדידה.
שלטו בכשלים ובהוצאה הכוללת של המחקר
ספרו קריאות מודל, ניסיונות חוזרים, כשלי פענוח, חיובי נתונים פיננסיים וחישוב מקומי ברמת המשימה. timeout של endpoint עלול להשאיר חיוב לא ידוע עד התאמת usage. חזרו על כשלים זמניים בתעבורה בתוך תקציב קבוע; אל תחזרו ללא שינוי על כשלי אימות או בחירת ספק. השאירו שלב שנכשל ואת השגיאה שעברה sanitization זמינים לבדיקה. תשובת gateway hello כללית יכולה לעזור לבודד תעבורה, אך רק בדיקות הלקוח של הפרויקט בודקות את התנהגות המתאם שלו. השוואת עלות שימושית שומרת קבועים את חבילת המקור, התפקידים וקריטריוני קבלת הפלט בין מועמדי המודל.
ראיות ומגבלות
ה-factory וה-registry הנוכחיים נבדקו ב-fc1bf250 ב-5 בספטמבר 2026. הדוגמאות הן תבניות מבוססות מקור; לא בוצעה עבור מדריך זה בקשת APIsRouter או מחזור מחקר מלא. קריאות קודמות דרך gateway אחרים אינן מבססות אינטגרציה זו. בעת אימות הסביבה שמרו בנפרד תוצאות לקוח, כלי נתונים ותוצר מלא.
שאלות נפוצות
מדוע ה-ID המותאם שלי מבקש מפתח Anthropic?
ב-factory שנבדקה ID מודל שאינו רשום נופל ל-Anthropic. בדקו provider_for(model) ואת ה-registry הנוכחי hedge_fund/llm/api_models.json לפני יצירת הלקוח.
האם OPENAI_API_BASE מנתב כל ספק?
לא. הוא נקרא בענף לקוח OpenAI. ספקי registry אחרים יוצרים לקוחות משלהם ועשויים להשתמש בהגדרות שונות.
אילו שדות registry רלוונטיים?
ה-registry שנבדק קורא display_name, model_name ו-provider. שמרו את ID ה-endpoint המדויק ובחרו את התעבורה בכוונה.
האם מודל בתפריט היישום מרמז על גישה ל-endpoint?
לא. בדקו את ה-ID המדויק ואת גישת החשבון מול ה-endpoint שבחרתם. ה-registry של היישום קובע בחירת לקוח, לא קטלוג gateway.
מה לבדוק לאחר שהלקוח מחזיר JSON?
אמתו כלי נתונים פיננסיים, סכמת פלט סוכן, התנהגות הימנעות ותוצר מחקר סופי המקושר לראיות באמצעות משימה מוגבלת.
האם אפשר להשתמש בפלט כדי להציב פקודה אוטומטית?
המדריך הזה מכסה תצורת מחקר. הרשאת פקודה, מגבלות, התאמה ובדיקה תפעולית שייכות למערכת ביצוע שנבדקה בנפרד.