Jalankan gpt-researcher pada endpoint serasi OpenAI custom.

Updated 2026-07-30

gpt-researcher membaca OPENAI_BASE_URL daripada environment dan membahagikan kerjanya merentasi tiga slot model. Tetapkan base URL kepada https://api.apisrouter.com/v1, kekalkan awalan openai:, dan FAST_LLM, SMART_LLM, serta STRATEGIC_LLM masing-masing boleh menjadi model katalog berbeza di sebalik satu kunci.

Jawapan pantas: blok .env lima baris.

Laluan endpoint-custom yang didokumentasikan gpt-researcher adalah pembolehubah environment. Tetapkan OPENAI_BASE_URL kepada https://api.apisrouter.com/v1, tetapkan OPENAI_API_KEY kepada kunci gateway anda, dan berikan tiga slot model dengan awalan penyedia openai:. Awalan itu memberitahu gpt-researcher klien mana yang digunakan; rentetan selepas titik dua diteruskan kepada endpoint, jadi mana-mana id yang dilayani gateway sah, termasuk id Claude dan Gemini. Ini adalah konfigurasi yang didokumentasikan di docs.gptr.dev untuk endpoint serasi OpenAI custom, dan ia berfungsi secara sama untuk pakej pip, aplikasi web, dan aliran multi-agent, kerana kesemuanya menyelesaikan config yang sama.

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.5

Bagaimana gpt-researcher membelanjakan token merentasi tiga slot.

gpt-researcher (assafelovic di GitHub, lebih kurang 28K bintang) menukar pertanyaan menjadi laporan diselidik dan disitasi: ia merancang soalan penyelidikan, mengagihkan carian web melalui retriever, mengikis dan meringkaskan sumber, kemudian menulis laporan bentuk-panjang. Kerangka ini membahagikan pipeline itu merentasi tiga slot model boleh konfigurasi berbanding satu. FAST_LLM mengendalikan kerja volum-tinggi bertaruhan-rendah, terutamanya meringkaskan halaman yang dikikis. SMART_LLM melakukan penulisan berat, termasuk laporan akhir. STRATEGIC_LLM mengendalikan perancangan: menjana soalan penyelidikan dan memutuskan pendekatan. Secara lalai ini menggunakan model OpenAI (gpt-4o-mini, gpt-4.1, dan o4-mini masing-masing pada masa penulisan), sebab itu tepat override OPENAI_BASE_URL tunggal begitu berkesan: kesemua tiga slot menggunakan klien berbentuk-OpenAI, jadi satu base URL menggerakkan seluruh pipeline. Kerana setiap slot mengambil rentetan penyedia:model sendiri, slot tidak perlu berkongsi vendor. Satu larian boleh meringkaskan dengan model Claude pantas, menulis dengan model Claude atau GPT yang lebih kuat, dan merancang dengan model tier-penaakulan, semuanya melalui endpoint dan kunci yang sama. Pada kunci vendor tunggal, campuran itu memerlukan tiga akaun; di sebalik gateway ia adalah tiga baris dalam .env.

Persediaan penuh: .env ditambah API Python.

Cipta fail .env dalam direktori kerja anda (atau eksport pembolehubah dalam shell) dan jalankan gpt-researcher seperti biasa; pakej pip dan aplikasi web kedua-duanya membaca environment yang sama. API Python langsung tidak memerlukan kod khusus-endpoint, itulah intinya: penghalaan adalah konfigurasi, dan kod penyelidikan kekal sama sama ada endpointnya OpenAI atau gateway. Dua tetapan bersebelahan penting. Retrieval web berjalan melalui retriever, Tavily secara lalai, dengan kunci sendiri (TAVILY_API_KEY); kelayakan itu bebas daripada endpoint LLM dan masih diperlukan untuk penyelidikan web secara langsung. Dan embedding melalaikan kepada openai:text-embedding-3-small, bermaksud panggilan embedding mengikut konfigurasi klien berbentuk-OpenAI yang sama; jika endpoint di sebalik OPENAI_BASE_URL tidak melayani model embedding itu, konfigurasikan EMBEDDING kepada penyedia yang melayaninya (dokumen menggunakan awalan custom: untuk endpoint embedding serasi OpenAI, dan pilihan setempat seperti Ollama juga disokong).

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())  # penghalaan datang sepenuhnya daripada .env

