Skip to main content
When implementing RAG systems, it’s crucial to properly handle document retrieval, context management, and response generation. This guide demonstrates a basic RAG implementation using Galileo’s observability features.

What you’ll need

  • OpenAI API key
  • Galileo API key
  • Python environment with required packages
  • Basic understanding of RAG concepts

Setup instructions

1

Set Up Your Environment

Create a .env file with your API keys:
2

Install Dependencies

Install required dependencies:
requirements.txt
3

Running and Monitoring

Execute the application:
Use Galileo to monitor:
  • Document retrieval performance
    • Chunk relevance
    • Chunk attribution utilization
    • Completeness
  • System performance metrics

Implementation guide

Let’s break down the implementation into manageable sections:

1. setting up the environment

First, we’ll set up our imports and initialize our environment:
app.py
This section:
  • Imports necessary libraries
  • Loads environment variables
  • Sets up rich console output
  • Initializes the OpenAI client with Galileo integration

2. document retrieval system

The document retrieval function is decorated with Galileo’s logging:
app.py
Key points:
  • Uses @log decorator with the retriever span type
  • Returns structured document objects
  • Includes metadata for tracking sources
  • Simulates a real document retrieval system

3. RAG pipeline implementation

The core RAG functionality:
app.py
This section:
  • Retrieves relevant documents
  • Formats context for the LLM
  • Constructs a clear prompt
  • Handles API calls and errors
  • Uses the gpt-4o model for responses

4. interactive interface

The main application interface:
app.py
This section provides:
  • Environment validation
  • Interactive question-answer loop
  • Rich formatting for outputs
  • Graceful error handling
  • Clean exit handling

Key features

  • Galileo Logging: Track document retrieval and LLM interactions
  • Rich Console Interface: User-friendly terminal interface
  • Error Handling: Graceful handling of API and runtime errors
  • Context Management: Proper formatting of retrieved documents
  • Interactive Experience: Easy-to-use question-answering interface

Next steps

  • Implement real document retrieval using a vector database
  • Add response streaming for better user experience
  • Implement more sophisticated prompt engineering
  • Add evaluation metrics for retrieval quality
  • Integrate advanced Galileo logging features