Enterprise IT Helpdesk Agent is a local IT service desk Agent MVP.
It combines FastAPI, Streamlit, RAG, SQLite, and a rule-based Agent decision layer to support knowledge-base Q&A, Agent decisions, automatic ticket creation, ticket management, and dashboard metrics.
- Upload Markdown knowledge-base documents
- Ask RAG questions with citations
- Ask the Agent to decide the next action:
answer: answer directly from the knowledge baseclarify: ask for missing detailscreate_ticket: create an IT support ticket
- Browse, filter, inspect, and update tickets
- View ticket dashboard metrics
- Store tickets locally in SQLite
app/
api/routes/ FastAPI routes
core/ configuration and logging
rag/ document loading, splitting, retrieval, vector store
schemas/ Pydantic schemas
services/ RAG, Agent, and Ticket business logic
storage/ SQLite ticket storage
ui/ Streamlit API client helpers
sample_docs/ sample IT knowledge-base documents
tests/ automated tests
streamlit_app.py Streamlit frontend
cd D:\program\agent\projects\it-helpdesk-agent
python -m venv .venv
.\.venv\Scripts\Activate.ps1
python -m pip install -r requirements.txt
Copy-Item .env.example .envEdit .env and set your model configuration:
OPENAI_API_KEY=your_api_key
OPENAI_BASE_URL=https://api.openai.com/v1
CHAT_MODEL=gpt-5.4The default embedding provider is local:
EMBEDDING_PROVIDER=local
LOCAL_EMBEDDING_MODEL=sentence-transformers/paraphrase-multilingual-MiniLM-L12-v2cd D:\program\agent\projects\it-helpdesk-agent
python -m uvicorn app.main:app --reloadOpen:
- Swagger UI:
http://127.0.0.1:8000/docs - Health check:
http://127.0.0.1:8000/health
Open a second terminal:
cd D:\program\agent\projects\it-helpdesk-agent
streamlit run streamlit_app.py --server.headless trueOpen:
http://localhost:8501
- Open the
Ingesttab and uploadsample_docs/vpn-troubleshooting.md. - Open the
RAGtab and ask:
List the Windows and macOS commands for flushing DNS cache.
- Open the
Agenttab and ask:
My VPN authentication keeps failing, my account may be locked, and I have retried multiple times. Please create a support ticket.
- Open the
Ticketstab and inspect the ticket created by the Agent. - Update the ticket status, priority, and resolution note.
- Open the
Dashboardtab and review ticket metrics.
The sample_docs/ directory includes five sample IT documents:
vpn-troubleshooting.mdemail-account-and-password.mdgitlab-permission-request.mdprinter-connection-faq.mdoffice-software-installation.md
cd D:\program\agent\projects\it-helpdesk-agent
python -m pytestThe tests cover:
- health API
- RAG ingest and ask flows
- Agent schemas, service logic, and API
- Ticket schemas, store, service, and API
- Streamlit API client helpers
The following files and directories are runtime data and should not be committed:
.envdata/chroma/data/uploads/data/tickets.dblogs/__pycache__/.pytest_cache/
They are already listed in .gitignore.
This project is a local MVP. It does not include authentication, authorization, multi-user isolation, or production hardening. Do not expose it directly to the public internet.