ai-hedge-fundカスタムAPIセットアップ

Updated 2026-09-05

エンドポイント設定より先にプロバイダーを選びます。現在のモデルファクトリーとレジストリに従い、データ、エージェント出力、評価を別々の段階として検証します。

現在のアプリケーション経路を特定する

現在のai-hedge-fundアプリケーションでは、OPENAI_API_BASEを設定する前に、モデルのレジストリプロバイダーを確認します。リビジョンfc1bf250では、クライアントファクトリーはhedge_fund/llm/client.pyにあり、その隣のレジストリを読みます。src/llm/models.pyだけを参照する古いチュートリアルは別のアプリケーション経路を説明しています。チェックアウトを固定し、現在のファクトリーをインポートするエントリーポイントを使います。以下のプロバイダープリフライトから始め、完全なリサーチサイクル用の金融データを集める前にプロジェクトクライアントを操作します。

ベースURLを設定する前にプロバイダーを解決する

make_llmは、選択したモデル識別子からプロバイダーを選びます。OpenAIブランチはOPENAI_API_BASEをChatOpenAIへ渡し、対応するAPIキーを読みます。未知の識別子はレビューしたソースではAnthropicトランスポートへフォールバックするため、OpenAIのベースURLをエクスポートするだけでは不十分です。まず正確なエンドポイントモデルIDがOpenAIの下に登録されていることを確認します。ここでOpenAIが識別するのはトランスポートアダプターであり、基礎となるモデルベンダーを認証するものではありません。そこからすべてのワークフローが影響を受けることを理解せずに、グローバルレジストリの項目を変更しないでください。

設定目的確認
HEDGE_FUND_LLM_MODEL正確なモデルIDを選択レジストリが意図したプロバイダーを解決する
OPENAI_API_BASEOpenAIトランスポートのエンドポイントを上書きOpenAIブランチに適用される
OPENAI_API_KEYそのトランスポートを認証クライアントプロセスから利用できる
api_models.jsonモデルIDをプロバイダーへマッピング現在の経路はhedge_fund/llm/

リクエストを送らずに設定を検査する

以下の例は、ローカルレジストリが別のトランスポートを選ぶ場合、クライアント構築前に失敗します。アプリケーション登録をレビューしたカタログIDをRESEARCH_MODEL_IDに設定します。存在しない場合は、関係のない項目を保持しながら、既存のdisplay_name、model_name、providerフィールドを使ってローカルレジストリの行を意図的に追加します。プレースホルダーは対応モデルの主張ではありません。キーは環境またはシークレットストアから渡します。このプリフライトが確認するのは選択だけであり、ネットワークアクセス、アカウント権限、構造化出力、リサーチ品質は確定できません。

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.

提案するモデル経路を追跡する

モデル経路はレジストリ解決後に始まります。アプリケーションには金融データクライアント、ユニバース定義、明示的なリサーチ日も必要です。ゲートウェイキーはFinancial Datasetsの認証情報でも、市場データを再配布する権利でもありません。会社識別子、通貨、タイムスタンプの意味を独立に検証します。クロス上場企業では、発行体、現地株式クラス、預託証券のどれを分析するか指定します。モデルリクエストの証拠をプロバイダーデータの証拠から分け、欠落した金融系列をLLMの問題と誤診しないようにします。

モデルレジストリ選択後のai-hedge-fund OpenAIトランスポート経路。ai-hedge-fund routes through OpenAIレジストリプロバイダー + OPENAI_API_BASE to the APIsRouter gateway (api.apisrouter.com/v1), which fans out to: Registered research model.ai-hedge-fundviaOpenAIレジストリプロバイダー +OPENAI_API_BASEAPIsRouterapi.apisrouter.com/v1Registered research model
プロバイダー選択後の文書化されたクライアント経路。金融データは独自のクライアントを使います。

解析した判断をデータとして検証する

