Giter Club home page Giter Club logo

data-inestion-llm's Introduction

DataChad V2๐Ÿค–

This is an app that let's you ask questions about any data source by leveraging embeddings, vector databases, large language models and last but not least langchains

How does it work?

  1. Upload any file(s) or enter any path or url
  2. The data source is detected and loaded into text documents
  3. The text documents are embedded using openai embeddings
  4. The embeddings are stored as a vector dataset to activeloop's database hub
  5. A langchain is created consisting of a LLM model (gpt-3.5-turbo by default) and the vector store as retriever
  6. When asking questions to the app, the chain embeds the input prompt and does a similarity search of in the vector store and uses the best results as context for the LLM to generate an appropriate response
  7. Finally the chat history is cached locally to enable a ChatGPT like Q&A conversation

Good to know

  • The app only runs on py>=3.10!
  • As default context this git repository is taken so you can directly start asking question about its functionality without chosing an own data source.
  • To run locally or deploy somewhere, execute cp .env.template .env and set credentials in the newly created .env file. Other options are manually setting of system environment variables, or storing them into .streamlit/secrets.toml when hosted via streamlit.
  • If you have credentials set like explained above, you can just hit submit in the authentication without reentering your credentials in the app.
  • Your data won't load? Feel free to open an Issue or PR and contribute!
  • Yes, Chad in DataChad refers to the well-known meme
  • DataChad V2 does not support local mode, but many feature will soon come. Stay tuned!

How does it look like?

TODO LIST

If you like to contribute, feel free to grab any task

  • Refactor utils, especially the loaders
  • Add option to choose model and embeddings
  • Enable fully local / private mode
  • Add option to upload multiple files to a single dataset
  • Decouple datachad modules from streamlit
  • remove all local mode and other V1 stuff
  • Load existing knowledge bases
  • Delete existing knowledge bases
  • Enable streaming responses
  • Show retrieved context
  • Refactor UI
  • Introduce smart FAQs
  • Exchange downloaded file storage with tempfile
  • Add user creation and login
  • Add chat history per user
  • Make all I/O asynchronous
  • Implement FastAPI routes and backend app
  • Implement a proper frontend (react or whatever)
  • containerize the app

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.