FinRobot'u özel bir OpenAI-compatible endpoint üzerinde çalıştırın.
Updated 2026-07-30
FinRobot, LLM kimlik bilgilerini girdileri base_url anahtarını kabul eden bir AutoGen OAI_CONFIG_LIST dosyasından okur. https://api.apisrouter.com/v1'e işaret eden ve bir gateway anahtarı taşıyan bir girdi ekleyin; forecaster, rapor yazarı ve RAG agent'ları katalogdaki herhangi bir model id'sinde çalışabilir.
Hızlı yanıt: OAI_CONFIG_LIST'te bir girdi.
FinRobot'un kurulum talimatları, OAI_CONFIG_LIST_sample'ı OAI_CONFIG_LIST olarak yeniden adlandırmanızı ve kimlik bilgilerini doldurmanızı ister. O dosya standart bir AutoGen config listesidir: her girdinin model ve api_key aldığı, isteğe bağlı olarak da base_url aldığı bir JSON dizisi, ki gönderilen örnek bunu varsayılan olmayan endpoint'ler için zaten gösterir. Gateway anahtarınızla ve base_url'i https://api.apisrouter.com/v1 olarak ayarlanmış bir girdi ekleyin; dosyayı yükleyen her FinRobot agent'ı onun üzerinden yönlenebilir. İnsanların zamanını kaybettiren bir tuzak: eğitimler dosyayı, model adına göre girdi seçen bir filter_dict ile autogen.config_list_from_json üzerinden yükler. Yeni girdiniz claude-sonnet-4-6 diyorsa ama filter hâlâ örneğin GPT id'sini istiyorsa, girdiniz filtrelenir ve çalıştırma eski kimlik bilgileriyle başarısız olur. filter_dict'i eklediğiniz modelle eşleşecek şekilde güncelleyin veya test ederken filter'ı kaldırın.
[
{
"model": "claude-sonnet-4-6",
"api_key": "sk-YOUR-APISROUTER-KEY",
"base_url": "https://api.apisrouter.com/v1"
}
]FinRobot LLM config'ini nasıl kullanır.
FinRobot (GitHub'da AI4Finance-Foundation, yaklaşık 7.6K yıldız), AutoGen (pyautogen 0.2.19 veya daha yenisi) üzerine kurulu finansal analiz için bir AI agent platformudur. Agent'ları paketlenmiş iş akışlarıdır: şirket haberlerini ve fundamentalleri çeken ve gelecek haftanın hareketini tahmin eden bir Market_Analyst forecaster, dosyalamaları bir hisse senedi araştırma PDF'ine dönüştüren bir yıllık-rapor yazarı ve kazanç çağrıları ile SEC dosyalamaları üzerinde retrieval-augmented QA agent'ları. Her eğitim aynı llm_config şeklini inşa eder: config_list'i OAI_CONFIG_LIST dosyasını okuyan autogen.config_list_from_json'dan gelen bir dict. O llm_config, altta yatan AutoGen agent'larına sahip olan finrobot.agents.workflow'dan SingleAssistant ve SingleAssistantShadow gibi wrapper sınıflarına verilir. Endpoint kararı bu yüzden tamamen JSON dosyasında yaşar: AutoGen'in OpenAI client'ı, seçilen girdinin taşıdığı her hangi base_url'e /v1/chat/completions istekleri gönderir ve model alanını düz bir dize olarak iletir. Bu düz dize pratik kazançtır. base_url arkasındaki endpoint birden fazla satıcıya hizmet ettiğinde, bir Claude, DeepSeek veya Qwen id'si FinRobot fark etmeden aynı OpenAI şeklindeki config üzerinden geçer ve analiz modelini değiştirmek, bir satırlık bir JSON düzenlemesi artı eşleşen bir filter_dict olur.
Tam kurulum: config dosyası, filter ve veri anahtarları.
FinRobot kimlik bilgilerini iki dosyaya böler ve yalnızca biri LLM'i ilgilendirir. OAI_CONFIG_LIST model endpoint'lerini ve anahtarlarını tutar. config_api_keys, register_keys_from_json üzerinden ayrı yüklenen piyasa-verisi kimlik bilgilerini (FINNHUB_API_KEY, FMP_API_KEY, SEC_API_KEY ve sosyal anahtarlar) tutar. LLM'i bir gateway üzerinden yönlendirmek birinci dosyayı değiştirir ve ikincisine dokunmaz, bu yüzden haber çekimleri, fundamentaller ve dosyalamalar tam olarak öncekiyle aynı davranır. Aşağıdaki eğitim deseni, gateway girdisi seçilmiş forecaster notebook'unun yapısıdır. Aynı llm_config, yalnızca hangi workflow sınıfını örneklediklerinde farklılaşan yıllık-rapor ve RAG eğitimleri için de çalışır.
import autogen
from finrobot.utils import register_keys_from_json
from finrobot.agents.workflow import SingleAssistant
llm_config = {
"config_list": autogen.config_list_from_json(
"../OAI_CONFIG_LIST",
filter_dict={"model": ["claude-sonnet-4-6"]}, # match your entry
),
"timeout": 120,
"temperature": 0,
}
register_keys_from_json("../config_api_keys") # finnhub/fmp/sec data keys
assistant = SingleAssistant("Market_Analyst", llm_config,
human_input_mode="NEVER")
assistant.chat("Analyze NVDA news this week and predict next week's movement.")FinRobot iş akışı başına model seçmek.
Temiz deney döngüsü: ticker'ı ve tarih aralığını sabitleyin, aynı iş akışını aday girdi başına bir kez çalıştırın ve çıktıları yan yana karşılaştırın. Tek bir endpoint arkasında her aday bir filter_dict düzenlemesidir ve anahtar başına kullanım logu size tablo çalışması olmadan aday başına token faturasını verir.
- Yıllık-rapor yazarı en ağır muhakeme işidir: dosyalama bölümlerini okur, bir yatırım tezi sentezler ve yapılandırılmış bir rapor taslar. Bu iş akışında claude-opus-4-7 veya gpt-5.5, çıktı kalitesinin görünür şekilde değiştiği yerdir.
- Piyasa forecaster'ı, haberler ve fundamentaller üzerinde daha kısa, tekrarlanan bir görevdir. claude-sonnet-4-6 veya deepseek-v4-pro onu iyi ele alır ve onu bir izleme listesi genelinde günlük çalıştırdığınızda önem kazanır.
- Kazanç çağrıları üzerinde RAG QA, uzun alıntılar üzerinde retrieval artı sentezdir, ki bu uzun bağlamlı id'leri tercih eder; gemini-3.1-pro-preview'i orada claude-sonnet-4-6'ya karşı test etmeye değer.
- Girdiler filter_dict ile seçildiğinden, aynı base_url'e karşı bir frontier girdisi ve bir hızlı girdiyle tek bir dosya tutabilir ve her çalıştırma için kimlik bilgilerini düzenlemek yerine notebook başına seçebilirsiniz.
- Model id'leri tam dizelerdir. FinRobot bunları doğrulanmamış olarak iletir, bu yüzden endpoint'in /v1/models listelemesi yetkili yazımdır.
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.4 | $2.50 / $15.00 per M | $2.00 / $12.00 per M |
| DeepSeek V4 Pro | $0.43 / $0.87 per M | $0.40 / $0.90 per M |
| Gemini 3.1 Pro Preview | $2.00 / $12.00 per M | $1.60 / $9.60 per M |
FinRobot'a özgü hata modları.
filter_dict uyumsuzluğu en büyüğüdür. config_list_from_json yalnızca modeli filtreyle eşleşen girdileri döndürür; hiçbir şeyle eşleşmeyen bir filter, boş bir config listesi hakkında bir hata fırlatır ve örneğin geride kalan girdileriyle eşleşen bir filter, yer tutucu anahtarlarla OpenAI'a istekler gönderir; bu, yanlış host'tan bir 401 olarak ortaya çıkar. Yönlendirme değişiklikleri etkili olmuyormuş gibi göründüğünde, önce çözülen config_list'i yazdırın. Göreceli yollar ikincidir. Eğitimler "../OAI_CONFIG_LIST" yükler çünkü notebook'lar repo kökünden bir seviye aşağıdadır; kökteki bir script bunun yerine "OAI_CONFIG_LIST" ister ve AutoGen ayrıca container'larda yol sorunlarını atlayan, JSON dizesini taşıyan OAI_CONFIG_LIST ortam değişkenini de kabul eder. Yorum satırları üçüncüdür. Kurulum talimatları, JSON'u geçersiz kıldıkları için örnek dosyalardaki yorum notlarını kaldırmanızı söyler; başlangıçtaki bir JSONDecodeError, sızmış bir yorumun hayatta kaldığı anlamına gelir. Veri kimlik bilgileri bağımsız olarak başarısız olur. Agent iyi sohbet ediyor ama haberler veya fundamentaller boş geliyorsa, bu bir endpoint sorunu değil bir config_api_keys sorunudur (Finnhub, FMP, SEC). Ve ayrı FinRobot Pro hisse senedi modülü anahtarlarını bunun yerine bir config.ini üzerinden yapılandırır; Temmuz 2026 itibarıyla belgelenmiş ayarları bir openai_api_key kapsar ama bir base-URL override'ı yoktur, bu yüzden üst akış birini belgeleyene kadar o modülü doğrudan-satıcı sayın.
FinRobot'u bir gateway üzerinden kim yönlendirir.
- Bir kapsama listesi genelinde hisse senedi raporları üreten analistler. Rapor başına uzun dosyalama bağlamları model başına fiyat farklarını önemli kılar ve tek bir endpoint, modeli çalıştırma başına bir seçim yapar.
- Bir izleme listesi üzerinde forecaster'ı günlük çalıştıran kantitatif ekipler; burada hızlı orta katman bir id, iş akışını yeniden yazmadan tekrarlayan faturayı sabit tutar.
- Aynı finansal görevlerde model ailelerini karşılaştıran araştırmacılar. Her aday bir config girdisidir, bir satıcı hesabı ve SDK değişimi değil.
- AutoGen tabanlı yığınları standartlaştıran ekipler. FinRobot, diğer AutoGen projeleriyle OAI_CONFIG_LIST kuralını paylaşır, bu yüzden tek bir gateway girdi formatı hepsine hizmet eder.
- 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 notebook açmadan önce anahtarınızın adresleyebildiği modelleri listeleyin; OAI_CONFIG_LIST'teki her model dizesi ve her filter_dict değeri, sunulan bir id ile tam olarak eşleşmelidir. Ardından SingleAssistant üzerinden mümkün olan en kısa sohbeti çalıştırın ve konsolu izleyin. 401, seçilen girdinin api_key'inin base_url'indeki endpoint'e ait olmadığı anlamına gelir; filter'ın gerçekte hangi girdiyi seçtiğini kontrol edin. Bir model-not-found hatası girdideki bir id yazım hatasıdır. Bir bağlantı hatası genellikle base_url'in /v1 son ekini kaybettiği anlamına gelir. Agent tool sonuçları olmadan döngüye giriyorsa, şüpheliler config_api_keys'deki veri anahtarlarıdır, LLM endpoint'i değil. İstekler akmaya başladığında, APIsRouter konsolu istek başına modeli, token sayılarını ve harcamayı gösterir. Rapor-yazma çalıştırmaları uzun çok turlu konuşmalardır ve kullanım görünümü, elli tanesini planlamadan önce bir raporun gerçekte neye mal olduğunu gösterir.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $APISROUTER_API_KEY" | head -50Sık sorulan sorular
FinRobot özel bir OpenAI-compatible endpoint'i destekler mi?
Evet. FinRobot, AutoGen tarzı OAI_CONFIG_LIST girdilerini okur ve girdiler model ve api_key'in yanında bir base_url anahtarını kabul eder. base_url'i gateway'e işaret edin, filter_dict'inizi girdinin modeliyle eşleşecek şekilde tutun; agent'lar onun üzerinden yönlenir.
FinRobot agent'ları Claude, DeepSeek veya Qwen modellerinde çalışabilir mi?
Evet. AutoGen, model alanını /v1/chat/completions üzerinden düz bir dize olarak iletir, bu yüzden endpoint'in sunduğu herhangi bir id çalışır. Girdideki ve filter_dict'teki model adının katalog id'siyle tam olarak eşleşmesi yeterlidir.
FinRobot yeni OAI_CONFIG_LIST girdimi neden yok sayıyor?
Neredeyse her zaman filter_dict. Eğitimler girdileri model adına göre filtreler, bu yüzden modeli filtreyle eşleşmeyen bir girdi sessizce hariç tutulur. filter_dict'i yeni model id'nize güncelleyin veya test ederken dosyayı filtresiz yükleyin.
LLM endpoint'ini değiştirdiğimde Finnhub, FMP ve SEC anahtarlarım değişir mi?
Hayır. Piyasa-verisi kimlik bilgileri config_api_keys'de yaşar ve register_keys_from_json üzerinden yüklenir, OAI_CONFIG_LIST'ten tamamen ayrıdır. LLM'i bir gateway üzerinden yönlendirmek veri pipeline'ına dokunmaz.
Bu, hangi AutoGen sürümü için geçerlidir?
FinRobot, pyautogen 0.2.19 veya daha yenisini sabitler ve 0.2-tarzı config_list_from_json yükleyicisini kullanır. Config girdilerindeki base_url anahtarı o kuşak genelinde standarttır, bu yüzden hiçbir FinRobot kod değişikliği gerekmez.
FinRobot Pro hisse senedi modülü de base_url'e uyar mı?
Belgelendiği kadarıyla hayır. Config.ini'si, API_KEYS altında bir openai_api_key sunar ama Temmuz 2026 itibarıyla bir endpoint override'ı yoktur. Burada anlatılan OAI_CONFIG_LIST yönlendirmesi, ana FinRobot agent'larına ve eğitimlerine uygulanır.