Chat with PDF is a TypeScript-based project that allows users to interact with PDF documents through a chat interface. This project leverages Node.js and various npm packages to provide a seamless experience for parsing and querying PDF content.
To get started with Chat with PDF, follow these steps:
-
Clone the repository:
git clone https://github.com/your-username/chat-with-pdf.git cd chat-with-pdf
-
Install the dependencies:
npm install
-
Build the project:
npm run build
After installing the dependencies and building the project, you can start the application with:
npm start
- Next.js: React framework for server-side rendering and static site generation.
- React: JavaScript library for building user interfaces.
- TypeScript: Superset of JavaScript that adds static typing.
- pdf-parse: Library for parsing PDF files.
- @react-pdf/renderer: Library for rendering PDFs in React.
- react-pdf: Library for displaying PDFs in React.
- @clerk/nextjs: Authentication library for Next.js.
- @clerk/elements: UI components for Clerk authentication.
- firebase: Backend-as-a-service for building web and mobile applications.
- firebase-admin: Firebase Admin SDK for server-side operations.
- @pinecone-database/pinecone: Pinecone database client.
- @langchain/pinecone: Integration for Pinecone with LangChain.
- @langchain/community: Community package for LangChain.
- @radix-ui/react-label: Radix UI component for labels.
- @radix-ui/react-slot: Radix UI component for slots.
- @radix-ui/react-toast: Radix UI component for toasts.
- lucide-react: Icon library for React.
- react-dropzone: Library for file dropzone components.
- react-markdown: Library for rendering Markdown in React.
- daisyui: Tailwind CSS component library.
- tailwindcss: Utility-first CSS framework.
- tailwind-merge: Utility for merging Tailwind CSS classes.
- tailwindcss-animate: Tailwind CSS plugin for animations.
- clsx: Utility for constructing
className
strings conditionally.
- stripe: Stripe API client for server-side operations.
- @stripe/stripe-js: Stripe.js library for client-side operations.
- byte-size: Library for formatting byte sizes.
- uuid: Library for generating UUIDs.
- eslint: Linting utility for JavaScript and TypeScript.
- eslint-config-next: ESLint configuration for Next.js.
- postcss: Tool for transforming CSS with JavaScript plugins.
- typescript: TypeScript compiler.
- @types/node: Type definitions for Node.js.
- @types/react: Type definitions for React.
- @types/react-dom: Type definitions for React DOM.
- @types/uuid: Type definitions for UUID.