architecture

Capstone Project

Enterprise Assistant

Agentic AI Capstone

Enterprise Assistant

End-to-end enterprise assistant built with Streamlit + LangGraph that combines retrieval Q&A, operational tool automation, and RFP proposal generation in a single routed architecture.

hub

Architecture At A Glance

web

UI Layer

Streamlit chat UI captures the prompt, builds GraphState, invokes LangGraph, and renders responses plus upload controls.

account_tree

Orchestration Layer

Supervisor classifies intent and routes to RAG_FLOW, TOOL_FLOW, RFP_FLOW, or UPLOAD_FLOW using conditional graph edges.

smart_toy

Execution Layer

Specialized agents execute retrieval Q&A, SQLite tool actions, enterprise RFP drafting, and upload-first workflows.

storage

Data + Ops Layer

Retrieval runs on FAISS or Qdrant, tool data comes from SQLite, and standardized logger traces each request_id end to end.

Request Lifecycle

1) Receive Question

Streamlit captures user text with st.chat_input(), generates request_id, and initializes GraphState with optional uploaded_file.

2) Classify Intent

Supervisor node in nodes.py calls router.py intent logic with keyword-first routing and optional LLM fallback.

3) Route by Graph

graph.py sends flow to rag/tool/rfp/upload nodes through conditional edges and then exits at END.

4) Execute Agent

RAG uses similarity search context, TOOL queries open incidents/requests, RFP drafts proposals with optional PDF context.

5) Render + Log

Response, intent, and upload hints are returned to UI; chat history updates and logs include flow decisions and response preview.

What Is Built

  • LangGraph multi-route architecture with supervisor + deterministic routing paths.
  • RAG pipeline with local FAISS indexing and cloud Qdrant retrieval abstraction.
  • Tooling agent integrated with SQLite incidents and service request tables.
  • RFP proposal generator using uploaded PDF parsing with bounded context extraction.
  • Provider-aware model layer supporting Ollama, Gemini, and Groq via config.
  • Observability-first logging chain from UI events to node and tool execution.

How To Use

  • Ask operations queries: `show open incidents`, `show open requests`.
  • Ask enterprise drafting prompts: `Draft proposal for cloud migration`.
  • Use upload flow: `I want to upload an RFP` then attach PDF and request summary/draft.
  • Run app locally with `poetry run streamlit run app/ui/streamlit_app.py`.
  • Initialize data with `poetry run python -m app.db.init_db` and `poetry run python -m app.db.seed_db`.
  • Build retrieval index with `poetry run python -m app.rag.build_index` (local) or ingest Qdrant for cloud mode.

Links