Skip to main content

Megflow AI API observability SDK — auto-instrument OpenAI, Anthropic, Gemini, AWS Bedrock and Cohere calls

Project description

megflow-observability

Python SDK for Megflow AI Observability — track tokens, cost, latency and errors across OpenAI, Anthropic, Gemini and more.

Install

pip install megflow-observability

Quick start

from megflow_observability import MegflowObserve

observe = MegflowObserve(api_key="obs_your_key_here")

observe.track(
    provider="openai",
    model="gpt-4o",
    input_tokens=100,
    output_tokens=50,
    total_tokens=150,
    cost_usd=0.00075,
    latency_ms=320,
    status_code=200,
)

Auto-instrument OpenAI

from openai import OpenAI
from megflow_observability import MegflowObserve, wrap_openai

client = wrap_openai(OpenAI(), MegflowObserve(api_key="obs_your_key_here"))

# All calls are tracked automatically
response = client.chat.completions.create(
    model="gpt-4o",
    messages=[{"role": "user", "content": "Hello"}],
)

Auto-instrument Anthropic

import anthropic
from megflow_observability import MegflowObserve, wrap_anthropic

client = wrap_anthropic(anthropic.Anthropic(), MegflowObserve(api_key="obs_your_key_here"))

response = client.messages.create(
    model="claude-sonnet-4-6",
    max_tokens=1024,
    messages=[{"role": "user", "content": "Hello"}],
)

Auto-instrument Gemini

import google.generativeai as genai
from megflow_observability import MegflowObserve, wrap_gemini

genai.configure(api_key="YOUR_GOOGLE_API_KEY")
observe = MegflowObserve(api_key="obs_your_key_here")

model = wrap_gemini(genai.GenerativeModel("gemini-2.0-flash"), observe)
response = model.generate_content("Hello")

Auto-instrument AWS Bedrock

Works with Claude, Llama, Mistral, Titan and Cohere on Bedrock.

import boto3
import json
from megflow_observability import MegflowObserve, wrap_bedrock

observe = MegflowObserve(api_key="obs_your_key_here")
client = wrap_bedrock(
    boto3.client("bedrock-runtime", region_name="us-east-1"),
    observe,
)

response = client.invoke_model(
    modelId="anthropic.claude-3-5-sonnet-20241022-v2:0",
    body=json.dumps({
        "anthropic_version": "bedrock-2023-05-31",
        "messages": [{"role": "user", "content": "Hello"}],
        "max_tokens": 1024,
    }),
)
result = json.loads(response["body"].read())

Auto-instrument Cohere

Works with both Client (v1) and ClientV2 (v2).

import cohere
from megflow_observability import MegflowObserve, wrap_cohere

observe = MegflowObserve(api_key="obs_your_key_here")

# v2 API
co = wrap_cohere(cohere.ClientV2("COHERE_API_KEY"), observe)
response = co.chat(
    model="command-r-plus",
    messages=[{"role": "user", "content": "Hello"}],
)

# v1 API
co = wrap_cohere(cohere.Client("COHERE_API_KEY"), observe)
response = co.chat(model="command-r-plus", message="Hello")

Prompt observability

Every wrap_*() function auto-computes a prompt_size (character count) and prompt_hash (SHA-256, first 16 chars) from the prompt-relevant input before sending anything — the raw prompt text itself is never transmitted. This lets the dashboard's Prompts page detect and group repeated prompts.

prompt_version has no natural source in an API call, so tag it explicitly per wrapped client:

client = wrap_openai(OpenAI(), observe, prompt_version="v3")

Optional dependencies

pip install megflow-observability[openai]      # includes openai
pip install megflow-observability[anthropic]   # includes anthropic
pip install megflow-observability[gemini]      # includes google-generativeai
pip install megflow-observability[all]         # includes all three

Links

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

megflow_observability-0.8.0.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

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

megflow_observability-0.8.0-py3-none-any.whl (18.9 kB view details)

Uploaded Python 3

File details

Details for the file megflow_observability-0.8.0.tar.gz.

File metadata

  • Download URL: megflow_observability-0.8.0.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for megflow_observability-0.8.0.tar.gz
Algorithm Hash digest
SHA256 81fd39675271729fec02958f241fed9e4b6ab3245568cf9f8f0fc717cc9da7c8
MD5 414d308ec0dbd831cea1145d6f5ebbdb
BLAKE2b-256 a7c3725d40415e8a6dcbe793af6b17c19666b464933ccd7b4973e37699248e1d

See more details on using hashes here.

File details

Details for the file megflow_observability-0.8.0-py3-none-any.whl.

File metadata

File hashes

Hashes for megflow_observability-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 d29ed6a13fae3802fabb2f7bab88d968a61e8c026943e6ffd9316881fece07fd
MD5 6376305d7722e51f2c4bf63269871d30
BLAKE2b-256 3016666287953de81fc422e78c466a637f023effaad7c5ed3eb60290ee1c67e3

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