/pdf-chat-ai

An AI powered Next.js app to chat with your PDF files and get a streamed response using Langchain and PineconeDB βœ¨πŸ€–πŸ’»πŸ—ƒοΈ

Primary LanguageTypeScriptMIT LicenseMIT

PDF-CHAT AI βœ¨πŸ€–πŸ’»πŸ—ƒοΈ

An AI-powered PDF chat built with Next.js 13, Langchain, and PineconeDB

πŸ‘·πŸΎβ€β™‚οΈ Want to Learn How to Build It?

Check out the tutorial on my YT channel

✨Update✨

Added sources to the stream and displaying it in an accordian

Chat.with.sources.mov

Architecture

Embed LLM

πŸ‘©β€πŸš€ Description

Built with:

  • βœ… Next.js 13
  • βœ… Shadcn-ui
  • βœ… Langchain TypeScript integration
  • βœ… PineconeDB as the knowledge store
  • βœ… Dark Mode with persistent theme-switching

πŸ—ƒοΈ Pre-requisites

  • Create a free account and get an OPEN_AI key from platform.openai.com
  • Create a free account and get access to PineconeDB
  • And populate your .env file with the required information.

πŸ’¬ Good to know

  • The PineconeDB index creation happens when we run npm run prepare:data, but its better to create it manually if you dont want the command to fail.
  • If the command fails, then give sometime for pinecone index to get initialized and try to run the command again, it should work eventually.

🧞 Commands

All commands are run from the root of the project, from a terminal:

Command Action
npm install Installs dependencies
npm run prepare:data Splits your PDF file under the /docs folder into chunks, embeds them, uploads them to Pinecone
npm run dev Starts the local dev server at localhost:3000

🚸 Roadmap

  • βœ… Add sources to the streamed chat bubble
  • 🚧 Clean up and show proper error messages
  • 🚧 Sanitize input and output source documents

πŸ‘πŸ½ Contributing

Pull requests are welcome, before creating a PR talk to me on discord. For major changes, please open an issue first to discuss what you would like to change.