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

A full-featured, hackable Next.js AI chatbot built by Vercel

License

Notifications You must be signed in to change notification settings

datamonet/ai-chatbot

 
 

Repository files navigation

Next.js 14 and App Router-ready AI chatbot.

An Open-Source AI Chatbot Template Built With Next.js and the AI SDK by Vercel.

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 OpenAI (default), Anthropic, Cohere, and other model providers
  • shadcn/ui
  • Data Persistence
  • NextAuth.js
    • Simple and secure authentication

Model Providers

This template ships with OpenAI gpt-4o as the default. 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 OpenAI 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.

Prisma Database Setup

We use PostgreSQL as an example but you can use any database supported by Prisma.

  1. Create a new empty database named chat
  2. Set up your database connection by adding this to your .env file:
DATABASE_URL="postgresql://postgres@localhost:5432/chat?schema=public"
  1. Initialize Prisma database with the init migration:
npx prisma migrate dev --name init
  1. Apply pending migrations:
npx prisma migrate deploy
  1. Generate Prisma Client (must be run after any schema changes):
npx prisma generate

Now you can test the app via pnpm dev.

Handling Schema Changes

When you modify the Prisma schema (schema.prisma), follow these steps:

  1. Create and apply a new migration: npx prisma migrate dev --name <description_of_change>. This command will:
  • Create a new migration file
  • Apply the migration to your database
  • Regenerate Prisma Client
  1. Apply pending migrations: npx prisma migrate deploy. Note: If you're in development and don't need to keep the data, you can use npx prisma migrate reset to reset the database and apply all migrations from scratch.

About

A full-featured, hackable Next.js AI chatbot built by Vercel

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 94.9%
  • JavaScript 3.8%
  • CSS 1.3%