2024/10/11 Pydantic BaseModel を def や ref をほぐしつつ Gemini の受け入れる JSON にしたい
なんとかしてくれ
Pydantic の model_json_schema() は ref が入る
ネストした構造だと def も入る
jsonref.replace_refs(SomeModel.model_json_schema())
def はそのまま
OpenAI には to_strict_json_schema がある
まあこれそのまま使えるのでは
additionalProperties ダメ
実際どうなっているか
gRPC のスキーマにある?
FunctionDeclaration 流用して作ってる?
gapic_tool_types.FunctionDeclaration
これだけど、subset だから使えるとは限らんのだよな...
経験上、title, minLength, maxLength, minimum, maximum は使えてない
anyOf、Pydantic で str | None は anyOf に展開されてしまう
とはいえここにも Schema is used to define the format of input/output data. って書いてるからいけるのか?
2つの問題がある
ref や def をほぐす
VertexAI に実際リクエストして使えるキーワードの範囲を特定する
テストケース書く & 実際にリクエストして確かめる?