レビューしたファクトリーは、providerクライアントをcomplete(system, user)メソッドの背後に置きます。そのレスポンステキストは、自動的に有効なリサーチ結果にはなりません。JSONを解析し、棄権を処理し、出力を統合するエージェント層を検査します。レスポンスが空でなくても、形式不正、内部矛盾、入力による裏付けの欠如があり得ます。未加工の秘匿化レスポンスと解析済みオブジェクトを一つのリクエスト記録の下に保存します。安心させる文を照合するのではなく、期待フィールドと許可状態を検証します。欠落または拒否された結果は利用不可として扱い、ポートフォリオ集計へ黙って入る中立シグナルにはしません。

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.

最初のリサーチサイクルを小さくレビュー可能にする

承認済みのクライアントテスト後、ライセンスされたまたは公開された証拠を使い、一社と範囲を限定した問いを選びます。必要な各ツールが想定した会社と期間を返したことを確認し、生成された説明を元の文書と比較します。初回実行は読み取り専用にし、明示的な人間レビューを残します。出力が裏付けと反対の証拠を引用し、欠落データを記録し、仮定と計算を分けているか評価します。アナリストの役割名や投資スタイル名は、生成された推論が実在の人物の方法や判断を再現する証拠ではありません。

バックテストの証拠を独立に保つ

アプリケーションがリサーチサイクルを完了しても、過去の評価が無効な場合があります。公開タイムスタンプ、修正データ、存続企業だけの選択、過去プロンプトで現在のニュースを使っていないかを調べます。プロンプトや戦略設定を反復する前に、開発、検証、ホールドアウトの期間を分けます。ベンチマーク、取引コストの仮定、試したすべての設定を保存します。同じテスト期間を基準にプロンプトを選び続けると、その期間は開発データになります。結果表を例示的なリターンで埋めず、不完全な評価を正直に報告します。

失敗とリサーチ総支出を管理する

ジョブ単位でモデル呼び出し、リトライ、解析失敗、金融データ料金、ローカル計算を数えます。使用量の照合までエンドポイントタイムアウトの課金が不明な場合があります。トランスポートの一時失敗は固定予算内でリトライします。認証やプロバイダー選択の失敗を変えずにリトライしないでください。失敗段階とサニタイズしたエラーをレビュー用に利用できるようにします。一般的なゲートウェイのhelloレスポンスはトランスポートの切り分けに役立ちますが、アダプターの動作をテストするのはプロジェクト自身のクライアントだけです。モデル候補を比較するときは、ソースパケット、役割、出力受け入れ基準を固定します。

証拠と限界

現在のファクトリーとレジストリは、2026年9月5日にfc1bf250でレビューしました。例はソースに基づくテンプレートであり、このガイドのためにAPIsRouterリクエストや完全なリサーチサイクルは実行していません。別のゲートウェイ経由の過去の呼び出しは、この統合を確立しません。環境を検証するときは、クライアント、データツール、完全な成果物の結果を分けて保持します。

よくある質問

カスタムIDがAnthropicキーを求めるのはなぜですか?

レビューしたファクトリーでは、未登録のモデルIDがAnthropicへフォールバックします。クライアント構築前にprovider_for(model)と現在のhedge_fund/llm/api_models.jsonレジストリを確認してください。

OPENAI_API_BASEはすべてのプロバイダーを再ルーティングしますか?

いいえ。OpenAIクライアントブランチで読み取られます。他のレジストリプロバイダーは独自のクライアントを構築し、異なる設定を使う場合があります。

関連するレジストリフィールドはどれですか?

レビューしたレジストリはdisplay_name、model_name、providerを読みます。正確なエンドポイントIDを保持し、トランスポートを意図的に選びます。

アプリケーションのメニューにモデルがあればエンドポイントアクセスを意味しますか?

いいえ。選択したエンドポイントで正確なIDとアカウントアクセスを確認します。アプリケーションのレジストリが決めるのはクライアント選択であり、ゲートウェイカタログではありません。

クライアントがJSONを返した後に何を確認すべきですか?

範囲を限定したタスクで、金融データツール、エージェント出力スキーマ、棄権動作、最終的な証拠に結び付いたリサーチ成果物を検証します。

出力を使って自動的に注文できますか?

このガイドはリサーチ設定を扱います。注文承認、上限、照合、運用レビューは、別に検証された執行システムに属します。