The NKU-AI-Assistant is your go-to helper for campus life at Nankai University. Whether it's academic questions or everyday tasks, this assistant can provide you with thoughtful support, just like a helpful senior student.
- LangChain The largest community building the future of LLM apps
- LangGraph Balance agent control with agency
- FastAPI Building APIs
- Next.js App Router
- React Server Components (RSCs), Suspense, and Server Actions
- Vercel AI SDK for streaming chat UI
- shadcn/ui
- Styling with Tailwind CSS
- Radix UI for headless component primitives
- Icons from Phosphor Icons
- Chat History, rate limiting, and session storage with Vercel KV
- NextAuth.js for authentication
Follow the steps outlined in the quick start guide provided by Vercel. This guide will assist you in creating and configuring your KV database instance on Vercel, enabling your application to interact with it.
Remember to update your environment variables (KV_URL, KV_REST_API_URL, KV_REST_API_TOKEN, KV_REST_API_READ_ONLY_TOKEN) in the .env file with the appropriate credentials provided during the KV database setup.
You will need to use the environment variables defined in .env.example to run the 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
.envfile or it will expose secrets that will allow others to control access to your various OpenAI and authentication provider accounts.
- Install Vercel CLI:
npm i -g vercel - Link local instance with Vercel and GitHub accounts (creates
.verceldirectory):vercel link - Download your environment variables:
vercel env pull
pnpm install
pnpm devYour app template should now be running on localhost:3000.
If you also want to use FastAPI to build your own chatbot, you can replace the request URL in the
submitUserMessagefunction inlib/chat/action.ts.
For the backend code, please refer to the other repository NKU-Smart-Assitant-API.
A big thanks to the ai-chatbot project 🥰🥰🥰, which served as the foundation for our frontend.


