Konfiguracja własnego API ai-hedge-fund

Updated 2026-09-05

Wybór dostawcy poprzedza konfigurację endpointu. Podążaj za aktualną fabryką modeli i rejestrem, a następnie osobno zweryfikuj dane, wynik agenta i ewaluację.

Ustal aktualną ścieżkę aplikacji

Dla bieżącej aplikacji ai-hedge-fund przed ustawieniem OPENAI_API_BASE potwierdź dostawcę modelu w rejestrze. W rewizji fc1bf250 fabryka klienta znajduje się w hedge_fund/llm/client.py i odczytuje sąsiedni rejestr. Starsze poradniki odwołujące się wyłącznie do src/llm/models.py opisują inną ścieżkę aplikacji. Przypnij swój checkout i użyj entrypointu importującego aktualną fabrykę. Zacznij od preflightu dostawcy poniżej, a następnie uruchom klienta projektu przed zebraniem danych finansowych do pełnego cyklu badawczego.

Ustal dostawcę przed ustawieniem bazowego URL

make_llm wybiera dostawcę na podstawie identyfikatora wybranego modelu. Jego gałąź OpenAI przekazuje OPENAI_API_BASE do ChatOpenAI i odczytuje odpowiedni klucz API. W przejrzanym źródle nieznany identyfikator przechodzi do transportu Anthropic, więc samo wyeksportowanie bazowego URL OpenAI nie wystarcza. Najpierw potwierdź, że dokładny identyfikator modelu endpointu jest zarejestrowany pod OpenAI. OpenAI oznacza tutaj adapter transportowy, a nie poświadcza dostawcy modelu znajdującego się za nim. Nie zmieniaj globalnego wpisu rejestru, dopóki nie rozumiesz każdego procesu, który go używa.

UstawienieCelKontrola
HEDGE_FUND_LLM_MODELWybierz dokładny identyfikator modeluRejestr rozwiązuje go do zamierzonego dostawcy
OPENAI_API_BASENadpisz endpoint transportu OpenAIDotyczy gałęzi OpenAI
OPENAI_API_KEYUwierzytelnij ten transportDostępne dla procesu klienta
api_models.jsonMapuj identyfikatory modeli na dostawcówAktualna ścieżka to hedge_fund/llm/

Przeanalizuj konfigurację bez wykonywania żądania

Poniższy przykład kończy działanie przed utworzeniem klienta, jeśli lokalny rejestr wybiera inny transport. Ustaw RESEARCH_MODEL_ID na identyfikator katalogu, którego rejestrację aplikacji przejrzałeś. Jeśli go brakuje, świadomie dodaj lokalny wiersz rejestru z istniejącymi polami display_name, model_name i provider, zachowując niezwiązane wpisy. Placeholder nie jest twierdzeniem o obsługiwanym modelu. Klucz dostarcz przez środowisko lub magazyn sekretów. Ten preflight sprawdza tylko wybór; nie może ustanowić dostępu do sieci, uprawnienia konta, ustrukturyzowanego wyniku ani jakości badań.

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.

Prześledź proponowaną trasę modelu

Trasa modelu zaczyna się po rozwiązaniu rejestru. Aplikacja nadal potrzebuje klienta danych finansowych, definicji uniwersum i jawnej daty badania. Klucz gatewaya nie jest poświadczeniem Financial Datasets ani prawem do redystrybucji danych rynkowych. Osobno zweryfikuj identyfikatory spółek, walutę i znaczenie znaczników czasu. Dla spółek notowanych na wielu rynkach określ, czy analiza dotyczy emitenta, lokalnej klasy akcji czy kwitu depozytowego. Dowody żądań modelu przechowuj osobno od dowodów danych dostawcy, aby brakująca seria finansowa nie została błędnie zdiagnozowana jako problem LLM.

Trasa transportu OpenAI ai-hedge-fund po wyborze modelu w rejestrze.ai-hedge-fund routes through Dostawca rejestru OpenAI + OPENAI_API_BASE to the APIsRouter gateway (api.apisrouter.com/v1), which fans out to: Registered research model.ai-hedge-fundviaDostawca rejestruOpenAI +OPENAI_API_BASEAPIsRouterapi.apisrouter.com/v1Registered research model
Udokumentowana trasa klienta po wyborze dostawcy. Dane finansowe korzystają z własnego klienta.

Waliduj decyzje po parsowaniu jako dane

Przejrzana fabryka opakowuje klientów dostawcy za pomocą kompletnej metody complete(system, user). Jej tekst odpowiedzi nie jest automatycznie prawidłowym wynikiem badania. Przeanalizuj warstwę agenta, która parsuje JSON, obsługuje wstrzymanie odpowiedzi i łączy wyniki. Odpowiedź może być niepusta, ale źle sformatowana, wewnętrznie sprzeczna lub niepoparta danymi wejściowymi. Surową zredagowaną odpowiedź i sparsowany obiekt zachowaj pod jednym rekordem żądania. Waliduj wymagane pola i dozwolone stany, zamiast dopasowywać uspokajające zdanie. Brakujący lub odrzucony wynik traktuj jako niedostępny, a nie neutralny sygnał po cichu trafiający do agregacji portfela.

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.

