@@ -12279,6 +12279,92 @@ class GeminiRequestReadConfig(_common.BaseModel):
1227912279 description="""Column name in the underlying BigQuery table that contains already fully assembled Gemini requests.""",
1228012280 )
1228112281
12282+ @classmethod
12283+ def single_turn_template(
12284+ cls,
12285+ *,
12286+ prompt: str,
12287+ response: Optional[str] = None,
12288+ system_instruction: Optional[str] = None,
12289+ model: Optional[str] = None,
12290+ cached_content: Optional[str] = None,
12291+ tools: Optional[list[Union[genai_types.Tool, dict[str, Any]]]] = None,
12292+ tool_config: Optional[Union[genai_types.ToolConfig, dict[str, Any]]] = None,
12293+ safety_settings: Optional[
12294+ list[Union[genai_types.SafetySetting, dict[str, Any]]]
12295+ ] = None,
12296+ generation_config: Optional[
12297+ Union[genai_types.GenerationConfig, dict[str, Any]]
12298+ ] = None,
12299+ field_mapping: Optional[dict[str, str]] = None,
12300+ ) -> "GeminiRequestReadConfig":
12301+ """Constructs a GeminiRequestReadConfig object for single-turn cases.
12302+
12303+ Example:
12304+ read_config = GeminiRequestReadConfig.single_turn_template(
12305+ prompt="Which flower is this {flower_image}?",
12306+ response="This is a {label}.",
12307+ system_instruction="You are a botanical classifier."
12308+ )
12309+
12310+ Args:
12311+ prompt: Required. User input.
12312+ response: Optional. Model response to user input.
12313+ system_instruction: Optional. System instructions for the model.
12314+ model: Optional. The model to use for the GeminiExample.
12315+ cached_content: Optional. The cached content to use for the GeminiExample.
12316+ tools: Optional. The tools to use for the GeminiExample.
12317+ tool_config: Optional. The tool config to use for the GeminiExample.
12318+ safety_settings: Optional. The safety settings to use for the GeminiExample.
12319+ generation_config: Optional. The generation config to use for the GeminiExample.
12320+ field_mapping: Optional. Mapping of placeholders to dataset columns.
12321+
12322+ Returns:
12323+ A GeminiRequestReadConfig object.
12324+ """
12325+ contents = []
12326+ contents.append(
12327+ genai_types.Content(
12328+ role="user",
12329+ parts=[
12330+ genai_types.Part.from_text(text=prompt),
12331+ ],
12332+ )
12333+ )
12334+ if response:
12335+ contents.append(
12336+ genai_types.Content(
12337+ role="model",
12338+ parts=[
12339+ genai_types.Part.from_text(text=response),
12340+ ],
12341+ )
12342+ )
12343+
12344+ system_instruction_content = None
12345+ if system_instruction:
12346+ system_instruction_content = genai_types.Content(
12347+ parts=[
12348+ genai_types.Part.from_text(text=system_instruction),
12349+ ],
12350+ )
12351+
12352+ return cls(
12353+ template_config=GeminiTemplateConfig(
12354+ gemini_example=GeminiExample(
12355+ model=model,
12356+ contents=contents,
12357+ system_instruction=system_instruction_content,
12358+ cached_content=cached_content,
12359+ tools=tools,
12360+ tool_config=tool_config,
12361+ safety_settings=safety_settings,
12362+ generation_config=generation_config,
12363+ ),
12364+ field_mapping=field_mapping,
12365+ ),
12366+ )
12367+
1228212368
1228312369class GeminiRequestReadConfigDict(TypedDict, total=False):
1228412370 """Represents the config for reading Gemini requests."""
0 commit comments