Memilih model per slot.

Lalai upstream mengkodkan bentuk yang betul, model kecil untuk volum, model kuat untuk penulisan, model penaakulan untuk perancangan, jadi kekalkan bentuk itu dan naik taraf slot berbanding meratakannya kepada satu model. Di sebalik satu endpoint, A/B antara dua penulis adalah satu perubahan .env per larian, dan log penggunaan per-kunci memberitahu anda kos sebenar setiap konfigurasi laporan.

  • FAST_LLM tembak paling kerap: setiap sumber yang dikikis diringkaskan. Id pantas (claude-haiku-4-5-20251001, deepseek-v4-flash) mengelakkan fasa peringkasan mendominasi kos laporan bersumber-banyak, dan kehilangan kualiti di sini boleh diterima kerana ringkasan memberi makan penulis, bukan pembaca.
  • SMART_LLM menulis laporan yang sebenarnya dibaca pengguna. Output panjang, struktur berterusan, disiplin sitasi: di sinilah claude-sonnet-4-6 atau gpt-5.5 mewajarkan perbelanjaannya, dan tempat pemotongan kualiti kelihatan segera.
  • STRATEGIC_LLM membentuk larian sebelum ia bermula. Soalan penyelidikan yang buruk menghasilkan laporan buruk tidak kira sebaik mana penulisnya; model kuat-penaakulan di sini adalah sedikit panggilan dengan leverage tinggi.
  • Id konteks-panjang seperti gemini-3.1-pro-preview berbaloi diuji dalam slot SMART untuk larian detailed_report, di mana penulis bekerja merentasi konteks terkumpul yang besar bagi ringkasan.

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 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

Mod kegagalan khusus gpt-researcher.

Menggugurkan awalan penyedia. Format slot adalah penyedia:model, dan awalan memilih klien. Menetapkan SMART_LLM=claude-sonnet-4-6 tanpa openai: tidak menghalakan id Claude melalui base URL anda; ia menyebabkan gpt-researcher cuba mentafsir rentetan itu sebagai penyedia berbeza. Setiap model endpoint-custom mesti mengekalkan awalan openai:, kerana "openai" di sini menamakan protokol, bukan vendor. Embedding senyap-senyap mengikut override. EMBEDDING lalai adalah model berbentuk-OpenAI, jadi sebaik sahaja OPENAI_BASE_URL menunjuk ke gateway, permintaan embedding turut pergi ke situ. Jika gateway tidak melayani id embedding itu, larian penyelidikan gagal semasa pemprosesan sumber berbanding pada panggilan chat pertama, yang mengelirukan orang untuk menyahpepijat slot yang salah. Tetapkan EMBEDDING secara eksplisit dan simptom hilang. Menyalahkan endpoint untuk kegagalan retriever. TAVILY_API_KEY yang hilang atau habis merosakkan fasa carian, dan ralat sumber-kosong yang terhasil kelihatan sama seperti kegagalan LLM secara permukaan. Retriever adalah perkhidmatan berasingan dengan kunci berasingan; semak secara berasingan. Environment lapuk antara larian. Fail .env dibaca daripada direktori kerja. Menjalankan aplikasi web daripada satu direktori dan API Python daripada direktori lain bermaksud dua config berbeza, dan "ia berfungsi dalam aplikasi tetapi tidak skrip saya" hampir selalu ini. Tetapan had-token adalah berasingan daripada keupayaan model. gpt-researcher membawa had token per-slot sendiri (FAST_TOKEN_LIMIT, SMART_TOKEN_LIMIT, dan tetapan berkaitan) dengan lalai konservatif. Mengarahkan SMART_LLM ke model konteks-panjang tidak dengan sendirinya menaikkan had itu; talakan dengan sengaja jika anda mahukan penjanaan lebih panjang.

