jordimerejo / pdf-chat-ai

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

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

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.

About

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

License:MIT License


Languages

Language:TypeScript 90.3%Language:JavaScript 5.9%Language:CSS 3.8%