Skip to content

doughayden/answer-app

Repository files navigation

Answer App

Version Python License Code style: black FastAPI Streamlit Google Cloud Terraform

A production-ready Retrieval-Augmented Generation (RAG) server that uses Vertex AI Search and the Discovery Engine API to serve the Answer method - a conversational search experience with generative answers grounded on document data.

  • 🤖 Fully-managed RAG pipeline: Stateful multi-turn conversational search with generative answers
  • Production-capable performance: Autoscaling, concurrency, and regional redundancy via multiple Cloud Run services
  • 🔗 Integration flexibility: Authenticated external HTTPS endpoint using Google-managed TLS
  • 📊 Resource observability: Single-pane-of-glass Cloud Monitoring dashboard with customizable metrics and alerts
  • 🔍 Explainable and debuggable results: Investigate generative answers using the full RAG pipeline results logged to BigQuery
  • 📈 Data-driven LLM-ops: Tune the conversational search agent using question/answer pairs labelled with user feedback
  • 🛡️ Identity-Aware Proxy: Secure access control
  • 👤 Google OAuth: Personalized sessions with user authentication
  • 🚀 Automated deployments: One-click install and uninstall with Terraform and Cloud Build

Architecture

Application Architecture

Quick Start

Prerequisites

See detailed deployment prerequisites →

Installation

  1. Configure OAuth for user authentication
    📖 Complete OAuth setup guide →

  2. Deploy the application

    source scripts/install.sh
  3. Enable Vertex AI Agent Builder in the Cloud Console and import your documents

  4. Configure Identity-Aware Proxy to secure access

📖 View complete installation guide →

Documentation

Installation & Deployment

Development

Infrastructure

Troubleshooting

Uninstall

Remove all resources:

source scripts/uninstall.sh

Development

This project uses:

  • Python 3.13+ with Poetry for dependency management
  • FastAPI backend with an example Streamlit frontend
  • Terraform for infrastructure as code
  • pytest for testing

📖 Full development guide →

Repository Structure

answer-app/
├── src/
│   ├── answer_app/          # FastAPI backend service
│   ├── client/              # Streamlit frontend application
│   └── package_scripts/     # Helper scripts (OAuth secrets)
├── terraform/
│   ├── bootstrap/           # Initial project setup
│   ├── main/                # Main infrastructure deployment
│   └── modules/             # Reusable Terraform modules
├── docs/                    # Modular documentation
│   ├── installation/        # Setup guides
│   ├── infrastructure/      # Infrastructure documentation
│   ├── development/         # Development & API docs
│   └── troubleshooting/     # Known issues & solutions
├── scripts/                 # Automation scripts
├── tests/                   # Unit tests
└── assets/                  # Documentation screenshots

License

This project is licensed under the MIT License - see the LICENSE file for details.

About

Production-ready Vertex AI Search RAG server

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors