chore: import upstream snapshot with attribution
TypeScript SDK Compatibility V1.x E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / TypeScript SDK Compatibility V1.x E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
TypeScript SDK E2E Tests / TypeScript SDK E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
Python SDK E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK E2E Tests / Python SDK E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK E2E Tests / build-opik (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Python SDK Compatibility V1.x E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK E2E Tests / build-opik (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer E2E Tests Python ${{matrix.python_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer Integration Smoke Tests (push) Has been cancelled
🐙 Code Quality / detect (push) Has been cancelled
🐙 Code Quality / lint (${{ matrix.leg.name }}) (push) Has been cancelled
🐙 Code Quality / summary (push) Has been cancelled
TypeScript SDK Library Integration Tests / Check Secrets (push) Has been cancelled
TypeScript SDK Library Integration Tests / opik-vercel (Vercel AI SDK / eve) (push) Has been cancelled
SDK Library Integration Tests Runner / Check Secrets (push) Has been cancelled
SDK Library Integration Tests Runner / Missed OpenAI API Key Warning (push) Has been cancelled
SDK Library Integration Tests Runner / Build (push) Has been cancelled
SDK Library Integration Tests Runner / openai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_legacy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / llama_index_tests (push) Has been cancelled
SDK Library Integration Tests Runner / anthropic_tests (push) Has been cancelled
SDK Library Integration Tests Runner / mistral_tests (push) Has been cancelled
SDK Library Integration Tests Runner / groq_tests (push) Has been cancelled
SDK Library Integration Tests Runner / aisuite_tests (push) Has been cancelled
SDK Library Integration Tests Runner / haystack_tests (push) Has been cancelled
SDK Library Integration Tests Runner / dspy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v1_tests (push) Has been cancelled
SDK Library Integration Tests Runner / genai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_legacy_1_3_0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / evaluation_metrics_tests (push) Has been cancelled
SDK Library Integration Tests Runner / bedrock_tests (push) Has been cancelled
SDK Library Integration Tests Runner / litellm_tests (push) Has been cancelled
SDK Library Integration Tests Runner / harbor_tests (push) Has been cancelled
SDK Library Integration Tests Runner / Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / render-equality (push) Has been cancelled
Opik Optimizer - Unit Tests / Opik Optimizer Unit Tests Python ${{matrix.python_version}} (push) Has been cancelled
Python BE E2E Tests / Python BE E2E (push) Has been cancelled
Python Backend Tests / run-python-backend-tests (push) Has been cancelled
Python SDK Unit Tests / Python SDK Unit Tests ${{matrix.python_version}} (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
SDK E2E Libraries Integration Tests / Check Secrets (push) Has been cancelled
SDK E2E Libraries Integration Tests / Missed OpenAI API Key Warning (push) Has been cancelled
SDK E2E Libraries Integration Tests / build-opik (push) Has been cancelled
SDK E2E Libraries Integration Tests / E2E Lib Integration Python ${{matrix.python_version}} (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-gemini) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-langchain) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-openai) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-otel) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-vercel) (push) Has been cancelled
TypeScript SDK Build & Publish / build-and-publish (push) Has been cancelled
TypeScript SDK Unit Tests / Test on Node ${{ matrix.node-version }} (push) Has been cancelled
Backend Tests / discover-tests (push) Has been cancelled
Backend Tests / ${{ matrix.name }} (push) Has been cancelled
Build and Publish SDK / build-and-publish (push) Has been cancelled
Build Opik Docker Images / set-version (push) Has been cancelled
Build Opik Docker Images / build-backend (push) Has been cancelled
Build Opik Docker Images / build-sandbox-executor-python (push) Has been cancelled
Build Opik Docker Images / build-python-backend (push) Has been cancelled
Build Opik Docker Images / build-frontend (push) Has been cancelled
Build Opik Docker Images / create-git-tag (push) Has been cancelled
ClickHouse Migration Cluster Check / validate-clickhouse-migrations (push) Has been cancelled
Docs - Publish / run (push) Has been cancelled
E2E Tests - Post Merge (v2) / 🧪 E2E v2 Tests (${{ github.event.inputs.tier || 't1' }}) (push) Has been cancelled
E2E Tests - Post Merge (v2) / 📢 Slack Notification (push) Has been cancelled
Frontend Unit Tests / Test on Node 20 (push) Has been cancelled
Guardrails E2E Tests / Select Python version matrix (push) Has been cancelled
Guardrails E2E Tests / Guardrails E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Guardrails E2E Tests / 📢 Slack Notification (push) Has been cancelled
Guardrails Backend Unit Tests / Guardrails Backend Unit Tests (push) Has been cancelled
Guardrails Backend Unit Tests / 📢 Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v3.21.0) (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v4.2.0) (push) Has been cancelled
Lint Opik Helm Chart / unittest-helm-chart (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / TypeScript SDK Compatibility V1.x E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
TypeScript SDK E2E Tests / TypeScript SDK E2E Tests Node ${{matrix.node_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
Python SDK E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK E2E Tests / Python SDK E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK E2E Tests / build-opik (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Select Python version matrix (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / Python SDK Compatibility V1.x E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Python SDK Compatibility V1.x E2E Tests / build-opik (push) Has been cancelled
TypeScript SDK E2E Tests / Select Node version matrix (push) Has been cancelled
TypeScript SDK E2E Tests / build-opik (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer E2E Tests Python ${{matrix.python_version}} (push) Has been cancelled
Opik Optimizer - E2E Tests / Opik Optimizer Integration Smoke Tests (push) Has been cancelled
🐙 Code Quality / detect (push) Has been cancelled
🐙 Code Quality / lint (${{ matrix.leg.name }}) (push) Has been cancelled
🐙 Code Quality / summary (push) Has been cancelled
TypeScript SDK Library Integration Tests / Check Secrets (push) Has been cancelled
TypeScript SDK Library Integration Tests / opik-vercel (Vercel AI SDK / eve) (push) Has been cancelled
SDK Library Integration Tests Runner / Check Secrets (push) Has been cancelled
SDK Library Integration Tests Runner / Missed OpenAI API Key Warning (push) Has been cancelled
SDK Library Integration Tests Runner / Build (push) Has been cancelled
SDK Library Integration Tests Runner / openai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_tests (push) Has been cancelled
SDK Library Integration Tests Runner / langchain_legacy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / llama_index_tests (push) Has been cancelled
SDK Library Integration Tests Runner / anthropic_tests (push) Has been cancelled
SDK Library Integration Tests Runner / mistral_tests (push) Has been cancelled
SDK Library Integration Tests Runner / groq_tests (push) Has been cancelled
SDK Library Integration Tests Runner / aisuite_tests (push) Has been cancelled
SDK Library Integration Tests Runner / haystack_tests (push) Has been cancelled
SDK Library Integration Tests Runner / dspy_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / crewai_v1_tests (push) Has been cancelled
SDK Library Integration Tests Runner / genai_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_tests (push) Has been cancelled
SDK Library Integration Tests Runner / adk_legacy_1_3_0_tests (push) Has been cancelled
SDK Library Integration Tests Runner / evaluation_metrics_tests (push) Has been cancelled
SDK Library Integration Tests Runner / bedrock_tests (push) Has been cancelled
SDK Library Integration Tests Runner / litellm_tests (push) Has been cancelled
SDK Library Integration Tests Runner / harbor_tests (push) Has been cancelled
SDK Library Integration Tests Runner / Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / render-equality (push) Has been cancelled
Opik Optimizer - Unit Tests / Opik Optimizer Unit Tests Python ${{matrix.python_version}} (push) Has been cancelled
Python BE E2E Tests / Python BE E2E (push) Has been cancelled
Python Backend Tests / run-python-backend-tests (push) Has been cancelled
Python SDK Unit Tests / Python SDK Unit Tests ${{matrix.python_version}} (push) Has been cancelled
Release Drafter / update_release_draft (push) Has been cancelled
SDK E2E Libraries Integration Tests / Check Secrets (push) Has been cancelled
SDK E2E Libraries Integration Tests / Missed OpenAI API Key Warning (push) Has been cancelled
SDK E2E Libraries Integration Tests / build-opik (push) Has been cancelled
SDK E2E Libraries Integration Tests / E2E Lib Integration Python ${{matrix.python_version}} (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-gemini) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-langchain) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-openai) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-otel) (push) Has been cancelled
TypeScript SDK Integration Build & Publish / build-and-publish (opik-vercel) (push) Has been cancelled
TypeScript SDK Build & Publish / build-and-publish (push) Has been cancelled
TypeScript SDK Unit Tests / Test on Node ${{ matrix.node-version }} (push) Has been cancelled
Backend Tests / discover-tests (push) Has been cancelled
Backend Tests / ${{ matrix.name }} (push) Has been cancelled
Build and Publish SDK / build-and-publish (push) Has been cancelled
Build Opik Docker Images / set-version (push) Has been cancelled
Build Opik Docker Images / build-backend (push) Has been cancelled
Build Opik Docker Images / build-sandbox-executor-python (push) Has been cancelled
Build Opik Docker Images / build-python-backend (push) Has been cancelled
Build Opik Docker Images / build-frontend (push) Has been cancelled
Build Opik Docker Images / create-git-tag (push) Has been cancelled
ClickHouse Migration Cluster Check / validate-clickhouse-migrations (push) Has been cancelled
Docs - Publish / run (push) Has been cancelled
E2E Tests - Post Merge (v2) / 🧪 E2E v2 Tests (${{ github.event.inputs.tier || 't1' }}) (push) Has been cancelled
E2E Tests - Post Merge (v2) / 📢 Slack Notification (push) Has been cancelled
Frontend Unit Tests / Test on Node 20 (push) Has been cancelled
Guardrails E2E Tests / Select Python version matrix (push) Has been cancelled
Guardrails E2E Tests / Guardrails E2E Tests ${{matrix.python_version}} (push) Has been cancelled
Guardrails E2E Tests / 📢 Slack Notification (push) Has been cancelled
Guardrails Backend Unit Tests / Guardrails Backend Unit Tests (push) Has been cancelled
Guardrails Backend Unit Tests / 📢 Slack Notification (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v3.21.0) (push) Has been cancelled
Lint Opik Helm Chart / lint-helm-chart (Helm v4.2.0) (push) Has been cancelled
Lint Opik Helm Chart / unittest-helm-chart (push) Has been cancelled
This commit is contained in:
@@ -0,0 +1,188 @@
|
||||
#!/usr/bin/env python3
|
||||
"""
|
||||
Trajectory Accuracy Evaluation Example
|
||||
|
||||
This example demonstrates how to use Opik's TrajectoryAccuracy metric
|
||||
to evaluate ReAct-style agent trajectories within the evaluation framework.
|
||||
"""
|
||||
|
||||
from typing import Dict, Any
|
||||
from opik.evaluation.metrics import TrajectoryAccuracy
|
||||
from opik.evaluation import evaluate
|
||||
from opik import Opik, track
|
||||
import json
|
||||
|
||||
|
||||
def create_trajectory_dataset():
|
||||
"""Create a dataset with ReAct-style trajectories for evaluation."""
|
||||
|
||||
client = Opik()
|
||||
dataset = client.get_or_create_dataset(
|
||||
name="trajectory_evaluation_dataset",
|
||||
description="Dataset for evaluating ReAct-style agent trajectories",
|
||||
)
|
||||
|
||||
# Sample trajectory data
|
||||
trajectory_data = [
|
||||
{
|
||||
"trajectory_input": {
|
||||
"goal": "Find the weather in Paris",
|
||||
"trajectory": [
|
||||
{
|
||||
"thought": "I need to search for weather information in Paris",
|
||||
"action": "search_weather(location='Paris')",
|
||||
"observation": "Found weather data for Paris: 22°C, sunny",
|
||||
},
|
||||
{
|
||||
"thought": "I have the weather data, now I should summarize it",
|
||||
"action": "summarize_result()",
|
||||
"observation": "Summary created: The weather in Paris is 22°C and sunny",
|
||||
},
|
||||
],
|
||||
"final_result": "The weather in Paris is 22°C and sunny",
|
||||
}
|
||||
},
|
||||
{
|
||||
"trajectory_input": {
|
||||
"goal": "Calculate the sum of 15 and 27",
|
||||
"trajectory": [
|
||||
{
|
||||
"thought": "I need to add 15 and 27 together",
|
||||
"action": "calculate(15 + 27)",
|
||||
"observation": "Result: 42",
|
||||
}
|
||||
],
|
||||
"final_result": "The sum of 15 and 27 is 42",
|
||||
}
|
||||
},
|
||||
{
|
||||
"trajectory_input": {
|
||||
"goal": "Find the capital of France",
|
||||
"trajectory": [
|
||||
{
|
||||
"thought": "I need to find France's capital",
|
||||
"action": "search('weather in France')", # Poor action choice
|
||||
"observation": "Found weather information for various French cities",
|
||||
},
|
||||
{
|
||||
"thought": "This doesn't help, let me try something else",
|
||||
"action": "search('French cuisine')", # Still poor choice
|
||||
"observation": "Found information about French food",
|
||||
},
|
||||
],
|
||||
"final_result": "Paris is the capital of France", # Result doesn't match trajectory
|
||||
}
|
||||
},
|
||||
{
|
||||
"trajectory_input": {
|
||||
"goal": "Research the population of Tokyo",
|
||||
"trajectory": [
|
||||
{
|
||||
"thought": "I need to search for Tokyo population data",
|
||||
"action": "search('Tokyo population 2024')",
|
||||
"observation": "Tokyo has approximately 14 million people in the city, 37 million in metro area",
|
||||
},
|
||||
{
|
||||
"thought": "I found the data, let me verify with another source",
|
||||
"action": "search('Tokyo metropolitan area population')",
|
||||
"observation": "Confirmed: Tokyo metro area has about 37-38 million residents",
|
||||
},
|
||||
{
|
||||
"thought": "Now I should summarize this information clearly",
|
||||
"action": "summarize_findings()",
|
||||
"observation": "Summary prepared with population figures",
|
||||
},
|
||||
],
|
||||
"final_result": "Tokyo city has about 14 million people, while the greater Tokyo metropolitan area has approximately 37-38 million residents, making it the world's largest urban agglomeration.",
|
||||
}
|
||||
},
|
||||
]
|
||||
|
||||
# Insert data into dataset
|
||||
dataset.insert_from_json(
|
||||
json_array=json.dumps(trajectory_data),
|
||||
keys_mapping={"trajectory_input": "input"},
|
||||
)
|
||||
|
||||
return dataset
|
||||
|
||||
|
||||
@track()
|
||||
def trajectory_evaluation_task(item: Dict[str, Any]) -> Dict[str, Any]:
|
||||
"""
|
||||
Task that simulates evaluating an agent trajectory.
|
||||
In practice, this would be where your agent generates the trajectory.
|
||||
"""
|
||||
# Extract the trajectory components
|
||||
trajectory_data = item["input"]
|
||||
|
||||
# For this example, we're just passing through the pre-made trajectory
|
||||
# In a real scenario, this is where your agent would generate the trajectory
|
||||
return {
|
||||
"goal": trajectory_data["goal"],
|
||||
"trajectory": trajectory_data["trajectory"],
|
||||
"final_result": trajectory_data["final_result"],
|
||||
"metadata": {
|
||||
"trajectory_steps": len(trajectory_data["trajectory"]),
|
||||
"evaluation_type": "react_agent_trajectory",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
def main():
|
||||
"""Run the trajectory accuracy evaluation example."""
|
||||
|
||||
print("🚀 Starting Trajectory Accuracy Evaluation with Opik")
|
||||
print("=" * 60)
|
||||
|
||||
# Create dataset
|
||||
print("📊 Creating trajectory dataset...")
|
||||
dataset = create_trajectory_dataset()
|
||||
print(f"✅ Dataset '{dataset.name}' created with trajectory examples")
|
||||
|
||||
# Create trajectory accuracy metric
|
||||
trajectory_metric = TrajectoryAccuracy(
|
||||
name="trajectory_accuracy_evaluation", track=True
|
||||
)
|
||||
|
||||
print("\n🎯 Running evaluation...")
|
||||
|
||||
# Run evaluation
|
||||
evaluation_result = evaluate(
|
||||
experiment_name="trajectory_accuracy_experiment",
|
||||
dataset=dataset,
|
||||
task=trajectory_evaluation_task,
|
||||
scoring_metrics=[trajectory_metric],
|
||||
experiment_config={
|
||||
"model": "gpt-4o-mini", # Following user rules
|
||||
"evaluation_type": "react_agent_trajectory",
|
||||
"metric": "trajectory_accuracy",
|
||||
},
|
||||
)
|
||||
|
||||
print("\n✅ Evaluation completed!")
|
||||
print(f"📊 Experiment: {evaluation_result.experiment_name}")
|
||||
print("📈 Results available in Opik dashboard")
|
||||
|
||||
# Display summary
|
||||
print("\n📋 Summary:")
|
||||
print(f" Total test cases: {len(evaluation_result.test_results)}")
|
||||
print(" Metric used: TrajectoryAccuracy")
|
||||
print(
|
||||
" Evaluation assesses: reasoning quality, action appropriateness, goal achievement"
|
||||
)
|
||||
|
||||
return evaluation_result
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
try:
|
||||
result = main()
|
||||
print("\n🎉 Trajectory Accuracy evaluation completed successfully!")
|
||||
print("📊 View detailed results in your Opik dashboard")
|
||||
except Exception as e:
|
||||
print(f"\n❌ Evaluation failed: {e}")
|
||||
print("💡 Make sure you have:")
|
||||
print(" - OPENAI_API_KEY set in environment")
|
||||
print(" - Opik properly configured")
|
||||
print(" - Network connectivity for LLM calls")
|
||||
Reference in New Issue
Block a user