Rag App On Aws

screenshot of Rag App On Aws

Build and deploy a full-stack RAG app on AWS with Terraform, using free tier Gemini Pro, real-time web search using Remote MCP server and Streamlit UI with token based authentication.

Overview

The End-to-End RAG App designed with Terraform-based Infrastructure as Code (IaC) offers a robust solution for deploying a comprehensive AWS backend aimed at Retrieval-Augmented Generation (RAG) applications. This innovative system empowers users to seamlessly upload documents to a cloud-based infrastructure where they are processed, embedded, and stored for effective semantic search and AI-powered querying. The integration with Google’s Gemini models ensures that users can leverage advanced AI capabilities without the heavy lifting typically associated with document processing.

With a user-friendly Streamlit interface that includes features like token-based authentication, this app not only enhances usability but also safeguards access to sensitive information. Whether you’re a developer looking to experiment with AI technologies or a business seeking efficient data querying solutions, this RAG app provides a cost-effective entry point into the world of AI-driven applications.

Features

  • IaC with Terraform: Facilitates consistent and repeatable deployments across various environments, reducing manual configurations and errors.
  • Serverless Compute: Utilizes AWS Lambda for document processing, querying, uploads, and database initialization, streamlining backend logic.
  • Vector Storage: Incorporates PostgreSQL RDS with pgvector extension, enabling efficient storage and searching of text embeddings.
  • AI Integration: Leverages Google's Gemini Pro and Gemini Embedding models for enhanced AI functionalities and superior document querying.
  • Authentication: Employs AWS Cognito for secure user management, ensuring that access is tightly controlled and monitored.
  • CI/CD Workflows: Automates deployment and testing processes through GitHub Actions, enhancing collaborative development efforts.
  • Multi-Environment Support: Designed to efficiently handle development, staging, and production environments, making it ideal for teams.
  • Comprehensive Testing: Includes both unit and integration tests for backend Lambdas, ensuring high reliability and performance of the application.
  • Streamlit UI: Offers an intuitive user interface with a login page, document upload option, query interface, and RAG evaluation dashboard, enhancing user engagement.