Skip to content

Latest commit

Β 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

πŸ•οΈ Camping La Rosaleda - AI Receptionist Agent

An intelligent virtual receptionist for Camping La Rosaleda, built with Google ADK (Agent Development Kit) and Vertex AI RAG Engine.

Python Google Cloud Vertex AI Streamlit

πŸ› οΈ Tech Stack

Category Technology
AI Framework Google ADK
LLM Gemini
RAG Engine Vertex AI RAG
Deployment Cloud Run Agent Engine
Observability Arize OpenTelemetry
Frontend Streamlit
Package Manager UV

πŸ“‹ Features

  • RAG-Powered Responses: Uses Vertex AI RAG Engine to retrieve accurate camping information
  • Exact Pricing: Provides precise prices based on season (Low/Medium/High)
  • Multi-Channel Deployment:
    • 🌐 Streamlit Web UI (Cloud Run)
    • πŸ€– Vertex AI Agent Engine API
    • πŸ’» Local development with adk web
  • Observability: Full tracing with Arize AI (EU region supported)
  • Spanish Language: Fully localized for Spanish-speaking users

πŸ—οΈ Architecture

β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”     β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
β”‚   Streamlit UI  │────▢│   Google ADK     │────▢│  Vertex AI RAG  β”‚
β”‚   (Cloud Run)   β”‚     β”‚   Agent Runner   β”‚     β”‚     Engine      β”‚
β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜     β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚                         β”‚
                               β–Ό                         β–Ό
                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”         β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                        β”‚  Gemini 2.0  β”‚         β”‚  RAG Corpus     β”‚
                        β”‚    Flash     β”‚         β”‚  (Camping Data) β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜         β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
                               β”‚
                               β–Ό
                        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
                        β”‚   Arize AI   β”‚
                        β”‚   Tracing    β”‚
                        β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜

πŸš€ Quick Start

Prerequisites

  • Python 3.11+
  • UV package manager
  • Google Cloud account with billing enabled
  • gcloud CLI installed and configured

Installation

  1. Clone the repository

    git clone https://github.com/Acquarts/google-adk-rag-agent-camping-receptionist.git
    cd google-adk-rag-agent-camping-receptionist
  2. Install dependencies

    uv sync
  3. Configure environment variables

    cp .env-example .env
    # Edit .env with your credentials
  4. Run locally

    # Option 1: ADK Web Interface
    uv run adk web
    
    # Option 2: Streamlit UI
    uv run streamlit run app.py

βš™οΈ Configuration

Create a .env file with the following variables:

# Google Cloud
GOOGLE_GENAI_USE_VERTEXAI=1
GOOGLE_CLOUD_PROJECT=your-project-id
GOOGLE_CLOUD_LOCATION=europe-west1

# RAG Corpus
RAG_CORPUS=projects/your-project/locations/europe-west1/ragCorpora/your-corpus-id

# Staging bucket for deployment
STAGING_BUCKET=gs://your-bucket-name

# (Optional) Arize Tracing
ARIZE_SPACE_ID=your-space-id
ARIZE_API_KEY=your-api-key

πŸ“¦ Deployment

Deploy to Cloud Run (Streamlit UI)

gcloud run deploy camping-la-rosaleda \
  --source . \
  --region europe-west1 \
  --allow-unauthenticated \
  --set-env-vars "GOOGLE_GENAI_USE_VERTEXAI=1,GOOGLE_CLOUD_PROJECT=your-project,GOOGLE_CLOUD_LOCATION=europe-west1,RAG_CORPUS=your-corpus"

Deploy to Vertex AI Agent Engine

uv run python deployment/deploy.py

πŸ—“οΈ Camping Seasons & Pricing

Season Dates
Low Jan 1 - Apr 30, Oct 1 - Dec 31
Medium May 1 - Jul 10, Aug 16 - Sep 30
High Jul 11 - Aug 15

The agent automatically calculates prices based on the current season and provides exact totals for reservations.

πŸ“ Project Structure

β”œβ”€β”€ app.py                 # Streamlit UI
β”œβ”€β”€ rag/
β”‚   β”œβ”€β”€ agent.py           # Main agent definition
β”‚   β”œβ”€β”€ prompts.py         # System prompts with pricing
β”‚   └── tracing.py         # Arize observability setup
β”œβ”€β”€ deployment/
β”‚   └── deploy.py          # Vertex AI Agent Engine deployment
β”œβ”€β”€ Dockerfile             # Cloud Run container
└── pyproject.toml         # Dependencies

πŸ” Observability

This project uses Arize AI for LLM tracing and observability. Traces are sent to the EU endpoint (otlp.eu-west-1a.arize.com) for GDPR compliance.

πŸ“„ License

Apache License 2.0

πŸ‘€ Author

Adrian Acquaroni


Made with ❀️ using Google ADK and Vertex AI

About

An intelligent virtual receptionist for Camping La Rosaleda, built with Google ADK (Agent Development Kit) and Vertex AI RAG Engine.

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages