gpt-researcher'ı özel bir OpenAI-compatible endpoint üzerinde çalıştırın.
Updated 2026-07-30
gpt-researcher, OPENAI_BASE_URL'i ortamdan okur ve işini üç model slotuna böler. Base URL'i https://api.apisrouter.com/v1 olarak ayarlayın, openai: önekini koruyun; FAST_LLM, SMART_LLM ve STRATEGIC_LLM her biri tek bir anahtar arkasında farklı bir katalog modeli olabilir.
Hızlı yanıt: beş satırlık bir .env bloğu.
gpt-researcher'ın belgelenmiş özel-endpoint yolu ortam değişkenleridir. OPENAI_BASE_URL'i https://api.apisrouter.com/v1 olarak ayarlayın, OPENAI_API_KEY'i gateway anahtarınıza ayarlayın ve üç model slotunu openai: sağlayıcı öneki ile atayın. Önek, gpt-researcher'a hangi client'ı kullanacağını söyler; iki nokta üst üsteden sonraki dize endpoint'e olduğu gibi iletilir, bu yüzden gateway'in sunduğu her id geçerlidir, Claude ve Gemini id'leri dahil. Bu, docs.gptr.dev'de özel OpenAI-compatible endpoint'ler için belgelenen yapılandırmadır ve pip paketi, web uygulaması ve çok agent'lı akışlar için özdeş şekilde çalışır, çünkü hepsi aynı config'i çözer.
OPENAI_BASE_URL=https://api.apisrouter.com/v1
OPENAI_API_KEY=sk-APIsRouter-...
FAST_LLM=openai:claude-haiku-4-5-20251001
SMART_LLM=openai:claude-sonnet-4-6
STRATEGIC_LLM=openai:gpt-5.5gpt-researcher token'ları üç slot arasında nasıl harcar.
gpt-researcher (GitHub'da assafelovic, yaklaşık 28K yıldız), bir sorguyu araştırılmış, atıflı bir rapora dönüştürür: araştırma sorularını planlar, bir retriever üzerinden web aramalarına yayılır, kaynakları kazır ve özetler, ardından uzun biçimli bir rapor yazar. Framework bu pipeline'ı tek bir model yerine üç yapılandırılabilir model slotuna böler. FAST_LLM yüksek hacimli, düşük riskli işi ele alır, esas olarak kazınan sayfaları özetlemeyi. SMART_LLM nihai rapor dahil ağır yazımı yapar. STRATEGIC_LLM planlamayı ele alır: araştırma sorularını üretmek ve yaklaşıma karar vermek. Kutudan çıktığında bunlar varsayılan olarak OpenAI modelleridir (yazım anında sırasıyla gpt-4o-mini, gpt-4.1 ve o4-mini), ki bu tam olarak tek bir OPENAI_BASE_URL override'ının bu kadar etkili olmasının nedenidir: üç slot da OpenAI şeklindeki client'ı kullanır, bu yüzden tek bir base URL tüm pipeline'ı taşır. Her slot kendi provider:model dizesini aldığından, slotların bir satıcıyı paylaşması gerekmez. Bir çalıştırma hızlı bir Claude modeliyle özetleyebilir, daha güçlü bir Claude veya GPT modeliyle yazabilir ve muhakeme katmanı bir modelle plan yapabilir, hepsi aynı endpoint ve anahtar üzerinden. Tek satıcılı bir anahtarda bu karışım üç hesap gerektirirdi; bir gateway arkasında .env'de üç satırdır.
.env artı Python API ile tam kurulum.
Çalışma dizininizde bir .env dosyası oluşturun (veya değişkenleri shell'de export edin) ve gpt-researcher'ı her zamanki gibi çalıştırın; pip paketi ve web uygulaması aynı ortamı okur. Python API'nin endpoint'e özgü hiçbir koda ihtiyacı yoktur, ki bu asıl mesele budur: yönlendirme yapılandırmadır ve endpoint OpenAI'a ait olsa da bir gateway'e ait olsa da araştırma kodu aynı kalır. İki bitişik ayar önemlidir. Web retrieval'ı, varsayılan olarak Tavily olan ve kendi anahtarına (TAVILY_API_KEY) sahip bir retriever üzerinden çalışır; bu kimlik bilgisi LLM endpoint'inden bağımsızdır ve canlı web araştırması için hâlâ gereklidir. Ve embedding'ler varsayılan olarak openai:text-embedding-3-small'dır, bu da embedding çağrılarının aynı OpenAI şeklindeki client yapılandırmasını izlediği anlamına gelir; OPENAI_BASE_URL arkasındaki endpoint o embedding modelini sunmuyorsa, EMBEDDING'i bunu sunan bir sağlayıcıya ayarlayın (belgeler OpenAI-compatible embedding endpoint'leri için custom: önekini kullanır ve Ollama gibi yerel seçenekler de desteklenir).
import asyncio
from gpt_researcher import GPTResearcher
async def main():
researcher = GPTResearcher(
query="State of small modular reactors in 2026",
report_type="research_report",
)
await researcher.conduct_research()
report = await researcher.write_report()
print(report)
asyncio.run(main()) # routing comes entirely from .envSlot başına model seçmek.
Üst akış varsayılanları doğru şekli kodlar: hacim için küçük model, yazım için güçlü model, planlama için muhakeme modeli; bu yüzden bu şekli koruyun ve slotları bir modele düzleştirmek yerine yükseltin. Tek bir endpoint arkasında, iki yazar arasında bir A/B, çalıştırma başına bir satırlık bir .env değişikliğidir ve anahtar başına kullanım logu her rapor yapılandırmasının gerçekte neye mal olduğunu söyler.
- FAST_LLM en çok tetiklenendir: kazınan her kaynak özetlenir. Hızlı bir id (claude-haiku-4-5-20251001, deepseek-v4-flash), çok kaynaklı bir raporun özetleme maliyetiyle domine edilmesini engeller ve buradaki kalite kaybı sınırlıdır çünkü özetler okuyucuyu değil yazarı besler.
- SMART_LLM, kullanıcının gerçekten okuduğu raporu yazar. Uzun çıktı, sürdürülen yapı, atıf disiplini: claude-sonnet-4-6 veya gpt-5.5'in harcamayı hak ettiği ve kaliteyi kısmanın anında göründüğü yer burasıdır.
- STRATEGIC_LLM, çalıştırma başlamadan önce onu şekillendirir. Kötü araştırma soruları, yazar ne kadar iyi olursa olsun kötü bir rapor üretir; burada muhakeme-güçlü bir model az sayıda çağrı ama yüksek kaldıraçtır.
- gemini-3.1-pro-preview gibi uzun bağlamlı id'ler, yazarın büyük bir birikmiş özet bağlamı üzerinde çalıştığı detailed_report çalıştırmalarında SMART slotunda test edilmeye değer.
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 Haiku 4.5 20251001 | $1.00 / $5.00 per M | $0.80 / $4.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 |
| Gemini 3.1 Pro Preview | $2.00 / $12.00 per M | $1.60 / $9.60 per M |
| DeepSeek V4 Pro | $0.43 / $0.87 per M | $0.40 / $0.90 per M |
gpt-researcher'a özgü hata modları.
Sağlayıcı önekini düşürmek. Slot formatı provider:model'dir ve önek client'ı seçer. SMART_LLM=claude-sonnet-4-6'yı openai: olmadan ayarlamak, bir Claude id'sini base URL'iniz üzerinden yönlendirmez; bu, gpt-researcher'ın dizeyi farklı bir sağlayıcı olarak yorumlamaya çalışmasına neden olur. Her özel-endpoint modeli openai: önekini korumalıdır, çünkü buradaki "openai" satıcıyı değil protokolü adlandırır. Embedding'ler override'ı sessizce takip ediyor. Varsayılan EMBEDDING, OpenAI şeklinde bir modeldir, bu yüzden OPENAI_BASE_URL bir gateway'e işaret ettiğinde embedding istekleri de oraya gider. Gateway o embedding id'sini sunmuyorsa, araştırma çalıştırmaları ilk sohbet çağrısında değil kaynak işleme sırasında başarısız olur, ki bu insanları yanlış slotu hata ayıklamaya yönlendirir. EMBEDDING'i açıkça ayarlayın ve belirti kaybolur. Retriever hataları için endpoint'i suçlamak. Eksik veya tükenmiş bir TAVILY_API_KEY, arama aşamasını bozar ve ortaya çıkan boş-kaynak hataları yüzeysel olarak LLM hataları gibi görünür. Retriever ayrı bir anahtara sahip ayrı bir servistir; ayrı kontrol edin. Çalıştırmalar arasında bayat ortam. .env dosyası çalışma dizininden okunur. Web uygulamasını bir dizinden ve Python API'sini başka bir dizinden çalıştırmak iki farklı config anlamına gelir ve "uygulamada çalışıyor ama script'imde çalışmıyor" hemen hemen her zaman budur. Token limiti ayarları model yeteneğinden ayrıdır. gpt-researcher, muhafazakâr varsayılanlarla kendi slot başına token limitlerini (FAST_TOKEN_LIMIT, SMART_TOKEN_LIMIT ve ilgili ayarlar) taşır. SMART_LLM'i uzun bağlamlı bir modele yöneltmek tek başına o limitleri yükseltmez; daha uzun üretimler istiyorsanız bunları kasıtlı olarak ayarlayın.
gpt-researcher'ı bir gateway üzerinden kim yönlendirir.
- Tek bir satıcı ilişkisinden daha çok üç model slotu genelinde çalıştırma başına maliyet görünürlüğünün önemli olduğu tekrarlayan raporlar (piyasa taramaları, literatür incelemeleri, rekabet brifingleri) üreten ekipler.
- Yazar modellerini karşılaştıran araştırmacılar. FAST ve STRATEGIC'i sabit tutarken SMART'ı Claude, GPT ve DeepSeek id'leri arasında değiştirmek üç .env düzenlemesidir, üç satıcı hesabı değil.
- gpt-researcher'ı ürünlere gömen builder'lar; burada ortam başına tek bir gateway anahtarı, deploy pipeline'ındaki bir demet satıcı sırrının yerini alır.
- gpt-researcher'ın stok OpenAI şeklindeki yapılandırmasına dokunmadan rapor yazımını Claude veya Gemini'nin yapmasını isteyen kullanıcılar.
- 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 raporu hata ayıklayın.
Önce gateway'in modellerini listeleyin; her slottaki openai:'den sonraki dize, sürüm son ekleri dahil, sunulan bir id ile tam olarak eşleşmelidir. İlk çalıştırma hataları temiz bir şekilde ayrışır. 401, OPENAI_API_KEY'in sürecin gerçekte gördüğü ortamda bulunmadığı anlamına gelir; .env dosyaları çalışma dizininden yüklenir, bu yüzden dosyanın yaşadığı yerden çalıştırın veya değişkenleri global olarak export edin. Bir model-not-found hatası yazım hatalı slotu adlandırır. Planlama zamanı yerine kaynak işleme sırasında bir başarısızlık, sohbet slotlarını değil embedding'leri veya retriever'ı işaret eder: LLM config'ine dokunmadan önce EMBEDDING ve TAVILY_API_KEY'i kontrol edin. Tam bir araştırma çalıştırması, üç slotun tümü genelinde onlarca isteklik bir patlamadır, bu yüzden tamamlandığında APIsRouter konsolunun istek başına görünümü, gerçek token'larda ve gerçek harcamada FAST/SMART/STRATEGIC ayrımını görmenin ve rolüne göre daha fazlasını tüketen bir slotu yakalamanın en hızlı yoludur.
curl -s https://api.apisrouter.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY" | head -50Sık sorulan sorular
gpt-researcher OPENAI_BASE_URL üzerinden Claude veya Gemini modellerini kullanabilir mi?
Evet. openai: öneki OpenAI şeklindeki client'ı seçer ve iki nokta üst üsteden sonraki model dizesi endpoint'e iletilir. Gateway'in sunduğu herhangi bir id, Claude, Gemini ve DeepSeek id'leri dahil, üç slotun herhangi birinde geçerlidir.
FAST_LLM, SMART_LLM ve STRATEGIC_LLM aynı satıcı olmak zorunda mı?
Hayır. Her slot bağımsız bir provider:model dizesidir. Çok satıcılı bir endpoint arkasında yaygın bir kurulum, özetler için hızlı bir Claude id'si, rapor yazımı için daha güçlü bir Claude veya GPT id'si ve planlama için muhakeme katmanı bir id'dir, hepsi tek bir anahtarda.
LLM endpoint'ini değiştirdikten sonra hâlâ bir Tavily anahtarına ihtiyacım var mı?
Canlı web araştırması istiyorsanız evet. Retriever (RETRIEVER üzerinden ayarlanan, varsayılan olarak Tavily), arama sonuçlarını getirir ve kendi anahtarına sahiptir. LLM endpoint'inden ayrı bir servistir ve OPENAI_BASE_URL'den etkilenmez.
OPENAI_BASE_URL'i ayarladığımda embedding'lere ne olur?
Varsayılan embedding, OpenAI şeklinde bir modeldir, bu yüzden embedding çağrıları aynı client yapılandırmasını izler ve gateway'inize gider. Gateway o embedding id'sini sunmuyorsa, EMBEDDING'i bunu sunan bir sağlayıcıya veya yerel bir seçeneğe açıkça ayarlayın; aksi takdirde çalıştırmalar kaynak işleme sırasında başarısız olur.
Bu yapılandırma web uygulaması ve çok agent'lı mod için de çalışır mı?
Evet. pip paketi, web uygulaması ve çok agent'lı akışların hepsi aynı ortam yapılandırmasını çözer, bu yüzden tek bir .env dosyası onları özdeş şekilde yönlendirir.
Gateway üzerinden bir araştırma çalıştırması ne kadara mal olur?
Rapor türüne ve retriever'ın kaç kaynak döndürdüğüne bağlıdır: FAST_LLM her kaynağı özetler, SMART_LLM raporu yazar, STRATEGIC_LLM plan yapar. Çoğu çalıştırma on binlerce ile yüz binlerce token arasına düşer. Anahtar başına kullanım görünümü, tahmin etmekten daha iyi olan tam slot başına ayrımı gösterir.