Jalankan ai-hedge-fund pada base URL serasi OpenAI custom.

Updated 2026-07-30

ai-hedge-fund membina model OpenAI-nya dengan ChatOpenAI LangChain dan membaca base URL daripada OPENAI_API_BASE. Tetapkannya kepada https://api.apisrouter.com/v1, eksport satu kunci, dan setiap agent analyst dalam fund menghalakan melalui satu endpoint.

Jawapan pantas: OPENAI_API_BASE ditambah satu kunci.

Penyedia OpenAI ai-hedge-fund dibina sebagai ChatOpenAI(model=model_name, api_key=api_key, base_url=base_url), dan base_url itu datang daripada os.getenv("OPENAI_API_BASE") dalam src/llm/models.py. Jadi override itu adalah dua baris dalam .env: arahkan OPENAI_API_BASE ke https://api.apisrouter.com/v1 dan tetapkan OPENAI_API_KEY kepada kunci gateway anda. Setiap model yang berjalan melalui penyedia OpenAI kini menghantar ke gateway. Perhatikan nama pembolehubah dengan teliti: ia adalah OPENAI_API_BASE, konvensyen era LangChain, bukan OPENAI_BASE_URL. Mengeksport yang salah diabaikan secara senyap dan permintaan terus pergi ke api.openai.com, cara paling biasa persediaan ini kelihatan tidak berfungsi.

OPENAI_API_BASE=https://api.apisrouter.com/v1
OPENAI_API_KEY=sk-APIsRouter-...
FINANCIAL_DATASETS_API_KEY=...   # data pasaran, tidak berkaitan dengan endpoint LLM

Bagaimana ai-hedge-fund memilih model dan penyedia.

ai-hedge-fund (virattt di GitHub, lebih kurang 62K bintang) mensimulasikan fund sebagai jawatankuasa agent: persona analyst dimodelkan atas pelabur terkenal, ditambah agent penilaian, sentimen, fundamental, dan teknikal, yang memberi makan kepada pengurus risiko dan pengurus portfolio yang menghasilkan isyarat akhir. Semua ini berkongsi satu pilihan model per larian, jadi satu larian menggandakan keputusan model anda merentasi setiap agent dan setiap ticker. Pemilihan model mempunyai dua laluan. Secara interaktif, menjalankan poetry run python src/main.py --ticker AAPL,MSFT,NVDA tanpa flag model membuka pemilih questionary. Secara berskrip, flag --model mengambil nama model, tetapi hanya nama yang wujud dalam registry model repo: find_model_by_name() mencari rentetan itu dalam src/llm/api_models.json, dan setiap entri registry membawa display_name, model_name, dan provider. Jika carian gagal, CLI tidak meneka penyedia; ia kembali kepada pemilih interaktif, yang penting untuk automasi kerana id yang tidak dikenali menukar larian berskrip menjadi larian yang menunggu input papan kekunci. Medan provider adalah yang menentukan penghalaan. Entri yang ditanda OpenAI melalui ChatOpenAI dan menghormati OPENAI_API_BASE; entri yang ditanda Anthropic melalui ChatAnthropic dan ANTHROPIC_API_KEY, memintas base URL anda sepenuhnya. Itulah wawasan utama untuk penghalaan gateway: lajur provider memilih klien dan justeru endpoint, tidak kira siapa sebenarnya mencipta model itu.

Persediaan penuh: .env ditambah satu entri registry per model gateway.

Untuk model yang sudah disenaraikan registry di bawah penyedia OpenAI, override .env sahaja sudah memadai; rentetan model diteruskan kepada endpoint sebagaimana adanya. Untuk menjalankan id Claude, DeepSeek, atau Qwen melalui gateway pada kunci yang sama, tambah entri ke src/llm/api_models.json dengan id katalog sebagai model_name dan, yang penting, "OpenAI" sebagai provider. Provider memilih klien, jadi entri yang ditanda OpenAI menghalakan melalui ChatOpenAI dan OPENAI_API_BASE anda walaupun model itu sendiri bukan model OpenAI. Entri itu kemudian muncul dalam pemilih interaktif dan diselesaikan melalui --model dalam skrip. Ini adalah suntingan JSON tiga baris dalam klon anda, bukan perubahan kod, dan ia adalah bentuk yang didokumentasikan yang sudah digunakan registry. Ingat entri asli-penyedia sebagai kontras: memilih model registry yang ditanda Anthropic akan mencari ANTHROPIC_API_KEY dan terus ke endpoint asli Anthropic. Jika niat anda adalah satu kunci gateway untuk semuanya, jalankan model anda melalui entri yang ditanda OpenAI dan anda boleh biarkan kunci setiap vendor tidak ditetapkan langsung.

