Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions docs/domain-entity-rename.md
Original file line number Diff line number Diff line change
Expand Up @@ -45,8 +45,8 @@ stream = AgentStream.get(name="prod-traces", project_name="my-project")
streams = AgentStream.list(project_name="my-project")

# Enable evaluators on the stream
from splunk_ao.schema.metrics import SplunkAOMetrics
stream.enable_evaluators([SplunkAOMetrics.correctness, SplunkAOMetrics.completeness])
from splunk_ao.schema.metrics import SplunkAOEvaluators
stream.enable_evaluators([SplunkAOEvaluators.correctness, SplunkAOEvaluators.completeness])
```

```python
Expand Down
4 changes: 2 additions & 2 deletions examples/agent/langgraph-fsi-agent/after/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
from langchain_core.callbacks import Callbacks
from langchain_core.messages import HumanMessage

from splunk_ao import SplunkAOMetrics, splunk_ao_context
from splunk_ao import SplunkAOEvaluators, splunk_ao_context
from splunk_ao.datasets import create_dataset, get_dataset, delete_dataset
from splunk_ao.experiments import get_experiment, run_experiment
from splunk_ao.handlers.langchain import SplunkAOCallback
Expand Down Expand Up @@ -108,7 +108,7 @@ def test_run_experiment_with_dataset():
experiment_name="langgraph-fsi-experiment",
dataset_name=DATASET_NAME,
function=send_message_to_supervisor_agent,
metrics=[SplunkAOMetrics.action_advancement, SplunkAOMetrics.action_completion, SplunkAOMetrics.tool_error_rate, SplunkAOMetrics.tool_selection_quality],
metrics=[SplunkAOEvaluators.action_advancement, SplunkAOEvaluators.action_completion, SplunkAOEvaluators.tool_error_rate, SplunkAOEvaluators.tool_selection_quality],
project=os.getenv("SPLUNK_AO_PROJECT"),
)

Expand Down
6 changes: 3 additions & 3 deletions examples/chatbot/sample-project-chatbot/anthropic/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

from dotenv import load_dotenv

from splunk_ao import SplunkAOMetrics
from splunk_ao import SplunkAOEvaluators
from splunk_ao.datasets import create_dataset, get_dataset
from splunk_ao.experiments import get_experiment, run_experiment

Expand Down Expand Up @@ -75,8 +75,8 @@ def test_run_experiment_with_dataset():
dataset_name="simple-chatbot-unit-test-dataset",
function=chat_with_llm,
metrics=[
SplunkAOMetrics.correctness,
SplunkAOMetrics.instruction_adherence,
SplunkAOEvaluators.correctness,
SplunkAOEvaluators.instruction_adherence,
],
project=os.getenv("SPLUNK_AO_PROJECT"),
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

from dotenv import load_dotenv

from splunk_ao import SplunkAOMetrics
from splunk_ao import SplunkAOEvaluators
from splunk_ao.datasets import create_dataset, get_dataset
from splunk_ao.experiments import get_experiment, run_experiment

Expand Down Expand Up @@ -75,8 +75,8 @@ def test_run_experiment_with_dataset():
dataset_name="simple-chatbot-unit-test-dataset",
function=chat_with_llm,
metrics=[
SplunkAOMetrics.correctness,
SplunkAOMetrics.instruction_adherence,
SplunkAOEvaluators.correctness,
SplunkAOEvaluators.instruction_adherence,
],
project=os.getenv("SPLUNK_AO_PROJECT"),
)
Expand Down
6 changes: 3 additions & 3 deletions examples/chatbot/sample-project-chatbot/openai-ollama/test.py
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@

from dotenv import load_dotenv

from splunk_ao import SplunkAOMetrics
from splunk_ao import SplunkAOEvaluators
from splunk_ao.datasets import create_dataset, get_dataset
from splunk_ao.experiments import get_experiment, run_experiment

Expand Down Expand Up @@ -75,8 +75,8 @@ def test_run_experiment_with_dataset():
dataset_name="simple-chatbot-unit-test-dataset",
function=chat_with_llm,
metrics=[
SplunkAOMetrics.correctness,
SplunkAOMetrics.instruction_adherence,
SplunkAOEvaluators.correctness,
SplunkAOEvaluators.instruction_adherence,
],
project=os.getenv("SPLUNK_AO_PROJECT"),
)
Expand Down
14 changes: 7 additions & 7 deletions examples/experiments/multi-turn/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -61,13 +61,13 @@ The `METRIC_NAME` variable in this script cites a session-level metric.

Pre-defined session-level metrics include:

- `SplunkAOMetrics.conversation_quality`
- `SplunkAOMetrics.action_completion`
- `SplunkAOMetrics.action_advancement`
- `SplunkAOMetrics.agent_efficiency`
- `SplunkAOMetrics.context_adherence`
- `SplunkAOMetrics.context_relevance`
- `SplunkAOMetrics.tool_error_rate`
- `SplunkAOEvaluators.conversation_quality`
- `SplunkAOEvaluators.action_completion`
- `SplunkAOEvaluators.action_advancement`
- `SplunkAOEvaluators.agent_efficiency`
- `SplunkAOEvaluators.context_adherence`
- `SplunkAOEvaluators.context_relevance`
- `SplunkAOEvaluators.tool_error_rate`

Related documentation: [Metrics Comparison](https://agent-observability-docs.splunk.com/concepts/metrics/metric-comparison)

Expand Down
4 changes: 2 additions & 2 deletions examples/experiments/multi-turn/basic-example.py
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
import os
import time

from splunk_ao import SplunkAOMetrics, splunk_ao_context
from splunk_ao import SplunkAOEvaluators, splunk_ao_context
from splunk_ao.experiments import create_experiment
from splunk_ao.projects import create_project, get_project
from splunk_ao.resources.models import MetricSuccess
from splunk_ao.search import get_sessions
from splunk_ao.utils.metrics import create_metric_configs

# Provide the name of a session-level metric
METRIC_NAME = SplunkAOMetrics.conversation_quality
METRIC_NAME = SplunkAOEvaluators.conversation_quality

# example custom metric name (must be set up in advance)
# METRIC_NAME = "multi-turn-session-test-metric-apples"
Expand Down
10 changes: 5 additions & 5 deletions examples/experiments/rag-and-tools/experiment.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import os

from splunk_ao import SplunkAOMetrics
from splunk_ao import SplunkAOEvaluators
from splunk_ao.experiments import run_experiment

from app import get_users_horoscope
Expand All @@ -25,10 +25,10 @@ def main():
dataset=dataset,
function=get_users_horoscope,
metrics=[
SplunkAOMetrics.tool_error_rate,
SplunkAOMetrics.tool_selection_quality,
SplunkAOMetrics.chunk_attribution_utilization,
SplunkAOMetrics.context_adherence,
SplunkAOEvaluators.tool_error_rate,
SplunkAOEvaluators.tool_selection_quality,
SplunkAOEvaluators.chunk_attribution_utilization,
SplunkAOEvaluators.context_adherence,
],
project=os.environ["SPLUNK_AO_PROJECT"],
)
Expand Down
8 changes: 4 additions & 4 deletions examples/experiments/upload_experiment/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -117,12 +117,12 @@ Edit `dataset.json` with your own evaluation data. The example uses space missio
In `upload_existing_results.py`, modify the `metrics` parameter in `upload_experiment()`:

```python
from splunk_ao.schema.metrics import SplunkAOMetrics
from splunk_ao.schema.metrics import SplunkAOEvaluators

custom_metrics = [
SplunkAOMetrics.ground_truth_adherence,
SplunkAOMetrics.context_adherence,
SplunkAOMetrics.correctness,
SplunkAOEvaluators.ground_truth_adherence,
SplunkAOEvaluators.context_adherence,
SplunkAOEvaluators.correctness,
# Add any other Splunk AO metrics you want
]

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@
# Splunk AO imports
from splunk_ao.datasets import create_dataset, get_dataset
from splunk_ao.experiments import run_experiment
from splunk_ao.schema.metrics import SplunkAOMetrics
from splunk_ao.schema.metrics import SplunkAOEvaluators
from splunk_ao import splunk_ao_context


Expand Down Expand Up @@ -239,11 +239,11 @@ def upload_experiment(
# Use default metrics if none provided
if metrics is None:
metrics = [
SplunkAOMetrics.ground_truth_adherence,
SplunkAOMetrics.context_adherence,
SplunkAOMetrics.chunk_attribution_utilization,
SplunkAOMetrics.completeness,
SplunkAOMetrics.correctness,
SplunkAOEvaluators.ground_truth_adherence,
SplunkAOEvaluators.context_adherence,
SplunkAOEvaluators.chunk_attribution_utilization,
SplunkAOEvaluators.completeness,
SplunkAOEvaluators.correctness,
]

# Run experiment with your data
Expand Down
14 changes: 7 additions & 7 deletions splunk-ao-migration-tool/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -196,12 +196,12 @@ All sub-module paths follow the same rename pattern:
| Old | New |
|-----|-----|
| `GalileoMetric` | `SplunkAOMetric` |
| `GalileoMetrics` | `SplunkAOMetrics` |
| `GalileoMetrics` | `SplunkAOEvaluators` |
| `GalileoScorers` | **Removed** (see §5.2) |

```diff
- from galileo import GalileoMetric, GalileoMetrics
+ from splunk_ao import SplunkAOMetric, SplunkAOMetrics
+ from splunk_ao import SplunkAOMetric, SplunkAOEvaluators
```

### 3.4 Handlers & Middleware
Expand Down Expand Up @@ -330,14 +330,14 @@ The following symbols from `galileo` are **not available** in `splunk-ao`:

### 5.2 `GalileoScorers` Removed

The `GalileoScorers` enum has been removed entirely. Migrate to `SplunkAOMetrics`:
The `GalileoScorers` enum has been removed entirely. Migrate to `SplunkAOEvaluators`:

```diff
- from galileo.schema.metrics import GalileoScorers
+ from splunk_ao.schema.metrics import SplunkAOMetrics
+ from splunk_ao.schema.metrics import SplunkAOEvaluators

