mirror of
https://github.com/github/awesome-copilot.git
synced 2026-04-13 19:55:56 +00:00
chore: publish from staged
This commit is contained in:
@@ -0,0 +1,144 @@
|
||||
# Observe: Tracing Setup
|
||||
|
||||
Configure tracing to capture data for evaluation.
|
||||
|
||||
## Quick Setup
|
||||
|
||||
```python
|
||||
# Python
|
||||
from phoenix.otel import register
|
||||
|
||||
register(project_name="my-app", auto_instrument=True)
|
||||
```
|
||||
|
||||
```typescript
|
||||
// TypeScript
|
||||
import { registerPhoenix } from "@arizeai/phoenix-otel";
|
||||
|
||||
registerPhoenix({ projectName: "my-app", autoInstrument: true });
|
||||
```
|
||||
|
||||
## Essential Attributes
|
||||
|
||||
| Attribute | Why It Matters |
|
||||
| --------- | -------------- |
|
||||
| `input.value` | User's request |
|
||||
| `output.value` | Response to evaluate |
|
||||
| `retrieval.documents` | Context for faithfulness |
|
||||
| `tool.name`, `tool.parameters` | Agent evaluation |
|
||||
| `llm.model_name` | Track by model |
|
||||
|
||||
## Custom Attributes for Evals
|
||||
|
||||
```python
|
||||
span.set_attribute("metadata.client_type", "enterprise")
|
||||
span.set_attribute("metadata.query_category", "billing")
|
||||
```
|
||||
|
||||
## Exporting for Evaluation
|
||||
|
||||
### Spans (Python — DataFrame)
|
||||
|
||||
```python
|
||||
from phoenix.client import Client
|
||||
|
||||
# Client() works for local Phoenix (falls back to env vars or localhost:6006)
|
||||
# For remote/cloud: Client(base_url="https://app.phoenix.arize.com", api_key="...")
|
||||
client = Client()
|
||||
spans_df = client.spans.get_spans_dataframe(
|
||||
project_identifier="my-app", # NOT project_name= (deprecated)
|
||||
root_spans_only=True,
|
||||
)
|
||||
|
||||
dataset = client.datasets.create_dataset(
|
||||
name="error-analysis-set",
|
||||
dataframe=spans_df[["input.value", "output.value"]],
|
||||
input_keys=["input.value"],
|
||||
output_keys=["output.value"],
|
||||
)
|
||||
```
|
||||
|
||||
### Spans (TypeScript)
|
||||
|
||||
```typescript
|
||||
import { getSpans } from "@arizeai/phoenix-client/spans";
|
||||
|
||||
const { spans } = await getSpans({
|
||||
project: { projectName: "my-app" },
|
||||
parentId: null, // root spans only
|
||||
limit: 100,
|
||||
});
|
||||
```
|
||||
|
||||
### Traces (Python — structured)
|
||||
|
||||
Use `get_traces` when you need full trace trees (e.g., multi-turn conversations, agent workflows):
|
||||
|
||||
```python
|
||||
from datetime import datetime, timedelta
|
||||
|
||||
traces = client.traces.get_traces(
|
||||
project_identifier="my-app",
|
||||
start_time=datetime.now() - timedelta(hours=24),
|
||||
include_spans=True, # includes all spans per trace
|
||||
limit=100,
|
||||
)
|
||||
# Each trace has: trace_id, start_time, end_time, spans (when include_spans=True)
|
||||
```
|
||||
|
||||
### Traces (TypeScript)
|
||||
|
||||
```typescript
|
||||
import { getTraces } from "@arizeai/phoenix-client/traces";
|
||||
|
||||
const { traces } = await getTraces({
|
||||
project: { projectName: "my-app" },
|
||||
startTime: new Date(Date.now() - 24 * 60 * 60 * 1000),
|
||||
includeSpans: true,
|
||||
limit: 100,
|
||||
});
|
||||
```
|
||||
|
||||
## Uploading Evaluations as Annotations
|
||||
|
||||
### Python
|
||||
|
||||
```python
|
||||
from phoenix.evals import evaluate_dataframe
|
||||
from phoenix.evals.utils import to_annotation_dataframe
|
||||
|
||||
# Run evaluations
|
||||
results_df = evaluate_dataframe(dataframe=spans_df, evaluators=[my_eval])
|
||||
|
||||
# Format results for Phoenix annotations
|
||||
annotations_df = to_annotation_dataframe(results_df)
|
||||
|
||||
# Upload to Phoenix
|
||||
client.spans.log_span_annotations_dataframe(dataframe=annotations_df)
|
||||
```
|
||||
|
||||
### TypeScript
|
||||
|
||||
```typescript
|
||||
import { logSpanAnnotations } from "@arizeai/phoenix-client/spans";
|
||||
|
||||
await logSpanAnnotations({
|
||||
spanAnnotations: [
|
||||
{
|
||||
spanId: "abc123",
|
||||
name: "quality",
|
||||
label: "good",
|
||||
score: 0.95,
|
||||
annotatorKind: "LLM",
|
||||
},
|
||||
],
|
||||
});
|
||||
```
|
||||
|
||||
Annotations are visible in the Phoenix UI alongside your traces.
|
||||
|
||||
## Verify
|
||||
|
||||
Required attributes: `input.value`, `output.value`, `status_code`
|
||||
For RAG: `retrieval.documents`
|
||||
For agents: `tool.name`, `tool.parameters`
|
||||
Reference in New Issue
Block a user