{
  "display_name": "Claude Sonnet 4.6 (gateway)",
  "model_name": "claude-sonnet-4-6",
  "provider": "OpenAI"
},
{
  "display_name": "DeepSeek V4 Pro (gateway)",
  "model_name": "deepseek-v4-pro",
  "provider": "OpenAI"
}

Memilih model untuk jawatankuasa agent.

Kerana registry menjadikan setiap calon boleh dicapai di sebalik satu flag, penilaian jujur adalah empirikal: jalankan ticker dan tarikh yang sama melalui dua atau tiga model dan bandingkan isyarat serta perbelanjaan. Pandangan penggunaan per-kunci menetapkan harga setiap pengimbasan untuk anda, yang menukar pilihan model daripada perdebatan kepada pengukuran.

  • Satu larian adalah banyak keputusan. Setiap persona analyst menaakul atas failing dan data harga yang sama per ticker, jadi pilihan model digandakan dengan bilangan agent didarab bilangan ticker. Id penaakulan frontier (claude-opus-4-7, gpt-5.5) meningkatkan kualiti setiap keputusan pada bil token yang turut berganda.
  • claude-sonnet-4-6 adalah lalai yang munasabah: cukup kuat supaya penaakulan persona kekal koheren atas konteks fundamental panjang, berharga untuk larian yang mengagihkan merentasi selusin agent dan sebakul ticker.
  • deepseek-v4-pro dan qwen3.7-max berbaloi ditanda aras untuk pengimbasan luas, di mana jurang harga per-larian berganda merentasi setiap tarikh backtest.
  • Apa sahaja pilihan anda, pinkannya. Isyarat daripada snapshot berbeza model yang bergerak tidak boleh dibandingkan merentasi tetingkap backtest; guna id tepat dan rekod rentetan model bersebelahan keputusan seperti seed rawak.

Bayar mengikut penggunaan · bawah harga rasmi

Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.

ModelHarga RasmiHarga Kami
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
Qwen 3.7 Max$2.50 / $7.50 per M$2.50 / $7.50 per M

Mod kegagalan khusus ai-hedge-fund.

Pembolehubah environment yang salah. Repo ini membaca OPENAI_API_BASE. OPENAI_BASE_URL, pembolehubah yang digunakan alat lain, tidak dirujuk, dan menetapkannya tidak melakukan apa-apa selain meyakinkan anda override itu rosak. Jika permintaan masih mencecah api.openai.com, semak nama pembolehubah dahulu sebelum apa-apa lain. --model dengan id yang tidak berdaftar. find_model_by_name() hanya mengenali entri dalam api_models.json. Berikan id katalog yang tidak berdaftar dan CLI mencetak mesej not-found lalu jatuh ke pemilih interaktif, yang dalam kerja cron atau larian CI bermaksud kebekuan senyap, bukan keluar dengan ralat. Daftarkan id dahulu; kemudian larian berskrip menyelesaikannya secara deterministik. Entri bertanda-penyedia memintas gateway. Memilih model registry yang penyedianya Anthropic, Google, atau DeepSeek menghalakan melalui klien dan kunci asli vendor itu. Jika anda menjangka larian muncul dalam log penggunaan gateway anda dan ia tidak, lajur provider model yang anda pilih adalah penjelasannya. Ralat data menyamar sebagai ralat LLM. Data harga dan fundamental datang daripada API data-kewangan yang dikonfigurasikan oleh FINANCIAL_DATASETS_API_KEY, perkhidmatan yang sama sekali berasingan. Kunci data yang hilang atau habis menggagalkan larian sebelum atau di antara panggilan LLM, dan traceback boleh dibaca seperti masalah model. Kedua-dua kelayakan gagal secara berasingan; nyahpepijat secara berasingan. Gesaan interaktif dalam automasi. Walaupun semuanya dikonfigurasikan, terlupa flag --model membuka pemilih. Untuk larian tanpa pengawasan, sentiasa berikan --model dengan id berdaftar.

