Skip to main content

OpenInference Together AI Instrumentation

pypi

Python auto-instrumentation library for the Together AI Python client.

Chat completion calls made with the together client (Together and AsyncTogether) are traced and exported as OpenInference LLM spans, capturing the input messages, output messages, invocation parameters, tool calls, streaming output, and token counts.

These traces are fully OpenTelemetry compatible and can be sent to an OpenTelemetry collector for viewing, such as Arize Phoenix or Arize AX.

Supported Features

  • Synchronous and asynchronous chat completions (Together and AsyncTogether)
  • Streaming (stream=True): the span stays open until the stream is consumed, and the accumulated output, tool calls, and token counts are recorded from the streamed chunks
  • Tool calls, captured on both requests and responses
  • Suppressing tracing via suppress_tracing()
  • Context attribute propagation (using_session, using_user, using_attributes, metadata, tags)
  • Sensitive-data masking via TraceConfig (e.g. hide_inputs)

Requires together >= 2.0.0.

Installation

pip install openinference-instrumentation-together

PyPI package: openinference-instrumentation-together

Quickstart

pip install openinference-instrumentation-together together arize-phoenix opentelemetry-sdk opentelemetry-exporter-otlp

Start Phoenix as a collector (default http://localhost:6006), then:

from openinference.instrumentation.together import TogetherInstrumentor
from opentelemetry.exporter.otlp.proto.http.trace_exporter import OTLPSpanExporter
from opentelemetry.sdk.trace import TracerProvider
from opentelemetry.sdk.trace.export import SimpleSpanProcessor

endpoint = "http://127.0.0.1:6006/v1/traces"
tracer_provider = TracerProvider()
tracer_provider.add_span_processor(SimpleSpanProcessor(OTLPSpanExporter(endpoint)))

TogetherInstrumentor().instrument(tracer_provider=tracer_provider)

Run a chat completion. Set the TOGETHER_API_KEY environment variable with your key.

from together import Together

client = Together()
response = client.chat.completions.create(
    model="meta-llama/Llama-3.3-70B-Instruct-Turbo",
    messages=[{"role": "user", "content": "Why is the sky blue?"}],
)
print(response.choices[0].message.content)

Streaming works the same way — the span is finished when the stream is exhausted:

stream = client.chat.completions.create(
    model="meta-llama/Llama-3.3-70B-Instruct-Turbo",
    messages=[{"role": "user", "content": "Write a haiku about observability."}],
    stream=True,
)
for chunk in stream:
    if chunk.choices and chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="", flush=True)

Runnable examples — including async usage, streaming with a reasoning model, and tool calls — are in the examples/ directory.

More Info

Download files

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

Source Distribution

openinference_instrumentation_together-0.1.5.tar.gz (13.1 kB view details)

Uploaded Source

Built Distribution

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

File details

Details for the file openinference_instrumentation_together-0.1.5.tar.gz.

File metadata

File hashes

Hashes for openinference_instrumentation_together-0.1.5.tar.gz
Algorithm Hash digest
SHA256 b2a7f214060846c2cde0ef50a40a563185ac1c207562537a11c6803bf3230036
MD5 03ec463b6b5fb05abd3738d7c566ba5b
BLAKE2b-256 eaefdfaba3371f7d9d762ec998982aff1c3fd056e5f80c7749938be4df8ab403

See more details on using hashes here.

Provenance

The following attestation bundles were made for openinference_instrumentation_together-0.1.5.tar.gz:

Publisher: publish.yaml on Arize-ai/openinference

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

File details

Details for the file openinference_instrumentation_together-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for openinference_instrumentation_together-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 4f203f87d55ca63dad769c6a37837832cf65849415397ebc7f03eb25503320b5
MD5 ae2e7ab9a8aae381cbd4310f45349ea6
BLAKE2b-256 20d230f12764a153abd8fe53e29726baca2c27ab5504e3044917e46966726fa8

See more details on using hashes here.

Provenance

The following attestation bundles were made for openinference_instrumentation_together-0.1.5-py3-none-any.whl:

Publisher: publish.yaml on Arize-ai/openinference

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

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

Supported by

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