This repository contains my submission for the Atlan AI Engineering Internship Challenge.
The project implements a Customer Support Copilot system that can classify tickets, retrieve relevant documentation, and provide an assistant view for resolving queries.
- Bulk Ticket Classification – Supports multiple tickets at once, with rule-based heuristics as a fallback.
- RAG-backed Assistant – Retrieves answers from ingested documentation; uses LLM generation if an OpenAI API key is available.
- Local Persistence – Chroma DB stores embeddings for efficient retrieval.
- Streamlit UI – Simple interface for interactive exploration.
- With OpenAI API key → LLM-powered classification and answer generation.
- Without API key → Rule-based classification and local retrieval with Chroma DB.
-
Live Application: Customer Support Copilot
Try the working helpdesk application directly in your browser. -
GitHub Repository: Repo Link
Contains all source code, project files, and documentation.
- Bulk Ticket Classification: Classifies multiple tickets at once, with fallback heuristics if no OpenAI key is provided.
- RAG-backed Assistant: Uses a retrieval-augmented generation flow to answer queries from ingested docs. If no OpenAI key is set, the assistant still retrieves relevant context locally, but LLM-based answer generation is skipped.
- Chroma DB Support: Stores embeddings locally for efficient retrieval.
- Flexible Setup: Works even without an OpenAI API key (heuristics only).
- Streamlit UI: Simple web app interface for exploration.
-
Copy
.env.example
to.env
and fill inOPENAI_API_KEY
if available. -
Create and activate a virtual environment, then install requirements:
python -m venv venv
venv\Scripts\activate
pip install -r requirements.txt
- Confirm tickets load:
python ingest.py --list
- Fetch documentation to
data/docs
:
python ingest.py --fetch <urls>
- Launch the Streamlit app:
streamlit run app.py
atlan-customer-support-copilot/
├── app.py # Streamlit app (UI) & Dashboard
├── ingest.py # Handles ticket/doc ingestion
├── classify.py # Ticket classification logic (topic, sentiment, priority)
├── rag.py # RAG helper: answer_query using Chroma + GPT
├── data/
│ ├── chroma_db/ # Local Chroma DB persistence
│ ├── sample_tickets.jsonl # Example support tickets
│ ├── docs/ # Optional SDK/docs files for RAG
├── tests/
│ ├── test_ingest.py # Test ingestion works
│ ├── test_classify.py # Test classification logic
├── .gitignore # Ignore sensitive files
├── render.yaml # Render deployment config
├── requirements.txt # Dependencies
├── README.md # Project documentation
├── submission.md # Submission summary
The following diagram illustrates the complete architecture of the Customer Support Copilot AI System, highlighting the flow from user interaction to AI-driven insights.
-
Fallback Heuristics: Even without an OpenAI API key, the app still classifies tickets using rule-based heuristics.
-
Local Persistence: Chroma DB persistence ensures embeddings don’t need to be regenerated every run.
-
Lightweight & Minimal: No heavy dependencies are used outside of
requirements.txt
, making the app easy to run locally. -
Dual Mode (API / No API): Designed to run in constrained environments (no external API calls). If an OpenAI key is present, GPT models are used; otherwise, heuristics + local retrieval ensure continuity.
- Practical use of RAG (Retrieval-Augmented Generation) in a support assistant.
- Trade-offs between heuristic classification and LLM-based classification.
- Best practices for structuring AI apps with a clean, documented repo.
- ✅ Bulk Ticket Classification – Successfully implemented ticket classification for multiple tickets with topic, sentiment, priority, and confidence scores.
- ✅ RAG-backed Assistant Integration – Implemented a retrieval-augmented generation pipeline using Chroma DB for local persistence, capable of answering tickets/questions based on ingested documentation.
- ✅ Streamlit UI Development – Built an intuitive web interface with separate tabs for bulk ticket dashboard and interactive ticket assistant.
- ✅ Comprehensive Documentation – Provided clear setup instructions, project structure, and usage guidelines in
README.md
andsubmission.md
. - Future Enhancements – Potential improvements include refining the UI/UX, integrating advanced classification models, expanding SDK documentation for more accurate RAG responses, and adding automated testing for pipeline validation.
This project is for internship evaluation purposes only under Atlan’s AI Engineer program. If reusing this work, please ensure proper attribution and follow open-source license guidelines.