Uczyń pierwszy cykl badawczy małym i możliwym do przejrzenia

Po autoryzowanym teście klienta wybierz jednego emitenta i ograniczone pytanie oparte na licencjonowanych lub publicznych dowodach. Potwierdź, że każde wymagane narzędzie zwróciło oczekiwaną spółkę i okres, a następnie porównaj wygenerowane wyjaśnienie z oryginalnymi dokumentami. Pierwsze uruchomienie utrzymuj jako tylko do odczytu i zachowaj jawny etap przeglądu człowieka. Oceń, czy wynik cytuje dowody wspierające i przeciwne, zapisuje brakujące dane oraz odróżnia założenia od obliczeń. Nazwa roli analityka lub stylu inwestowania nie jest dowodem, że wygenerowane rozumowanie odtwarza metody czy osąd prawdziwej osoby.

Utrzymuj niezależność dowodów backtestu

Aplikacja może zakończyć cykl badawczy, podczas gdy jej ewaluacja historyczna pozostaje nieprawidłowa. Zbadaj znaczniki czasu publikacji, zmienione dane, dobór spółek, które przetrwały, oraz użycie bieżących wiadomości w historycznych promptach. Przed iteracją promptów lub ustawień strategii oddziel okresy rozwoju, walidacji i odłożonych danych. Zachowaj benchmark, założenia kosztów transakcyjnych i każdą testowaną konfigurację. Wielokrotny wybór promptu na podstawie tego samego okresu testowego zmienia ten okres w dane rozwojowe. Raportuj niepełną ewaluację uczciwie, zamiast wypełniać tabelę wyników ilustracyjną stopą zwrotu, którą można pomylić z pomiarem.

Kontroluj awarie i całkowite wydatki badawcze

Na poziomie zadania licz wywołania modelu, ponowienia, błędy parsowania, opłaty za dane finansowe i obliczenia lokalne. Timeout endpointu może pozostawić rozliczenie nieznane do czasu uzgodnienia użycia. Chwilowe awarie transportu ponawiaj w stałym budżecie; nie powtarzaj bez zmian błędów uwierzytelniania ani wyboru dostawcy. Zachowaj zawodny etap i jego oczyszczony błąd do przeglądu. Ogólna odpowiedź gatewaya hello może pomóc odizolować transport, ale tylko własne testy klienta projektu sprawdzają zachowanie adaptera. Użyteczne porównanie kosztów utrzymuje pakiet źródłowy, role i kryteria akceptacji wyniku bez zmian między modelami.

Dowody i ograniczenia

Aktualna fabryka i rejestr zostały przejrzane w fc1bf250 5 września 2026 r. Przykłady są szablonami opartymi na źródłach; na potrzeby tego przewodnika nie wykonano żądania APIsRouter ani pełnego cyklu badawczego. Wcześniejsze wywołania przez inne gatewaye nie ustanawiają tej integracji. Podczas walidacji środowiska trzymaj osobno wyniki klienta, narzędzi danych i kompletnego artefaktu.

Częste pytania

Dlaczego mój własny identyfikator prosi o klucz Anthropic?

W przejrzanej fabryce niezarejestrowany identyfikator modelu przechodzi do Anthropic. Przed utworzeniem klienta sprawdź provider_for(model) i aktualny rejestr hedge_fund/llm/api_models.json.

Czy OPENAI_API_BASE przekierowuje każdego dostawcę?

Nie. Jest odczytywany w gałęzi klienta OpenAI. Inni dostawcy rejestru tworzą własnych klientów i mogą używać innych ustawień.

Które pola rejestru są istotne?

Przejrzany rejestr odczytuje display_name, model_name i provider. Zachowaj dokładny identyfikator endpointu i świadomie wybierz transport.

Czy model w menu aplikacji oznacza dostęp do endpointu?

Nie. Sprawdź dokładny identyfikator i dostęp konta dla wybranego endpointu. Rejestr aplikacji wybiera klienta, a nie katalog gatewaya.

Co sprawdzić, gdy klient zwróci JSON?

Zweryfikuj narzędzia danych finansowych, schemat wyniku agenta, zachowanie przy wstrzymaniu i końcowy artefakt badawczy powiązany z dowodami na ograniczonym zadaniu.

Czy mogę użyć wyniku do automatycznego złożenia zlecenia?

Ten przewodnik dotyczy konfiguracji badań. Autoryzacja zleceń, limity, uzgadnianie i przegląd operacyjny należą do osobno zweryfikowanego systemu realizacji.