Skip to content
/ rag-ai-chatbot Public template
forked from vercel/ai-chatbot

RAG chatbot and document indexer, based on Next.js chatbot template from Vercel

License

Notifications You must be signed in to change notification settings

emertechie/rag-ai-chatbot

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

RAG AI Chatbot

This is a forked and customized version of the vercel/ai-chatbot repo.

It extends the original chatbot with support for RAG (Retrieval-Augmented Generation). Changes include:

  • CLI-based document indexer with support for file system and llms.txt-based indexing. Full source in the /indexer folder.
  • Database migrations and query support for indexed documents and their chunked encodings
  • A custom AI tool to enable the chatbot to search knowledge in the database tables
  • Customized system prompt to ensure the chatbot only uses knowledge from the database to reply, to avoid hallucinations
  • A custom UI component to display information sources

Full diff of my changes available here.

Document indexer

Run the indexer/index.ts script to fetch and index Markdown documents. See usage instructions below.

Environment variables can optionally be passed with the --env-file parameter pointing to a .env.local file. See the .env.example file for the expected variables.

llms.txt

Use the --url parameter with an llms.txt file link to index all Mardown documents included in the file. Currently, that's the only type of URL supported.

npx tsx --env-file=.env.local indexer/index.ts --url <link-to-llms.txt> [--delay <number>] [--max-files <number>]

Optional parameters

  • delay: Number of milliseconds of delay between fetch requests. Default: 250
  • max-files: Number of files to fetch and process. Default: undefined (fetch and process all files)

Local directory

Use the --path parameter to index all .md or .mdx files recursively from a local directory.

npx tsx --env-file=.env.local indexer/index.ts --path <directory>

The original Chat SDK Readme content is below with instructions on how to run the chatbot.


Chat SDK is a free, open-source template built with Next.js and the AI SDK that helps you quickly build powerful chatbot applications.

Read Docs · Features · Model Providers · Deploy Your Own · Running locally


Features

  • Next.js App Router
    • Advanced routing for seamless navigation and performance
    • React Server Components (RSCs) and Server Actions for server-side rendering and increased performance
  • AI SDK
    • Unified API for generating text, structured objects, and tool calls with LLMs
    • Hooks for building dynamic chat and generative user interfaces
    • Supports xAI (default), OpenAI, Fireworks, and other model providers
  • shadcn/ui
  • Data Persistence
  • Auth.js
    • Simple and secure authentication

Model Providers

This template ships with xAI grok-2-1212 as the default chat model. However, with the AI SDK, you can switch LLM providers to OpenAI, Anthropic, Cohere, and many more with just a few lines of code.

Deploy Your Own

You can deploy your own version of the Next.js AI Chatbot to Vercel with one click:

Deploy with Vercel

Running locally

You will need to use the environment variables defined in .env.example to run Next.js AI Chatbot. It's recommended you use Vercel Environment Variables for this, but a .env file is all that is necessary.

Note: You should not commit your .env file or it will expose secrets that will allow others to control access to your various AI and authentication provider accounts.

  1. Install Vercel CLI: npm i -g vercel
  2. Link local instance with Vercel and GitHub accounts (creates .vercel directory): vercel link
  3. Download your environment variables: vercel env pull
pnpm install
pnpm dev

Your app template should now be running on localhost:3000.

About

RAG chatbot and document indexer, based on Next.js chatbot template from Vercel

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 94.4%
  • JavaScript 4.8%
  • Other 0.8%