Science Score: 54.0%

This score indicates how likely this project is to be science-related based on various indicators:

  • CITATION.cff file
    Found CITATION.cff file
  • codemeta.json file
    Found codemeta.json file
  • .zenodo.json file
    Found .zenodo.json file
  • DOI references
  • Academic publication links
    Links to: arxiv.org
  • Academic email domains
  • Institutional organization owner
  • JOSS paper metadata
  • Scientific vocabulary similarity
    Low similarity (12.6%) to scientific vocabulary
Last synced: 6 months ago · JSON representation ·

Repository

Basic Info
  • Host: GitHub
  • Owner: mgabs
  • License: apache-2.0
  • Language: Python
  • Default Branch: main
  • Size: 4.38 MB
Statistics
  • Stars: 0
  • Watchers: 1
  • Forks: 0
  • Open Issues: 6
  • Releases: 0
Created over 1 year ago · Last pushed about 1 year ago
Metadata Files
Readme License Citation

README.md

Smart Assistant

This project is fork from GPT Researcher, it is a learning exercise with simplification in mind.

GPT Researcher is an autonomous agent designed for comprehensive web and local research on any given task.

The agent produces detailed, factual, and unbiased research reports with citations. GPT Researcher provides a full suite of customization options to create tailor made and domain specific research agents. Inspired by the recent Plan-and-Solve and RAG papers, GPT Researcher addresses misinformation, speed, determinism, and reliability by offering stable performance and increased speed through parallelized agent work.

Our mission is to empower individuals and organizations with accurate, unbiased, and factual information through AI.

Why GPT Researcher?

  • Objective conclusions for manual research can take weeks, requiring vast resources and time.
  • LLMs trained on outdated information can hallucinate, becoming irrelevant for current research tasks.
  • Current LLMs have token limitations, insufficient for generating long research reports.
  • Limited web sources in existing services lead to misinformation and shallow results.
  • Selective web sources can introduce bias into research tasks.

Demo

https://github.com/user-attachments/assets/092e9e71-7e27-475d-8c4f-9dddd28934a3

Architecture

The core idea is to utilize 'planner' and 'execution' agents. The planner generates research questions, while the execution agents gather relevant information. The publisher then aggregates all findings into a comprehensive report.

Steps: * Create a task-specific agent based on a research query. * Generate questions that collectively form an objective opinion on the task. * Use a crawler agent for gathering information for each question. * Summarize and source-track each resource. * Filter and aggregate summaries into a final research report.

Tutorials

Features

  • 📝 Generate detailed research reports using web and local documents.
  • 🖼️ Smart image scraping and filtering for reports.
  • 📜 Generate detailed reports exceeding 2,000 words.
  • 🌐 Aggregate over 20 sources for objective conclusions.
  • 🖥️ Frontend available in lightweight (HTML/CSS/JS) and production-ready (NextJS + Tailwind) versions.
  • 🔍 JavaScript-enabled web scraping.
  • 📂 Maintains memory and context throughout research.
  • 📄 Export reports to PDF, Word, and other formats.

📖 Documentation

See the Documentation for: - Installation and setup guides - Configuration and customization options - How-To examples - Full API references

⚙️ Getting Started

Installation

  1. Install Python 3.11 or later. Guide.
  2. Clone the project and navigate to the directory:

    bash git clone https://github.com/assafelovic/gpt-researcher.git cd gpt-researcher

  3. Set up API keys by exporting them or storing them in a .env file.

    bash export OPENAI_API_KEY={Your OpenAI API Key here} export TAVILY_API_KEY={Your Tavily API Key here}

  4. Install dependencies and start the server:

    bash pip install -r requirements.txt python -m uvicorn main:app --reload

Visit http://localhost:8000 to start.

For other setups (e.g., Poetry or virtual environments), check the Getting Started page.

Run as PIP package

```bash pip install gpt-researcher

```

Example Usage:

```python ... from gpt_researcher import GPTResearcher

query = "why is Nvidia stock going up?" researcher = GPTResearcher(query=query, reporttype="researchreport")

Conduct research on the given query

researchresult = await researcher.conductresearch()

Write the report

report = await researcher.write_report() ... ```

