Skip to content

Commit d3ef487

Browse files
vertex-sdk-botcopybara-github
authored andcommitted
feat: GenAI SDK client(evals) Add data model for agent evaluation
PiperOrigin-RevId: 811982862
1 parent 0722687 commit d3ef487

File tree

2 files changed

+281
-87
lines changed

2 files changed

+281
-87
lines changed

tests/unit/vertexai/genai/test_evals.py

Lines changed: 92 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2297,6 +2297,98 @@ def test_convert_tool_call_parts(self):
22972297
)
22982298

22992299

2300+
class TestAgentMetadata:
2301+
"""Unit tests for the AgentMetadata class."""
2302+
2303+
def test_agent_metadata_creation(self):
2304+
tool = genai_types.Tool(
2305+
function_declarations=[
2306+
genai_types.FunctionDeclaration(
2307+
name="get_weather",
2308+
description="Get weather in a location",
2309+
parameters={
2310+
"type": "object",
2311+
"properties": {"location": {"type": "string"}},
2312+
},
2313+
)
2314+
]
2315+
)
2316+
agent_metadata = vertexai_genai_types.AgentMetadata(
2317+
name="agent1",
2318+
instruction="instruction1",
2319+
description="description1",
2320+
tool_declarations=[tool],
2321+
sub_agent_names=["sub_agent1"],
2322+
)
2323+
assert agent_metadata.name == "agent1"
2324+
assert agent_metadata.instruction == "instruction1"
2325+
assert agent_metadata.description == "description1"
2326+
assert agent_metadata.tool_declarations == [tool]
2327+
assert agent_metadata.sub_agent_names == ["sub_agent1"]
2328+
2329+
2330+
class TestEvent:
2331+
"""Unit tests for the Event class."""
2332+
2333+
def test_event_creation(self):
2334+
event = vertexai_genai_types.Event(
2335+
event_id="event1",
2336+
content=genai_types.Content(
2337+
parts=[genai_types.Part(text="intermediate event")]
2338+
),
2339+
author="user",
2340+
)
2341+
assert event.event_id == "event1"
2342+
assert event.content.parts[0].text == "intermediate event"
2343+
assert event.author == "user"
2344+
2345+
2346+
class TestEvalCase:
2347+
"""Unit tests for the EvalCase class."""
2348+
2349+
def test_eval_case_with_agent_eval_fields(self):
2350+
tool = genai_types.Tool(
2351+
function_declarations=[
2352+
genai_types.FunctionDeclaration(
2353+
name="get_weather",
2354+
description="Get weather in a location",
2355+
parameters={
2356+
"type": "object",
2357+
"properties": {"location": {"type": "string"}},
2358+
},
2359+
)
2360+
]
2361+
)
2362+
agent_metadata = {
2363+
"agent1": vertexai_genai_types.AgentMetadata(
2364+
name="agent1",
2365+
instruction="instruction1",
2366+
tool_declarations=[tool],
2367+
)
2368+
}
2369+
intermediate_events = [
2370+
vertexai_genai_types.Event(
2371+
event_id="event1",
2372+
content=genai_types.Content(
2373+
parts=[genai_types.Part(text="intermediate event")]
2374+
),
2375+
)
2376+
]
2377+
eval_case = vertexai_genai_types.EvalCase(
2378+
prompt=genai_types.Content(parts=[genai_types.Part(text="Hello")]),
2379+
responses=[
2380+
vertexai_genai_types.ResponseCandidate(
2381+
response=genai_types.Content(parts=[genai_types.Part(text="Hi")])
2382+
)
2383+
],
2384+
agent_metadata=agent_metadata,
2385+
intermediate_events=intermediate_events,
2386+
)
2387+
2388+
assert eval_case.agent_metadata == agent_metadata
2389+
assert eval_case.intermediate_events == intermediate_events
2390+
2391+
23002392
class TestMetric:
23012393
"""Unit tests for the Metric class."""
23022394

0 commit comments

Comments
 (0)