Giter Club home page Giter Club logo

neogpt's Introduction

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 ๐ŸŽต
  • โœ“ Build a user-friendly CLI โŒจ๏ธ
  • โœ“ Upgrade Builder to support multiple file types including URLs ๐Ÿ“ฆ๐ŸŒ
  • โ˜ Chat with SQL DB ๐Ÿค–
  • โ˜ User Interface ๐Ÿ’ป
  • โ˜ 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 neogpt/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

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.