For more examples and configurations, please refer to the PIP documentation page.

Run with Docker

Step 1 - Install Docker

Step 2 - Clone the '.env.example' file, add your API Keys to the cloned file and save the file as '.env'

Step 3 - Within the docker-compose file comment out services that you don't want to run with Docker.

bash docker-compose up --build

If that doesn't work, try running it without the dash: bash docker compose up --build

Step 4 - By default, if you haven't uncommented anything in your docker-compose file, this flow will start 2 processes: - the Python server running on localhost:8000
- the React app running on localhost:3000

Visit localhost:3000 on any browser and enjoy researching!

📄 Research on Local Documents

You can instruct the GPT Researcher to run research tasks based on your local documents. Currently supported file formats are: PDF, plain text, CSV, Excel, Markdown, PowerPoint, and Word documents.

Step 1: Add the env variable DOC_PATH pointing to the folder where your documents are located.

bash export DOC_PATH="./my-docs"

Step 2: - If you're running the frontend app on localhost:8000, simply select "My Documents" from the "Report Source" Dropdown Options. - If you're running GPT Researcher with the PIP package, pass the report_source argument as "local" when you instantiate the GPTResearcher class code sample here.

👪 Multi-Agent Assistant

As AI evolves from prompt engineering and RAG to multi-agent systems, we're excited to introduce our new multi-agent assistant built with LangGraph.

By using LangGraph, the research process can be significantly improved in depth and quality by leveraging multiple agents with specialized skills. Inspired by the recent STORM paper, this project showcases how a team of AI agents can work together to conduct research on a given topic, from planning to publication.

An average run generates a 5-6 page research report in multiple formats such as PDF, Docx and Markdown.

Check it out here or head over to our documentation for more information.

🖥️ Frontend Applications

GPT-Researcher now features an enhanced frontend to improve the user experience and streamline the research process. The frontend offers:

  • An intuitive interface for inputting research queries
  • Real-time progress tracking of research tasks
  • Interactive display of research findings
  • Customizable settings for tailored research experiences

Two deployment options are available: 1. A lightweight static frontend served by FastAPI 2. A feature-rich NextJS application for advanced functionality

For detailed setup instructions and more information about the frontend features, please visit our documentation page.

Owner

  • Name: Mohammed Gaber
  • Login: mgabs
  • Kind: user
  • Company: blueharvest.io

Citation (citation.cff)

cff-version: 1.0.0
message: "If you use this software, please cite it as below."
authors:
  - family-names: Elovic
    given-names: Assaf
title: gpt-researcher
version: 0.5.4
date-released: 2023-07-23
repository-code: https://github.com/assafelovic/gpt-researcher
url: https://gptr.dev

GitHub Events

Total
  • Delete event: 8
  • Issue comment event: 6
  • Push event: 4
  • Pull request review event: 1
  • Pull request event: 20
  • Create event: 15
Last Year
  • Delete event: 8
  • Issue comment event: 6
  • Push event: 4
  • Pull request review event: 1
  • Pull request event: 20
  • Create event: 15

Dependencies

Dockerfile docker
  • gpt-researcher-install latest build
  • install-browser latest build
  • python 3.11.4-slim-bullseye build
docker-compose.yml docker
  • gptresearcher/gpt-researcher latest
  • gptresearcher/gpt-researcher-tests latest
  • gptresearcher/gptr-nextjs latest
frontend/nextjs/Dockerfile docker
  • nginx latest build
  • node 18.17.0-alpine build
docs/package.json npm
  • @docusaurus/core 0.0.0-4193
  • @docusaurus/preset-classic 0.0.0-4193
  • @easyops-cn/docusaurus-search-local ^0.21.1
  • @mdx-js/react ^1.6.21
  • @svgr/webpack ^5.5.0
  • clsx ^1.1.1
  • docusaurus ^1.14.7
  • file-loader ^6.2.0
  • hast-util-is-element 1.1.0
  • minimatch 3.0.5
  • react ^17.0.1
  • react-dom ^17.0.1
  • rehype-katex 4
  • remark-math 3
  • trim ^0.0.3
  • url-loader ^4.1.1
