Small agentic AI project scaffold for learning:
- FastAPI
- LangChain
- LangGraph
- LangSmith tracing
- Pinecone
- HuggingFace embeddings
- MCP tools/server
- React frontend
backend/: FastAPI app, agent graph, RAG, tools, and MCP serverfrontend/react-chat/: React chat UI placeholderdata/: local sample docs and logs for early developmentscripts/: helper scripts such as ingestion and local setup
- Implement RAG ingestion and retrieval
- Add FastAPI chat endpoint
- Build LangGraph flow
- Add tools and MCP server
- Add React UI
- Create a virtual environment
python3.11 -m venv .venv
source .venv/bin/activate- Install dependencies from
backend/requirements.txt
pip install --upgrade pip
pip install -r backend/requirements.txt- Copy
.env.exampleto.env - Start the API:
uvicorn backend.main:app --reload --app-dir .- Ingest documents:
python -m backend.rag.ingestcd frontend/react-chat
npm install
npm run devhttps://app.pinecone.io/organizations/
This repo now includes a Docker-first deployment baseline:
Dockerfilefor packaging the backend.dockerignoreto keep the image lean.github/workflows/ci.ymlfor tests plus Docker build validation.github/workflows/cd.ymlfor publishing a container to GHCR and triggering Renderrender.yamlas a starter Render blueprint
docker build -t ai-observability-agent .
docker run --rm -p 8000:8000 --env-file .env ai-observability-agentThen verify:
curl http://localhost:8000/api/healthCI runs on pull requests and pushes to main:
- installs backend dependencies
- runs
pytest - builds the Docker image
CD runs on pushes to main:
- builds and pushes
ghcr.io/<owner>/ai-observability-agent - tags the image with
latestand the Git SHA - triggers Render through
RENDER_DEPLOY_HOOK_URL
- Create a Render web service from an existing image.
- Point it at
ghcr.io/<your-user-or-org>/ai-observability-agent:latest. - Add the environment variables from
.env.example. - Set the health check path to
/api/health. - Add
RENDER_DEPLOY_HOOK_URLas a GitHub Actions secret.
You only need one repository secret for the current CD flow:
RENDER_DEPLOY_HOOK_URL
The workflow uses the built-in GITHUB_TOKEN to push to GHCR.