Giter Site home page Giter Site logo

chat-llamaindex's Introduction



LlamaIndex Chat Logo

LlamaIndex Chat

Create chat bots that know your data

LlamaIndex Chat Screen

Welcome to LlamaIndex Chat. You can create and share LLM chatbots that know your data (PDF or text documents).

Getting started with LlamaIndex Chat is a breeze. Visit https://chat-llamaindex.vercel.app - a hosted version of LlamaIndex Chat with no user authentication that provides an immediate start.

๐Ÿš€ Features

LlamaIndex Chat is an example chatbot application for LlamaIndexTS. You can:

  • Create bots using prompt engineering and share them with other users.
  • Modify the demo bots by using the UI or directly editing the ./app/bots/bot.data.ts file.
  • Integrate your data by uploading documents or generating new data sources.

โšก๏ธ Quick start

Local Development

Requirement: NodeJS 18

  • Clone the repository
git clone https://github.com/run-llama/chat-llamaindex
cd chat-llamaindex
  • Set the environment variables
cp .env.template .env.development.local

Edit environment variables in .env.development.local.

  • Run the dev server
pnpm install
pnpm dev

Vercel Deployment

Deploying to Vercel is simple; click the button below and follow the instructions:

Deploy with Vercel

If you're deploying to a Vercel Hobby account, change the running time to 10 seconds, as this is the limit for the free plan.

If you want to use the sharing functionality, then you need to create a Vercel KV store and connect it to your project. Just follow this step from the quickstart. No further configuration is necessary as the app automatically uses a connected KV store.

๐Ÿ”„ Sharing

LlamaIndex Chat supports the sharing of bots via URLs. Demo bots are read-only and can't be shared. But you can create new bots (or clone and modify a demo bot) and call the share functionality in the context menu. It will create a unique URL that you can share with others. Opening the URL, users can directly use the shared bot.

๐Ÿ“€ Data Sources

The app is using a ChatEngine for each bot with a VectorStoreIndex attached. The cache folder in the root directory is used as Storage for each VectorStoreIndex.

Each subfolder in the cache folder contains the data for one VectorStoreIndex. To set which VectorStoreIndex is used for a bot, use the subfolder's name as datasource attribute in the bot's data.

Note: To use the changed bots, you have to clear your local storage. Otherwise, the old bots are still used. You can clear your local storage by opening the developer tools and running localStorage.clear() in the console and reloading the page.

Generate Data Sources

To generate a new data source, create a new subfolder in the datasources directory and add the data files (e.g., PDFs). Then, create the `VectorStoreIndex`` for the data source by running the following command:

pnpm run generate <datasource-name>

Where <datasource-name> is the name of the subfolder with your data files.

๐Ÿ™ Thanks

Thanks go to @Yidadaa for his ChatGPT-Next-Web project, which was used as a starter template for this project.

chat-llamaindex's People

Contributors

marcusschiesser avatar dependabot[bot] avatar yisding avatar gappc avatar

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.