Siapa yang menghalakan gpt-researcher melalui gateway.

  • Pasukan yang menjana laporan berulang (imbasan pasaran, kajian literatur, ringkasan kompetitif) di mana keterlihatan kos per-larian merentasi tiga slot model penting lebih daripada hubungan vendor tunggal.
  • Penyelidik yang membandingkan model penulis. Mengekalkan FAST dan STRATEGIC tetap sambil menukar SMART antara id Claude, GPT, dan DeepSeek adalah tiga suntingan .env, bukan tiga akaun vendor.
  • Pembina yang membenamkan gpt-researcher dalam produk, di mana satu kunci gateway per environment menggantikan sekumpulan rahsia vendor dalam pipeline deploy.
  • Pengguna yang mahukan Claude atau Gemini melakukan penulisan laporan sambil mengekalkan konfigurasi stok berbentuk-OpenAI gpt-researcher tidak disentuh.
  • Pembangun tanpa akses kepada pengebilan vendor tertentu. Akses berasaskan top-up tanpa keperluan kad menghapuskan kebergantungan pendaftaran setiap penyedia.

Sahkan endpoint dan nyahpepijat laporan pertama.

Senaraikan model gateway dahulu; rentetan selepas openai: dalam setiap slot mesti sepadan tepat dengan id yang dilayani, termasuk akhiran versi. Kegagalan larian-pertama disusun dengan bersih. 401 bermaksud OPENAI_API_KEY tiada dalam environment yang benar-benar dilihat proses; fail .env dimuatkan daripada direktori kerja, jadi jalankan daripada tempat fail itu tinggal atau eksport pembolehubah secara global. Ralat model-not-found menamakan slot dengan kesilapan taip. Kegagalan semasa pemprosesan sumber berbanding semasa perancangan menunjuk kepada embedding atau retriever, bukan slot chat: semak EMBEDDING dan TAVILY_API_KEY sebelum menyentuh config LLM. Larian penyelidikan penuh adalah letusan berpuluh-puluh permintaan merentasi ketiga-tiga slot, jadi sebaik sahaja ia selesai, pandangan per-permintaan konsol APIsRouter adalah cara terpantas melihat pembahagian FAST/SMART/STRATEGIC dalam token dan perbelanjaan sebenar, dan menangkap slot yang menghabiskan lebih daripada yang wajar peranannya.

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

Soalan lazim

Bolehkah gpt-researcher menggunakan model Claude atau Gemini melalui OPENAI_BASE_URL?

Ya. Awalan openai: memilih klien berbentuk-OpenAI, dan rentetan model selepas titik dua diteruskan kepada endpoint. Mana-mana id yang dilayani gateway sah dalam mana-mana daripada tiga slot, termasuk id Claude, Gemini, dan DeepSeek.

Perlukah FAST_LLM, SMART_LLM, dan STRATEGIC_LLM daripada vendor yang sama?

Tidak. Setiap slot adalah rentetan penyedia:model bebas. Di sebalik endpoint multi-vendor, persediaan biasa adalah id Claude pantas untuk ringkasan, id Claude atau GPT lebih kuat untuk penulisan laporan, dan id tier-penaakulan untuk perancangan, semuanya pada satu kunci.

Adakah saya masih memerlukan kunci Tavily selepas menukar endpoint LLM?

Ya, jika anda mahukan penyelidikan web langsung. Retriever (Tavily secara lalai, ditetapkan melalui RETRIEVER) mengambil keputusan carian dan mempunyai kunci sendiri. Ia adalah perkhidmatan berasingan daripada endpoint LLM dan tidak terjejas oleh OPENAI_BASE_URL.

Apa yang berlaku kepada embedding apabila saya menetapkan OPENAI_BASE_URL?

Embedding lalai adalah model berbentuk-OpenAI, jadi panggilan embedding mengikut konfigurasi klien yang sama dan mencecah gateway anda. Jika gateway tidak melayani id embedding itu, tetapkan EMBEDDING secara eksplisit kepada penyedia yang melayaninya, atau kepada pilihan setempat; jika tidak, larian gagal semasa pemprosesan sumber.

Adakah konfigurasi ini berfungsi untuk aplikasi web dan mod multi-agent juga?

Ya. Pakej pip, aplikasi web, dan aliran multi-agent kesemuanya menyelesaikan konfigurasi environment yang sama, jadi satu fail .env menghalakan mereka secara sama.

Berapa kos satu larian penyelidikan melalui gateway?

Ia bergantung pada jenis laporan dan berapa banyak sumber yang dikembalikan retriever: FAST_LLM meringkaskan setiap sumber, SMART_LLM menulis laporan, STRATEGIC_LLM merancang. Kebanyakan larian mendarat pada puluhan hingga ratusan ribu token. Pandangan penggunaan per-kunci menunjukkan pembahagian per-slot yang tepat, yang mengatasi anggaran.