Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/rajeshdavidbabu/pdf-chat-ai

An AI powered Next.js app to chat with your PDF files and get a streamed response using Langchain and PineconeDB βœ¨πŸ€–πŸ’»πŸ—ƒοΈ
https://github.com/rajeshdavidbabu/pdf-chat-ai

Last synced: 3 months ago
JSON representation

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

Awesome Lists containing this project

README

        

# 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](https://www.youtube.com/watch?v=oiCFr19NtPo&t)

## ✨Update✨
Added sources to the stream and displaying it in an accordian

https://github.com/rajeshdavidbabu/pdf-chat-ai/assets/15684795/feb5331d-b43d-4778-a8dd-630d6f361197

## 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](https://discord.com/channels/1121796870231040020/1156553471881908275). For major changes, please open an issue first
to discuss what you would like to change.