frontend/nextjs/package.json npm
  • @types/jsdom ^21.1.6 development
  • @types/node ^20 development
  • @types/react ^18 development
  • @types/react-dom ^18 development
  • eslint ^8 development
  • eslint-config-next 14.2.3 development
  • postcss ^8 development
  • prettier ^3.2.5 development
  • prettier-plugin-tailwindcss ^0.6.0 development
  • tailwindcss ^3.4.1 development
  • typescript ^5 development
  • @chakra-ui/react ^2.4.9
  • @emotion/react ^11.10.5
  • @emotion/styled ^11.10.5
  • @langchain/langgraph-sdk ^0.0.1-rc.12
  • @mozilla/readability ^0.5.0
  • @testing-library/jest-dom ^5.16.5
  • @testing-library/react ^13.4.0
  • @testing-library/user-event ^13.5.0
  • axios ^1.3.2
  • eventsource-parser ^1.1.2
  • framer-motion ^9.0.2
  • jsdom ^24.1.0
  • next 14.2.10
  • next-plausible ^3.12.0
  • react ^18
  • react-dom ^18
  • react-dropzone ^14.2.3
  • react-hot-toast ^2.4.1
  • react-scripts 5.0.1
  • remark ^15.0.1
  • remark-html ^16.0.1
  • remark-parse ^11.0.0
  • together-ai ^0.6.0-alpha.3
  • web-vitals ^2.1.4
  • zod ^3.0.0
  • zod-to-json-schema ^3.23.0
multi_agents/requirements.txt pypi
  • gpt_researcher *
  • json5 *
  • langgraph *
  • langgraph-cli *
  • loguru *
  • python-dotenv *
  • weasyprint *
setup.py pypi
.github/workflows/docker-build.yml actions
  • actions/checkout v3 composite
  • docker/setup-buildx-action v2 composite
  • docker/setup-qemu-action v2 composite
multi_agents/package.json npm
  • @langchain/langgraph-sdk ^0.0.1-rc.13
pyproject.toml pypi
  • PyMuPDF >=1.23.6
  • SQLAlchemy >=2.0.28
  • aiofiles >=23.2.1
  • arxiv >=2.0.0
  • beautifulsoup4 >=4.12.2
  • colorama >=0.4.6
  • duckduckgo_search >=4.1.1
  • fastapi >=0.104.1
  • htmldocx ^0.0.6
  • jinja2 >=3.1.2
  • json-repair ^0.30.0
  • json5 ^0.9.25
  • langchain ^0.2
  • langchain-openai ^0.1
  • langchain_community ^0.2
  • langgraph >=0.0.29,<0.3
  • loguru ^0.7.2
  • lxml >=4.9.2
  • markdown >=3.5.1
  • md2pdf >=1.0.1
  • mistune ^3.0.2
  • openai >=1.3.3
  • permchain >=0.0.6
  • pydantic >=2.5.1
  • python >=3.10,<3.12
  • python-docx ^1.1.0
  • python-dotenv >=1.0.0
  • python-multipart >=0.0.6
  • pyyaml >=6.0.1
  • requests >=2.31.0
  • tavily-python >=0.2.8
  • tiktoken >=0.7.0
  • unstructured >=0.13,<0.17
  • uvicorn ^0.32.0
  • weasyprint ^62.3
requirements.txt pypi
  • PyMuPDF *
  • aiofiles *
  • arxiv *
  • beautifulsoup4 *
  • colorama *
  • fastapi *
  • gpt-researcher *
  • htmldocx *
  • jinja2 *
  • json5 *
  • json_repair *
  • langchain *
  • langchain-openai *
  • langchain_community *
  • langgraph *
  • loguru *
  • lxml_html_clean *
  • markdown *
  • md2pdf *
  • mistune *
  • pydantic *
  • python-docx *
  • python-dotenv *
  • python-multipart *
  • pyyaml *
  • requests *
  • tiktoken *
  • unstructured *
  • uvicorn *
  • websockets *