Grant Writing Assistant
RAG
LLM
Pinecone
VectorStore
Docker
CI/CD
LLMOps
Langsmith
Railway
FASTAPI
Streamlit
Tip
Grant Writing Assistant is an AI-powered RAG application designed to help users query and synthesize information from a custom knowledge base about the NeighborhoodHELP (NHELP) program.
It leverages Retrieval-Augmented Generation (RAG) to provide accurate, context-aware answers for grant writing and program documentation.
🚀 Features
- 💬 Conversational AI: Remembers chat history to handle follow-up questions.
- 📚 Dynamic Knowledge Base: Ingests information from PDFs and live websites.
- 🔎 Source Transparency: Displays references for every answer.
- ⚡ Streaming Responses: Token-by-token output for responsiveness.
- 🛠️ Developer Dashboard: Manage prompts and knowledge base via a Streamlit admin app.
🧱 MLOps & Professional Practices
- 🔄 CI/CD: Automated linting with Ruff using GitHub Actions.
- 📊 Evaluation: Built-in pipeline with Ragas to measure faithfulness, relevancy, and answer quality.
- 👁️ Observability: End-to-end tracing with LangSmith.
- 📦 Containerization: Fully reproducible deployments using Docker.
- 📝 Prompt Management: Externalized into version-controlled
prompts.yml.
🧬 Tech Stack
- Framework: Streamlit
- LLM Orchestration: LangChain
- LLMs: OpenAI GPT Models
- Vector Store: Pinecone
- Observability: LangSmith
- Evaluation: Ragas
- Deployment: Docker + Railway
- CI/CD: GitHub Actions
🏗️ System Architecture
This project uses a monolithic architecture where a single Streamlit application handles both the user interface and the RAG logic.
Data ingestion is managed by an offline script (ingest.py).
⚡ Getting Started
▶️ Running the Application
- Access in Browser Open:
https://grantwritingassistantnhelp-production-c6ef.up.railway.app/
🖼️ Screenshots
