donecase / Makefile
mr.saris kiattithapanayong
update the code that demoed on saturday 22 nov
3d142aa
# ==============================================================================
# Installation & Setup
# ==============================================================================
# Install dependencies using uv package manager
install:
@command -v uv >/dev/null 2>&1 || { echo "uv is not installed. Installing uv..."; curl -LsSf https://astral.sh/uv/0.8.13/install.sh | sh; source $HOME/.local/bin/env; }
uv sync
# ==============================================================================
# Playground Targets
# ==============================================================================
# Launch local dev playground
playground:
@echo "==============================================================================="
@echo "| πŸš€ Starting your agent playground... |"
@echo "| |"
@echo "| πŸ’‘ Try asking: What's the weather in San Francisco? |"
@echo "| |"
@echo "| πŸ” IMPORTANT: Select the 'rag_agent' folder to interact with your agent. |"
@echo "==============================================================================="
uv run adk web . --port 8501 --reload_agents
# ==============================================================================
# Backend Deployment Targets
# ==============================================================================
# Deploy the agent remotely
deploy:
# Export dependencies to requirements file using uv export.
(uv export --no-hashes --no-header --no-dev --no-emit-project --no-annotate > rag_agent/app_utils/.requirements.txt 2>/dev/null || \
uv export --no-hashes --no-header --no-dev --no-emit-project > rag_agent/app_utils/.requirements.txt) && \
uv run -m rag_agent.app_utils.deploy \
--source-packages=./rag_agent \
--display-name="bitcast_agent_focus" \
--entrypoint-module=rag_agent.agent_engine_app \
--entrypoint-object=agent_engine \
--requirements-file=rag_agent/app_utils/.requirements.txt
# Alias for 'make deploy' for backward compatibility
backend: deploy
# ==============================================================================
# Infrastructure Setup
# ==============================================================================
# Set up development environment resources using Terraform
setup-dev-env:
PROJECT_ID=$$(gcloud config get-value project) && \
(cd deployment/terraform/dev && terraform init && terraform apply --var-file vars/env.tfvars --var dev_project_id=$$PROJECT_ID --auto-approve)
# ==============================================================================
# Testing & Code Quality
# ==============================================================================
# Run unit and integration tests
test:
uv sync --dev
uv run pytest tests/unit && uv run pytest tests/integration
# Run code quality checks (codespell, ruff, mypy)
lint:
uv sync --dev --extra lint
uv run codespell
uv run ruff check . --diff
uv run ruff format . --check --diff
uv run mypy .
# ==============================================================================
# Gemini Enterprise Integration
# ==============================================================================
# Register the deployed agent to Gemini Enterprise
# Usage: make register-gemini-enterprise (interactive - will prompt for required details)
# For non-interactive use, set env vars: ID or GEMINI_ENTERPRISE_APP_ID (full GE resource name)
# Optional env vars: GEMINI_DISPLAY_NAME, GEMINI_DESCRIPTION, GEMINI_TOOL_DESCRIPTION, AGENT_ENGINE_ID
register-gemini-enterprise:
@uvx agent-starter-pack@0.21.0 register-gemini-enterprise