@@ -12583,6 +12583,92 @@ class GeminiRequestReadConfig(_common.BaseModel):
1258312583 description="""Column name in the underlying BigQuery table that contains already fully assembled Gemini requests.""",
1258412584 )
1258512585
12586+ @classmethod
12587+ def single_turn_template(
12588+ cls,
12589+ *,
12590+ prompt: str,
12591+ response: Optional[str] = None,
12592+ system_instruction: Optional[str] = None,
12593+ model: Optional[str] = None,
12594+ cached_content: Optional[str] = None,
12595+ tools: Optional[list[Union[genai_types.Tool, dict[str, Any]]]] = None,
12596+ tool_config: Optional[Union[genai_types.ToolConfig, dict[str, Any]]] = None,
12597+ safety_settings: Optional[
12598+ list[Union[genai_types.SafetySetting, dict[str, Any]]]
12599+ ] = None,
12600+ generation_config: Optional[
12601+ Union[genai_types.GenerationConfig, dict[str, Any]]
12602+ ] = None,
12603+ field_mapping: Optional[dict[str, str]] = None,
12604+ ) -> "GeminiRequestReadConfig":
12605+ """Constructs a GeminiRequestReadConfig object for single-turn cases.
12606+
12607+ Example:
12608+ read_config = GeminiRequestReadConfig.single_turn_template(
12609+ prompt="Which flower is this {flower_image}?",
12610+ response="This is a {label}.",
12611+ system_instruction="You are a botanical classifier."
12612+ )
12613+
12614+ Args:
12615+ prompt: Required. User input.
12616+ response: Optional. Model response to user input.
12617+ system_instruction: Optional. System instructions for the model.
12618+ model: Optional. The model to use for the GeminiExample.
12619+ cached_content: Optional. The cached content to use for the GeminiExample.
12620+ tools: Optional. The tools to use for the GeminiExample.
12621+ tool_config: Optional. The tool config to use for the GeminiExample.
12622+ safety_settings: Optional. The safety settings to use for the GeminiExample.
12623+ generation_config: Optional. The generation config to use for the GeminiExample.
12624+ field_mapping: Optional. Mapping of placeholders to dataset columns.
12625+
12626+ Returns:
12627+ A GeminiRequestReadConfig object.
12628+ """
12629+ contents = []
12630+ contents.append(
12631+ genai_types.Content(
12632+ role="user",
12633+ parts=[
12634+ genai_types.Part.from_text(text=prompt),
12635+ ],
12636+ )
12637+ )
12638+ if response:
12639+ contents.append(
12640+ genai_types.Content(
12641+ role="model",
12642+ parts=[
12643+ genai_types.Part.from_text(text=response),
12644+ ],
12645+ )
12646+ )
12647+
12648+ system_instruction_content = None
12649+ if system_instruction:
12650+ system_instruction_content = genai_types.Content(
12651+ parts=[
12652+ genai_types.Part.from_text(text=system_instruction),
12653+ ],
12654+ )
12655+
12656+ return cls(
12657+ template_config=GeminiTemplateConfig(
12658+ gemini_example=GeminiExample(
12659+ model=model,
12660+ contents=contents,
12661+ system_instruction=system_instruction_content,
12662+ cached_content=cached_content,
12663+ tools=tools,
12664+ tool_config=tool_config,
12665+ safety_settings=safety_settings,
12666+ generation_config=generation_config,
12667+ ),
12668+ field_mapping=field_mapping,
12669+ ),
12670+ )
12671+
1258612672
1258712673class GeminiRequestReadConfigDict(TypedDict, total=False):
1258812674 """Represents the config for reading Gemini requests."""
0 commit comments