- scorer = GalileoScorers.completeness
+ scorer = SplunkAOMetrics.completeness
+ scorer = SplunkAOEvaluators.completeness
```

---
Expand Down Expand Up @@ -441,8 +441,8 @@ The following are **unchanged** between galileo and splunk-ao and require no mig
- [ ] Rename `GalileoLoggerException` → `SplunkAOLoggerException`
- [ ] Rename `GalileoFutureError` → `SplunkAOFutureError`
- [ ] Rename `GalileoMetric` → `SplunkAOMetric`
- [ ] Rename `GalileoMetrics` → `SplunkAOMetrics`
- [ ] Replace `GalileoScorers` with `SplunkAOMetrics`
- [ ] Rename `GalileoMetrics` → `SplunkAOEvaluators`
- [ ] Replace `GalileoScorers` with `SplunkAOEvaluators`
- [ ] Rename `GalileoAgentControlBridge` → `SplunkAOAgentControlBridge`
- [ ] Rename all `GALILEO_*` environment variables to `SPLUNK_AO_*`
- [ ] Update `.env`, `.env.example`, CI/CD secrets, and deployment configs
Expand Down
4 changes: 2 additions & 2 deletions src/splunk_ao/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@
from splunk_ao.provider import AnthropicProvider, AzureProvider, BedrockProvider, OpenAIProvider, Provider
from splunk_ao.resources.models.document import Document
from splunk_ao.schema.message import Message
from splunk_ao.schema.metrics import SplunkAOMetrics
from splunk_ao.schema.metrics import SplunkAOEvaluators
from splunk_ao.shared.base import SyncState
from splunk_ao.shared.exceptions import (
AmbiguousConfigurationError,
Expand Down Expand Up @@ -149,7 +149,7 @@
"SplunkAOFutureError",
"SplunkAOLogger",
"SplunkAOLoggerException",
"SplunkAOMetrics",
"SplunkAOEvaluators",
"StepType",
"StepWithChildSpans",
"SyncState",
Expand Down
12 changes: 6 additions & 6 deletions src/splunk_ao/agent_stream.py
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
from splunk_ao.resources.models.log_records_available_columns_response import LogRecordsAvailableColumnsResponse
from splunk_ao.resources.types import Unset
from splunk_ao.schema.filters import FilterType
from splunk_ao.schema.metrics import LocalMetricConfig, Metric, SplunkAOMetrics
from splunk_ao.schema.metrics import LocalMetricConfig, Metric, SplunkAOEvaluators
from splunk_ao.search import RecordType, Search
from splunk_ao.shared.base import StateManagementMixin, SyncState
from splunk_ao.shared.exceptions import ValidationError
Expand Down Expand Up @@ -78,10 +78,10 @@ class AgentStream(StateManagementMixin):
agent_stream = project.create_agent_stream(name="Production Logs")

# Enable metrics on the log stream
from splunk_ao.schema.metrics import SplunkAOMetrics
from splunk_ao.schema.metrics import SplunkAOEvaluators
local_metrics = log_stream.enable_evaluators([
SplunkAOMetrics.correctness,
SplunkAOMetrics.completeness,
SplunkAOEvaluators.correctness,
SplunkAOEvaluators.completeness,
"context_relevance"
])

Expand Down Expand Up @@ -441,7 +441,7 @@ def get_metrics(self) -> builtins.list[str]:
return metric_names

def set_metrics(
self, metrics: builtins.list[SplunkAOMetrics | Metric | LocalMetricConfig | str]
self, metrics: builtins.list[SplunkAOEvaluators | Metric | LocalMetricConfig | str]
) -> builtins.list[LocalMetricConfig]:
"""
Set (replace) the metrics on this log stream.
Expand All @@ -451,7 +451,7 @@ def set_metrics(

Args:
metrics: List of metrics to set. Supports:
- SplunkAOMetrics enum values (e.g., SplunkAOMetrics.correctness)
- SplunkAOEvaluators enum values (e.g., SplunkAOEvaluators.correctness)
- Metric objects (including from Metric.get(id="..."))
- LocalMetricConfig objects for custom scoring functions
- String names of built-in metrics
Expand Down
Loading
Loading