Skip to main content

OpenAI helper wrappers for the Grafana Agent Observability Python SDK

Project description

Sigil Python Provider Helper: OpenAI

agento11y-openai exposes strict OpenAI-shaped wrappers and mappers for both Chat Completions and Responses.

Installation

pip install agento11y agento11y-openai

Public API

  • Chat Completions namespace:

    • chat.completions.create(...)
    • chat.completions.create_async(...)
    • chat.completions.stream(...)
    • chat.completions.stream_async(...)
    • chat.completions.from_request_response(...)
    • chat.completions.from_stream(...)
  • Responses namespace:

    • responses.create(...)
    • responses.create_async(...)
    • responses.stream(...)
    • responses.stream_async(...)
    • responses.from_request_response(...)
    • responses.from_stream(...)
  • Embeddings namespace:

    • embeddings.create(...)
    • embeddings.create_async(...)
    • embeddings.from_request_response(...)

Integration styles

  • Strict wrappers: call OpenAI and record in one step.
  • Manual instrumentation: call OpenAI directly, then map strict OpenAI request/response payloads with from_request_response or from_stream.

Responses-first wrapper example

from openai import OpenAI
from agento11y import Client, ClientConfig
from agento11y_openai import OpenAIOptions, responses

agento11y = Client(ClientConfig())
provider = OpenAI()

response = responses.create(
    agento11y,
    {
        "model": "gpt-5",
        "instructions": "Be concise",
        "input": "Summarize rollout status in 3 bullets",
        "max_output_tokens": 300,
    },
    lambda request: provider.responses.create(**request),
    OpenAIOptions(conversation_id="conv-1", agent_name="assistant", agent_version="1.0.0"),
)

Chat Completions stream example

from agento11y_openai import ChatCompletionsStreamSummary, chat

summary = chat.completions.stream(
    agento11y,
    {
        "model": "gpt-5",
        "stream": True,
        "messages": [{"role": "user", "content": "Stream a short status update"}],
    },
    lambda request: ChatCompletionsStreamSummary(events=[]),
)

Embeddings example

from agento11y_openai import embeddings

embedding_response = embeddings.create(
    agento11y,
    {
        "model": "text-embedding-3-small",
        "input": ["hello", "world"],
    },
    lambda request: provider.embeddings.create(**request),
)

Manual instrumentation example (strict mapper)

from agento11y import GenerationStart, ModelRef
from agento11y_openai import OpenAIOptions, responses

request = {
    "model": "gpt-5",
    "instructions": "Be concise",
    "input": "Summarize rollout status in 3 bullets",
}
opts = OpenAIOptions(
    conversation_id="conv-1",
    agent_name="assistant",
    agent_version="1.0.0",
)

with agento11y.start_generation(
    GenerationStart(
        conversation_id=opts.conversation_id,
        agent_name=opts.agent_name,
        agent_version=opts.agent_version,
        model=ModelRef(provider=opts.provider_name, name=request["model"]),
    )
) as rec:
    try:
        response = provider.responses.create(**request)
        rec.set_result(responses.from_request_response(request, response, opts))
    except Exception as exc:
        rec.set_call_error(exc)
        raise

Raw artifacts (debug opt-in)

Raw artifacts are off by default.

Enable with:

OpenAIOptions(raw_artifacts=True)

Artifact names:

  • Chat: openai.chat.request, openai.chat.response, openai.chat.tools, openai.chat.stream_events
  • Responses: openai.responses.request, openai.responses.response, openai.responses.tools, openai.responses.stream_events

Call client.shutdown() during teardown to flush buffered telemetry.

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

agento11y_openai-0.10.0.tar.gz (14.2 kB view details)

Uploaded Source

Built Distribution

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

agento11y_openai-0.10.0-py3-none-any.whl (10.2 kB view details)

Uploaded Python 3

File details

Details for the file agento11y_openai-0.10.0.tar.gz.

File metadata

  • Download URL: agento11y_openai-0.10.0.tar.gz
  • Upload date:
  • Size: 14.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.13

File hashes

Hashes for agento11y_openai-0.10.0.tar.gz
Algorithm Hash digest
SHA256 bfbba700821e2484ec0ad0c1f982192c3a480a6333b3d30afbb51baa85e641ac
MD5 e989ce9a5cb6e02dcf285998acc2d7bb
BLAKE2b-256 18b9b2c27c02e6da35f08e766b62490a0de34da2c962516e1ebff5ca7703f674

See more details on using hashes here.

Provenance

The following attestation bundles were made for agento11y_openai-0.10.0.tar.gz:

Publisher: python-sdks-publish.yml on grafana/agento11y

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agento11y_openai-0.10.0-py3-none-any.whl.

File metadata

File hashes

Hashes for agento11y_openai-0.10.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f8cd8a13a14be0a5c9425a561710369869b7520cf7ece382a99f86a093343d6d
MD5 dda6b16e6c98f11842842f139ad130cf
BLAKE2b-256 5a720a424e27f9d4089e7d632b2d2609db5ccdb429c8e481077bd0b98296b026

See more details on using hashes here.

Provenance

The following attestation bundles were made for agento11y_openai-0.10.0-py3-none-any.whl:

Publisher: python-sdks-publish.yml on grafana/agento11y

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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