Skip to content
forked from neokd/NeoGPT

NeoGPT is an open-source, locally-run Language Model (LLM) πŸ“š which allows you to chat with documents, YouTube videos,etc.

License

Notifications You must be signed in to change notification settings

Ethaaan11/NeoGPT

Β 
Β 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

82 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

NeoGPT πŸš€

Say goodbye to boring interactions with documents and YouTube videos. NeoGPT is your trusted companion to chat with local documents and lengthy YouTube videos effortlessly. Perfect for professionals, developers, researchers, and enthusiasts.

NeoGPT Gif


Note: NeoGPT is continuously evolving. Your feedback shapes its future.

Table of Contents

πŸŽ‰ Join Us for Hacktoberfest 2023

Hacktoberfest Banner

Getting Started

  1. Installation: Clone this repository and install the necessary dependencies.

    git clone https://github.com/neokd/NeoGPT.git
    cd NeoGPT
    pip install -r requirements.txt
    

    Alternatively, using conda:

    git clone https://github.com/neokd/NeoGPT.git
     
    cd NeoGPT
    
    # Create a new Conda environment and specify the python version, for example, 'neogpt-env'
    conda create --name neogpt-env python=3.10
    
    # Activate the Conda environment
    conda activate neogpt-env
    
    # Now install the requirements using pip
    pip install -r requirements.txt
    
  2. Building Database Currently NeoGPT supports local files and Youtube videos. To build the database add your local files to the documents directory and URL in the builder.url file. Then run the builder script.

        python builder.py

    This will create a database file in the db folder. You can also specify the database to use --db flag. Supported databases are:

    • Chroma (default)
    • FAISS
    • Pinecone (experimental)

    Currently the database is built using 2 papers:

  3. Run NeoGPT: Run the CLI to start using NeoGPT. Requires Python v3.10. You can use the --help flag to view the available commands and options.

        python main.py 

Supported Retriever

  • Local Retriever
  • Web Retriever
  • Hybrid Retriever (Ensemble Retriever)

Project Roadmap

  • βœ“ RAG (Question Answering with local files) πŸ“‚
  • βœ“ Chat with Youtube Videos πŸŽ₯
  • βœ“ Web Based RAG (Search on Web and local files) πŸŒπŸ“‚
  • βœ“ Hybrid RAG (Keyword based and Semmantic Search) πŸ•΅οΈβ€β™‚οΈπŸ“‚
  • βœ“ FAISS Support πŸ“Š
  • βœ“ Chromadb Support 🎡
  • ☐ Chat with SQL DB πŸ€–
  • ☐ User Interface πŸ’»
  • ☐ Build a user-friendly CLI ⌨️
  • ☐ Upgrade Builder to support multiple file types including URLs πŸ“¦πŸŒ
  • ☐ Add support for other LLM types (Ollama) 🧠
  • ☐ Add other database support (MongoDB, ElasticSearch, etc.) πŸ“πŸ”
  • ☐ Support for other search engines (DuckDuckGo, Bing, etc.) πŸ”
  • ☐ Docker Support 🐳
  • ☐ Better Documentation πŸ“–
  • ☐ Agent based chatbot πŸ€–

Features

  • Task Automation: NeoGPT can automate a wide range of tasks, from text generation to data analysis, making it a versatile tool for various domains.

  • Local Execution: NeoGPT runs entirely on your local system, ensuring data privacy and security.

  • User-Friendly Interface: NeoGPT is designed with a user-friendly command-line interface (CLI) that makes it accessible to users with varying levels of technical expertise.

  • Extensible: You can easily extend NeoGPT's functionality by adding custom plugins or scripts.

  • Persona You can add various persona to NeoGPT to make it more human like.

Persona

The persona feature allows you to customize NeoGPT's responses based on your preferences. You can choose from a variety of personas, each with its own unique characteristics. For example, if you want NeoGPT to be more friendly, you can choose the FRIEND persona. If you want NeoGPT to be more professional, you can choose the RECRUITER persona. You can also create your own persona by editing prompts/prompt.py file. The following personas are currently available:

Persona Description
DEFAULT A helpful assistant with extensive knowledge.
RECRUITER An experienced recruiter who finds the best candidates.
ACADEMICIAN Engages in in-depth research and presents findings.
FRIEND Provides comfort and encouragement as a friend.
ML_ENGINEER Explains complex ML concepts in an easy-to-understand manner.
CEO Acts as the CEO, making strategic decisions.
RESEARCHER Analyzes, synthesizes, and provides insights.

Contributing

We welcome contributions to NeoGPT! If you have ideas for new features or improvements, please open an issue or submit a pull request. For more information, see our contributing guide.

License

This project is licensed under the MIT License - see the LICENSE file for details. Let's innovate together! πŸ€–βœ¨

Discord

Discord

About

NeoGPT is an open-source, locally-run Language Model (LLM) πŸ“š which allows you to chat with documents, YouTube videos,etc.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Python 100.0%