Skip to main content

Cloud Native Observability SDK for LLM applications

Project description

Observicia SDK

Observicia is a Cloud Native observability and policy control SDK for LLM applications. It provides seamless integration with CNCF native observability stack while offering comprehensive token tracking, policy enforcement, and PII protection capabilities.

License OpenTelemetry OPA

Features

  • Token Tracking and Management

    • Real-time token usage monitoring across providers
    • Stream-aware token counting
    • Token usage retention and cleanup
    • Per-session token tracking
  • Policy Enforcement

    • Integration with Open Policy Agent (OPA)
    • Support for multiple policy evaluation levels
    • Risk level assessment (low, medium, high, critical)
    • Custom policy definition support
    • Synchronous and asynchronous policy evaluation
  • LLM Provider Integration

    • OpenAI (fully implemented)
      • Chat completions (sync/async)
      • Text completions (sync/async)
      • Embeddings
      • Image generation
      • File operations
      • Streaming support
    • Basic scaffolding for:
      • Anthropic
      • LiteLLM
      • WatsonX
  • Observability Features

    • OpenTelemetry integration
    • Span-based tracing for all LLM operations
    • Configurable logging (console, file, OTLP)
    • Mermaid diagram generation from telemetry data
    • Detailed request/response tracing
    • Custom attribute tracking

Quick Start

  1. Install the SDK:
pip install observicia
  1. Create a configuration file (observicia_config.yaml):
service_name: patient-rag-app
otel_endpoint: null
opa_endpoint: http://opa-server:8181/
policies:
  - name: pii_check
    path: policies/pii
    description: Check for PII in responses
    required_trace_level: enhanced
    risk_level: high
  - name: prompt_compliance
    path: policies/prompt_compliance
    description: Check for prompt compliance
    required_trace_level: basic
    risk_level: medium
logging:
  file: "rag-app.json"
  telemetry:
    enabled: true
    format: "json"
  messages:
    enabled: true
    level: "INFO"
  chat:
    enabled: true
    level: "both"
    file: "rag-chat.json"
  1. Initialize in your code:
from observicia import init

# Initialize Observicia
init()

# Then import openai to so that OpenAI code is instrumented
from openai import OpenAI
client = OpenAI()

Deployment

Prerequisites

  • Kubernetes cluster with:
    • OpenTelemetry Collector
    • Open Policy Agent
    • Jaeger (optional)
    • Prometheus (optional)

Example Kubernetes Deployment

The SDK includes Kubernetes manifests for deploying:

  • OpenTelemetry Collector
  • Open Policy Agent
  • Jaeger
  • Prometheus
  • PII detection service
  • Prompt compliance service

See the deploy/k8s directory for complete deployment manifests.

Examples

The SDK includes two example applications:

  1. Simple Chat Application (examples/simple-chat)

    • Basic chat interface using OpenAI
    • Demonstrates token tracking and tracing
    • Shows streaming response handling
  2. RAG Application (examples/rag-app)

    • Retrieval-Augmented Generation example
    • Shows policy enforcement for PII protection
    • Demonstrates context tracking

Architecture

flowchart TB
    App[Application] --> SDK[Observicia SDK]
    SDK --> Providers[LLM Providers]
    SDK --> OPA[Open Policy Agent]
    SDK --> OTEL[OpenTelemetry Collector]
    OTEL --> Jaeger[Jaeger]
    OTEL --> Prom[Prometheus]
    OPA --> PII[PII Detection Service]
    OPA --> Compliance[Prompt Compliance Service]

Core Components

  • Context Manager: Manages trace context and session tracking
  • Policy Engine: Handles policy evaluation and enforcement
  • Token Tracker: Monitors token usage across providers
  • Patch Manager: Manages LLM provider SDK instrumentation
  • Tracing Manager: Handles OpenTelemetry integration

Development Status

  • ✅ Core Framework
  • ✅ OpenAI Integration
  • ✅ Basic Policy Engine
  • ✅ Token Tracking
  • ✅ OpenTelemetry Integration
  • 🚧 Additional Provider Support
  • 🚧 Advanced Policy Features
  • 🚧 UI Components

License

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

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

observicia-0.1.6.tar.gz (34.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

observicia-0.1.6-py3-none-any.whl (41.8 kB view details)

Uploaded Python 3

File details

Details for the file observicia-0.1.6.tar.gz.

File metadata

  • Download URL: observicia-0.1.6.tar.gz
  • Upload date:
  • Size: 34.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.10

File hashes

Hashes for observicia-0.1.6.tar.gz
Algorithm Hash digest
SHA256 28cb9bff1f1a95cfab6979a2a5a58eac3cb01a2bd0d66ee09c53502ae1752665
MD5 596c2a97d4d2b258b7cc98d7a8638f22
BLAKE2b-256 312f01f6b6a77e705f775d2a333ccc6a6446b643518004b66aa2926992239491

See more details on using hashes here.

File details

Details for the file observicia-0.1.6-py3-none-any.whl.

File metadata

  • Download URL: observicia-0.1.6-py3-none-any.whl
  • Upload date:
  • Size: 41.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.0.1 CPython/3.11.10

File hashes

Hashes for observicia-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 24faf903c24783c85b6ac19eee062856390f7f794dfce0c533c290097a52007f
MD5 b62db207bdf1b3023b66c7c11f0a75da
BLAKE2b-256 cf5185cb43a32b104ebe1ac502269bab490038a90ae86d621a875cb09edeeba4

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page