booprogram-agent
v1.0.1
Published
A lightweight AI-powered document ingestion and querying system built with React and OpenAI. Upload documents (PDF, DOCX), process them into chunks, and query them using embeddings + LLM reasoning.
Readme
🧠 Booprogram Agent
A lightweight AI-powered document ingestion and querying system built with React and OpenAI. Upload documents (PDF, DOCX), process them into chunks, and query them using embeddings + LLM reasoning.
🚀 Features
- 📄 Upload and parse PDF and DOCX files
- 🧩 Automatic chunking & embedding of document content
- 🔍 Semantic search over uploaded documents
- 💬 Ask questions and get AI-generated answers based on your data
- 🗂️ Document management (list + delete)
📦 Installation
npm install booprogram-agent⚙️ Setup
1. Add your OpenAI API key
Create a .env file in your project root:
OPENAI_API_KEY=your_openai_api_key_here2. Basic Usage
import { AgentDashboard } from "booprogram-agent";
export default function Page() {
return <AgentDashboard apiKey={process.env.OPENAI_API_KEY!} />;
}🧠 How It Works
Upload Document
- Files are parsed (
pdf-parse/docx) - Text is extracted
- Files are parsed (
Processing
- Text is split into chunks
- Each chunk is embedded using OpenAI embeddings
Storage
- Chunks + embeddings are stored locally (or your backend)
Querying
- User question → embedded
- Similar chunks are retrieved
- Context is sent to LLM → answer generated
🛠️ Supported File Types
- DOCX
📁 Project Structure (Simplified)
/parsers
parsePDF.ts
parseDocx.ts
/knowledge
ingestDocument.ts
getDocuments.ts
deleteDocument.ts
/components
AgentDashboard.tsx⚡ Notes on Token Usage
Documents are not sent entirely to OpenAI
Only relevant chunks are retrieved and used
This keeps:
- 💰 costs low
- ⚡ responses fast
🧪 Future Improvements
- Vector DB integration (Pinecone / Weaviate)
- Streaming responses
- Better chunking strategies
- UI improvements (drag & drop, previews)
- Multi-document context reasoning
🧑💻 Development
npm run dev📄 License
MIT
🤝 Contributing
PRs and suggestions are welcome.
🧩 Author
Built by Lazar Velickovic
