// the find
vercel-labs/gemini-chatbot
Build your own generative UI chatbot using the Vercel AI SDK and Google Gemini
A Next.js App Router chat app built on the Vercel AI SDK, defaulting to Google Gemini but switchable to OpenAI, Anthropic and others. It bundles NextAuth login, chat history in Postgres, file uploads to Blob and a few generative UI demos. It is a starting point for building your own chat product, not a library to import.
- The chat route in app/(chat)/api/chat/route.ts and the ai/ folder keep model wiring, middleware and actions in a few files, so the whole request path fits in one reading session.
- Tool results render as React components (components/flights/ covers seat selection, boarding passes and flight status), a concrete example of generative UI rather than markdown-only output.
- The data layer is a Drizzle schema, a single initial migration and a plain query module in db/queries.ts, which is easy to follow and to replace.
- Auth, history and file upload are wired together, so the template covers the parts most chat prototypes skip.
- The README still names gemini-1.5-pro as the default model. Check the model ID in the code against what Google currently serves before assuming it is up to date.
- The flight booking flow (reservation, seat selection, payment authorization) is demo code. You will have to strip it out, and it is a poor template to copy for real payments.
- The README ties persistence to Vercel Postgres and Vercel Blob. Running it elsewhere means swapping the Drizzle driver and the upload storage, and nothing in the README covers that.
- There is only one migration and the project reads more like a demo than a maintained product, so schema evolution, auth hardening and error handling are yours to own.