Siapa yang menghalakan ai-hedge-fund melalui gateway.

  • Backtester yang mengimbas ticker dan julat tarikh, di mana jawatankuasa agent per ticker per tarikh menjadikan perbelanjaan token kos dominan dan penggunaan per-kunci lejar semula jadi.
  • Penyelidik yang membandingkan keputusan model. Larian yang sama di bawah dua id model adalah pertukaran flag, dan percanggahan isyarat antara model itu sendiri adalah data menarik.
  • Pembina yang melanjutkan repo dengan agent baharu yang mahukan satu endpoint dan satu kunci di sebalik berapa banyak pun persona yang mereka tambah.
  • Pembangun yang mahukan penaakulan Claude atau DeepSeek dalam repo yang laluan penghalaan paling bersihnya berbentuk OpenAI, tanpa menyelenggara kunci vendor per entri penyedia.
  • Pembangun tanpa akses kepada pengebilan vendor tertentu. Akses berasaskan top-up tanpa keperluan kad menghapuskan kebergantungan pendaftaran setiap penyedia.

Sahkan endpoint dan nyahpepijat larian pertama.

Sahkan gateway melayani id yang anda daftarkan sebelum melancarkan larian; rentetan model_name registry mesti sepadan tepat dengan id yang dilayani. Tangga kegagalan larian-pertama: 401 bermaksud OPENAI_API_KEY bukan kunci gateway dalam environment yang sebenarnya digunakan poetry untuk melancarkan. Ralat model-not-found daripada gateway bermaksud model_name entri registry mempunyai kesilapan taip berbanding /v1/models. Larian yang berhenti untuk meminta input bermaksud rentetan --model terlepas registry. Ralat kunci-vendor (Anthropic, Google) bermaksud provider entri yang dipilih bukan OpenAI. Dan traceback berbentuk data sebelum sebarang output model menunjuk kepada FINANCIAL_DATASETS_API_KEY, bukan laluan LLM. Sebaik sahaja larian selesai, konsol APIsRouter menunjukkan model per permintaan, kiraan token, dan perbelanjaan. Larian jawatankuasa adalah berpuluh-puluh panggilan merentasi analyst, risiko, dan peringkat portfolio, dan pandangan penggunaan adalah cara anda melihat kos sebenar satu keputusan sebelum anda menskalakannya ke dalam satu pengimbasan.

curl -s https://api.apisrouter.com/v1/models \
  -H "Authorization: Bearer $OPENAI_API_KEY" | head -50

Soalan lazim

Pembolehubah environment mana yang menetapkan base URL custom untuk ai-hedge-fund?

OPENAI_API_BASE. Penyedia OpenAI dalam src/llm/models.py membina ChatOpenAI dengan base_url=os.getenv("OPENAI_API_BASE"). OPENAI_BASE_URL tidak dibaca oleh repo ini, jadi guna ejaan API_BASE dengan tepat.

Bolehkah ai-hedge-fund menjalankan model Claude atau DeepSeek melalui satu kunci?

Ya, dengan mendaftarkan id dalam src/llm/api_models.json dengan provider ditetapkan kepada "OpenAI". Provider memilih klien, jadi entri bertanda OpenAI menghalakan melalui ChatOpenAI dan OPENAI_API_BASE anda, dan id katalog diteruskan kepada gateway sebagai rentetan biasa.

Mengapa --model menjatuhkan saya ke dalam pemilih interaktif?

Nilai --model dicari dengan find_model_by_name() terhadap api_models.json. Id yang tidak dikenali tidak diteka; CLI mencetak mesej not-found dan membuka pemilih. Tambah entri registry untuk id itu dan larian berskrip menyelesaikannya tanpa gesaan.

Adakah saya masih memerlukan ANTHROPIC_API_KEY atau kunci vendor lain?

Tidak untuk model yang dihalakan melalui gateway. Kunci vendor hanya dirujuk oleh entri registry yang ditanda dengan provider vendor itu. Jika setiap model yang anda jalankan berdaftar di bawah provider OpenAI, kunci gateway adalah satu-satunya kelayakan LLM yang diperlukan larian.

Adakah persediaan data-pasaran berubah apabila saya menukar endpoint LLM?

Tidak. Data harga dan fundamental mengalir melalui API data-kewangan yang dikonfigurasikan oleh FINANCIAL_DATASETS_API_KEY, yang bebas daripada base URL LLM. Kedua-dua kelayakan gagal pada fasa larian yang berbeza, jadi nyahpepijat secara berasingan.

Berapa mahal satu larian ai-hedge-fund?

Ia berskala dengan agent didarab ticker: setiap persona analyst, ditambah pengurusan risiko dan portfolio, menaakul per ticker. Larian sebakul tunggal biasanya mendarat pada puluhan hingga ratusan ribu token, dan pengimbasan backtest menggandakannya dengan grid tarikh. Pandangan penggunaan per-kunci memberikan angka tepat per larian.