ai-hedge-fund'ı özel bir OpenAI-compatible base URL üzerinde çalıştırın.
Updated 2026-07-30
ai-hedge-fund, OpenAI modellerini LangChain'in ChatOpenAI'ıyla oluşturur ve base URL'i OPENAI_API_BASE'den okur. Bunu https://api.apisrouter.com/v1 olarak ayarlayın, tek bir anahtar export edin; fondaki her analist agent tek bir endpoint üzerinden yönlenir.
Hızlı yanıt: OPENAI_API_BASE artı tek bir anahtar.
ai-hedge-fund'ın OpenAI sağlayıcısı ChatOpenAI(model=model_name, api_key=api_key, base_url=base_url) olarak örneklenir ve bu base_url, src/llm/models.py içinde os.getenv("OPENAI_API_BASE")'den gelir. Yani override, .env'de iki satırdır: OPENAI_API_BASE'i https://api.apisrouter.com/v1 adresine yönlendirin ve OPENAI_API_KEY'i gateway anahtarınıza ayarlayın. OpenAI sağlayıcısı üzerinden çalışan her model artık gateway'e istek gönderir. Değişken adına dikkatlice bakın: bu OPENAI_API_BASE'dir, LangChain dönemi kuralıdır, OPENAI_BASE_URL değil. Yanlış olanı export etmek sessizce yok sayılır ve istekler api.openai.com'a gitmeye devam eder; bu, kurulumun çalışmıyormuş gibi görünmesinin en yaygın nedenidir.
OPENAI_API_BASE=https://api.apisrouter.com/v1
OPENAI_API_KEY=sk-APIsRouter-...
FINANCIAL_DATASETS_API_KEY=... # market data, unrelated to the LLM endpointai-hedge-fund modeli ve sağlayıcıyı nasıl seçer.
ai-hedge-fund (GitHub'da virattt, yaklaşık 62K yıldız), fonu bir agent komitesi olarak simüle eder: tanınmış yatırımcılara modellenmiş analist persona'ları, artı valuation, sentiment, fundamentals ve technicals agent'ları; bunlar bir risk manager ve nihai sinyalleri üreten bir portfolio manager'ı besler. Hepsi çalıştırma başına tek bir model seçimini paylaşır, bu yüzden tek bir çalıştırma model kararınızı her agent ve her ticker'da çarpar. Model seçiminin iki yolu vardır. Etkileşimli olarak, model bayrağı olmadan poetry run python src/main.py --ticker AAPL,MSFT,NVDA çalıştırmak bir questionary seçici açar. Betikli olarak, --model bayrağı bir model adı alır, ama yalnızca repo'nun model registry'sinde var olan adları: find_model_by_name() dizeyi src/llm/api_models.json içinde arar ve her registry girdisi display_name, model_name ve provider taşır. Arama başarısız olursa CLI bir sağlayıcı tahmin etmez; etkileşimli seçiciye geri döner, bu da otomasyon için önemlidir çünkü bilinmeyen bir id, betikli bir çalıştırmayı klavye girdisi bekleyen bir duruma dönüştürür. Provider alanı yönlendirmeye karar veren şeydir. OpenAI işaretli girdiler ChatOpenAI üzerinden gider ve OPENAI_API_BASE'e uyar; Anthropic işaretli girdiler ChatAnthropic ve ANTHROPIC_API_KEY üzerinden gider, base URL'inizi tamamen atlar. Gateway yönlendirmesi için asıl kritik nokta budur: provider sütunu, modeli kimin gerçekten yaptığından bağımsız olarak client'ı ve dolayısıyla endpoint'i seçer.
Tam kurulum: .env artı gateway modeli başına bir registry girdisi.
Registry'nin zaten OpenAI sağlayıcısı altında listelediği modeller için yalnızca .env override'ı yeterlidir; model dizesi endpoint'e olduğu gibi iletilir. Bir Claude, DeepSeek veya Qwen id'sini aynı anahtarla gateway üzerinden çalıştırmak için src/llm/api_models.json'a katalog id'sini model_name olarak ve önemlisi provider olarak "OpenAI" taşıyan bir girdi ekleyin. Provider client'ı seçer, bu yüzden OpenAI işaretli bir girdi, model kendisi bir OpenAI modeli olmasa bile ChatOpenAI ve OPENAI_API_BASE'iniz üzerinden yönlenir. Girdi daha sonra etkileşimli seçicide görünür ve script'lerde --model üzerinden çözümlenir. Bu, kodda bir değişiklik değil, klonunuzda üç satırlık bir JSON düzenlemesidir ve registry'nin zaten kullandığı belgelenmiş şekildir. Provider-native girdileri kontrast olarak akılda tutun: provider'ı Anthropic olan bir registry modeli seçmek ANTHROPIC_API_KEY arar ve doğrudan Anthropic'in endpoint'ine gider. Amacınız her şey için tek bir gateway anahtarıysa modellerinizi OpenAI işaretli girdiler üzerinden çalıştırın ve satıcı başına anahtarları tamamen ayarlanmamış bırakabilirsiniz.
{
"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"
}Bir agent komitesi için model seçmek.
Registry her adayı tek bir bayrak arkasında adreslenebilir kıldığından, dürüst değerlendirme ampiriktir: aynı ticker'ları ve tarihleri iki veya üç modelden geçirin ve sinyalleri ile harcamayı karşılaştırın. Anahtar başına kullanım görünümü her taramayı sizin için fiyatlandırır, bu da model seçimini bir tartışmadan bir ölçüme dönüştürür.
- Bir çalıştırma çok sayıda karardır. Her analist persona, ticker başına aynı dosyalar ve fiyat verisi üzerinde muhakeme yürütür, bu yüzden model seçimi agent sayısı çarpı ticker sayısıyla çarpılır. Bir frontier muhakeme id'si (claude-opus-4-7, gpt-5.5) her kararın kalitesini, karşılık gelen şekilde çarpılmış bir token faturasıyla yükseltir.
- claude-sonnet-4-6 makul varsayılandır: persona muhakemesinin uzun temel bağlam üzerinde tutarlı kalması için yeterince güçlü, bir düzine agent ve bir ticker sepetine yayılan çalıştırmalar için fiyatlandırılmış.
- deepseek-v4-pro ve qwen3.7-max, çalıştırma başına fiyat farkının her backtest tarihinde birikeceği geniş taramalar için benchmark yapılmaya değer.
- Ne seçerseniz seçin, sabitleyin. Hareketli bir modelin farklı anlık görüntülerinden gelen sinyaller bir backtest penceresi boyunca karşılaştırılabilir değildir; tam id'ler kullanın ve model dizesini sonuçların yanında bir rastgele seed gibi kaydedin.
Kullandıkça öde · resmi fiyatların altında
Selected models are priced below official list prices. Exact input, output, cache, and per-request prices are shown for each model.
| Model | Resmi Fiyat | Bizim Fiyatımız |
|---|---|---|
| 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 |
ai-hedge-fund'a özgü hata modları.
Yanlış ortam değişkeni. Bu repo OPENAI_API_BASE'i okur. Diğer araçların kullandığı değişken olan OPENAI_BASE_URL'e başvurulmaz ve onu ayarlamak, override'ın bozuk olduğuna sizi ikna etmek dışında hiçbir şey yapmaz. İstekler hâlâ api.openai.com'a gidiyorsa her şeyden önce değişken adını kontrol edin. Kayıtsız bir id ile --model. find_model_by_name() yalnızca api_models.json'daki girdileri bilir. Kayıtlı olmayan bir katalog id'si geçirin, CLI bir not-found mesajı basar ve etkileşimli seçiciye düşer; bu da bir cron job veya CI çalıştırmasında hata çıkışı değil, sessiz bir askıda kalma anlamına gelir. Önce id'yi kaydedin; ardından betikli çalıştırmalar onu deterministik olarak çözer. Provider işaretli girdiler gateway'i atlıyor. Provider'ı Anthropic, Google veya DeepSeek olan bir registry modeli seçmek, o satıcının native client'ı ve anahtarı üzerinden gider. Çalıştırmanın gateway kullanım logunuzda görünmesini bekliyorsanız ve görünmediyse, seçtiğiniz modelin provider sütunu açıklamadır. LLM hatası gibi görünen veri hataları. Fiyat ve fundamentals verisi, FINANCIAL_DATASETS_API_KEY tarafından yapılandırılan financial-data API'sinden gelir; bu tamamen ayrı bir servistir. Eksik veya tükenmiş bir veri anahtarı, çalıştırmayı LLM çağrılarından önce veya arasında başarısız kılar ve traceback bir model sorunu gibi okunabilir. İki kimlik bilgisi bağımsız olarak başarısız olur; bunları bağımsız olarak hata ayıklayın. Otomasyonda etkileşimli prompt'lar. Her şey yapılandırılmış olsa bile --model bayrağını unutmak seçiciyi açar. Gözetimsiz çalıştırmalar için her zaman kayıtlı bir id ile --model geçirin.
ai-hedge-fund'ı bir gateway üzerinden kim yönlendirir.
- Ticker'ları ve tarih aralıklarını tarayan backtester'lar; burada ticker başına tarih başına bir agent komitesi, token harcamasını baskın maliyet, anahtar başına kullanımı ise doğal defter hâline getirir.
- Model kararlarını karşılaştıran araştırmacılar. Aynı çalıştırma iki model id'si altında bir bayrak değişimidir ve modeller arasındaki sinyal anlaşmazlığı kendi başına ilginç bir veridir.
- Repo'yu, ekledikleri kadar persona altında tek bir endpoint ve tek bir anahtar isteyen yeni agent'larla genişleten builder'lar.
- Provider başına satıcı anahtarı sürdürmeden bir repo içinde Claude veya DeepSeek muhakemesi isteyen, en temiz yönlendirme yolu OpenAI şeklinde olan geliştiriciler.
- Belirli bir satıcının faturalandırmasına erişimi olmayan geliştiriciler. Kart gerektirmeyen yükleme tabanlı erişim, sağlayıcı başına kayıt bağımlılığını ortadan kaldırır.
Endpoint'i doğrulayın ve ilk çalıştırmayı hata ayıklayın.
Bir çalıştırma başlatmadan önce gateway'in kaydettiğiniz id'leri sunduğunu doğrulayın; registry model_name dizeleri sunulan id'lerle tam olarak eşleşmelidir. İlk çalıştırma hata merdiveni: 401, OPENAI_API_KEY'in poetry'nin gerçekte başlattığı ortamdaki gateway anahtarı olmadığı anlamına gelir. Gateway'den gelen bir model-not-found hatası, registry girdisinin model_name'inin /v1/models'a göre bir yazım hatası içerdiği anlamına gelir. Girdi bekleyerek duran bir çalıştırma, --model dizesinin registry'yi ıskaladığı anlamına gelir. Bir satıcı anahtarı hatası (Anthropic, Google), seçilen girdinin provider'ının OpenAI olmadığı anlamına gelir. Ve herhangi bir model çıktısından önceki veri şekilli bir traceback, LLM yoluna değil FINANCIAL_DATASETS_API_KEY'e işaret eder. Bir çalıştırma tamamlandığında, APIsRouter konsolu istek başına modeli, token sayılarını ve harcamayı gösterir. Bir komite çalıştırması, analistler, risk ve portfolio aşamaları genelinde onlarca çağrıdır ve kullanım görünümü, onu bir taramaya ölçeklendirmeden önce bir kararın gerçekte neye mal olduğunu gördüğünüz yerdir.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY" | head -50Sık sorulan sorular
ai-hedge-fund için özel bir base URL'i hangi ortam değişkeni ayarlar?
OPENAI_API_BASE. src/llm/models.py içindeki OpenAI sağlayıcısı, ChatOpenAI'ı base_url=os.getenv("OPENAI_API_BASE") ile oluşturur. OPENAI_BASE_URL bu repo tarafından okunmaz, bu yüzden tam olarak API_BASE yazımını kullanın.
ai-hedge-fund, Claude veya DeepSeek modellerini tek bir anahtar üzerinden çalıştırabilir mi?
Evet, provider "OpenAI" olarak ayarlanmış bir id'yi src/llm/api_models.json içinde kaydederek. Provider client'ı seçer, bu yüzden OpenAI işaretli bir girdi ChatOpenAI ve OPENAI_API_BASE'iniz üzerinden yönlenir ve katalog id'si gateway'e düz bir dize olarak iletilir.
--model beni neden etkileşimli bir seçiciye düşürüyor?
--model değeri api_models.json'a karşı find_model_by_name() ile aranır. Bilinmeyen id'ler tahmin edilmez; CLI bir not-found mesajı basar ve seçiciyi açar. Id için bir registry girdisi ekleyin, betikli çalıştırmalar prompt vermeden onu çözer.
Hâlâ ANTHROPIC_API_KEY veya başka satıcı anahtarlarına ihtiyacım var mı?
Gateway üzerinden yönlendirilen modeller için hayır. Satıcı anahtarlarına yalnızca o satıcının provider'ıyla işaretlenmiş registry girdileri başvurur. Çalıştırdığınız her model OpenAI provider'ı altında kayıtlıysa, gateway anahtarı çalıştırmanın ihtiyaç duyduğu tek LLM kimlik bilgisidir.
LLM endpoint'ini değiştirdiğimde piyasa verisi kurulumu değişir mi?
Hayır. Fiyat ve fundamentals verisi, LLM base URL'inden bağımsız olan FINANCIAL_DATASETS_API_KEY tarafından yapılandırılan financial-data API'si üzerinden akar. İki kimlik bilgisi bir çalıştırmanın farklı aşamalarında başarısız olur, bu yüzden bunları ayrı ayrı hata ayıklayın.
Bir ai-hedge-fund çalıştırması ne kadar pahalıdır?
Agent çarpı ticker ile ölçeklenir: her analist persona, artı risk ve portfolio yönetimi, ticker başına muhakeme yürütür. Tek sepetlik çalıştırmalar tipik olarak on binlerce ile yüz binlerce token arasına düşer ve backtest taramaları bunu tarih ızgarasıyla çarpar. Anahtar başına kullanım görünümü çalıştırma başına kesin rakamı verir.