Metadata-Version: 2.4
Name: opentelemetry-instrumentation-voyageai
Version: 0.55.0
Summary: OpenTelemetry Voyage AI instrumentation
Project-URL: Repository, https://github.com/traceloop/openllmetry/tree/main/packages/opentelemetry-instrumentation-voyageai
Author-email: Gal Kleinman <gal@traceloop.com>
License-Expression: Apache-2.0
Requires-Python: <4,>=3.10
Requires-Dist: opentelemetry-api<2,>=1.38.0
Requires-Dist: opentelemetry-instrumentation>=0.59b0
Requires-Dist: opentelemetry-semantic-conventions-ai<0.6.0,>=0.5.1
Requires-Dist: opentelemetry-semantic-conventions>=0.59b0
Provides-Extra: instruments
Requires-Dist: voyageai; extra == 'instruments'
Description-Content-Type: text/markdown

# OpenTelemetry Voyage AI Instrumentation

This library allows tracing Voyage AI API calls with OpenTelemetry.

## Installation

```bash
pip install opentelemetry-instrumentation-voyageai
```

## Usage

```python
from opentelemetry.instrumentation.voyageai import VoyageAIInstrumentor

VoyageAIInstrumentor().instrument()

# Now use Voyage AI as usual
import voyageai

client = voyageai.Client()

# Embeddings
result = client.embed(texts=["Hello, world!"], model="voyage-3")

# Reranking
result = client.rerank(
    query="What is the capital of France?",
    documents=["Paris is the capital of France.", "London is in England."],
    model="rerank-2.5"
)
```

## Semantic Conventions

This instrumentation follows the OpenTelemetry GenAI semantic conventions:

- `gen_ai.system`: "voyageai"
- `gen_ai.operation.name`: "embeddings" or "rerank"
- `gen_ai.request.model`: The model name
- `gen_ai.usage.input_tokens`: Token count from the response
- `gen_ai.embeddings.dimension.count`: Embedding vector dimension (for embed only)
