Skip to content

Release: Merge develop into main (Docker image size: 5.37GB) - #1

Merged
FairozaAmira merged 18 commits into
mainfrom
develop
Feb 21, 2026
Merged

FairozaAmira merged 18 commits into
mainfrom
develop

Conversation

@FairozaAmira

@FairozaAmira FairozaAmira commented Feb 21, 2026 •

Copy link
Copy Markdown
Owner

Overview

This is the first pull request from develop into main, so it includes all foundational work completed on the develop branch. Docker file size 5.4GB

Scope

  • Bootstrap FastAPI application structure (controllers, routers, utils, tests)
  • Implement RAG pipeline and retrieval components
  • Add chatbot, crawler, and evaluation API flows
  • Add sample domain datasets and web sample sources
  • Add environment templates for UAT/production
  • Add Docker runtime/build setup (including Ollama-ready startup path)
  • Add CI workflow with branch/PR checks and tag-based UAT/PROD deployment jobs
  • Expand README with setup, usage, and deployment guidance

Change Size

  • 38 files changed
  • 2107 insertions, 2 deletions

Commit History Included

  • initial commit and subsequent foundational commits on API, RAG, ingestion, evaluation
  • CI/CD pipeline and deployment tagging
  • Docker/runtime stabilization and dependency updates
  • README/documentation expansions
  • latest config updates (Ollama timeout + Chroma telemetry disablement)

Validation

  • Docker build completed successfully for enterprise-chatbot.

- include timeTaken and apiCost fields across chatbot, crawler, and evaluation responses
- align cost estimation with optional LLM usage and update tests to assert new schema
- document Swagger/Redoc endpoints for local exploration in README
- add sample knowledge base assets across knowledge, tender, finance, and mock web pages for crawler demos
- enhance data crawler to ingest local HTML “web samples” and update README with directory structure details
- document full request/response examples for crawler, chatbot, and evaluation APIs (including id/createdAt/timeTaken/apiCost metadata)
- alias response fields to camelCase in shared schemas to keep JSON output consistent
- allow crawler requests to supply website_urls and fetch external pages into the knowledge base
- update sample data, tests, and README with new crawler payload/response examples and recommended URLs
- document json response metadata and camelCase aliases for all endpoints
- rename workflow to CI-CD and trigger on all pushes/PRs
- add deploy-uat and deploy-prod jobs that run on tag suffixes (*-uat, *-prod)
- each deploy job builds Docker image and includes placeholder deployment steps
- jobs reference GitHub environments (uat, production) for protection/secrets
- configure explicit package discovery to include only the Python package
- add [tool.setuptools.packages.find] with include pattern
- resolves CI build failure caused by multiple top-level packages (data, routers, controllers)
- replace deprecated RetrievalQA with load_qa_chain and manual retriever invocation
- update imports to use langchain_core and stable langchain.chains modules
- adjust RAGPipeline._build_chain and answer methods to new API
- resolves CI test failure: ModuleNotFoundError: No module named 'langchain.chains'
- drop all imports from langchain.chains to fix ModuleNotFoundError
- implement RAG using only langchain_core and direct LLM invocation
- format context from retrieved docs and invoke LLM with prompt
- ensures compatibility across recent LangChain versions
- pin Python to 3.10.11 in pyproject.toml and Dockerfile
- pin all runtime and dev dependency versions
- add pydantic-settings and update BaseSettings import
- set CPU-only environment variables in Dockerfile to prevent CUDA/NVIDIA packages
- ensures reproducible builds and avoids GPU dependencies
- add missing BaseRetriever import from langchain_core.retrievers
- preinstall CPU-only torch before uv pip install to prevent CUDA/NVIDIA packages
- ensures tests import correctly and Docker builds stay CPU-only
- use object.__setattr__ to set _base_retriever and _domain
- bypasses Pydantic field validation for private attributes
- resolves ValueError: object has no field "_base_retriever"
- remove torch and torchvision from pyproject.toml to avoid conflicts
- keep CPU-only torch installation in Dockerfile via pip3
- prevents dependency resolver from pulling CUDA-enabled torch
- ensures reproducible CPU-only Docker builds
- add .env.uat and .env.production templates to project root
- update .gitignore to keep .env ignored but track .env.uat/.env.production
- update CI deploy jobs to load .env.uat/.env.production before build
- add Ollama runtime setup in Dockerfile (including zstd requirement)
- add startup script to auto-start Ollama and pull configured model
- document env template usage and CI secret guidance in README
- add .env.uat and .env.production templates (tracked in repo)
- update .gitignore to keep .env ignored but allow env deploy templates
- update CI deploy jobs to load .env.uat/.env.production before Docker build
- add Ollama runtime bootstrap script and Docker support for model pull
- install zstd for Ollama installer in runtime image
- fix Chroma sqlite compatibility via pysqlite3 fallback + dependency update
- add README guidance for env templates, Ollama mode, and CI-safe usage
- add tracked .env.uat and .env.production templates for CI deploy jobs
- update CI to load env-specific files before UAT/PROD Docker builds
- harden Docker runtime for Ollama (zstd install, startup script, model pull flow)
- fix Chroma sqlite compatibility in containers (pysqlite3 shim + builder deps)
- clean README Docker commands and env examples (no inline value comments)
@FairozaAmira FairozaAmira self-assigned this Feb 21, 2026
- use python:3.10-slim-bookworm for both builder and runtime images
- remove apt install step for build-essential/libsqlite3-dev
- relax Python requirement from ==3.10.11 to >=3.10,<3.11
- remove Linux-only pysqlite3 dependency
- delete sqlite3 monkeypatch fallback in vectorstore
…metry

- add `ollama_timeout_seconds` setting (default 300s) and pass it to `OllamaLLM`
- increase Ollama default timeout from 60s to 300s
- disable Chroma telemetry at app startup (`ANONYMIZED_TELEMETRY=False` + no-op posthog capture)
- update [.env.uat](cci:7://file:///Users/fairoza/Documents/Personal/sample-chatbot/.env.uat:0:0-0:0), `.env.production`, and README with new timeout/telemetry env vars
@FairozaAmira
FairozaAmira merged commit 8bdc299 into main Feb 21, 2026
6 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant