Skip to content

Commit eacc86c

Browse files
vertex-sdk-botcopybara-github
authored andcommitted
feat: GenAI Client(evals): onboarding agent_config (agents) in create_evaluation_run
PiperOrigin-RevId: 880959518
1 parent b3bae32 commit eacc86c

File tree

3 files changed

+189
-126
lines changed

3 files changed

+189
-126
lines changed

vertexai/_genai/evals.py

Lines changed: 58 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -94,7 +94,14 @@ def _CreateEvaluationRunParameters_to_vertex(
9494
setv(to_object, ["labels"], getv(from_object, ["labels"]))
9595

9696
if getv(from_object, ["inference_configs"]) is not None:
97-
setv(to_object, ["inferenceConfigs"], getv(from_object, ["inference_configs"]))
97+
setv(
98+
to_object,
99+
["inferenceConfigs"],
100+
{
101+
k: _EvaluationRunInferenceConfig_to_vertex(v, to_object)
102+
for k, v in getv(from_object, ["inference_configs"]).items()
103+
},
104+
)
98105

99106
if getv(from_object, ["config"]) is not None:
100107
setv(to_object, ["config"], getv(from_object, ["config"]))
@@ -331,6 +338,52 @@ def _EvaluationRunConfig_to_vertex(
331338
return to_object
332339

333340

341+
def _EvaluationRunInferenceConfig_from_vertex(
342+
from_object: Union[dict[str, Any], object],
343+
parent_object: Optional[dict[str, Any]] = None,
344+
) -> dict[str, Any]:
345+
to_object: dict[str, Any] = {}
346+
if getv(from_object, ["agentConfig"]) is not None:
347+
setv(to_object, ["agent_config"], getv(from_object, ["agentConfig"]))
348+
349+
if getv(from_object, ["model"]) is not None:
350+
setv(to_object, ["model"], getv(from_object, ["model"]))
351+
352+
if getv(from_object, ["promptTemplate"]) is not None:
353+
setv(to_object, ["prompt_template"], getv(from_object, ["promptTemplate"]))
354+
355+
if getv(from_object, ["agentRunConfig"]) is not None:
356+
setv(to_object, ["agent_run_config"], getv(from_object, ["agentRunConfig"]))
357+
358+
if getv(from_object, ["agents"]) is not None:
359+
setv(to_object, ["agent_configs"], getv(from_object, ["agents"]))
360+
361+
return to_object
362+
363+
364+
def _EvaluationRunInferenceConfig_to_vertex(
365+
from_object: Union[dict[str, Any], object],
366+
parent_object: Optional[dict[str, Any]] = None,
367+
) -> dict[str, Any]:
368+
to_object: dict[str, Any] = {}
369+
if getv(from_object, ["agent_config"]) is not None:
370+
setv(to_object, ["agentConfig"], getv(from_object, ["agent_config"]))
371+
372+
if getv(from_object, ["model"]) is not None:
373+
setv(to_object, ["model"], getv(from_object, ["model"]))
374+
375+
if getv(from_object, ["prompt_template"]) is not None:
376+
setv(to_object, ["promptTemplate"], getv(from_object, ["prompt_template"]))
377+
378+
if getv(from_object, ["agent_run_config"]) is not None:
379+
setv(to_object, ["agentRunConfig"], getv(from_object, ["agent_run_config"]))
380+
381+
if getv(from_object, ["agent_configs"]) is not None:
382+
setv(to_object, ["agents"], getv(from_object, ["agent_configs"]))
383+
384+
return to_object
385+
386+
334387
def _EvaluationRunMetric_from_vertex(
335388
from_object: Union[dict[str, Any], object],
336389
parent_object: Optional[dict[str, Any]] = None,
@@ -423,7 +476,10 @@ def _EvaluationRun_from_vertex(
423476
setv(
424477
to_object,
425478
["inference_configs"],
426-
{k: v for k, v in getv(from_object, ["inferenceConfigs"]).items()},
479+
{
480+
k: _EvaluationRunInferenceConfig_from_vertex(v, to_object)
481+
for k, v in getv(from_object, ["inferenceConfigs"]).items()
482+
},
427483
)
428484

429485
if getv(from_object, ["labels"]) is not None:

vertexai/_genai/types/__init__.py

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1346,6 +1346,15 @@
13461346
"EvaluationRunConfig",
13471347
"EvaluationRunConfigDict",
13481348
"EvaluationRunConfigOrDict",
1349+
"EvaluationRunAgentConfig",
1350+
"EvaluationRunAgentConfigDict",
1351+
"EvaluationRunAgentConfigOrDict",
1352+
"AgentRunConfig",
1353+
"AgentRunConfigDict",
1354+
"AgentRunConfigOrDict",
1355+
"EvaluationRunInferenceConfig",
1356+
"EvaluationRunInferenceConfigDict",
1357+
"EvaluationRunInferenceConfigOrDict",
13491358
"CreateEvaluationRunConfig",
13501359
"CreateEvaluationRunConfigDict",
13511360
"CreateEvaluationRunConfigOrDict",
@@ -1391,15 +1400,6 @@
13911400
"EvaluationResult",
13921401
"EvaluationResultDict",
13931402
"EvaluationResultOrDict",
1394-
"EvaluationRunAgentConfig",
1395-
"EvaluationRunAgentConfigDict",
1396-
"EvaluationRunAgentConfigOrDict",
1397-
"AgentRunConfig",
1398-
"AgentRunConfigDict",
1399-
"AgentRunConfigOrDict",
1400-
"EvaluationRunInferenceConfig",
1401-
"EvaluationRunInferenceConfigDict",
1402-
"EvaluationRunInferenceConfigOrDict",
14031403
"EvaluationRun",
14041404
"EvaluationRunDict",
14051405
"EvaluationRunOrDict",

vertexai/_genai/types/common.py

Lines changed: 122 additions & 115 deletions
Original file line numberDiff line numberDiff line change
@@ -2576,6 +2576,126 @@ class EvaluationRunConfigDict(TypedDict, total=False):
25762576
EvaluationRunConfigOrDict = Union[EvaluationRunConfig, EvaluationRunConfigDict]
25772577

25782578

2579+
class EvaluationRunAgentConfig(_common.BaseModel):
2580+
"""This field is experimental and may change in future versions.
2581+
2582+
Agent config for an evaluation run.
2583+
"""
2584+
2585+
developer_instruction: Optional[genai_types.Content] = Field(
2586+
default=None, description="""The developer instruction for the agent."""
2587+
)
2588+
tools: Optional[list[genai_types.Tool]] = Field(
2589+
default=None, description="""The tools available to the agent."""
2590+
)
2591+
2592+
2593+
class EvaluationRunAgentConfigDict(TypedDict, total=False):
2594+
"""This field is experimental and may change in future versions.
2595+
2596+
Agent config for an evaluation run.
2597+
"""
2598+
2599+
developer_instruction: Optional[genai_types.ContentDict]
2600+
"""The developer instruction for the agent."""
2601+
2602+
tools: Optional[list[genai_types.ToolDict]]
2603+
"""The tools available to the agent."""
2604+
2605+
2606+
EvaluationRunAgentConfigOrDict = Union[
2607+
EvaluationRunAgentConfig, EvaluationRunAgentConfigDict
2608+
]
2609+
2610+
2611+
class AgentRunConfig(_common.BaseModel):
2612+
"""Configuration for an Agent Run."""
2613+
2614+
session_input: Optional[evals_types.SessionInput] = Field(
2615+
default=None, description="""The session input to get agent running results."""
2616+
)
2617+
agent_engine: Optional[str] = Field(
2618+
default=None, description="""The resource name of the Agent Engine."""
2619+
)
2620+
user_simulator_config: Optional[evals_types.UserSimulatorConfig] = Field(
2621+
default=None,
2622+
description="""Used for multi-turn agent run.
2623+
Contains configuration for a user simulator that
2624+
uses an LLM to generate messages on behalf of the user.""",
2625+
)
2626+
2627+
2628+
class AgentRunConfigDict(TypedDict, total=False):
2629+
"""Configuration for an Agent Run."""
2630+
2631+
session_input: Optional[evals_types.SessionInput]
2632+
"""The session input to get agent running results."""
2633+
2634+
agent_engine: Optional[str]
2635+
"""The resource name of the Agent Engine."""
2636+
2637+
user_simulator_config: Optional[evals_types.UserSimulatorConfig]
2638+
"""Used for multi-turn agent run.
2639+
Contains configuration for a user simulator that
2640+
uses an LLM to generate messages on behalf of the user."""
2641+
2642+
2643+
AgentRunConfigOrDict = Union[AgentRunConfig, AgentRunConfigDict]
2644+
2645+
2646+
class EvaluationRunInferenceConfig(_common.BaseModel):
2647+
"""This field is experimental and may change in future versions.
2648+
2649+
Configuration that describes an agent.
2650+
"""
2651+
2652+
agent_config: Optional[EvaluationRunAgentConfig] = Field(
2653+
default=None, description="""The agent config."""
2654+
)
2655+
model: Optional[str] = Field(
2656+
default=None,
2657+
description="""The fully qualified name of the publisher model or endpoint to use for inference.""",
2658+
)
2659+
prompt_template: Optional[EvaluationRunPromptTemplate] = Field(
2660+
default=None, description="""The prompt template used for inference."""
2661+
)
2662+
agent_run_config: Optional[AgentRunConfig] = Field(
2663+
default=None,
2664+
description="""Configuration for Agent Run in evaluation management service.""",
2665+
)
2666+
agent_configs: Optional[dict[str, evals_types.AgentConfig]] = Field(
2667+
default=None,
2668+
description="""A map of agent IDs to their respective agent config.""",
2669+
)
2670+
2671+
2672+
class EvaluationRunInferenceConfigDict(TypedDict, total=False):
2673+
"""This field is experimental and may change in future versions.
2674+
2675+
Configuration that describes an agent.
2676+
"""
2677+
2678+
agent_config: Optional[EvaluationRunAgentConfigDict]
2679+
"""The agent config."""
2680+
2681+
model: Optional[str]
2682+
"""The fully qualified name of the publisher model or endpoint to use for inference."""
2683+
2684+
prompt_template: Optional[EvaluationRunPromptTemplateDict]
2685+
"""The prompt template used for inference."""
2686+
2687+
agent_run_config: Optional[AgentRunConfigDict]
2688+
"""Configuration for Agent Run in evaluation management service."""
2689+
2690+
agent_configs: Optional[dict[str, evals_types.AgentConfig]]
2691+
"""A map of agent IDs to their respective agent config."""
2692+
2693+
2694+
EvaluationRunInferenceConfigOrDict = Union[
2695+
EvaluationRunInferenceConfig, EvaluationRunInferenceConfigDict
2696+
]
2697+
2698+
25792699
class CreateEvaluationRunConfig(_common.BaseModel):
25802700
"""Config to create an evaluation run."""
25812701

@@ -2608,7 +2728,7 @@ class _CreateEvaluationRunParameters(_common.BaseModel):
26082728
default=None, description=""""""
26092729
)
26102730
labels: Optional[dict[str, str]] = Field(default=None, description="""""")
2611-
inference_configs: Optional[dict[str, "EvaluationRunInferenceConfig"]] = Field(
2731+
inference_configs: Optional[dict[str, EvaluationRunInferenceConfig]] = Field(
26122732
default=None, description=""""""
26132733
)
26142734
config: Optional[CreateEvaluationRunConfig] = Field(
@@ -2634,7 +2754,7 @@ class _CreateEvaluationRunParametersDict(TypedDict, total=False):
26342754
labels: Optional[dict[str, str]]
26352755
""""""
26362756

2637-
inference_configs: Optional[dict[str, "EvaluationRunInferenceConfigDict"]]
2757+
inference_configs: Optional[dict[str, EvaluationRunInferenceConfigDict]]
26382758
""""""
26392759

26402760
config: Optional[CreateEvaluationRunConfigDict]
@@ -3252,119 +3372,6 @@ class EvaluationResultDict(TypedDict, total=False):
32523372
EvaluationResultOrDict = Union[EvaluationResult, EvaluationResultDict]
32533373

32543374

3255-
class EvaluationRunAgentConfig(_common.BaseModel):
3256-
"""This field is experimental and may change in future versions.
3257-
3258-
Agent config for an evaluation run.
3259-
"""
3260-
3261-
developer_instruction: Optional[genai_types.Content] = Field(
3262-
default=None, description="""The developer instruction for the agent."""
3263-
)
3264-
tools: Optional[list[genai_types.Tool]] = Field(
3265-
default=None, description="""The tools available to the agent."""
3266-
)
3267-
3268-
3269-
class EvaluationRunAgentConfigDict(TypedDict, total=False):
3270-
"""This field is experimental and may change in future versions.
3271-
3272-
Agent config for an evaluation run.
3273-
"""
3274-
3275-
developer_instruction: Optional[genai_types.ContentDict]
3276-
"""The developer instruction for the agent."""
3277-
3278-
tools: Optional[list[genai_types.ToolDict]]
3279-
"""The tools available to the agent."""
3280-
3281-
3282-
EvaluationRunAgentConfigOrDict = Union[
3283-
EvaluationRunAgentConfig, EvaluationRunAgentConfigDict
3284-
]
3285-
3286-
3287-
class AgentRunConfig(_common.BaseModel):
3288-
"""Configuration for an Agent Run."""
3289-
3290-
session_input: Optional[evals_types.SessionInput] = Field(
3291-
default=None, description="""The session input to get agent running results."""
3292-
)
3293-
agent_engine: Optional[str] = Field(
3294-
default=None, description="""The resource name of the Agent Engine."""
3295-
)
3296-
user_simulator_config: Optional[evals_types.UserSimulatorConfig] = Field(
3297-
default=None,
3298-
description="""Used for multi-turn agent run.
3299-
Contains configuration for a user simulator that
3300-
uses an LLM to generate messages on behalf of the user.""",
3301-
)
3302-
3303-
3304-
class AgentRunConfigDict(TypedDict, total=False):
3305-
"""Configuration for an Agent Run."""
3306-
3307-
session_input: Optional[evals_types.SessionInput]
3308-
"""The session input to get agent running results."""
3309-
3310-
agent_engine: Optional[str]
3311-
"""The resource name of the Agent Engine."""
3312-
3313-
user_simulator_config: Optional[evals_types.UserSimulatorConfig]
3314-
"""Used for multi-turn agent run.
3315-
Contains configuration for a user simulator that
3316-
uses an LLM to generate messages on behalf of the user."""
3317-
3318-
3319-
AgentRunConfigOrDict = Union[AgentRunConfig, AgentRunConfigDict]
3320-
3321-
3322-
class EvaluationRunInferenceConfig(_common.BaseModel):
3323-
"""This field is experimental and may change in future versions.
3324-
3325-
Configuration that describes an agent.
3326-
"""
3327-
3328-
agent_config: Optional[EvaluationRunAgentConfig] = Field(
3329-
default=None, description="""The agent config."""
3330-
)
3331-
model: Optional[str] = Field(
3332-
default=None,
3333-
description="""The fully qualified name of the publisher model or endpoint to use for inference.""",
3334-
)
3335-
prompt_template: Optional[EvaluationRunPromptTemplate] = Field(
3336-
default=None, description="""The prompt template used for inference."""
3337-
)
3338-
agent_run_config: Optional[AgentRunConfig] = Field(
3339-
default=None,
3340-
description="""Configuration for Agent Run in evaluation management service.""",
3341-
)
3342-
3343-
3344-
class EvaluationRunInferenceConfigDict(TypedDict, total=False):
3345-
"""This field is experimental and may change in future versions.
3346-
3347-
Configuration that describes an agent.
3348-
"""
3349-
3350-
agent_config: Optional[EvaluationRunAgentConfigDict]
3351-
"""The agent config."""
3352-
3353-
model: Optional[str]
3354-
"""The fully qualified name of the publisher model or endpoint to use for inference."""
3355-
3356-
prompt_template: Optional[EvaluationRunPromptTemplateDict]
3357-
"""The prompt template used for inference."""
3358-
3359-
agent_run_config: Optional[AgentRunConfigDict]
3360-
"""Configuration for Agent Run in evaluation management service."""
3361-
3362-
3363-
EvaluationRunInferenceConfigOrDict = Union[
3364-
EvaluationRunInferenceConfig, EvaluationRunInferenceConfigDict
3365-
]
3366-
3367-
33683375
class EvaluationRun(_common.BaseModel):
33693376
"""Represents an evaluation run."""
33703377

0 commit comments

Comments
 (0)