YAML Metadata Warning:empty or missing yaml metadata in repo card
Check out the documentation for more information.
ParcelPilot Support Chatbot
This is my submission for the CalQuity AI Engineer assessment.
I built a customer-facing support chatbot for ParcelPilot using Streamlit
and OpenAI's gpt-4o-mini model. Customers can log in (demo login, picks
one of the 4 accounts from the dataset) and ask questions about their
orders, cancellations, service credits, and policies. It can also raise an
escalation to the human support team, but only after the customer confirms.
I also added a small internal "Ops Radar" page (Problem 1 from the extra credit section - proactive issue detection) which shows tickets close to breaching SLA, similar/duplicate tickets, matches to known product issues, and a category-level check for recent ticket-volume spikes.
Every answer in the chat is also tagged with a short reliability badge (high/medium/low) based on what the tools actually returned for that turn - e.g. whether it was backed by a signed customer agreement, touched a deprecated document, or was missing a fact it needed.
How to run this
- Install the requirements:
pip install -r requirements.txt
Add your OpenAI API key. You have two options:
- Set it as an environment variable:
export OPENAI_API_KEY=sk-xxxxxx - OR copy
.streamlit/secrets.toml.exampleto.streamlit/secrets.tomland put your key there instead.
- Set it as an environment variable:
Run the app:
streamlit run app.py
- It will open in your browser (usually
http://localhost:8501)
Model used is gpt-4o-mini. I picked this one because it's cheap and fast
and handles tool-calling pretty well, which is what this project needed.
What's in each file
app.py- the streamlit UI (account picker, chat page, Ops Radar page)agent.py- talks to OpenAI, runs the tool-calling looptools.py- the actual tools the AI can use (search docs, get data, calculate, escalate)data_store.py- loads the excel data + the fee/credit calculation logicdocuments.py- loads and searches the PDF documentsinsights.py- the "Ops Radar" proactive detection logic (SLA risk, duplicate clusters, known-issue matches, volume spikes)data/- the pdfs and excel file given in the assessment pack
Login
On the login screen, pick any of the 4 customer accounts from the dropdown (Northstar Logistics, LumenWorks, Beacon Retail, Axis Labs) and hit Continue. This is a fake/demo login since building real authentication wasn't the point of this assessment.
More details about how I designed things is in ARCHITECTURE.md and
PRODUCT.md.