-
Notifications
You must be signed in to change notification settings - Fork 464
Open
Labels
component:python sdkIssue/PR related to Python SDKIssue/PR related to Python SDKstatus:triagedIssue/PR triaged to the corresponding sub-teamIssue/PR triaged to the corresponding sub-teamtype:bugSomething isn't workingSomething isn't working
Description
Description of the bug:
When using response_schema in generate_content the response schema is not respected if the response_schema is set using a <class 'typing_extensions._TypedDictMeta'> object
Actual vs expected behavior:
I expect the response schema to be respected, since according to the documentation it should:
https://ai.google.dev/gemini-api/docs/structured-output?lang=python#generate-json
The issue is probably that the fields are not set as "required".
Can that be done somehow?
Any other information you'd like to share?
Code where I explicit set the schema but also explicit asks it to not respect the schema (but it still should, according to documentation):
import typing_extensions as typing
import google.generativeai as genai
import os
class Recipe(typing.TypedDict):
recipe_name: str
ingredients: list[str]
genai.configure(api_key=os.environ["API_KEY"])
model = genai.GenerativeModel("gemini-1.5-pro-latest")
result = model.generate_content(
"List one popular cookie recipe. Response should be a JSON string on format {receipt_name: str}. There should only be one key in the response.",
generation_config=genai.GenerationConfig(
response_mime_type="application/json", response_schema=Recipe
),
)
print(result.text)
kinto-b, peterroelants and bakeryproducts
Metadata
Metadata
Assignees
Labels
component:python sdkIssue/PR related to Python SDKIssue/PR related to Python SDKstatus:triagedIssue/PR triaged to the corresponding sub-teamIssue/PR triaged to the corresponding sub-teamtype:bugSomething isn't workingSomething isn't working