Custom API setup ng ai-hedge-fund
Updated 2026-09-05
Mauuna ang provider selection sa endpoint configuration. Sundin ang kasalukuyang model factory at registry, saka hiwalay na i-validate ang data, agent output, at evaluation stage.
Tukuyin ang kasalukuyang application path
Para sa kasalukuyang ai-hedge-fund application, kumpirmahin ang registry provider ng model bago itakda ang OPENAI_API_BASE. Sa revision fc1bf250, nasa hedge_fund/llm/client.py ang client factory at nagbabasa ito ng registry na katabi nito. Ibang application path ang inilalarawan ng mas lumang tutorial na src/llm/models.py lamang ang tinutukoy. I-pin ang checkout at gamitin ang entrypoint na nag-i-import ng kasalukuyang factory. Magsimula sa provider preflight sa ibaba, saka patakbuhin ang project client bago mangolekta ng financial data para sa kumpletong research cycle.
Lutasin ang provider bago itakda ang base URL
Pumipili ang make_llm ng provider mula sa napiling model identifier. Ipinapasa ng OpenAI branch nito ang OPENAI_API_BASE sa ChatOpenAI at binabasa ang kaukulang API key. Nagfa-fallback sa Anthropic transport ang unknown identifier sa nasuring source, kaya hindi sapat ang simpleng pag-export ng OpenAI base URL. Kumpirmahin muna na nakarehistro sa OpenAI ang eksaktong endpoint model ID. Dito, tinutukoy ng OpenAI ang transport adapter; hindi nito kino-certify ang pinagmulan ng underlying model. Huwag baguhin ang global registry entry hangga't hindi mo nauunawaan ang bawat workflow na gumagamit nito.
| Konfigurasyon | Layunin | Pagsusuri |
|---|---|---|
| HEDGE_FUND_LLM_MODEL | Pumili ng eksaktong model ID | Nare-resolve ng registry ang nilalayong provider |
| OPENAI_API_BASE | I-override ang OpenAI transport endpoint | Nalalapat sa OpenAI branch |
| OPENAI_API_KEY | I-authenticate ang transport na iyon | Available sa client process |
| api_models.json | I-map ang model ID sa mga provider | Ang kasalukuyang path ay hedge_fund/llm/ |
Siyasatin ang configuration nang hindi nagpapadala ng request
Bumabagsak ang example sa mismong simula bago ang client construction kung ibang transport ang pinipili ng lokal na registry. Itakda ang RESEARCH_MODEL_ID sa catalog ID na nasuri mo ang application registration. Kung wala ito, sadyang magdagdag ng lokal na registry row gamit ang kasalukuyang display_name, model_name, at provider field, habang pinananatili ang hindi kaugnay na entry. Hindi supported model claim ang placeholder. Ibigay ang key sa environment o secret store. Selection lamang ang sinusuri ng preflight na ito; hindi nito mapatutunayan ang network access, account entitlement, structured output, o kalidad ng research.
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.Subaybayan ang iminungkahing model route
Nagsisimula ang model route matapos ma-resolve ang registry. Kailangan pa rin ng application ng financial data client, universe definition, at tahasang research date. Hindi Financial Datasets credential o karapatang mag-redistribute ng market data ang gateway key. Hiwalay na i-validate ang company identifier, currency, at timestamp semantic. Para sa cross-listed company, tukuyin kung issuer, local share class, o depositary receipt ang sakop ng analysis. Panatilihing hiwalay ang model-request evidence sa provider-data evidence upang hindi mapagkamalang LLM problem ang nawawalang financial series.
I-validate ang parsed decision bilang data
Ibinabalot ng nasuring factory ang provider client sa likod ng kumpletong complete(system, user) method. Hindi awtomatikong valid research result ang response text nito. Siyasatin ang agent layer na nagpa-parse ng JSON, humahawak ng abstention, at nagsasama ng output. Maaaring nonempty ngunit malformed, internally contradictory, o unsupported ng input ang response. Panatilihin ang raw redacted response at parsed object sa iisang request record. I-validate ang inaasahang field at pinahihintulutang state sa halip na mag-match ng nakapagpapakalma na sentence. Ituring na unavailable ang nawawala o tinanggihang result, hindi neutral signal na tahimik na pumapasok sa portfolio aggregation.
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.Gawing maliit at reviewable ang unang research cycle
Pagkatapos ng awtorisadong client test, pumili ng isang issuer at limitadong tanong na may lisensyado o pampublikong ebidensya. Kumpirmahing ibinalik ng bawat kailangang tool ang tamang kumpanya at period, saka ihambing ang generated explanation sa orihinal na dokumento. Panatilihing read-only ang initial run at maglaan ng tahasang human review step. Suriin kung binabanggit ng output ang sumusuporta at sumasalungat na ebidensya, itinatala ang nawawalang data, at inihihiwalay ang assumption sa calculation. Ang pangalan ng analyst role o investing style ay hindi ebidensya na ginagaya ng generated reasoning ang pamamaraan o paghatol ng totoong tao.
Panatilihing independent ang backtest evidence
Maaaring makumpleto ng application ang research cycle habang invalid pa rin ang historical evaluation nito. Suriin ang publication timestamp, revised data, pagpili ng surviving company, at anumang paggamit ng kasalukuyang balita sa historical prompt. Ihiwalay ang development, validation, at held-out period bago mag-iterate sa prompt o strategy setting. I-save ang benchmark, transaction-cost assumption, at bawat sinubukang configuration. Ang paulit-ulit na pagpili ng prompt batay sa parehong test period ay ginagawang development data ang period na iyon. Iulat nang tapat ang hindi kumpletong evaluation sa halip na punan ang result table ng halimbawang return na maaaring mapagkamalang measurement.
Kontrolin ang failure at kabuuang research spend
Bilangin sa job level ang model call, retry, parsing failure, financial-data charge, at lokal na computation. Maaaring manatiling unknown ang billing ng endpoint timeout hanggang ma-reconcile ang usage. I-retry ang transient transport failure sa loob ng fixed budget; huwag i-retry nang walang pagbabago ang authentication o provider-selection failure. Panatilihing available para sa review ang nabigong stage at sanitized error nito. Makakatulong ang generic gateway hello response sa paghihiwalay ng transport, ngunit client test lamang ng project mismo ang sumusubok sa adapter behavior nito. Ang kapaki-pakinabang na cost comparison ay nagpapanatili ng source packet, role, at output acceptance criteria na pareho sa bawat model candidate.
Ebidensya at mga limitasyon
Sinuri ang kasalukuyang factory at registry sa fc1bf250 noong September 5, 2026. Source-backed template ang mga example; walang APIsRouter request o kumpletong research cycle na isinagawa para sa guide na ito. Hindi itinatatag ng mga naunang call sa ibang gateway ang integration na ito. Panatilihing hiwalay ang resulta ng client, data tool, at kumpletong artifact kapag bine-validate ang environment.
Mga madalas itanong
Bakit humihingi ang custom ID ko ng Anthropic key?
Sa nasuring factory, nagfa-fallback sa Anthropic ang unregistered model ID. Suriin ang provider_for(model) at kasalukuyang hedge_fund/llm/api_models.json registry bago ang client construction.
Nire-route ba ng OPENAI_API_BASE ang bawat provider?
Hindi. Binabasa ito sa OpenAI client branch. Gumagawa ang ibang registry provider ng sarili nilang client at maaaring ibang setting ang gamitin.
Aling registry field ang mahalaga?
Binabasa ng nasuring registry ang display_name, model_name, at provider. Panatilihin ang eksaktong endpoint ID at sadyang piliin ang transport.
Ipinahihiwatig ba ng model sa application menu ang endpoint access?
Hindi. Suriin ang eksaktong ID at account access gamit ang napili mong endpoint. Tinutukoy ng application registry ang client selection, hindi ang gateway catalog.
Ano ang dapat kong suriin pagkatapos magbalik ng JSON ang client?
I-validate ang financial-data tool, agent output schema, abstention behavior, at final evidence-linked research artifact gamit ang limitadong task.
Maaari ko bang gamitin ang output para awtomatikong maglagay ng order?
Saklaw ng guide na ito ang research configuration. Ang order authorization, limit, reconciliation, at operational review ay kabilang sa hiwalay na validated execution system.