A staged build of an intelligent parking assistant. Each stage adds a layer; everything composes into a single Docker stack.
| 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 |
# 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.
cd stage-1 && pytest # 31 passed, 1 skipped (FAISS round-trip)
cd stage-2 && pytest # 36 passedBoth stages run their pytest suites offline — no Ollama, no network.
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