Each was applied to a clean tree and run against the full suite on its own before being stacked; the stack was then re-run together. 263 pass, 0 fail. Backend / chat - #1983 remove the duplicate POST /api/reports/{id}/chat registration that shadowed the LLM-backed handler. Closes #1979. - #1996 enable the report RAG path in ChatAgentWithMemory, which was gated behind 'and False', and fix the retriever kwargs. Closes #1980. Cost accounting (both were under-reporting cache savings) - #1989 price Anthropic cache_creation/cache_read tokens. Closes #1986. - #2070 apply the OpenAI prompt-cache discount to cache_read tokens. Closes #2065. Retrieval / scraping quality - #1952 cap Searx/DuckDuckGo snippet length so real pages are still scraped rather than treated as prefetched content. Closes #1846, #1892. - #1944 stop ingesting anti-bot challenge pages as article content. - #1849 use the session for PyMuPDF downloads so the User-Agent applies; SEC EDGAR returns 403 to bare python-requests. Closes #1847. - #1954 recover markdown-fenced LLM JSON in the source curator instead of silently dropping curation. Closes #1953. Security - #1818 SSRF and local-file-read guards on scraped URLs. multi_agents - #2064 preserve None labels in the visualizer. Closes #2061. - #1936 use the stripped output dir consistently in the publisher. Config / providers - #1925 pass llm_kwargs through the deep research skill. The existing test double omitted llm_kwargs, which real Config always sets in __init__, so the fixture is corrected here rather than the fix weakened. - #1858 fall back to LLM_KWARGS from env when the caller passes none. - #1755 make OLLAMA_BASE_URL optional with a sensible default. - #2051 pin a jsdom override so the Next.js Docker build stops failing on ERR_REQUIRE_ESM. Closes #2047. Held back: #1982 fails its own tests and breaks two existing ones against this base; #1951 conflicts with #1944 in scraper.py and is handled separately. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Frontend Application
This frontend project aims to enhance the user experience of GPT-Researcher, providing an intuitive and efficient interface for automated research. It offers two deployment options to suit different needs and environments.
Option 1: Static Frontend (FastAPI)
A lightweight solution using FastAPI to serve static files.
Prerequisites
- Python 3.11+
- pip
Setup and Running
-
Install required packages:
pip install -r requirements.txt -
Start the server:
python -m uvicorn main:app -
Access at
http://localhost:8000
Demo
https://github.com/assafelovic/gpt-researcher/assets/13554167/dd6cf08f-b31e-40c6-9907-1915f52a7110
Option 2: NextJS Frontend
A more robust solution with enhanced features and performance.
Prerequisites
- Node.js (v18.17.0 recommended)
- npm
Setup and Running
-
Navigate to NextJS directory:
cd nextjs -
Set up Node.js:
nvm install 18.17.0 nvm use v18.17.0 -
Install dependencies:
npm install --legacy-peer-deps -
Start development server:
npm run dev -
Access at
http://localhost:3000
Note: Requires backend server on localhost:8000 as detailed in option 1.
Demo
https://github.com/user-attachments/assets/092e9e71-7e27-475d-8c4f-9dddd28934a3
Choosing an Option
- Static Frontend: Quick setup, lightweight deployment.
- NextJS Frontend: Feature-rich, scalable, better performance and SEO.
For production, NextJS is recommended.
Frontend Features
Our frontend enhances GPT-Researcher by providing:
- Intuitive Research Interface: Streamlined input for research queries.
- Real-time Progress Tracking: Visual feedback on ongoing research tasks.
- Interactive Results Display: Easy-to-navigate presentation of findings.
- Customizable Settings: Adjust research parameters to suit specific needs.
- Responsive Design: Optimal experience across various devices.
These features aim to make the research process more efficient and user-friendly, complementing GPT-Researcher's powerful agent capabilities.