Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SmartPark — Parking Chatbot with Human-in-the-Loop

A staged build of an intelligent parking assistant. Each stage adds a layer; everything composes into a single Docker stack.

Layout

Folder What's inside
stage-1/ RAG chatbot — FAISS, SQLite, guardrails, evaluation harness
stage-2/ Second LangChain agent + FastAPI admin inbox + dashboard
Dockerfile One image for both stages
docker-compose.yml Three services: admin inbox, user app, admin UI
.github/workflows/ CI: per-stage pytest + Docker build

Quick start (Docker)

# Optional — for the full LLM experience, on the host:
ollama serve
ollama pull llama3.2:3b

docker compose up --build
URL What
http://localhost:8501 User-facing chatbot
http://localhost:8502 Admin dashboard
http://localhost:8765/health Admin inbox REST API

Without Ollama the system still runs — answers degrade to an extractive fallback that quotes the retrieved context.

Tests

cd stage-1 && pytest    # 31 passed, 1 skipped (FAISS round-trip)
cd stage-2 && pytest    # 36 passed

Both stages run their pytest suites offline — no Ollama, no network.


Original task brief

The goal of the project is to develop an intelligent chatbot that can interact with users, provide information about parking spaces, handle the reservation process, and involve a human administrator for confirmation ("human-in-the-loop"). The project will be divided into 4 stages, with each stage implementing a specific functionality.

General Requirements: Programming Language: Python. Frameworks: LangChain, LangGraph. Architecture: Based on Retrieval-Augmented Generation (RAG). Vector database: Recommended options include Milvus, Pinecone, or Weaviate, General Features: The chatbot provides information (general information, working hours, prices, availability of parking spaces, location). The reservation process is based on interactive collection of user data, including name, surname, car number, and reservation period. The system should prevent exposure of sensitive data (e.g., private information stored in the vector database). Evaluation of system performance (e.g., request latency, information retrieval accuracy).

Providing the result: for each task, please provide a link to your GitHub or EPAM GitLab repository in the answer field you can earn extra points if you provide the following artifacts: a PowerPoint presentation explaining how the solution works, including relevant screenshots a README file with clear project documentation (setup, usage, structure, etc.) Automated test cases are implemented using pytest or unittest (at least 2 tests per module) CI/CD automation and/or Infrastructure as Code (e.g., Terraform)

If the code is poor quality, or too basic to be practical, and includes critical errors, the grade may be reduced

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

Packages

Contributors

Languages