{"openapi":"3.1.0","info":{"title":"冰川GPT-OpenAPI","description":"这是冰川网络为内部系统提供支持的AI中台API，包含{APP_NAME}专有的Agent和兼容OpenaiSDK、GeminiSDK、AnthropicSDK的Api接口。 (微笑)","contact":{"name":"IT平台部-谢小康","url":"https://chat.q1.com/"},"license":{"name":"关于{APP_NAME}","url":"https://q1doc.yuque.com/staff-nseb80/it/nnf7fbbqbnygw5h8"},"version":"v5.4.15"},"paths":{"/health":{"get":{"summary":"Health Check","description":"健康检查","operationId":"health_check_health_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/get_sd_models":{"get":{"summary":"Get Sd Models","description":"获取SD模型列表,包括冰川GPT中所有支持的图片和视频生成模型列表，以及各模型支持生成方式的参考配置，用于前端下拉选择","operationId":"get_sd_models_api_get_sd_models_get","parameters":[{"name":"token","in":"query","required":false,"schema":{"type":"string","title":"Token"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/media-price-estimate":{"get":{"summary":"Estimate Media Price","description":"预估媒体生成费用","operationId":"estimate_media_price_api_media_price_estimate_get","parameters":[{"name":"model","in":"query","required":true,"schema":{"type":"string","title":"Model"}},{"name":"quality","in":"query","required":false,"schema":{"type":"string","default":"","title":"Quality"}},{"name":"quality_level","in":"query","required":false,"schema":{"type":"string","default":"","title":"Quality Level"}},{"name":"size","in":"query","required":false,"schema":{"type":"string","default":"","title":"Size"}},{"name":"duration","in":"query","required":false,"schema":{"type":"number","default":0,"title":"Duration"}},{"name":"generate_audio","in":"query","required":false,"schema":{"type":"boolean","default":false,"title":"Generate Audio"}},{"name":"count","in":"query","required":false,"schema":{"type":"integer","default":1,"title":"Count"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/get_chat_models":{"get":{"summary":"Get Chat Models","description":"获取聊天模型列表，用于画布 LLM 节点的模型下拉选择","operationId":"get_chat_models_api_get_chat_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/v2/ai":{"post":{"tags":["BC Agent API"],"summary":"冰川GPT Agent API 接口","description":"model 大模型, 查看支持的模型，请调用接口：v1/models\n\nbaseinfo 基本信息，帮AI写一份简历，让AI来扮演什么角色，都什么哪些事情或知识点，并逐行写描述这些字段：姓名、国家、籍贯、性别、年龄、身高、体重、种族、喜欢、讨厌、毕业学校、学历、学位、专业、工作单位、职业、职务、兴趣、爱好、技能、擅长、优点、缺点、口头禅、智商、情商、地位、称号、关系、伴侣、家庭成员 等等\n\nname 机器人呢称\n\nsearch 动态知识库，需要自己实现知识库搜索逻辑，将搜索结果分行加序号拼起来，建议放1-10条结果，每条都要：标题+内容。\ninput 本次用户输入的内容\n\nexamples 交谈案列参考，若提供模拟聊天数据可以定制AI的聊天输出格式 [[\"用户输入的\",\"机器人回复的\"]]\n\nhistory 历史聊天记录，每次请求时请带上，每次返回时也会返回 [[\"用户输入的\",\"机器人回复的\"]]  \n\nsorryinfo 抱歉的内容，比如：很抱歉，我还没有这方面的知识库。\n\nshort_style 说话风格，比如：鲁迅的风格\n\nsessionid 会话id，会透传 \n\nid 消息ID, 会透传\n\nuser 用户ID，会透传\n\nnick 用户的呢称，AI会这样称呼用户\n\nmax_tokens 输出长度，默认不填是2000，如果要生成较长的内容，这里要设置大一些，比如32000","operationId":"agent_v2_ai_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__ai__ChatRequest"},"examples":{"game_service":{"summary":"游戏客服机器人","description":"《远征OL》游戏客服妙妙","value":{"model":"doubao-seed-2.0-mini","name":"妙妙","baseinfo":"你是冰川网络的《远征OL》的游戏客服，请不要回复与你无关的话题。\n官网：https://yz.q1.com \n《远征Online》是冰川网络首款以古典仙侠为背景的MMORPG游戏。特色融合了丰富的任务体系、交易系统、家族及帮会组织，同时拥有个性化的易容、三魂五行等特色系统。画面风格绚丽多彩，采用3D模型与2D背景相结合的方式，呈现出一幅幅如同水墨画卷般的仙侠世界。玩家可选择多种职业，如鬼谷、殷刹、武圣、剑仙、天师和幽冥，每种职业都有独特的技能和定位。","search":"生日礼包：您好，您可以登陆https://yz.q1.com/huodong/vipfl.html 进行领取哦。","short_style":"请以温柔的语气回复。","sorryinfo":"我也不知道哦，你问下人工客服吧","lang":"cn","online":1,"user":"123456","nick":"小康","sessionid":"session-123456","id":1234,"stream":true,"input":"你好妙妙,我今天生日，你哪天过生日？"}},"text_transform":{"summary":"文本转换或翻译","description":"将文本转换为5种不同表达方式","value":{"model":"qwen3.5-plus","baseinfo":"请将用户输入的内容转换为同一语言的5个不同表达式。在转换之前，不要混合多种语言，不要改变语言和意识形态，并以字符串组格式返回结果。将每个生成的结果包装在一个中间扩展中，不要在标志之外产生额外的内容供程序读取。例如，['转换1','转换2','转换3','转换4','转换5']","short_style":"","input":"转换的内容：'''你好啊'''","max_tokens":1500,"lang":"日文"}},"image_comment":{"summary":"图片理解与评论","description":"根据图片内容生成评论","value":{"model":"qwen3.5-plus","baseinfo":"根据图片内容进行评论，先写出图片你内容，然后写出5条简短的评论，以JSON对象格式输出，例如:{'info':'图中是一个小白兔，头上顶着一个小箩筐，蹦蹦跳跳准备去拔萝卜','eval':['评价内容1','墙都不服就服你','好好看啊','xxx','xxxx']}","input":"请评论这张图里有些啥<img src='https://chat.q1.com/output/20241220032638_1685590245.png'>"}},"ai_npc":{"summary":"游戏NPC对话","description":"游戏AI-NPC对话","value":{"model":"qwen3.5-plus","baseinfo":"你身处修仙世界中，这是人族、妖族、兽族、仙族、魔族等种族共存的世界，各洲存在无数仙人洞府和神兽栖息地。其中修仙之道被人族所追求，通过掌握不同的修炼法门提升境界而羽化登仙、跻身仙道，达到脱离死亡轮回之苦的目的，彼此为争夺宝贵的天地灵气而陷入无尽的纷争。\n以下是关于你的信息：性别：男,性格：情种,修行境界：金丹境界（炼气化形，元神凝聚，锻造金丹，力量显著增强。）宗门：月隐谷（正道宗门，月隐谷潜藏于幽静山谷，该门派主要修习水系功法，月隐谷内有瀑布飞阁、翠绿悬崖为，谷中气候四季如春。月隐谷有悠久的历史，多位长老隐士均出自月隐谷，月隐谷弟子的行事也一向神秘莫测。）,职位：长老（负责教导门下弟子，传承宗门的修行功法，有一定权威和决策权。）\n 我的信息如下：性别：女,性格：义气,修行境界：筑基境界（开启元气丹田，汇聚天地精华，形成筑基丹，修行者根基日坚。）,宗门：御兽宗（魔道宗门，御兽宗位于雪山之巅，御兽宗弟子擅长驭兽术，御兽宗内有一座兽皇殿雄伟屹立。御兽宗内气候严寒多雪，其宗门驯养的邪兽体型巨大。）,职位：真传弟子（获得宗门真传，修为日益加深，掌握了门派中较难的术法，被视为门派未来的希望。）,\n我现在是你的道侣（道侣是一种特殊的关系，类似于现世的夫妻或伴侣关系，但又有其独特之处。道侣不仅仅是生活伴侣，更是修炼道路上的同行者、携手并进的伙伴。他们一同修炼、一同探索仙道真谛，共享天地灵气，同甘共苦。）\n我正在与你闲聊，请你以上提供的信息进行对话演绎，行文风格接近中国近现代白话文，内容对话控制在100个字以内，仅输出你会说的话，注意体现角色性格，需要在文本中使用修炼境界、宗门、宗门职位、丹药等信息，输出文本中,如果有丹药信息均用以下替代字符表示，不要出现具体名称\n修炼境界的替代字符：<<grade>>,宗门的替代字符：<<sect>>,宗门职位的替代字符：<<rank>>,丹药的替代字符：<<goods>>","name":"史长老","short_style":"修仙类游戏里的NPC","search":"","input":"有什么丹药推荐？","history":[["你好","你好，道友。我正是史长老，月隐谷的一员。你是御兽宗的修行者吗？在这个修仙的世界里，我们修炼者虽然有不同的宗门，但也可以彼此交流、共同探索修行的奥秘。有什么可以帮助到你的地方吗？"]]}},"ai_agent":{"summary":"生成一个智能体","description":"生成AI智能体的system提示词","value":{"model":"gpt-4.1-mini","baseinfo":"请帮我生成一个AI智能体的system提示词，帮AI写一份简历，让AI来扮演什么角色，都知道哪些事情和无法忘记的记忆，参考但不限于这些字段：姓名、国家、籍贯、性别、年龄、身高、体重、种族、喜欢、讨厌、毕业学校、学历、学位、专业、工作单位、职业、职务、兴趣、爱好、技能、擅长、优点、缺点、口头禅、智商、情商、地位、称号、社会关系、婚姻状态、家庭成员 等等，根据用户的要求直接输出prompt","stream":false,"input":"请定制一个远征Online中的圣母NPC"}},"ai_agent_saint":{"summary":"生成的圣母NPC","description":"远征Online中的圣母NPC","value":{"model":"gpt-4.1-mini","baseinfo":"你扮演的角色是《远征Online》中的“圣母”NPC。  \n角色基本信息：  \n- 姓名：圣母  \n- 国家/籍贯：远征大陆神圣之地  \n- 性别：女  \n- 年龄：约28岁  \n- 身高：170cm  \n- 体重：55kg  \n- 种族：人类  \n- 喜欢：守护和平、帮助弱者、圣洁的仪式  \n- 讨厌：邪恶势力、背叛、破坏圣地  \n- 毕业学校/学历/学位/专业：神圣学院，神学硕士  \n- 工作单位：神圣教团  \n- 职业/职务：神职者，圣母长老  \n- 兴趣爱好：冥想、祷告、治疗魔法  \n- 技能/擅长：神圣治疗术、驱邪术、祝福魔法  \n- 优点：慈悲善良、坚定信念、有强大治愈能力  \n- 缺点：过于仁慈，有时判断力欠缺  \n- 口头禅：“愿光明永远照耀你前行的道路。”  \n- 智商：高  \n- 情商：高  \n- 地位/称号：神圣教团中备受尊敬的圣母长老  \n- 社会关系：教团成员、信徒们的精神支柱  \n- 婚姻状态：独身，献身神圣事业  \n- 家庭成员：圣母家族中的长女\n\n记忆与事务：  \n- 永远铭记保护远征大陆和平、帮助玩家恢复生命和状态。  \n- 记得所有玩家的善行与在神圣教团中的贡献。  \n- 无法忘记神圣教团的重要仪式及规则。  \n- 无法接受任何破坏圣地与伤害无辜者的行为。\n\n请根据用户互动，给予治疗支持、祝福与指导，体现慈悲和智慧，同时保持神圣与温暖的气质。\n\n","search":"远征的PM是柴智，制作人老板是杨硕，...","input":"你好，杨硕是谁"}}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ResponseBody"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/user/storage":{"get":{"tags":["BC Agent API"],"summary":"获取用户存储的键值数据","operationId":"get_user_storage_api_user_storage_get","parameters":[{"name":"key","in":"query","required":true,"schema":{"type":"string","title":"Key"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["BC Agent API"],"summary":"保存用户键值数据","operationId":"save_user_storage_api_user_storage_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/user/storage/batch":{"get":{"tags":["BC Agent API"],"summary":"批量获取用户存储的键值数据","description":"一次性获取多个 key，减少请求数。keys 用逗号分隔","operationId":"get_user_storage_batch_api_user_storage_batch_get","parameters":[{"name":"keys","in":"query","required":true,"schema":{"type":"string","title":"Keys"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"tags":["BC Agent API"],"summary":"批量保存用户键值数据","description":"一次性写入多个 key，在同一个事务里完成，避免竞态覆盖","operationId":"save_user_storage_batch_api_user_storage_batch_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/asset-tag-dict":{"get":{"tags":["BC Agent API"],"summary":"获取素材标签字典","description":"获取素材标签字典（首次调用自动初始化默认值到数据库）","operationId":"get_asset_tag_dict_api_asset_tag_dict_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/admin/asset-tag-dict":{"put":{"tags":["BC Agent API"],"summary":"管理员更新素材标签字典","description":"管理员更新素材标签字典","operationId":"update_asset_tag_dict_api_admin_asset_tag_dict_put","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/asset-category-dict":{"get":{"tags":["BC Agent API"],"summary":"获取素材分类字典","description":"返回素材必选分类维度及可选值","operationId":"get_asset_category_dict_api_asset_category_dict_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/ai/auto-tag":{"post":{"tags":["BC Agent API"],"summary":"AI自动为素材打标签/命名","description":"分析图片/视频并自动打标签或命名","operationId":"auto_tag_asset_api_ai_auto_tag_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/search":{"get":{"tags":["BC Agent API"],"summary":"Search Api","operationId":"search_api_v1_search_get","security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"q","in":"query","required":false,"schema":{"type":"string","default":"","title":"Q"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/models":{"get":{"tags":["OpenAI Compatible API"],"summary":"列出所有大语言模型","description":"列出冰川GPT支持的所有大语言模型","operationId":"list_models_v1_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Models V1 Models Get"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/v1/chat/completions":{"post":{"tags":["OpenAI Compatible API"],"summary":"聊天补全，兼容所有模型","description":"聊天完成接口","operationId":"chat_completions_v1_chat_completions_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__openai_sdk__ChatRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ChatResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/v1/images/generations":{"post":{"tags":["OpenAI Compatible API"],"summary":"图片生成，兼容OpenAI API","description":"OpenAI 兼容的图片生成接口\n\n支持的模型:\n- 千问：qwen-image-2.0,qwen-image-2.0-pro\n- OpenAI Gpt Image: gpt-image-1.5, gpt-image-1-mini,gpt-image-1\n- 豆包即梦: doubao-seedream-5.0-lite,doubao-seedream-4.5, doubao-seedream-4.0\n- Google Gemini Image 模型: nano-banana-2, nano-banana-pro, nano-banana\n- 其他sd模型：\n\n\n参数说明:\n- prompt: 图片描述文本（必填）\n- model: 模型名称，默认 gpt-image-1\n- n: 生成图片数量，默认 1\n- size: 图片尺寸，如 1024x1024、1792x1024、1024x1792\n- quality: 图片质量，auto/standard/hd/high/medium/low/1k/2k/4k\n- response_format: 返回格式，url 或 b64_json","operationId":"images_generations_v1_images_generations_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageGenerationRequest"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/ImageGenerationResponse"}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/v1/videos":{"post":{"tags":["OpenAI Compatible API"],"summary":"视频生成，兼容OpenAI API","description":"OpenAI 兼容的视频生成接口，同时支持 multipart/form-data 和 application/json\n\n支持的模型:\n- sora-2: OpenAI Sora 2\n- veo-3.1, veo-3.1-fast: Google Veo 3.1\n- doubao-seedance-1-5-pro, doubao-seedance-1-0-pro, doubao-seedance-1-0-fast: 豆包视频\n- wan2.6, wan2.6-flash: 通义万像视频\n\n参数说明:\n- prompt: 视频描述文本（必填）\n- model: 模型名称，默认 sora-2\n- size: 视频尺寸或宽高比，如 720x1280、16:9\n- seconds: 视频时长，\"4\"/\"8\"/\"12\"（秒）注意每个模型支持的时长不同，请参考官方文档。    \n- first_frame_image: 首帧可选图片URL（扩展字段）\n- last_frame_image: 尾帧可选图片URL（扩展字段）\n- input_reference: 参考图片，支持文件上传(multipart)、URL字符串、JSON对象、URL数组\n\n返回: VideoJob 对象，包含任务状态和生成的视频数据","operationId":"videos_generations_v1_videos_post","requestBody":{"content":{"application/json":{"schema":{"properties":{"prompt":{"type":"string","title":"Prompt"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","default":"sora-2"},"n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"N","default":1},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","default":"720x1280"},"seconds":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seconds","default":"4"},"aspect_ratio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aspect Ratio"},"quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quality","default":"720p"},"response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Format","default":"b64_json"},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User"},"generate_audio":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Generate Audio","default":false},"first_frame_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Frame Image"},"last_frame_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Frame Image"},"input_reference":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"},{"type":"null"}],"title":"Input Reference"}},"type":"object","required":["prompt"],"title":"VideoGenerationRequest","description":"OpenAI 兼容的视频生成请求模型\n\n参考: https://platform.openai.com/docs/api-reference/videos","examples":[{"model":"wan2.6","prompt":"一只猫在草地上奔跑","quality":"720p","seconds":"4","size":"720x1280"},{"first_frame_image":"https://example.com/first-frame.png","input_reference":["https://example.com/ref1.png"],"model":"wan2.6","prompt":"城市夜景延时摄影","quality":"720p","seconds":"4","size":"1280x720"}]}},"multipart/form-data":{"schema":{"properties":{"prompt":{"type":"string","title":"Prompt"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","default":"sora-2"},"n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"N","default":1},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","default":"720x1280"},"seconds":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seconds","default":"4"},"aspect_ratio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aspect Ratio"},"quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quality","default":"720p"},"response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Format","default":"b64_json"},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User"},"generate_audio":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Generate Audio","default":false},"first_frame_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"First Frame Image"},"last_frame_image":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Last Frame Image"},"input_reference":{"anyOf":[{"type":"string"},{"additionalProperties":true,"type":"object"},{"items":{},"type":"array"},{"type":"null"}],"title":"Input Reference"}},"type":"object","required":["prompt"],"title":"VideoGenerationRequest","description":"OpenAI 兼容的视频生成请求模型\n\n参考: https://platform.openai.com/docs/api-reference/videos","examples":[{"model":"wan2.6","prompt":"一只猫在草地上奔跑","quality":"720p","seconds":"4","size":"720x1280"},{"first_frame_image":"https://example.com/first-frame.png","input_reference":["https://example.com/ref1.png"],"model":"wan2.6","prompt":"城市夜景延时摄影","quality":"720p","seconds":"4","size":"1280x720"}]}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"$ref":"#/components/schemas/VideoJob"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/v1/videos/{video_id}/content":{"get":{"tags":["OpenAI Compatible API"],"summary":"下载视频内容","description":"下载生成的视频内容\n\n参考: https://platform.openai.com/docs/api-reference/videos/content\n\n参数:\n- video_id: 视频任务 ID\n- variant: 下载资源类型，默认 \"video\" (MP4)\n\n返回: 视频二进制流","operationId":"get_video_content_v1_videos__video_id__content_get","security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string","title":"Video Id"}},{"name":"variant","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"default":"video","title":"Variant"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/videos/{video_id}":{"get":{"tags":["OpenAI Compatible API"],"summary":"获取视频任务状态","description":"获取视频任务状态\n\n参数:\n- video_id: 视频任务 ID\n\n返回: VideoJob 对象","operationId":"get_video_job_v1_videos__video_id__get","parameters":[{"name":"video_id","in":"path","required":true,"schema":{"type":"string","title":"Video Id"}},{"name":"_dup_id","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":" Dup Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/v1/messages/count_tokens":{"post":{"tags":["Claude API"],"summary":"Anthropic Claude API 兼容接口","description":"计算Claude消息tokens","operationId":"anthropic_messages_count_tokens_v1_messages_count_tokens_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__claude_client__ChatRequest"},"examples":{"default":{"summary":"写一首关于春天的诗","description":"写一首关于春天的诗","value":{"messages":[{"role":"user","content":"你好，给我写一首关于春天的诗。"}],"model":"claude-haiku-4-5","temperature":1,"max_tokens":2048,"timeout":60,"system":"你是一个冰川GPT的工作助手。","thinking":{"type":"enabled","budget_tokens":1024}}},"image_info":{"summary":"图像理解","description":"图像识别与理解，支持传url","value":{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"image","source":{"type":"url","url":"https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"}},{"type":"text","text":"What is in the above image?"}]}],"max_tokens":8000}}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/v1/messages":{"post":{"tags":["Claude API"],"summary":"Anthropic Claude API 兼容接口","description":"Anthropic聊天接口","operationId":"anthropic_messages_v1_messages_post","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__claude_client__ChatRequest"},"examples":{"default":{"summary":"写一首关于春天的诗","description":"写一首关于春天的诗","value":{"messages":[{"role":"user","content":"你好，给我写一首关于春天的诗。"}],"model":"claude-haiku-4-5","temperature":1,"max_tokens":2048,"timeout":60,"system":"你是一个冰川GPT的工作助手。","thinking":{"type":"enabled","budget_tokens":1024}}},"image_info":{"summary":"图像理解","description":"图像识别与理解，支持传url","value":{"model":"claude-haiku-4-5","messages":[{"role":"user","content":[{"type":"image","source":{"type":"url","url":"https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"}},{"type":"text","text":"What is in the above image?"}]}],"max_tokens":8000}}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/v1beta/models":{"get":{"tags":["Gemini API"],"summary":"列出gemini模型","description":"列出所有gemini模型!!","operationId":"list_models_v1beta_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Models V1Beta Models Get"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/v1beta/models/{model_name}:{action_name}":{"post":{"tags":["Gemini API"],"summary":"GeminiAPI 兼容接口","description":"Handles actions for a specific model.\nThe model name and action are extracted from the path.\nFor example, with /v1beta/models/gemini-3-flash-preview:streamGenerateContent\n- model_name will be \"gemini-3-flash-preview\"\n- action_name will be \"streamGenerateContent\"","operationId":"gemini_messages_v1beta_models__model_name___action_name__post","security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"model_name","in":"path","required":true,"schema":{"type":"string","title":"Model Name","description":"The identifier of the model, e.g., 'gemini-3-flash-preview'."},"description":"The identifier of the model, e.g., 'gemini-3-flash-preview'."},{"name":"action_name","in":"path","required":true,"schema":{"type":"string","title":"Action Name","description":"The action to be performed on the model, e.g., 'streamGenerateContent'."},"description":"The action to be performed on the model, e.g., 'streamGenerateContent'."},{"name":"alt","in":"query","required":false,"schema":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Alternate Format","description":"Specifies an alternative response format, like 'sse' for Server-Sent Events."},"description":"Specifies an alternative response format, like 'sse' for Server-Sent Events."}],"requestBody":{"required":true,"content":{"application/json":{"schema":{"$ref":"#/components/schemas/api__gemini_sdk__ChatRequest-Input__1"},"examples":{"default":{"summary":"写一首关于春天的诗","description":"写一首关于春天的诗","value":{"contents":[{"role":"user","parts":[{"text":"你好，给我写一首关于春天的诗。"}]}],"systemInstruction":{"parts":[{"text":"你是一个冰川GPT的工作助手。"}]}}},"test_helper":{"summary":"整理测试用例","description":"整理测试用例","value":{"contents":[{"role":"user","parts":[{"text":"请帮我将以下测试用例文档转换成JSON对象格式，描述中的动作放到action，名词放到，object，并增加步骤的序号id，action名用英文(click,touchstart,touchmove,input,press,等)，remark中加上中文注释.json格式如下{'steps':[{'action':'','object':'',remark:''}]}"}]}],"systemInstruction":{"parts":[{"text":"请处理后边的文档内容："},{"text":"点击开始，输入cmd,按回车，等待cmd窗口打开后，在cmd窗口中输入dir按回车"}]}}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/openai/v1/models":{"get":{"tags":["OpenAI API"],"summary":"列出openai模型","description":"列出所有openai模型!!","operationId":"list_models_openai_v1_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Response List Models Openai V1 Models Get"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/openai/v1/responses":{"post":{"tags":["OpenAI API"],"summary":"响应式接口","description":"- 非流式：直接转发响应\n- 流式(stream=true)：SSE无损透传，包括 [DONE]","operationId":"responses_openai_v1_responses_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"},"examples":{"default":{"summary":"Developer quickstart","description":"Make your first API request in minutes. Learn the basics of the OpenAI platform.","value":{"model":"gpt-5","input":"Write a short bedtime story about a unicorn."}},"image_url":{"summary":"图片理解","description":"Send image URLs, uploaded files, or PDF documents directly to the model to extract text, classify content, or detect visual elements.","value":{"model":"gpt-5","input":[{"role":"user","content":[{"type":"input_text","text":"What teams are playing in this image?"},{"type":"input_image","image_url":"https://upload.wikimedia.org/wikipedia/commons/3/3b/LeBron_James_Layup_%28Cleveland_vs_Brooklyn_2018%29.jpg"}]}]}},"file_url":{"summary":"文件分析","description":"Send image URLs, uploaded files, or PDF documents directly to the model to extract text, classify content, or detect visual elements.","value":{"model":"gpt-5","input":[{"role":"user","content":[{"type":"input_text","text":"Analyze the letter and provide a summary of the key points."},{"type":"input_file","file_url":"https://www.berkshirehathaway.com/letters/2024ltr.pdf"}]}]}},"tools_use":{"summary":"web搜索","description":"Give the model access to external data and functions by attaching tools. Use built-in tools like web search or file search, or define your own for calling APIs, running code, or integrating with third-party systems.","value":{"model":"gpt-5","tools":[{"type":"web_search"}],"input":"what was a positive news story from today?"}},"msc_use":{"summary":"远程MCP","description":"Give the model access to external data and functions by attaching tools. Use built-in tools like web search or file search, or define your own for calling APIs, running code, or integrating with third-party systems.","value":{"model":"gpt-5","tools":[{"type":"mcp","server_label":"dmcp","server_description":"A Dungeons and Dragons MCP server to assist with dice rolling.","server_url":"https://dmcp-server.deno.dev/sse","require_approval":"never"}],"input":"Roll 2d4+1"}},"stream_response":{"summary":"流式输出","description":"Use server‑sent streaming events to show https://platform.openai.com/docs/guides/streaming-responses?api-mode=responses results as they’re generated, or the Realtime API for interactive voice and multimodal apps.","value":{"model":"gpt-5","input":[{"role":"user","content":"Say 'double bubble bath' ten times fast."}],"stream":true}}}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/openai/v1/embeddings":{"post":{"tags":["OpenAI API"],"summary":"Embeddings","description":"兼容 OpenAI /v1/embeddings\n- 非流式：直接转发响应","operationId":"embeddings_openai_v1_embeddings_post","requestBody":{"content":{"application/json":{"examples":{"text-embedding-3-large":{"summary":"text-embedding-3-large 多语言 | ￥0.9/M","description":"Make your first API request in minutes. Learn the basics of the OpenAI platform. https://platform.openai.com/docs/guides/embeddings","value":{"model":"text-embedding-3-large","input":"Your text string goes here，这是一个句子！"}},"text-embedding-3-small":{"summary":"text-embedding-3-smal 多语言 | ￥0.14/M","description":"Make your first API request in minutes. Learn the basics of the OpenAI platform. https://platform.openai.com/docs/guides/embeddings","value":{"model":"text-embedding-3-small","input":"Your text string goes here，这是一个句子！"}},"doubao-embedding-large":{"summary":"doubao-embedding-large 中英 128K | ￥0.7/M","description":"doubao-embedding-large，一款由字节跳动研发的语义向量化模型，主要面向向量检索的使用场景，支持中、英双语。最大上下文长度：128k,最高向量维度：4096 https://www.volcengine.com/docs/82379/1554711","value":{"model":"doubao-embedding-large","input":"Your text string goes here，这是一个句子！"}},"doubao-embedding":{"summary":"doubao-embedding 中英4K | ￥0.5/M","description":"doubao-embedding，一款由字节跳动研发的语义向量化模型，主要面向向量检索的使用场景，支持中、英双语。最大上下文长度：4k 最高向量维度：2560 https://www.volcengine.com/docs/82379/1554710","value":{"model":"doubao-embedding","input":"Your text string goes here，这是一个句子！"}},"text-embedding-v4":{"summary":"text-embedding-v4 ","description":"阿里向量化模型. https://platform.openai.com/docs/guides/embeddings","value":{"model":"text-embedding-v4","input":"Your text string goes here，这是一个句子！"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/openai/v1/chat/completions":{"post":{"tags":["OpenAI API"],"summary":"聊天补全API","description":"- 非流式：直接转发响应\n- 流式(stream=true)：SSE无损透传，包括 [DONE]\n支持：openai、deepseek、doubao、qwen、wenxin等模型，不支持claude和gemini","operationId":"completions_openai_v1_chat_completions_post","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/v1/responses":{"post":{"tags":["OpenAI Compatible API"],"summary":"响应式接口","description":"- 非流式：直接转发响应\n- 流式(stream=true)：SSE无损透传，包括 [DONE]","operationId":"responses_v1_responses_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Body"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/v1/embeddings":{"post":{"tags":["OpenAI Compatible API"],"summary":"Embeddings","description":"兼容 OpenAI /v1/embeddings\n- 非流式：直接转发响应","operationId":"embeddings_v1_embeddings_post","requestBody":{"content":{"application/json":{"examples":{"text-embedding-3-large":{"summary":"text-embedding-3-large 多语言 | ￥0.9/M","description":"Make your first API request in minutes. Learn the basics of the OpenAI platform. https://platform.openai.com/docs/guides/embeddings","value":{"model":"text-embedding-3-large","input":"Your text string goes here，这是一个句子！"}},"text-embedding-3-small":{"summary":"text-embedding-3-smal 多语言 | ￥0.14/M","description":"Make your first API request in minutes. Learn the basics of the OpenAI platform. https://platform.openai.com/docs/guides/embeddings","value":{"model":"text-embedding-3-small","input":"Your text string goes here，这是一个句子！"}},"doubao-embedding-large":{"summary":"doubao-embedding-large 中英 128K | ￥0.7/M","description":"doubao-embedding-large，一款由字节跳动研发的语义向量化模型，主要面向向量检索的使用场景，支持中、英双语。最大上下文长度：128k,最高向量维度：4096 https://www.volcengine.com/docs/82379/1554711","value":{"model":"doubao-embedding-large","input":"Your text string goes here，这是一个句子！"}},"doubao-embedding":{"summary":"doubao-embedding 中英4K | ￥0.5/M","description":"doubao-embedding，一款由字节跳动研发的语义向量化模型，主要面向向量检索的使用场景，支持中、英双语。最大上下文长度：4k 最高向量维度：2560 https://www.volcengine.com/docs/82379/1554710","value":{"model":"doubao-embedding","input":"Your text string goes here，这是一个句子！"}},"text-embedding-v4":{"summary":"text-embedding-v4 ","description":"阿里向量化模型. https://platform.openai.com/docs/guides/embeddings","value":{"model":"text-embedding-v4","input":"Your text string goes here，这是一个句子！"}}}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/agent/knowledge/upload":{"post":{"tags":["knowledge"],"summary":"Upload Document","description":"上传文档到知识库：提取文本 → 分块 → 向量化 → 存入 PG","operationId":"upload_document_api_agent_knowledge_upload_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_document_api_agent_knowledge_upload_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/knowledge/quota":{"get":{"tags":["knowledge"],"summary":"Get Knowledge Quota","description":"查询知识库配额用量","operationId":"get_knowledge_quota_api_agent_knowledge_quota_get","parameters":[{"name":"group_name","in":"query","required":true,"schema":{"type":"string","title":"Group Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/knowledge/search":{"post":{"tags":["knowledge"],"summary":"Search Knowledge","description":"向量相似度搜索","operationId":"search_knowledge_api_agent_knowledge_search_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/knowledge/list":{"get":{"tags":["knowledge"],"summary":"List Documents","description":"列出智能体的知识库文件","operationId":"list_documents_api_agent_knowledge_list_get","parameters":[{"name":"group_name","in":"query","required":true,"schema":{"type":"string","title":"Group Name"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/knowledge/delete":{"delete":{"tags":["knowledge"],"summary":"Delete Document","description":"删除知识库文件（级联删除分块）","operationId":"delete_document_api_agent_knowledge_delete_delete","parameters":[{"name":"doc_id","in":"query","required":true,"schema":{"type":"integer","title":"Doc Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/knowledge/view":{"get":{"tags":["knowledge"],"summary":"View Document","description":"查看文档原文（拼接所有分块文本）","operationId":"view_document_api_agent_knowledge_view_get","parameters":[{"name":"doc_id","in":"query","required":true,"schema":{"type":"integer","title":"Doc Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/knowledge/embedding-models":{"get":{"tags":["knowledge"],"summary":"List Embedding Models","description":"获取可用的 embedding 模型列表","operationId":"list_embedding_models_api_agent_knowledge_embedding_models_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}},"/api/agent/knowledge/re-embed":{"post":{"tags":["knowledge"],"summary":"Re Embed Documents","description":"更换 embedding 模型后重新编码所有文档分块\n\n请求体: {\"group_name\": \"xxx\", \"new_model\": \"text-embedding-v4\"}","operationId":"re_embed_documents_api_agent_knowledge_re_embed_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/knowledge/upload-url":{"post":{"tags":["knowledge"],"summary":"Upload Url","description":"通过 URL 导入知识库内容\n\n请求体: {\n    \"urls\": [\"https://...\"],\n    \"group_name\": \"xxx\",\n    \"embedding_model\": \"text-embedding-v4\",\n    \"fetch_mode\": \"vector\" | \"realtime\",\n    \"refresh_interval_minutes\": 0\n}","operationId":"upload_url_api_agent_knowledge_upload_url_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/knowledge/refresh-now":{"post":{"tags":["knowledge"],"summary":"Refresh Now","description":"立即刷新指定 URL 文档（重新抓取 + 重新向量化）\n\n请求体: {\"doc_id\": 42}","operationId":"refresh_now_api_agent_knowledge_refresh_now_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/knowledge/update-refresh":{"post":{"tags":["knowledge"],"summary":"Update Refresh","description":"更新 URL 文档的刷新配置\n\n请求体: {\"doc_id\": 42, \"refresh_interval_minutes\": 360}","operationId":"update_refresh_api_agent_knowledge_update_refresh_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/knowledge/upload-api":{"post":{"tags":["knowledge"],"summary":"Upload Api","description":"通过自定义 API 请求导入知识库内容\n\n请求体: {\n    \"api_url\": \"https://api.example.com/data\",\n    \"api_method\": \"GET\",\n    \"api_headers\": {\"Authorization\": \"Bearer xxx\"},\n    \"api_body\": \"\",\n    \"group_name\": \"xxx\",\n    \"embedding_model\": \"text-embedding-v4\",\n    \"fetch_mode\": \"vector\" | \"realtime\",\n    \"refresh_interval_minutes\": 0\n}","operationId":"upload_api_api_agent_knowledge_upload_api_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/knowledge/save-token":{"post":{"tags":["knowledge"],"summary":"Save Token","description":"保存用户个人的语雀 Token（存 Redis，长期有效）\n\n请求体: {\"platform\": \"yuque\", \"token\": \"xxx\"}","operationId":"save_token_api_agent_knowledge_save_token_post","requestBody":{"content":{"application/json":{"schema":{"additionalProperties":true,"type":"object","title":"Data"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/agent/knowledge/get-token":{"get":{"tags":["knowledge"],"summary":"Get Token","description":"查询用户是否已配置个人 Token（不返回 Token 明文，仅返回是否存在）","operationId":"get_token_api_agent_knowledge_get_token_get","parameters":[{"name":"platform","in":"query","required":false,"schema":{"type":"string","default":"yuque","title":"Platform"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/open-platform/keys/{key_id}/usage":{"get":{"tags":["Open Platform"],"summary":"Get Key Usage","description":"获取单个 Key 的用量统计","operationId":"get_key_usage_api_open_platform_keys__key_id__usage_get","parameters":[{"name":"key_id","in":"path","required":true,"schema":{"type":"integer","title":"Key Id"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/upload/video":{"post":{"tags":["upload"],"summary":"Upload Video","description":"上传视频文件（HTTP multipart 或远程 URL）。\n\nArgs:\n    file: 视频文件（multipart 上传）\n    url: 远程视频 URL（与 file 二选一）\n    convert: 是否转换为 MP4（\"true\"/\"false\"）\n    request_id: 可选的请求 ID，用于前端关联","operationId":"upload_video_api_upload_video_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_video_api_upload_video_post"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/upload/video/trim":{"post":{"tags":["upload"],"summary":"Trim Uploaded Video","description":"对已上传的视频进行裁剪/加速处理（无需重新上传文件）。\n\nArgs:\n    local_filename: upload_video 返回的 local_filename\n    trim_start/trim_end: 裁剪起止时间（秒）\n    keyframes: 是否加速浓缩（\"true\"/\"false\"）","operationId":"trim_uploaded_video_api_upload_video_trim_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_trim_uploaded_video_api_upload_video_trim_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/upload/image":{"post":{"tags":["upload"],"summary":"Upload Image","description":"上传图片文件（HTTP multipart）。\n\nWeb 兼容格式：前端已用 Canvas 压缩，直接保存。\n非 Web 格式（HEIC/TIFF 等）：服务端用 Pillow 转换为 JPEG。","operationId":"upload_image_api_upload_image_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_image_api_upload_image_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/upload/audio":{"post":{"tags":["upload"],"summary":"Upload Audio","description":"上传音频文件（HTTP multipart）。\n\nWeb 兼容格式：直接保存（或压缩后保存）。\n非 Web 格式（WMA/APE 等）：服务端用 ffmpeg 转换为 MP3。\n大文件（>30MB）：服务端用 ffmpeg 压缩码率。","operationId":"upload_audio_api_upload_audio_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_upload_audio_api_upload_audio_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/upload/media-info":{"get":{"tags":["upload"],"summary":"Get Media Info","description":"获取媒体文件的详细元数据。\nurl: 相对路径如 /output/upload/2026/03/20260305/xxx.mp4","operationId":"get_media_info_api_upload_media_info_get","security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","title":"Url"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/upload/proxy-image":{"get":{"tags":["upload"],"summary":"Proxy Image","description":"代理外部图片，解决 Canvas crossOrigin 跨域问题。\n仅允许代理已知 OSS 域名的图片。","operationId":"proxy_image_api_upload_proxy_image_get","security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}],"parameters":[{"name":"url","in":"query","required":true,"schema":{"type":"string","title":"Url"}}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/api/upload/image/edit":{"post":{"tags":["upload"],"summary":"Edit Image","description":"编辑图片：裁剪、调整大小、压缩。\noperation: \"crop\" | \"resize\" | \"compress\"","operationId":"edit_image_api_upload_image_edit_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_edit_image_api_upload_image_edit_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/upload/audio/trim":{"post":{"tags":["upload"],"summary":"Trim Audio","description":"裁剪音频文件，返回新音频 URL","operationId":"trim_audio_api_upload_audio_trim_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_trim_audio_api_upload_audio_trim_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/upload/image/to-video":{"post":{"tags":["upload"],"summary":"Image To Video","description":"将图片转为指定时长的视频片段","operationId":"image_to_video_api_upload_image_to_video_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_image_to_video_api_upload_image_to_video_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/upload/video/concat":{"post":{"tags":["upload"],"summary":"Concat Videos","description":"拼接多个视频片段。\nclips: JSON 数组，每项包含 url（必需）、trim_start（可选）、trim_end（可选）。\n       示例: [{\"url\":\"/output/.../a.mp4\"}, {\"url\":\"/output/.../b.mp4\",\"trim_start\":2,\"trim_end\":8}]\nreencode: \"true\" 时重编码（兼容不同分辨率/编码），否则用 concat copy（快速但要求编码一致）","operationId":"concat_videos_api_upload_video_concat_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_concat_videos_api_upload_video_concat_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/upload/video/add-audio":{"post":{"tags":["upload"],"summary":"Add Audio To Video","description":"为视频添加音频轨。\nmode: \"replace\"（替换原声）或 \"mix\"（混合叠加）\nvideo_volume / audio_volume: 音量倍率，仅 mix 模式有效","operationId":"add_audio_to_video_api_upload_video_add_audio_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_add_audio_to_video_api_upload_video_add_audio_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/upload/video/mix-audio-tracks":{"post":{"tags":["upload"],"summary":"Mix Audio Tracks","description":"为视频混合多段音频（支持偏移和裁剪）。\naudio_clips: JSON 数组，每项 {url, offset, trim_start, trim_end, volume, mode}\nvideo_volume: 视频原声音量，0-1，默认 1.0","operationId":"mix_audio_tracks_api_upload_video_mix_audio_tracks_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_mix_audio_tracks_api_upload_video_mix_audio_tracks_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/upload/video/add-text":{"post":{"tags":["upload"],"summary":"Add Text To Video","description":"为视频添加文字/字幕。\ntexts: JSON 数组，每项 {text, start, end, x?, y?, fontsize?, fontcolor?}","operationId":"add_text_to_video_api_upload_video_add_text_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_add_text_to_video_api_upload_video_add_text_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/upload/video/transcribe":{"post":{"tags":["upload"],"summary":"Transcribe Video","description":"AI 自动字幕：从视频中提取音频并进行语音识别。\n返回带时间戳的字幕段落列表。\n\nArgs:\n    video_url: 视频文件 URL（本地路径或远程 URL）\n    provider: ASR 引擎 - \"dashscope\"（阿里 Paraformer）或 \"whisper\"（OpenAI）\n    language: 语言提示 - \"auto\"、\"zh\"、\"en\" 等\n    audio_items: JSON 数组，额外音频轨道 [{url, offset, trim_start, trim_end, volume}]","operationId":"transcribe_video_api_upload_video_transcribe_post","requestBody":{"content":{"application/x-www-form-urlencoded":{"schema":{"$ref":"#/components/schemas/Body_transcribe_video_api_upload_video_transcribe_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/upload/image/cutout":{"post":{"tags":["upload"],"summary":"Image Cutout","description":"AI 抠图：调用阿里云视觉智能分割抠图 API，去除图片背景。\n\nmode: \"common\"（通用抠图） | \"person\"（人像抠图） | \"commodity\"（商品抠图）\n返回：{ filename, width, height, format }","operationId":"image_cutout_api_upload_image_cutout_post","requestBody":{"content":{"multipart/form-data":{"schema":{"$ref":"#/components/schemas/Body_image_cutout_api_upload_image_cutout_post"}}},"required":true},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}},"security":[{"APIKeyHeader":[]},{"APIKeyHeader":[]},{"APIKeyHeader":[]}]}},"/api/public-assets":{"get":{"summary":"获取公共素材列表","operationId":"get_public_assets_api_public_assets_get","parameters":[{"name":"page","in":"query","required":false,"schema":{"type":"integer","minimum":1,"default":1,"title":"Page"}},{"name":"page_size","in":"query","required":false,"schema":{"type":"integer","maximum":200,"minimum":1,"default":100,"title":"Page Size"}},{"name":"media_type","in":"query","required":false,"schema":{"type":"string","description":"筛选: image/video/audio","default":"","title":"Media Type"},"description":"筛选: image/video/audio"},{"name":"tag","in":"query","required":false,"schema":{"type":"string","description":"筛选标签","default":"","title":"Tag"},"description":"筛选标签"},{"name":"status","in":"query","required":false,"schema":{"type":"string","description":"状态: approved/pending/rejected","default":"approved","title":"Status"},"description":"状态: approved/pending/rejected"},{"name":"style","in":"query","required":false,"schema":{"type":"string","description":"分类筛选: 素材风格","default":"","title":"Style"},"description":"分类筛选: 素材风格"},{"name":"subject","in":"query","required":false,"schema":{"type":"string","description":"分类筛选: 内容主体","default":"","title":"Subject"},"description":"分类筛选: 内容主体"},{"name":"purpose","in":"query","required":false,"schema":{"type":"string","description":"分类筛选: 用途场景","default":"","title":"Purpose"},"description":"分类筛选: 用途场景"},{"name":"mood","in":"query","required":false,"schema":{"type":"string","description":"分类筛选: 情绪基调","default":"","title":"Mood"},"description":"分类筛选: 情绪基调"},{"name":"completeness","in":"query","required":false,"schema":{"type":"string","description":"分类筛选: 完成度","default":"","title":"Completeness"},"description":"分类筛选: 完成度"},{"name":"layout","in":"query","required":false,"schema":{"type":"string","description":"分类筛选: 构图版式","default":"","title":"Layout"},"description":"分类筛选: 构图版式"}],"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}},"post":{"summary":"提交素材到公共素材区","operationId":"submit_public_asset_api_public_assets_post","requestBody":{"required":true,"content":{"application/json":{"schema":{"type":"object","additionalProperties":true,"title":"Data"}}}},"responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}},"422":{"description":"Validation Error","content":{"application/json":{"schema":{"$ref":"#/components/schemas/HTTPValidationError"}}}}}}},"/webtest":{"get":{"summary":"Webtest","operationId":"webtest_webtest_get","responses":{"200":{"description":"Successful Response","content":{"application/json":{"schema":{}}}}}}}},"components":{"schemas":{"ApiAuth":{"properties":{"apiKeyConfig":{"anyOf":[{"$ref":"#/components/schemas/ApiAuthApiKeyConfig"},{"type":"null"}],"description":"The API secret."}},"additionalProperties":false,"type":"object","title":"ApiAuth","description":"The generic reusable api auth config.\n\nDeprecated. Please use AuthConfig (google/cloud/aiplatform/master/auth.proto)\ninstead. This data type is not supported in Gemini API."},"ApiAuthApiKeyConfig":{"properties":{"apiKeySecretVersion":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apikeysecretversion","description":"Required. The SecretManager secret version resource name storing API key. e.g. projects/{project}/secrets/{secret}/versions/{version}"},"apiKeyString":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apikeystring","description":"The API key string. Either this or `api_key_secret_version` must be set."}},"additionalProperties":false,"type":"object","title":"ApiAuthApiKeyConfig","description":"The API secret. This data type is not supported in Gemini API."},"ApiKeyConfig":{"properties":{"apiKeySecret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apikeysecret","description":"Optional. The name of the SecretManager secret version resource storing the API key. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If both `api_key_secret` and `api_key_string` are specified, this field takes precedence over `api_key_string`. - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource."},"apiKeyString":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apikeystring","description":"Optional. The API key to be used in the request directly."},"httpElementLocation":{"anyOf":[{"$ref":"#/components/schemas/HttpElementLocation"},{"type":"null"}],"description":"Optional. The location of the API key."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Optional. The parameter name of the API key. E.g. If the API request is \"https://example.com/act?api_key=\", \"api_key\" would be the parameter name."}},"additionalProperties":false,"type":"object","title":"ApiKeyConfig","description":"Config for authentication with API key.\n\nThis data type is not supported in Gemini API."},"ApiSpec":{"type":"string","enum":["API_SPEC_UNSPECIFIED","SIMPLE_SEARCH","ELASTIC_SEARCH"],"title":"ApiSpec","description":"The API spec that the external API implements.\n\nThis enum is not supported in Gemini API."},"AuthConfig":{"properties":{"apiKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apikey","description":"The authentication config to access the API. Only API key is supported. This field is not supported in Gemini API."},"apiKeyConfig":{"anyOf":[{"$ref":"#/components/schemas/ApiKeyConfig"},{"type":"null"}],"description":"Config for API key auth."},"authType":{"anyOf":[{"$ref":"#/components/schemas/AuthType"},{"type":"null"}],"description":"Type of auth scheme."},"googleServiceAccountConfig":{"anyOf":[{"$ref":"#/components/schemas/AuthConfigGoogleServiceAccountConfig"},{"type":"null"}],"description":"Config for Google Service Account auth."},"httpBasicAuthConfig":{"anyOf":[{"$ref":"#/components/schemas/AuthConfigHttpBasicAuthConfig"},{"type":"null"}],"description":"Config for HTTP Basic auth."},"oauthConfig":{"anyOf":[{"$ref":"#/components/schemas/AuthConfigOauthConfig"},{"type":"null"}],"description":"Config for user oauth."},"oidcConfig":{"anyOf":[{"$ref":"#/components/schemas/AuthConfigOidcConfig"},{"type":"null"}],"description":"Config for user OIDC auth."}},"additionalProperties":false,"type":"object","title":"AuthConfig","description":"The authentication config to access the API."},"AuthConfigGoogleServiceAccountConfig":{"properties":{"serviceAccount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Serviceaccount","description":"Optional. The service account that the extension execution service runs as. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified service account. - If not specified, the Vertex AI Extension Service Agent will be used to execute the Extension."}},"additionalProperties":false,"type":"object","title":"AuthConfigGoogleServiceAccountConfig","description":"Config for Google Service Account Authentication.\n\nThis data type is not supported in Gemini API."},"AuthConfigHttpBasicAuthConfig":{"properties":{"credentialSecret":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Credentialsecret","description":"Required. The name of the SecretManager secret version resource storing the base64 encoded credentials. Format: `projects/{project}/secrets/{secrete}/versions/{version}` - If specified, the `secretmanager.versions.access` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the specified resource."}},"additionalProperties":false,"type":"object","title":"AuthConfigHttpBasicAuthConfig","description":"Config for HTTP Basic Authentication.\n\nThis data type is not supported in Gemini API."},"AuthConfigOauthConfig":{"properties":{"accessToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Accesstoken","description":"Access token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time."},"serviceAccount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Serviceaccount","description":"The service account used to generate access tokens for executing the Extension. - If the service account is specified, the `iam.serviceAccounts.getAccessToken` permission should be granted to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents) on the provided service account."}},"additionalProperties":false,"type":"object","title":"AuthConfigOauthConfig","description":"Config for user oauth. This data type is not supported in Gemini API."},"AuthConfigOidcConfig":{"properties":{"idToken":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Idtoken","description":"OpenID Connect formatted ID token for extension endpoint. Only used to propagate token from [[ExecuteExtensionRequest.runtime_auth_config]] at request time."},"serviceAccount":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Serviceaccount","description":"The service account used to generate an OpenID Connect (OIDC)-compatible JWT token signed by the Google OIDC Provider (accounts.google.com) for extension endpoint (https://cloud.google.com/iam/docs/create-short-lived-credentials-direct#sa-credentials-oidc). - The audience for the token will be set to the URL in the server url defined in the OpenApi spec. - If the service account is provided, the service account should grant `iam.serviceAccounts.getOpenIdToken` permission to Vertex AI Extension Service Agent (https://cloud.google.com/vertex-ai/docs/general/access-control#service-agents)."}},"additionalProperties":false,"type":"object","title":"AuthConfigOidcConfig","description":"Config for user OIDC auth.\n\nThis data type is not supported in Gemini API."},"AuthType":{"type":"string","enum":["AUTH_TYPE_UNSPECIFIED","NO_AUTH","API_KEY_AUTH","HTTP_BASIC_AUTH","GOOGLE_SERVICE_ACCOUNT_AUTH","OAUTH","OIDC_AUTH"],"title":"AuthType","description":"Type of auth scheme. This enum is not supported in Gemini API."},"Behavior":{"type":"string","enum":["UNSPECIFIED","BLOCKING","NON_BLOCKING"],"title":"Behavior","description":"Specifies the function Behavior.\n\nCurrently only supported by the BidiGenerateContent method. This enum is not\nsupported in Vertex AI."},"BetaAllThinkingTurnsParam":{"properties":{"type":{"type":"string","const":"all","title":"Type"}},"type":"object","required":["type"],"title":"BetaAllThinkingTurnsParam"},"BetaClearThinking20251015EditParam":{"properties":{"type":{"type":"string","const":"clear_thinking_20251015","title":"Type"},"keep":{"anyOf":[{"$ref":"#/components/schemas/BetaThinkingTurnsParam"},{"$ref":"#/components/schemas/BetaAllThinkingTurnsParam"},{"type":"string","const":"all"}],"title":"Keep"}},"type":"object","required":["type"],"title":"BetaClearThinking20251015EditParam"},"BetaClearToolUses20250919EditParam":{"properties":{"type":{"type":"string","const":"clear_tool_uses_20250919","title":"Type"},"clear_at_least":{"anyOf":[{"$ref":"#/components/schemas/BetaInputTokensClearAtLeastParam"},{"type":"null"}]},"clear_tool_inputs":{"anyOf":[{"type":"boolean"},{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Clear Tool Inputs"},"exclude_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Exclude Tools"},"keep":{"$ref":"#/components/schemas/BetaToolUsesKeepParam"},"trigger":{"anyOf":[{"$ref":"#/components/schemas/BetaInputTokensTriggerParam"},{"$ref":"#/components/schemas/BetaToolUsesTriggerParam"}],"title":"Trigger"}},"type":"object","required":["type"],"title":"BetaClearToolUses20250919EditParam"},"BetaCompact20260112EditParam":{"properties":{"type":{"type":"string","const":"compact_20260112","title":"Type"},"instructions":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Instructions"},"pause_after_compaction":{"type":"boolean","title":"Pause After Compaction"},"trigger":{"anyOf":[{"$ref":"#/components/schemas/BetaInputTokensTriggerParam"},{"type":"null"}]}},"type":"object","required":["type"],"title":"BetaCompact20260112EditParam","description":"Automatically compact older context when reaching the configured trigger threshold."},"BetaContextManagementConfigParam":{"properties":{"edits":{"items":{"anyOf":[{"$ref":"#/components/schemas/BetaClearToolUses20250919EditParam"},{"$ref":"#/components/schemas/BetaClearThinking20251015EditParam"},{"$ref":"#/components/schemas/BetaCompact20260112EditParam"}]},"type":"array","title":"Edits"}},"type":"object","title":"BetaContextManagementConfigParam"},"BetaInputTokensClearAtLeastParam":{"properties":{"type":{"type":"string","const":"input_tokens","title":"Type"},"value":{"type":"integer","title":"Value"}},"type":"object","required":["type","value"],"title":"BetaInputTokensClearAtLeastParam"},"BetaInputTokensTriggerParam":{"properties":{"type":{"type":"string","const":"input_tokens","title":"Type"},"value":{"type":"integer","title":"Value"}},"type":"object","required":["type","value"],"title":"BetaInputTokensTriggerParam"},"BetaRequestMCPServerToolConfigurationParam":{"properties":{"allowed_tools":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Tools"},"enabled":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enabled"}},"type":"object","title":"BetaRequestMCPServerToolConfigurationParam"},"BetaRequestMCPServerURLDefinitionParam":{"properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","const":"url","title":"Type"},"url":{"type":"string","title":"Url"},"authorization_token":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Authorization Token"},"tool_configuration":{"anyOf":[{"$ref":"#/components/schemas/BetaRequestMCPServerToolConfigurationParam"},{"type":"null"}]}},"type":"object","required":["name","type","url"],"title":"BetaRequestMCPServerURLDefinitionParam"},"BetaThinkingConfigAdaptiveParam":{"properties":{"type":{"type":"string","const":"adaptive","title":"Type"},"display":{"anyOf":[{"type":"string","enum":["summarized","omitted"]},{"type":"null"}],"title":"Display"}},"type":"object","required":["type"],"title":"BetaThinkingConfigAdaptiveParam"},"BetaThinkingConfigDisabledParam":{"properties":{"type":{"type":"string","const":"disabled","title":"Type"}},"type":"object","required":["type"],"title":"BetaThinkingConfigDisabledParam"},"BetaThinkingConfigEnabledParam":{"properties":{"budget_tokens":{"type":"integer","title":"Budget Tokens"},"type":{"type":"string","const":"enabled","title":"Type"},"display":{"anyOf":[{"type":"string","enum":["summarized","omitted"]},{"type":"null"}],"title":"Display"}},"type":"object","required":["budget_tokens","type"],"title":"BetaThinkingConfigEnabledParam"},"BetaThinkingTurnsParam":{"properties":{"type":{"type":"string","const":"thinking_turns","title":"Type"},"value":{"type":"integer","title":"Value"}},"type":"object","required":["type","value"],"title":"BetaThinkingTurnsParam"},"BetaToolUsesKeepParam":{"properties":{"type":{"type":"string","const":"tool_uses","title":"Type"},"value":{"type":"integer","title":"Value"}},"type":"object","required":["type","value"],"title":"BetaToolUsesKeepParam"},"BetaToolUsesTriggerParam":{"properties":{"type":{"type":"string","const":"tool_uses","title":"Type"},"value":{"type":"integer","title":"Value"}},"type":"object","required":["type","value"],"title":"BetaToolUsesTriggerParam"},"Blob":{"properties":{"data":{"anyOf":[{"type":"string","format":"base64url"},{"type":"null"}],"title":"Data","description":"Required. The raw bytes of the data."},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Displayname","description":"Optional. The display name of the blob. Used to provide a label or filename to distinguish blobs. This field is only returned in `PromptMessage` for prompt management. It is used in the Gemini calls only when server-side tools (`code_execution`, `google_search`, and `url_context`) are enabled. This field is not supported in Gemini API."},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype","description":"Required. The IANA standard MIME type of the source data."}},"additionalProperties":false,"type":"object","title":"Blob","description":"A content blob.\n\nA Blob contains data of a specific media type. It is used to represent images,\naudio, and video."},"Body_add_audio_to_video_api_upload_video_add_audio_post":{"properties":{"video_url":{"type":"string","title":"Video Url"},"audio_url":{"type":"string","title":"Audio Url"},"mode":{"type":"string","title":"Mode","default":"mix"},"video_volume":{"type":"number","title":"Video Volume","default":1.0},"audio_volume":{"type":"number","title":"Audio Volume","default":1.0}},"type":"object","required":["video_url","audio_url"],"title":"Body_add_audio_to_video_api_upload_video_add_audio_post"},"Body_add_text_to_video_api_upload_video_add_text_post":{"properties":{"video_url":{"type":"string","title":"Video Url"},"texts":{"type":"string","title":"Texts"}},"type":"object","required":["video_url","texts"],"title":"Body_add_text_to_video_api_upload_video_add_text_post"},"Body_concat_videos_api_upload_video_concat_post":{"properties":{"clips":{"type":"string","title":"Clips"},"reencode":{"type":"string","title":"Reencode","default":"false"},"target_width":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Target Width"},"target_height":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Target Height"}},"type":"object","required":["clips"],"title":"Body_concat_videos_api_upload_video_concat_post"},"Body_edit_image_api_upload_image_edit_post":{"properties":{"url":{"type":"string","title":"Url"},"operation":{"type":"string","title":"Operation"},"crop_x":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crop X"},"crop_y":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crop Y"},"crop_w":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crop W"},"crop_h":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Crop H"},"resize_w":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resize W"},"resize_h":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Resize H"},"quality":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Quality","default":85}},"type":"object","required":["url","operation"],"title":"Body_edit_image_api_upload_image_edit_post"},"Body_image_cutout_api_upload_image_cutout_post":{"properties":{"image":{"type":"string","format":"binary","title":"Image"},"mode":{"type":"string","title":"Mode","default":"common"}},"type":"object","required":["image"],"title":"Body_image_cutout_api_upload_image_cutout_post"},"Body_image_to_video_api_upload_image_to_video_post":{"properties":{"url":{"type":"string","title":"Url"},"duration":{"type":"number","title":"Duration","default":5.0}},"type":"object","required":["url"],"title":"Body_image_to_video_api_upload_image_to_video_post"},"Body_mix_audio_tracks_api_upload_video_mix_audio_tracks_post":{"properties":{"video_url":{"type":"string","title":"Video Url"},"audio_clips":{"type":"string","title":"Audio Clips"},"video_volume":{"type":"number","title":"Video Volume","default":1.0}},"type":"object","required":["video_url","audio_clips"],"title":"Body_mix_audio_tracks_api_upload_video_mix_audio_tracks_post"},"Body_transcribe_video_api_upload_video_transcribe_post":{"properties":{"video_url":{"type":"string","title":"Video Url"},"provider":{"type":"string","title":"Provider","default":"dashscope"},"language":{"type":"string","title":"Language","default":"auto"},"audio_items":{"type":"string","title":"Audio Items","default":"[]"}},"type":"object","required":["video_url"],"title":"Body_transcribe_video_api_upload_video_transcribe_post"},"Body_trim_audio_api_upload_audio_trim_post":{"properties":{"url":{"type":"string","title":"Url"},"trim_start":{"type":"number","title":"Trim Start"},"trim_end":{"type":"number","title":"Trim End"}},"type":"object","required":["url","trim_start","trim_end"],"title":"Body_trim_audio_api_upload_audio_trim_post"},"Body_trim_uploaded_video_api_upload_video_trim_post":{"properties":{"local_filename":{"type":"string","title":"Local Filename"},"trim_start":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trim Start"},"trim_end":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Trim End"},"keyframes":{"type":"string","title":"Keyframes","default":"false"}},"type":"object","required":["local_filename"],"title":"Body_trim_uploaded_video_api_upload_video_trim_post"},"Body_upload_audio_api_upload_audio_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"convert":{"type":"string","title":"Convert","default":"false"},"compress":{"type":"string","title":"Compress","default":"false"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"}},"type":"object","required":["file"],"title":"Body_upload_audio_api_upload_audio_post"},"Body_upload_document_api_agent_knowledge_upload_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"group_name":{"type":"string","title":"Group Name"},"embedding_model":{"type":"string","title":"Embedding Model","default":"text-embedding-3-small"}},"type":"object","required":["file","group_name"],"title":"Body_upload_document_api_agent_knowledge_upload_post"},"Body_upload_image_api_upload_image_post":{"properties":{"file":{"type":"string","format":"binary","title":"File"},"convert":{"type":"string","title":"Convert","default":"false"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"}},"type":"object","required":["file"],"title":"Body_upload_image_api_upload_image_post"},"Body_upload_video_api_upload_video_post":{"properties":{"file":{"anyOf":[{"type":"string","format":"binary"},{"type":"null"}],"title":"File"},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"convert":{"type":"string","title":"Convert","default":"false"},"request_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Request Id"}},"type":"object","title":"Body_upload_video_api_upload_video_post"},"CacheControlEphemeralParam":{"properties":{"type":{"type":"string","const":"ephemeral","title":"Type"},"ttl":{"type":"string","enum":["5m","1h"],"title":"Ttl"}},"type":"object","required":["type"],"title":"CacheControlEphemeralParam"},"ChatChoice":{"properties":{"index":{"type":"integer","title":"Index"},"message":{"anyOf":[{"$ref":"#/components/schemas/ChatMessage"},{"type":"null"}]},"delta":{"anyOf":[{"$ref":"#/components/schemas/ChatMessage"},{"type":"null"}]},"logprobs":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Logprobs"},"finish_reason":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Finish Reason"}},"type":"object","required":["index"],"title":"ChatChoice"},"ChatMessage":{"properties":{"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role"},"content":{"anyOf":[{"type":"string"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Content"},"reasoning_content":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Content"},"refusal":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Refusal"},"function_call":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Function Call"},"tool_calls":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Tool Calls"}},"type":"object","title":"ChatMessage"},"ChatResponse":{"properties":{"id":{"type":"string","title":"Id"},"object":{"type":"string","title":"Object","default":"chat.completion"},"created":{"type":"integer","title":"Created"},"model":{"type":"string","title":"Model"},"choices":{"anyOf":[{"items":{"$ref":"#/components/schemas/ChatChoice"},"type":"array"},{"type":"null"}],"title":"Choices"},"usage":{"anyOf":[{"$ref":"#/components/schemas/Usage"},{"type":"null"}]},"service_tier":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Service Tier"},"system_fingerprint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"System Fingerprint"}},"type":"object","required":["id","created","model"],"title":"ChatResponse"},"CitationsConfigParam":{"properties":{"enabled":{"type":"boolean","title":"Enabled"}},"type":"object","title":"CitationsConfigParam"},"CodeExecutionResult":{"properties":{"outcome":{"anyOf":[{"$ref":"#/components/schemas/Outcome"},{"type":"null"}],"description":"Required. Outcome of the code execution."},"output":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Output","description":"Optional. Contains stdout when code execution is successful, stderr or other description otherwise."},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"The identifier of the `ExecutableCode` part this result is for. Only populated if the corresponding `ExecutableCode` has an id."}},"additionalProperties":false,"type":"object","title":"CodeExecutionResult","description":"Result of executing the `ExecutableCode`.\n\nGenerated only when the `CodeExecution` tool is used."},"CodeExecutionTool20250522Param":{"properties":{"name":{"type":"string","const":"code_execution","title":"Name"},"type":{"type":"string","const":"code_execution_20250522","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"strict":{"type":"boolean","title":"Strict"}},"type":"object","required":["name","type"],"title":"CodeExecutionTool20250522Param"},"CodeExecutionTool20250825Param":{"properties":{"name":{"type":"string","const":"code_execution","title":"Name"},"type":{"type":"string","const":"code_execution_20250825","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"strict":{"type":"boolean","title":"Strict"}},"type":"object","required":["name","type"],"title":"CodeExecutionTool20250825Param"},"CodeExecutionTool20260120Param":{"properties":{"name":{"type":"string","const":"code_execution","title":"Name"},"type":{"type":"string","const":"code_execution_20260120","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"strict":{"type":"boolean","title":"Strict"}},"type":"object","required":["name","type"],"title":"CodeExecutionTool20260120Param","description":"Code execution tool with REPL state persistence (daemon mode + gVisor checkpoint)."},"CompletionTokensDetails":{"properties":{"reasoning_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Reasoning Tokens","default":0},"audio_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Audio Tokens","default":0},"accepted_prediction_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Accepted Prediction Tokens","default":0},"rejected_prediction_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Rejected Prediction Tokens","default":0}},"type":"object","title":"CompletionTokensDetails"},"ComputerUse":{"properties":{"environment":{"anyOf":[{"$ref":"#/components/schemas/Environment"},{"type":"null"}],"description":"Required. The environment being operated."},"excludedPredefinedFunctions":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Excludedpredefinedfunctions","description":"By default, predefined functions are included in the final model call.\n    Some of them can be explicitly excluded from being automatically included.\n    This can serve two purposes:\n      1. Using a more restricted / different action space.\n      2. Improving the definitions / instructions of predefined functions."}},"additionalProperties":false,"type":"object","title":"ComputerUse","description":"Tool to support computer use."},"Content":{"properties":{"parts":{"anyOf":[{"items":{"$ref":"#/components/schemas/Part"},"type":"array"},{"type":"null"}],"title":"Parts","description":"List of parts that constitute a single message. Each part may have\n      a different IANA MIME type."},"role":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Role","description":"Optional. The producer of the content. Must be either 'user' or 'model'. If not set, the service will default to 'user'."}},"additionalProperties":false,"type":"object","title":"Content","description":"Contains the multi-part content of a message."},"DynamicRetrievalConfig":{"properties":{"dynamicThreshold":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Dynamicthreshold","description":"Optional. The threshold to be used in dynamic retrieval. If not set, a system default value is used."},"mode":{"anyOf":[{"$ref":"#/components/schemas/DynamicRetrievalConfigMode"},{"type":"null"}],"description":"The mode of the predictor to be used in dynamic retrieval."}},"additionalProperties":false,"type":"object","title":"DynamicRetrievalConfig","description":"Describes the options to customize dynamic retrieval."},"DynamicRetrievalConfigMode":{"type":"string","enum":["MODE_UNSPECIFIED","MODE_DYNAMIC"],"title":"DynamicRetrievalConfigMode","description":"The mode of the predictor to be used in dynamic retrieval."},"EnterpriseWebSearch":{"properties":{"blockingConfidence":{"anyOf":[{"$ref":"#/components/schemas/PhishBlockThreshold"},{"type":"null"}],"description":"Optional. Sites with confidence level chosen & above this value will be blocked from the search results."},"excludeDomains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Excludedomains","description":"Optional. List of domains to be excluded from the search results. The default limit is 2000 domains."}},"additionalProperties":false,"type":"object","title":"EnterpriseWebSearch","description":"Tool to search public web data, powered by Vertex AI Search and Sec4 compliance.\n\nThis data type is not supported in Gemini API."},"Environment":{"type":"string","enum":["ENVIRONMENT_UNSPECIFIED","ENVIRONMENT_BROWSER"],"title":"Environment","description":"The environment being operated."},"ExecutableCode":{"properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code","description":"Required. The code to be executed."},"language":{"anyOf":[{"$ref":"#/components/schemas/Language"},{"type":"null"}],"description":"Required. Programming language of the `code`."},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier of the `ExecutableCode` part. The server returns the `CodeExecutionResult` with the matching `id`."}},"additionalProperties":false,"type":"object","title":"ExecutableCode","description":"Model-generated code executed server-side, results returned to the model.\n\nOnly generated when using the `CodeExecution` tool, in which the code will\nbe automatically executed, and a corresponding `CodeExecutionResult` will\nalso be generated."},"ExternalApi":{"properties":{"apiAuth":{"anyOf":[{"$ref":"#/components/schemas/ApiAuth"},{"type":"null"}],"description":"The authentication config to access the API. Deprecated. Please use auth_config instead."},"apiSpec":{"anyOf":[{"$ref":"#/components/schemas/ApiSpec"},{"type":"null"}],"description":"The API spec that the external API implements."},"authConfig":{"anyOf":[{"$ref":"#/components/schemas/AuthConfig"},{"type":"null"}],"description":"The authentication config to access the API."},"elasticSearchParams":{"anyOf":[{"$ref":"#/components/schemas/ExternalApiElasticSearchParams"},{"type":"null"}],"description":"Parameters for the elastic search API."},"endpoint":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endpoint","description":"The endpoint of the external API. The system will call the API at this endpoint to retrieve the data for grounding. Example: https://acme.com:443/search"},"simpleSearchParams":{"anyOf":[{"$ref":"#/components/schemas/ExternalApiSimpleSearchParams"},{"type":"null"}],"description":"Parameters for the simple search API."}},"additionalProperties":false,"type":"object","title":"ExternalApi","description":"Retrieve from data source powered by external API for grounding.\n\nThe external API is not owned by Google, but need to follow the pre-defined\nAPI spec. This data type is not supported in Gemini API."},"ExternalApiElasticSearchParams":{"properties":{"index":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Index","description":"The ElasticSearch index to use."},"numHits":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Numhits","description":"Optional. Number of hits (chunks) to request. When specified, it is passed to Elasticsearch as the `num_hits` param."},"searchTemplate":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Searchtemplate","description":"The ElasticSearch search template to use."}},"additionalProperties":false,"type":"object","title":"ExternalApiElasticSearchParams","description":"The search parameters to use for the ELASTIC_SEARCH spec.\n\nThis data type is not supported in Gemini API."},"ExternalApiSimpleSearchParams":{"properties":{},"additionalProperties":false,"type":"object","title":"ExternalApiSimpleSearchParams","description":"The search parameters to use for SIMPLE_SEARCH spec.\n\nThis data type is not supported in Gemini API."},"File":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The `File` resource name. The ID (name excluding the \"files/\" prefix) can contain up to 40 characters that are lowercase alphanumeric or dashes (-). The ID cannot start or end with a dash. If the name is empty on create, a unique name will be generated. Example: `files/123-456`"},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Displayname","description":"Optional. The human-readable display name for the `File`. The display name must be no more than 512 characters in length, including spaces. Example: 'Welcome Image'"},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype","description":"Output only. MIME type of the file."},"sizeBytes":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Sizebytes","description":"Output only. Size of the file in bytes."},"createTime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Createtime","description":"Output only. The timestamp of when the `File` was created."},"expirationTime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Expirationtime","description":"Output only. The timestamp of when the `File` will be deleted. Only set if the `File` is scheduled to expire."},"updateTime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Updatetime","description":"Output only. The timestamp of when the `File` was last updated."},"sha256Hash":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sha256Hash","description":"Output only. SHA-256 hash of the uploaded bytes. The hash value is encoded in base64 format."},"uri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Uri","description":"Output only. The URI of the `File`."},"downloadUri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Downloaduri","description":"Output only. The URI of the `File`, only set for downloadable (generated) files."},"state":{"anyOf":[{"$ref":"#/components/schemas/FileState"},{"type":"null"}],"description":"Output only. Processing state of the File."},"source":{"anyOf":[{"$ref":"#/components/schemas/FileSource"},{"type":"null"}],"description":"Output only. The source of the `File`."},"videoMetadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Videometadata","description":"Output only. Metadata for a video."},"error":{"anyOf":[{"$ref":"#/components/schemas/FileStatus"},{"type":"null"}],"description":"Output only. Error status if File processing failed."}},"additionalProperties":false,"type":"object","title":"File","description":"A file uploaded to the API."},"FileData":{"properties":{"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Displayname","description":"Optional. The display name of the file. Used to provide a label or filename to distinguish files. This field is only returned in `PromptMessage` for prompt management. It is used in the Gemini calls only when server side tools (`code_execution`, `google_search`, and `url_context`) are enabled. This field is not supported in Gemini API."},"fileUri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fileuri","description":"Required. The URI of the file in Google Cloud Storage."},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype","description":"Required. The IANA standard MIME type of the source data."}},"additionalProperties":false,"type":"object","title":"FileData","description":"URI-based data.\n\nA FileData message contains a URI pointing to data of a specific media type.\nIt is used to represent images, audio, and video stored in Google Cloud\nStorage."},"FileSearch":{"properties":{"fileSearchStoreNames":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Filesearchstorenames","description":"Required. The names of the file_search_stores to retrieve from. Example: `fileSearchStores/my-file-search-store-123`"},"topK":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Topk","description":"Optional. The number of semantic retrieval chunks to retrieve."},"metadataFilter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadatafilter","description":"Optional. Metadata filter to apply to the semantic retrieval documents and chunks."}},"additionalProperties":false,"type":"object","title":"FileSearch","description":"The FileSearch tool that retrieves knowledge from Semantic Retrieval corpora.\n\nFiles are imported to Semantic Retrieval corpora using the ImportFile API.\nThis data type is not supported in Vertex AI."},"FileSource":{"type":"string","enum":["SOURCE_UNSPECIFIED","UPLOADED","GENERATED","REGISTERED"],"title":"FileSource","description":"Source of the File."},"FileState":{"type":"string","enum":["STATE_UNSPECIFIED","PROCESSING","ACTIVE","FAILED"],"title":"FileState","description":"State for the lifecycle of a File."},"FileStatus":{"properties":{"details":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Details","description":"A list of messages that carry the error details. There is a common set of message types for APIs to use."},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message","description":"A list of messages that carry the error details. There is a common set of message types for APIs to use."},"code":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Code","description":"The status code. 0 for OK, 1 for CANCELLED"}},"additionalProperties":false,"type":"object","title":"FileStatus","description":"Status of a File that uses a common error model."},"FunctionCall":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"The unique id of the function call. If populated, the client to execute the\n   `function_call` and return the response with the matching `id`."},"args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Args","description":"Optional. The function parameters and values in JSON object format. See [FunctionDeclaration.parameters] for parameter details."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Optional. The name of the function to call. Matches [FunctionDeclaration.name]."},"partialArgs":{"anyOf":[{"items":{"$ref":"#/components/schemas/PartialArg"},"type":"array"},{"type":"null"}],"title":"Partialargs","description":"Optional. The partial argument value of the function call. If provided, represents the arguments/fields that are streamed incrementally. This field is not supported in Gemini API."},"willContinue":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Willcontinue","description":"Optional. Whether this is the last part of the FunctionCall. If true, another partial message for the current FunctionCall is expected to follow. This field is not supported in Gemini API."}},"additionalProperties":false,"type":"object","title":"FunctionCall","description":"A function call."},"FunctionCallingConfig":{"properties":{"allowedFunctionNames":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowedfunctionnames","description":"Optional. Function names to call. Only set when the Mode is ANY. Function names should match [FunctionDeclaration.name]. With mode set to ANY, model will predict a function call from the set of function names provided."},"mode":{"anyOf":[{"$ref":"#/components/schemas/FunctionCallingConfigMode"},{"type":"null"}],"description":"Optional. Function calling mode."},"streamFunctionCallArguments":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Streamfunctioncallarguments","description":"Optional. When set to true, arguments of a single function call will be streamed out in multiple parts/contents/responses. Partial parameter results will be returned in the [FunctionCall.partial_args] field. This field is not supported in Gemini API."}},"additionalProperties":false,"type":"object","title":"FunctionCallingConfig","description":"Function calling config."},"FunctionCallingConfigMode":{"type":"string","enum":["MODE_UNSPECIFIED","AUTO","ANY","NONE","VALIDATED"],"title":"FunctionCallingConfigMode","description":"Function calling mode."},"FunctionDeclaration":{"properties":{"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional. Description and purpose of the function. Model uses it to decide how and whether to call the function."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Required. The name of the function to call. Must start with a letter or an underscore. Must be a-z, A-Z, 0-9, or contain underscores, dots, colons and dashes, with a maximum length of 64."},"parameters":{"anyOf":[{"$ref":"#/components/schemas/Schema"},{"type":"null"}],"description":"Optional. Describes the parameters to this function in JSON Schema Object format. Reflects the Open API 3.03 Parameter Object. string Key: the name of the parameter. Parameter names are case sensitive. Schema Value: the Schema defining the type used for the parameter. For function with no parameters, this can be left unset. Parameter names must start with a letter or an underscore and must only contain chars a-z, A-Z, 0-9, or underscores with a maximum length of 64. Example with 1 required and 1 optional parameter: type: OBJECT properties: param1: type: STRING param2: type: INTEGER required: - param1"},"parametersJsonSchema":{"anyOf":[{},{"type":"null"}],"title":"Parametersjsonschema","description":"Optional. Describes the parameters to the function in JSON Schema format. The schema must describe an object where the properties are the parameters to the function. For example: ``` { \"type\": \"object\", \"properties\": { \"name\": { \"type\": \"string\" }, \"age\": { \"type\": \"integer\" } }, \"additionalProperties\": false, \"required\": [\"name\", \"age\"], \"propertyOrdering\": [\"name\", \"age\"] } ``` This field is mutually exclusive with `parameters`."},"response":{"anyOf":[{"$ref":"#/components/schemas/Schema"},{"type":"null"}],"description":"Optional. Describes the output from this function in JSON Schema format. Reflects the Open API 3.03 Response Object. The Schema defines the type used for the response value of the function."},"responseJsonSchema":{"anyOf":[{},{"type":"null"}],"title":"Responsejsonschema","description":"Optional. Describes the output from this function in JSON Schema format. The value specified by the schema is the response value of the function. This field is mutually exclusive with `response`."},"behavior":{"anyOf":[{"$ref":"#/components/schemas/Behavior"},{"type":"null"}],"description":"Optional. Specifies the function Behavior. Currently only supported by the BidiGenerateContent method. This field is not supported in Vertex AI."}},"additionalProperties":false,"type":"object","title":"FunctionDeclaration","description":"Structured representation of a function declaration as defined by the [OpenAPI 3.0 specification](https://spec.openapis.org/oas/v3.0.3).\n\nIncluded in this declaration are the function name, description, parameters\nand response type. This FunctionDeclaration is a representation of a block of\ncode that can be used as a `Tool` by the model and executed by the client."},"FunctionResponse":{"properties":{"willContinue":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Willcontinue","description":"Signals that function call continues, and more responses will be returned, turning the function call into a generator. Is only applicable to NON_BLOCKING function calls (see FunctionDeclaration.behavior for details), ignored otherwise. If false, the default, future responses will not be considered. Is only applicable to NON_BLOCKING function calls, is ignored otherwise. If set to false, future responses will not be considered. It is allowed to return empty `response` with `will_continue=False` to signal that the function call is finished."},"scheduling":{"anyOf":[{"$ref":"#/components/schemas/FunctionResponseScheduling"},{"type":"null"}],"description":"Specifies how the response should be scheduled in the conversation. Only applicable to NON_BLOCKING function calls, is ignored otherwise. Defaults to WHEN_IDLE."},"parts":{"anyOf":[{"items":{"$ref":"#/components/schemas/FunctionResponsePart"},"type":"array"},{"type":"null"}],"title":"Parts","description":"List of parts that constitute a function response. Each part may\n      have a different IANA MIME type."},"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Optional. The id of the function call this response is for. Populated by the client to match the corresponding function call `id`."},"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Required. The name of the function to call. Matches [FunctionDeclaration.name] and [FunctionCall.name]."},"response":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response","description":"Required. The function response in JSON object format. Use \"output\" key to specify function output and \"error\" key to specify error details (if any). If \"output\" and \"error\" keys are not specified, then whole \"response\" is treated as function output."}},"additionalProperties":false,"type":"object","title":"FunctionResponse","description":"A function response."},"FunctionResponseBlob":{"properties":{"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype","description":"Required. The IANA standard MIME type of the source data."},"data":{"anyOf":[{"type":"string","format":"base64url"},{"type":"null"}],"title":"Data","description":"Required. Inline media bytes."},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Displayname","description":"Optional. Display name of the blob.\n      Used to provide a label or filename to distinguish blobs."}},"additionalProperties":false,"type":"object","title":"FunctionResponseBlob","description":"Raw media bytes for function response.\n\nText should not be sent as raw bytes, use the FunctionResponse.response\nfield."},"FunctionResponseFileData":{"properties":{"fileUri":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Fileuri","description":"Required. URI."},"mimeType":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Mimetype","description":"Required. The IANA standard MIME type of the source data."},"displayName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Displayname","description":"Optional. Display name of the file.\n      Used to provide a label or filename to distinguish files."}},"additionalProperties":false,"type":"object","title":"FunctionResponseFileData","description":"URI based data for function response."},"FunctionResponsePart":{"properties":{"inlineData":{"anyOf":[{"$ref":"#/components/schemas/FunctionResponseBlob"},{"type":"null"}],"description":"Optional. Inline media bytes."},"fileData":{"anyOf":[{"$ref":"#/components/schemas/FunctionResponseFileData"},{"type":"null"}],"description":"Optional. URI based data."}},"additionalProperties":false,"type":"object","title":"FunctionResponsePart","description":"A datatype containing media that is part of a `FunctionResponse` message.\n\nA `FunctionResponsePart` consists of data which has an associated datatype. A\n`FunctionResponsePart` can only contain one of the accepted types in\n`FunctionResponsePart.data`.\n\nA `FunctionResponsePart` must have a fixed IANA MIME type identifying the\ntype and subtype of the media if the `inline_data` field is filled with raw\nbytes."},"FunctionResponseScheduling":{"type":"string","enum":["SCHEDULING_UNSPECIFIED","SILENT","WHEN_IDLE","INTERRUPT"],"title":"FunctionResponseScheduling","description":"Specifies how the response should be scheduled in the conversation."},"GoogleMaps":{"properties":{"authConfig":{"anyOf":[{"$ref":"#/components/schemas/AuthConfig"},{"type":"null"}],"description":"The authentication config to access the API. Only API key is supported. This field is not supported in Gemini API."},"enableWidget":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Enablewidget","description":"Optional. Whether to return a widget context token in the GroundingMetadata of the response. Developers can use the widget context token to render a Google Maps widget with geospatial context related to the places that the model references in the response."}},"additionalProperties":false,"type":"object","title":"GoogleMaps","description":"Tool to retrieve knowledge from Google Maps."},"GoogleSearch":{"properties":{"searchTypes":{"anyOf":[{"$ref":"#/components/schemas/SearchTypes"},{"type":"null"}],"description":"Optional. The set of search types to enable. If not set, web search is enabled by default."},"blockingConfidence":{"anyOf":[{"$ref":"#/components/schemas/PhishBlockThreshold"},{"type":"null"}],"description":"Optional. Sites with confidence level chosen & above this value will be blocked from the search results. This field is not supported in Gemini API."},"excludeDomains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Excludedomains","description":"Optional. List of domains to be excluded from the search results. The default limit is 2000 domains. Example: [\"amazon.com\", \"facebook.com\"]. This field is not supported in Gemini API."},"timeRangeFilter":{"anyOf":[{"$ref":"#/components/schemas/Interval"},{"type":"null"}],"description":"Optional. Filter search results to a specific time range. If customers set a start time, they must set an end time (and vice versa). This field is not supported in Vertex AI."}},"additionalProperties":false,"type":"object","title":"GoogleSearch","description":"GoogleSearch tool type.\n\nTool to support Google Search in Model. Powered by Google."},"GoogleSearchRetrieval":{"properties":{"dynamicRetrievalConfig":{"anyOf":[{"$ref":"#/components/schemas/DynamicRetrievalConfig"},{"type":"null"}],"description":"Specifies the dynamic retrieval configuration for the given source."}},"additionalProperties":false,"type":"object","title":"GoogleSearchRetrieval","description":"Tool to retrieve public web data for grounding, powered by Google."},"HTTPValidationError":{"properties":{"detail":{"items":{"$ref":"#/components/schemas/ValidationError"},"type":"array","title":"Detail"}},"type":"object","title":"HTTPValidationError"},"HttpElementLocation":{"type":"string","enum":["HTTP_IN_UNSPECIFIED","HTTP_IN_QUERY","HTTP_IN_HEADER","HTTP_IN_PATH","HTTP_IN_BODY","HTTP_IN_COOKIE"],"title":"HttpElementLocation","description":"The location of the API key. This enum is not supported in Gemini API."},"HttpRetryOptions":{"properties":{"attempts":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Attempts","description":"Maximum number of attempts, including the original request.\n      If 0 or 1, it means no retries. If not specified, default to 5."},"initialDelay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Initialdelay","description":"Initial delay before the first retry, in fractions of a second. If not specified, default to 1.0 second."},"maxDelay":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Maxdelay","description":"Maximum delay between retries, in fractions of a second. If not specified, default to 60.0 seconds."},"expBase":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Expbase","description":"Multiplier by which the delay increases after each attempt. If not specified, default to 2.0."},"jitter":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Jitter","description":"Randomness factor for the delay. If not specified, default to 1.0."},"httpStatusCodes":{"anyOf":[{"items":{"type":"integer"},"type":"array"},{"type":"null"}],"title":"Httpstatuscodes","description":"List of HTTP status codes that should trigger a retry.\n      If not specified, a default set of retryable codes (408, 429, and 5xx) may be used."}},"additionalProperties":false,"type":"object","title":"HttpRetryOptions","description":"HTTP retry options to be used in each of the requests."},"ImageData":{"properties":{"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url"},"b64_json":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"B64 Json"},"revised_prompt":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Revised Prompt"}},"type":"object","title":"ImageData","description":"单张图片数据"},"ImageGenerationRequest":{"properties":{"prompt":{"type":"string","title":"Prompt"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","default":"gpt-image-1"},"n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"N","default":1},"quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quality","default":"auto"},"response_format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Response Format","default":"b64_json"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size","default":"1024x1024"},"style":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Style"},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User"},"background":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Background","default":"auto"},"image":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Image"}},"type":"object","required":["prompt"],"title":"ImageGenerationRequest","description":"OpenAI 兼容的图片生成请求模型\n\n参考: https://platform.openai.com/docs/api-reference/images/create","examples":[{"model":"gpt-image-1","prompt":"一只穿着宇航服的猫","quality":"auto","size":"1024x1024"},{"image":["https://example.com/input.png"],"model":"gpt-image-1","prompt":"将图片背景替换为海滩","size":"1024x1024"}]},"ImageGenerationResponse":{"properties":{"created":{"type":"integer","title":"Created"},"data":{"items":{"$ref":"#/components/schemas/ImageData"},"type":"array","title":"Data"}},"type":"object","required":["created","data"],"title":"ImageGenerationResponse","description":"OpenAI 兼容的图片生成响应模型"},"ImageSearch":{"properties":{},"additionalProperties":false,"type":"object","title":"ImageSearch","description":"Image search for grounding and related configurations."},"InputSchemaTyped":{"properties":{"type":{"type":"string","const":"object","title":"Type"},"properties":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Properties"},"required":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Required"}},"additionalProperties":true,"type":"object","required":["type"],"title":"InputSchemaTyped","description":"[JSON schema](https://json-schema.org/draft/2020-12) for this tool's input.\n\nThis defines the shape of the `input` that your tool accepts and that the model will produce."},"Interval":{"properties":{"endTime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Endtime","description":"Optional. Exclusive end of the interval. If specified, a Timestamp matching this interval will have to be before the end."},"startTime":{"anyOf":[{"type":"string","format":"date-time"},{"type":"null"}],"title":"Starttime","description":"Optional. Inclusive start of the interval. If specified, a Timestamp matching this interval will have to be the same or after the start."}},"additionalProperties":false,"type":"object","title":"Interval","description":"Represents a time interval, encoded as a Timestamp start (inclusive) and a Timestamp end (exclusive).\n\nThe start must be less than or equal to the end. When the start equals the\nend, the interval is empty (matches no time). When both start and end are\nunspecified, the interval matches any time."},"Language":{"type":"string","enum":["LANGUAGE_UNSPECIFIED","PYTHON"],"title":"Language","description":"Programming language of the `code`."},"LatLng":{"properties":{"latitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Latitude","description":"The latitude in degrees. It must be in the range [-90.0, +90.0]."},"longitude":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Longitude","description":"The longitude in degrees. It must be in the range [-180.0, +180.0]"}},"additionalProperties":false,"type":"object","title":"LatLng","description":"An object that represents a latitude/longitude pair.\n\nThis is expressed as a pair of doubles to represent degrees latitude and\ndegrees longitude. Unless specified otherwise, this object must conform to the\n<a href=\"https://en.wikipedia.org/wiki/World_Geodetic_System#1984_version\">\nWGS84 standard</a>. Values must be within normalized ranges."},"McpServer":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"The name of the MCPServer."},"streamableHttpTransport":{"anyOf":[{"$ref":"#/components/schemas/StreamableHttpTransport"},{"type":"null"}],"description":"A transport that can stream HTTP requests and responses."}},"additionalProperties":false,"type":"object","title":"McpServer","description":"A MCPServer is a server that can be called by the model to perform actions.\n\nIt is a server that implements the MCP protocol. Next ID: 5. This data type is\nnot supported in Vertex AI."},"MemoryTool20250818Param":{"properties":{"name":{"type":"string","const":"memory","title":"Name"},"type":{"type":"string","const":"memory_20250818","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"input_examples":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Input Examples"},"strict":{"type":"boolean","title":"Strict"}},"type":"object","required":["name","type"],"title":"MemoryTool20250818Param"},"MetadataParam":{"properties":{"user_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User Id"}},"type":"object","title":"MetadataParam"},"Outcome":{"type":"string","enum":["OUTCOME_UNSPECIFIED","OUTCOME_OK","OUTCOME_FAILED","OUTCOME_DEADLINE_EXCEEDED"],"title":"Outcome","description":"Outcome of the code execution."},"Part":{"properties":{"mediaResolution":{"anyOf":[{"$ref":"#/components/schemas/PartMediaResolution"},{"type":"null"}],"description":"Media resolution for the input media.\n    "},"codeExecutionResult":{"anyOf":[{"$ref":"#/components/schemas/CodeExecutionResult"},{"type":"null"}],"description":"Optional. The result of executing the ExecutableCode."},"executableCode":{"anyOf":[{"$ref":"#/components/schemas/ExecutableCode"},{"type":"null"}],"description":"Optional. Code generated by the model that is intended to be executed."},"fileData":{"anyOf":[{"$ref":"#/components/schemas/FileData"},{"type":"null"}],"description":"Optional. The URI-based data of the part. This can be used to include files from Google Cloud Storage."},"functionCall":{"anyOf":[{"$ref":"#/components/schemas/FunctionCall"},{"type":"null"}],"description":"Optional. A predicted function call returned from the model. This contains the name of the function to call and the arguments to pass to the function."},"functionResponse":{"anyOf":[{"$ref":"#/components/schemas/FunctionResponse"},{"type":"null"}],"description":"Optional. The result of a function call. This is used to provide the model with the result of a function call that it predicted."},"inlineData":{"anyOf":[{"$ref":"#/components/schemas/Blob"},{"type":"null"}],"description":"Optional. The inline data content of the part. This can be used to include images, audio, or video in a request."},"text":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Text","description":"Optional. The text content of the part. When sent from the VSCode Gemini Code Assist extension, references to @mentioned items will be converted to markdown boldface text. For example `@my-repo` will be converted to and sent as `**my-repo**` by the IDE agent."},"thought":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Thought","description":"Optional. Indicates whether the `part` represents the model's thought process or reasoning."},"thoughtSignature":{"anyOf":[{"type":"string","format":"base64url"},{"type":"null"}],"title":"Thoughtsignature","description":"Optional. An opaque signature for the thought so it can be reused in subsequent requests."},"videoMetadata":{"anyOf":[{"$ref":"#/components/schemas/VideoMetadata"},{"type":"null"}],"description":"Optional. Video metadata. The metadata should only be specified while the video data is presented in inline_data or file_data."},"toolCall":{"anyOf":[{"$ref":"#/components/schemas/ToolCall"},{"type":"null"}],"description":"Server-side tool call. This field is populated when the model predicts a tool invocation that should be executed on the server. The client is expected to echo this message back to the API."},"toolResponse":{"anyOf":[{"$ref":"#/components/schemas/ToolResponse"},{"type":"null"}],"description":"The output from a server-side ToolCall execution. This field is populated by the client with the results of executing the corresponding ToolCall."},"partMetadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Partmetadata","description":"Custom metadata associated with the Part. Agents using genai.Part as content representation may need to keep track of the additional information. For example it can be name of a file/source from which the Part originates or a way to multiplex multiple Part streams. This field is not supported in Vertex AI."}},"additionalProperties":false,"type":"object","title":"Part","description":"A datatype containing media content.\n\nExactly one field within a Part should be set, representing the specific type\nof content being conveyed. Using multiple fields within the same `Part`\ninstance is considered invalid."},"PartMediaResolution":{"properties":{"level":{"anyOf":[{"$ref":"#/components/schemas/PartMediaResolutionLevel"},{"type":"null"}],"description":"The tokenization quality used for given media.\n    "},"numTokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Numtokens","description":"Specifies the required sequence length for media tokenization.\n    "}},"additionalProperties":false,"type":"object","title":"PartMediaResolution","description":"Media resolution for the input media."},"PartMediaResolutionLevel":{"type":"string","enum":["MEDIA_RESOLUTION_UNSPECIFIED","MEDIA_RESOLUTION_LOW","MEDIA_RESOLUTION_MEDIUM","MEDIA_RESOLUTION_HIGH","MEDIA_RESOLUTION_ULTRA_HIGH"],"title":"PartMediaResolutionLevel","description":"The tokenization quality used for given media."},"PartialArg":{"properties":{"boolValue":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Boolvalue","description":"Optional. Represents a boolean value."},"jsonPath":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Jsonpath","description":"Required. A JSON Path (RFC 9535) to the argument being streamed. https://datatracker.ietf.org/doc/html/rfc9535. e.g. \"$.foo.bar[0].data\"."},"nullValue":{"anyOf":[{"type":"string","const":"NULL_VALUE"},{"type":"null"}],"title":"Nullvalue","description":"Optional. Represents a null value."},"numberValue":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Numbervalue","description":"Optional. Represents a double value."},"stringValue":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Stringvalue","description":"Optional. Represents a string value."},"willContinue":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Willcontinue","description":"Optional. Whether this is not the last part of the same json_path. If true, another PartialArg message for the current json_path is expected to follow."}},"additionalProperties":false,"type":"object","title":"PartialArg","description":"Partial argument value of the function call.\n\nThis data type is not supported in Gemini API."},"PhishBlockThreshold":{"type":"string","enum":["PHISH_BLOCK_THRESHOLD_UNSPECIFIED","BLOCK_LOW_AND_ABOVE","BLOCK_MEDIUM_AND_ABOVE","BLOCK_HIGH_AND_ABOVE","BLOCK_HIGHER_AND_ABOVE","BLOCK_VERY_HIGH_AND_ABOVE","BLOCK_ONLY_EXTREMELY_HIGH"],"title":"PhishBlockThreshold","description":"Sites with confidence level chosen & above this value will be blocked from the search results.\n\nThis enum is not supported in Gemini API."},"PromptTokensDetails":{"properties":{"cached_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Cached Tokens","default":0},"audio_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Audio Tokens","default":0}},"type":"object","title":"PromptTokensDetails"},"RagRetrievalConfig":{"properties":{"filter":{"anyOf":[{"$ref":"#/components/schemas/RagRetrievalConfigFilter"},{"type":"null"}],"description":"Optional. Config for filters."},"hybridSearch":{"anyOf":[{"$ref":"#/components/schemas/RagRetrievalConfigHybridSearch"},{"type":"null"}],"description":"Optional. Config for Hybrid Search."},"ranking":{"anyOf":[{"$ref":"#/components/schemas/RagRetrievalConfigRanking"},{"type":"null"}],"description":"Optional. Config for ranking and reranking."},"topK":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Topk","description":"Optional. The number of contexts to retrieve."}},"additionalProperties":false,"type":"object","title":"RagRetrievalConfig","description":"Specifies the context retrieval config.\n\nThis data type is not supported in Gemini API."},"RagRetrievalConfigFilter":{"properties":{"metadataFilter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Metadatafilter","description":"Optional. String for metadata filtering."},"vectorDistanceThreshold":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vectordistancethreshold","description":"Optional. Only returns contexts with vector distance smaller than the threshold."},"vectorSimilarityThreshold":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vectorsimilaritythreshold","description":"Optional. Only returns contexts with vector similarity larger than the threshold."}},"additionalProperties":false,"type":"object","title":"RagRetrievalConfigFilter","description":"Config for filters. This data type is not supported in Gemini API."},"RagRetrievalConfigHybridSearch":{"properties":{"alpha":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Alpha","description":"Optional. Alpha value controls the weight between dense and sparse vector search results. The range is [0, 1], while 0 means sparse vector search only and 1 means dense vector search only. The default value is 0.5 which balances sparse and dense vector search equally."}},"additionalProperties":false,"type":"object","title":"RagRetrievalConfigHybridSearch","description":"Config for Hybrid Search. This data type is not supported in Gemini API."},"RagRetrievalConfigRanking":{"properties":{"llmRanker":{"anyOf":[{"$ref":"#/components/schemas/RagRetrievalConfigRankingLlmRanker"},{"type":"null"}],"description":"Optional. Config for LlmRanker."},"rankService":{"anyOf":[{"$ref":"#/components/schemas/RagRetrievalConfigRankingRankService"},{"type":"null"}],"description":"Optional. Config for Rank Service."}},"additionalProperties":false,"type":"object","title":"RagRetrievalConfigRanking","description":"Config for ranking and reranking.\n\nThis data type is not supported in Gemini API."},"RagRetrievalConfigRankingLlmRanker":{"properties":{"modelName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modelname","description":"Optional. The model name used for ranking. See [Supported models](https://cloud.google.com/vertex-ai/generative-ai/docs/model-reference/inference#supported-models)."}},"additionalProperties":false,"type":"object","title":"RagRetrievalConfigRankingLlmRanker","description":"Config for LlmRanker. This data type is not supported in Gemini API."},"RagRetrievalConfigRankingRankService":{"properties":{"modelName":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Modelname","description":"Optional. The model name of the rank service. Format: `semantic-ranker-512@latest`"}},"additionalProperties":false,"type":"object","title":"RagRetrievalConfigRankingRankService","description":"Config for Rank Service. This data type is not supported in Gemini API."},"ResourceScope":{"type":"string","enum":["COLLECTION"],"title":"ResourceScope","description":"Resource scope."},"ResponseBody":{"properties":{"response":{"type":"string","title":"Response","description":"输出的内容"},"reasoning_content":{"type":"string","title":"Reasoning Content","description":"思考过程"},"search_content":{"type":"string","title":"Search Content","description":"搜索内容"},"model":{"type":"string","title":"Model","description":"实际的模型名称"},"history":{"items":{"items":{"type":"string"},"type":"array"},"type":"array","title":"History","description":"历史记录"},"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id","description":"记录id"},"rid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Rid","description":"响应id"},"sessionid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sessionid","description":"会话id"},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User","description":"用户id"},"nick":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nick","description":"用户昵称"},"complete":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Complete","description":"完成状态","default":0},"usage":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Usage","description":"使用情况"},"error_code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Code","description":"错误代码"},"error_message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Error Message","description":"错误信息"},"valid_json":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Valid Json","description":"json数据"}},"additionalProperties":true,"type":"object","title":"ResponseBody"},"Retrieval":{"properties":{"disableAttribution":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Disableattribution","description":"Optional. Deprecated. This option is no longer supported."},"externalApi":{"anyOf":[{"$ref":"#/components/schemas/ExternalApi"},{"type":"null"}],"description":"Use data source powered by external API for grounding."},"vertexAiSearch":{"anyOf":[{"$ref":"#/components/schemas/VertexAISearch"},{"type":"null"}],"description":"Set to use data source powered by Vertex AI Search."},"vertexRagStore":{"anyOf":[{"$ref":"#/components/schemas/VertexRagStore"},{"type":"null"}],"description":"Set to use data source powered by Vertex RAG store. User data is uploaded via the VertexRagDataService."}},"additionalProperties":false,"type":"object","title":"Retrieval","description":"Defines a retrieval tool that model can call to access external knowledge.\n\nThis data type is not supported in Gemini API."},"RetrievalConfig":{"properties":{"latLng":{"anyOf":[{"$ref":"#/components/schemas/LatLng"},{"type":"null"}],"description":"Optional. The location of the user."},"languageCode":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Languagecode","description":"The language code of the user."}},"additionalProperties":false,"type":"object","title":"RetrievalConfig","description":"Retrieval config."},"Schema":{"properties":{"additionalProperties":{"anyOf":[{},{"type":"null"}],"title":"Additionalproperties","description":"Optional. Can either be a boolean or an object; controls the presence of additional properties."},"defs":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Schema"},"type":"object"},{"type":"null"}],"title":"Defs","description":"Optional. A map of definitions for use by `ref` Only allowed at the root of the schema."},"ref":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ref","description":"Optional. Allows indirect references between schema nodes. The value should be a valid reference to a child of the root `defs`. For example, the following schema defines a reference to a schema node named \"Pet\": type: object properties: pet: ref: #/defs/Pet defs: Pet: type: object properties: name: type: string The value of the \"pet\" property is a reference to the schema node named \"Pet\". See details in https://json-schema.org/understanding-json-schema/structuring"},"anyOf":{"anyOf":[{"items":{"$ref":"#/components/schemas/Schema"},"type":"array"},{"type":"null"}],"title":"Anyof","description":"Optional. The instance must be valid against any (one or more) of the subschemas listed in `any_of`."},"default":{"anyOf":[{},{"type":"null"}],"title":"Default","description":"Optional. Default value to use if the field is not specified."},"description":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Description","description":"Optional. Describes the data. The model uses this field to understand the purpose of the schema and how to use it. It is a best practice to provide a clear and descriptive explanation for the schema and its properties here, rather than in the prompt."},"enum":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Enum","description":"Optional. Possible values of the field. This field can be used to restrict a value to a fixed set of values. To mark a field as an enum, set `format` to `enum` and provide the list of possible values in `enum`. For example: 1. To define directions: `{type:STRING, format:enum, enum:[\"EAST\", \"NORTH\", \"SOUTH\", \"WEST\"]}` 2. To define apartment numbers: `{type:INTEGER, format:enum, enum:[\"101\", \"201\", \"301\"]}`"},"example":{"anyOf":[{},{"type":"null"}],"title":"Example","description":"Optional. Example of an instance of this schema."},"format":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Format","description":"Optional. The format of the data. For `NUMBER` type, format can be `float` or `double`. For `INTEGER` type, format can be `int32` or `int64`. For `STRING` type, format can be `email`, `byte`, `date`, `date-time`, `password`, and other formats to further refine the data type."},"items":{"anyOf":[{"$ref":"#/components/schemas/Schema"},{"type":"null"}],"description":"Optional. If type is `ARRAY`, `items` specifies the schema of elements in the array."},"maxItems":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maxitems","description":"Optional. If type is `ARRAY`, `max_items` specifies the maximum number of items in an array."},"maxLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maxlength","description":"Optional. If type is `STRING`, `max_length` specifies the maximum length of the string."},"maxProperties":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maxproperties","description":"Optional. If type is `OBJECT`, `max_properties` specifies the maximum number of properties that can be provided."},"maximum":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Maximum","description":"Optional. If type is `INTEGER` or `NUMBER`, `maximum` specifies the maximum allowed value."},"minItems":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minitems","description":"Optional. If type is `ARRAY`, `min_items` specifies the minimum number of items in an array."},"minLength":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minlength","description":"Optional. If type is `STRING`, `min_length` specifies the minimum length of the string."},"minProperties":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Minproperties","description":"Optional. If type is `OBJECT`, `min_properties` specifies the minimum number of properties that can be provided."},"minimum":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Minimum","description":"Optional. If type is `INTEGER` or `NUMBER`, `minimum` specifies the minimum allowed value."},"nullable":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Nullable","description":"Optional. Indicates if the value of this field can be null."},"pattern":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Pattern","description":"Optional. If type is `STRING`, `pattern` specifies a regular expression that the string must match."},"properties":{"anyOf":[{"additionalProperties":{"$ref":"#/components/schemas/Schema"},"type":"object"},{"type":"null"}],"title":"Properties","description":"Optional. If type is `OBJECT`, `properties` is a map of property names to schema definitions for each property of the object."},"propertyOrdering":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Propertyordering","description":"Optional. Order of properties displayed or used where order matters. This is not a standard field in OpenAPI specification, but can be used to control the order of properties."},"required":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Required","description":"Optional. If type is `OBJECT`, `required` lists the names of properties that must be present."},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"Optional. Title for the schema."},"type":{"anyOf":[{"$ref":"#/components/schemas/Type"},{"type":"null"}],"description":"Optional. Data type of the schema field."}},"additionalProperties":false,"type":"object","title":"Schema","description":"Schema is used to define the format of input/output data.\n\nRepresents a select subset of an [OpenAPI 3.0 schema\nobject](https://spec.openapis.org/oas/v3.0.3#schema-object). More fields may\nbe added in the future as needed."},"SearchTypes":{"properties":{"webSearch":{"anyOf":[{"$ref":"#/components/schemas/WebSearch"},{"type":"null"}],"description":"Optional. Setting this field enables web search. Only text results are returned."},"imageSearch":{"anyOf":[{"$ref":"#/components/schemas/ImageSearch"},{"type":"null"}],"description":"Optional. Setting this field enables image search. Image bytes are returned."}},"additionalProperties":false,"type":"object","title":"SearchTypes","description":"Different types of search that can be enabled on the GoogleSearch tool."},"StreamableHttpTransport":{"properties":{"headers":{"anyOf":[{"additionalProperties":{"type":"string"},"type":"object"},{"type":"null"}],"title":"Headers","description":"Optional: Fields for authentication headers, timeouts, etc., if needed."},"sseReadTimeout":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ssereadtimeout","description":"Timeout for SSE read operations."},"terminateOnClose":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Terminateonclose","description":"Whether to close the client session when the transport closes."},"timeout":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timeout","description":"HTTP timeout for regular operations."},"url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Url","description":"The full URL for the MCPServer endpoint. Example: \"https://api.example.com/mcp\"."}},"additionalProperties":false,"type":"object","title":"StreamableHttpTransport","description":"A transport that can stream HTTP requests and responses.\n\nNext ID: 6. This data type is not supported in Vertex AI."},"Tool":{"properties":{"retrieval":{"anyOf":[{"$ref":"#/components/schemas/Retrieval"},{"type":"null"}],"description":"Optional. Retrieval tool type. System will always execute the provided retrieval tool(s) to get external knowledge to answer the prompt. Retrieval results are presented to the model for generation. This field is not supported in Gemini API."},"computerUse":{"anyOf":[{"$ref":"#/components/schemas/ComputerUse"},{"type":"null"}],"description":"Optional. Tool to support the model interacting directly with the\n      computer. If enabled, it automatically populates computer-use specific\n      Function Declarations."},"fileSearch":{"anyOf":[{"$ref":"#/components/schemas/FileSearch"},{"type":"null"}],"description":"Optional. FileSearch tool type. Tool to retrieve knowledge from Semantic Retrieval corpora. This field is not supported in Vertex AI."},"googleSearch":{"anyOf":[{"$ref":"#/components/schemas/GoogleSearch"},{"type":"null"}],"description":"Optional. GoogleSearch tool type. Tool to support Google Search in Model. Powered by Google."},"googleMaps":{"anyOf":[{"$ref":"#/components/schemas/GoogleMaps"},{"type":"null"}],"description":"Optional. Tool that allows grounding the model's response with\n      geospatial context related to the user's query."},"codeExecution":{"anyOf":[{"$ref":"#/components/schemas/ToolCodeExecution"},{"type":"null"}],"description":"Optional. CodeExecution tool type. Enables the model to execute code as part of generation."},"enterpriseWebSearch":{"anyOf":[{"$ref":"#/components/schemas/EnterpriseWebSearch"},{"type":"null"}],"description":"Optional. Tool to support searching public web data, powered by Vertex AI Search and Sec4 compliance. This field is not supported in Gemini API."},"functionDeclarations":{"anyOf":[{"items":{"$ref":"#/components/schemas/FunctionDeclaration"},"type":"array"},{"type":"null"}],"title":"Functiondeclarations","description":"Optional. Function tool type. One or more function declarations to be passed to the model along with the current user query. Model may decide to call a subset of these functions by populating FunctionCall in the response. User should provide a FunctionResponse for each function call in the next turn. Based on the function responses, Model will generate the final response back to the user. Maximum 512 function declarations can be provided."},"googleSearchRetrieval":{"anyOf":[{"$ref":"#/components/schemas/GoogleSearchRetrieval"},{"type":"null"}],"description":"Optional. Specialized retrieval tool that is powered by Google Search."},"parallelAiSearch":{"anyOf":[{"$ref":"#/components/schemas/ToolParallelAiSearch"},{"type":"null"}],"description":"Optional. If specified, Vertex AI will use Parallel.ai to search for information to answer user queries. The search results will be grounded on Parallel.ai and presented to the model for response generation. This field is not supported in Gemini API."},"urlContext":{"anyOf":[{"$ref":"#/components/schemas/UrlContext"},{"type":"null"}],"description":"Optional. Tool to support URL context retrieval."},"mcpServers":{"anyOf":[{"items":{"$ref":"#/components/schemas/McpServer"},"type":"array"},{"type":"null"}],"title":"Mcpservers","description":"Optional. MCP Servers to connect to. This field is not supported in Vertex AI."}},"additionalProperties":false,"type":"object","title":"Tool","description":"Tool details of a tool that the model may use to generate a response."},"ToolBash20250124Param":{"properties":{"name":{"type":"string","const":"bash","title":"Name"},"type":{"type":"string","const":"bash_20250124","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"input_examples":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Input Examples"},"strict":{"type":"boolean","title":"Strict"}},"type":"object","required":["name","type"],"title":"ToolBash20250124Param"},"ToolCall":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"Unique identifier of the tool call. The server returns the tool response with the matching `id`."},"toolType":{"anyOf":[{"$ref":"#/components/schemas/ToolType"},{"type":"null"}],"description":"The type of tool that was called."},"args":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Args","description":"The tool call arguments. Example: {\"arg1\": \"value1\", \"arg2\": \"value2\"}."}},"additionalProperties":false,"type":"object","title":"ToolCall","description":"A predicted server-side `ToolCall` returned from the model.\n\nThis message contains information about a tool that the model wants to invoke.\nThe client is NOT expected to execute this `ToolCall`. Instead, the\nclient should pass this `ToolCall` back to the API in a subsequent turn\nwithin a `Content` message, along with the corresponding `ToolResponse`."},"ToolChoiceAnyParam":{"properties":{"type":{"type":"string","const":"any","title":"Type"},"disable_parallel_tool_use":{"type":"boolean","title":"Disable Parallel Tool Use"}},"type":"object","required":["type"],"title":"ToolChoiceAnyParam","description":"The model will use any available tools."},"ToolChoiceAutoParam":{"properties":{"type":{"type":"string","const":"auto","title":"Type"},"disable_parallel_tool_use":{"type":"boolean","title":"Disable Parallel Tool Use"}},"type":"object","required":["type"],"title":"ToolChoiceAutoParam","description":"The model will automatically decide whether to use tools."},"ToolChoiceNoneParam":{"properties":{"type":{"type":"string","const":"none","title":"Type"}},"type":"object","required":["type"],"title":"ToolChoiceNoneParam","description":"The model will not be allowed to use tools."},"ToolChoiceToolParam":{"properties":{"name":{"type":"string","title":"Name"},"type":{"type":"string","const":"tool","title":"Type"},"disable_parallel_tool_use":{"type":"boolean","title":"Disable Parallel Tool Use"}},"type":"object","required":["name","type"],"title":"ToolChoiceToolParam","description":"The model will use the specified tool with `tool_choice.name`."},"ToolCodeExecution":{"properties":{},"additionalProperties":false,"type":"object","title":"ToolCodeExecution","description":"Tool that executes code generated by the model, and automatically returns the result to the model.\n\nSee also [ExecutableCode]and [CodeExecutionResult] which are input and output\nto this tool. This data type is not supported in Gemini API."},"ToolConfig":{"properties":{"retrievalConfig":{"anyOf":[{"$ref":"#/components/schemas/RetrievalConfig"},{"type":"null"}],"description":"Optional. Retrieval config."},"functionCallingConfig":{"anyOf":[{"$ref":"#/components/schemas/FunctionCallingConfig"},{"type":"null"}],"description":"Optional. Function calling config."},"includeServerSideToolInvocations":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Includeserversidetoolinvocations","description":"If true, the API response will include the server-side tool calls and responses within the `Content` message. This allows clients to observe the server's tool invocations."}},"additionalProperties":false,"type":"object","title":"ToolConfig","description":"Tool config.\n\nThis config is shared for all tools provided in the request."},"ToolParallelAiSearch":{"properties":{"apiKey":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Apikey","description":"Optional. The API key for ParallelAiSearch. If an API key is not provided, the system will attempt to verify access by checking for an active Parallel.ai subscription through the Google Cloud Marketplace. See https://docs.parallel.ai/search/search-quickstart for more details."},"customConfigs":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Customconfigs","description":"Optional. Custom configs for ParallelAiSearch. This field can be used to pass any parameter from the Parallel.ai Search API. See the Parallel.ai documentation for the full list of available parameters and their usage: https://docs.parallel.ai/api-reference/search-beta/search Currently only `source_policy`, `excerpts`, `max_results`, `mode`, `fetch_policy` can be set via this field. For example: { \"source_policy\": { \"include_domains\": [\"google.com\", \"wikipedia.org\"], \"exclude_domains\": [\"example.com\"] }, \"fetch_policy\": { \"max_age_seconds\": 3600 } }"}},"additionalProperties":false,"type":"object","title":"ToolParallelAiSearch","description":"ParallelAiSearch tool type.\n\nA tool that uses the Parallel.ai search engine for grounding. This data type\nis not supported in Gemini API."},"ToolParam":{"properties":{"input_schema":{"anyOf":[{"$ref":"#/components/schemas/InputSchemaTyped"},{"additionalProperties":true,"type":"object"}],"title":"Input Schema"},"name":{"type":"string","title":"Name"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"description":{"type":"string","title":"Description"},"eager_input_streaming":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Eager Input Streaming"},"input_examples":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Input Examples"},"strict":{"type":"boolean","title":"Strict"},"type":{"anyOf":[{"type":"string","const":"custom"},{"type":"null"}],"title":"Type"}},"type":"object","required":["input_schema","name"],"title":"ToolParam"},"ToolResponse":{"properties":{"id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Id","description":"The identifier of the tool call this response is for."},"toolType":{"anyOf":[{"$ref":"#/components/schemas/ToolType"},{"type":"null"}],"description":"The type of tool that was called, matching the tool_type in the corresponding ToolCall."},"response":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response","description":"The tool response."}},"additionalProperties":false,"type":"object","title":"ToolResponse","description":"The output from a server-side `ToolCall` execution.\n\nThis message contains the results of a tool invocation that was initiated by a\n`ToolCall` from the model. The client should pass this `ToolResponse` back to\nthe API in a subsequent turn within a `Content` message, along with the\ncorresponding `ToolCall`."},"ToolSearchToolBm25_20251119Param":{"properties":{"name":{"type":"string","const":"tool_search_tool_bm25","title":"Name"},"type":{"type":"string","enum":["tool_search_tool_bm25_20251119","tool_search_tool_bm25"],"title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"strict":{"type":"boolean","title":"Strict"}},"type":"object","required":["name","type"],"title":"ToolSearchToolBm25_20251119Param"},"ToolSearchToolRegex20251119Param":{"properties":{"name":{"type":"string","const":"tool_search_tool_regex","title":"Name"},"type":{"type":"string","enum":["tool_search_tool_regex_20251119","tool_search_tool_regex"],"title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"strict":{"type":"boolean","title":"Strict"}},"type":"object","required":["name","type"],"title":"ToolSearchToolRegex20251119Param"},"ToolTextEditor20250124Param":{"properties":{"name":{"type":"string","const":"str_replace_editor","title":"Name"},"type":{"type":"string","const":"text_editor_20250124","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"input_examples":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Input Examples"},"strict":{"type":"boolean","title":"Strict"}},"type":"object","required":["name","type"],"title":"ToolTextEditor20250124Param"},"ToolTextEditor20250429Param":{"properties":{"name":{"type":"string","const":"str_replace_based_edit_tool","title":"Name"},"type":{"type":"string","const":"text_editor_20250429","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"input_examples":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Input Examples"},"strict":{"type":"boolean","title":"Strict"}},"type":"object","required":["name","type"],"title":"ToolTextEditor20250429Param"},"ToolTextEditor20250728Param":{"properties":{"name":{"type":"string","const":"str_replace_based_edit_tool","title":"Name"},"type":{"type":"string","const":"text_editor_20250728","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"input_examples":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Input Examples"},"max_characters":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Characters"},"strict":{"type":"boolean","title":"Strict"}},"type":"object","required":["name","type"],"title":"ToolTextEditor20250728Param"},"ToolType":{"type":"string","enum":["TOOL_TYPE_UNSPECIFIED","GOOGLE_SEARCH_WEB","GOOGLE_SEARCH_IMAGE","URL_CONTEXT","GOOGLE_MAPS","FILE_SEARCH"],"title":"ToolType","description":"The type of tool in the function call."},"Type":{"type":"string","enum":["TYPE_UNSPECIFIED","STRING","NUMBER","INTEGER","BOOLEAN","ARRAY","OBJECT","NULL"],"title":"Type","description":"Data type of the schema field."},"UrlContext":{"properties":{},"additionalProperties":false,"type":"object","title":"UrlContext","description":"Tool to support URL context."},"Usage":{"properties":{"prompt_tokens":{"type":"integer","title":"Prompt Tokens"},"completion_tokens":{"type":"integer","title":"Completion Tokens"},"total_tokens":{"type":"integer","title":"Total Tokens"},"prompt_tokens_details":{"anyOf":[{"$ref":"#/components/schemas/PromptTokensDetails"},{"type":"null"}]},"completion_tokens_details":{"anyOf":[{"$ref":"#/components/schemas/CompletionTokensDetails"},{"type":"null"}]},"prompt_cache_hit_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prompt Cache Hit Tokens","default":0},"prompt_cache_miss_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Prompt Cache Miss Tokens","default":0}},"type":"object","required":["prompt_tokens","completion_tokens","total_tokens"],"title":"Usage"},"UserLocationParam":{"properties":{"type":{"type":"string","const":"approximate","title":"Type"},"city":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"City"},"country":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Country"},"region":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Region"},"timezone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Timezone"}},"type":"object","required":["type"],"title":"UserLocationParam"},"ValidationError":{"properties":{"loc":{"items":{"anyOf":[{"type":"string"},{"type":"integer"}]},"type":"array","title":"Location"},"msg":{"type":"string","title":"Message"},"type":{"type":"string","title":"Error Type"}},"type":"object","required":["loc","msg","type"],"title":"ValidationError"},"VertexAISearch":{"properties":{"dataStoreSpecs":{"anyOf":[{"items":{"$ref":"#/components/schemas/VertexAISearchDataStoreSpec"},"type":"array"},{"type":"null"}],"title":"Datastorespecs","description":"Specifications that define the specific DataStores to be searched, along with configurations for those data stores. This is only considered for Engines with multiple data stores. It should only be set if engine is used."},"datastore":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datastore","description":"Optional. Fully-qualified Vertex AI Search data store resource ID. Format: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}`"},"engine":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Engine","description":"Optional. Fully-qualified Vertex AI Search engine resource ID. Format: `projects/{project}/locations/{location}/collections/{collection}/engines/{engine}`"},"filter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter","description":"Optional. Filter strings to be passed to the search API."},"maxResults":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Maxresults","description":"Optional. Number of search results to return per query. The default value is 10. The maximumm allowed value is 10."}},"additionalProperties":false,"type":"object","title":"VertexAISearch","description":"Retrieve from Vertex AI Search datastore or engine for grounding.\n\ndatastore and engine are mutually exclusive. See\nhttps://cloud.google.com/products/agent-builder. This data type is not\nsupported in Gemini API."},"VertexAISearchDataStoreSpec":{"properties":{"dataStore":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Datastore","description":"Full resource name of DataStore, such as Format: `projects/{project}/locations/{location}/collections/{collection}/dataStores/{dataStore}`"},"filter":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Filter","description":"Optional. Filter specification to filter documents in the data store specified by data_store field. For more information on filtering, see [Filtering](https://cloud.google.com/generative-ai-app-builder/docs/filter-search-metadata)"}},"additionalProperties":false,"type":"object","title":"VertexAISearchDataStoreSpec","description":"Define data stores within engine to filter on in a search call and configurations for those data stores.\n\nFor more information, see\nhttps://cloud.google.com/generative-ai-app-builder/docs/reference/rpc/google.cloud.discoveryengine.v1#datastorespec.\nThis data type is not supported in Gemini API."},"VertexRagStore":{"properties":{"ragCorpora":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ragcorpora","description":"Optional. Deprecated. Please use rag_resources instead."},"ragResources":{"anyOf":[{"items":{"$ref":"#/components/schemas/VertexRagStoreRagResource"},"type":"array"},{"type":"null"}],"title":"Ragresources","description":"Optional. The representation of the rag source. It can be used to specify corpus only or ragfiles. Currently only support one corpus or multiple files from one corpus. In the future we may open up multiple corpora support."},"ragRetrievalConfig":{"anyOf":[{"$ref":"#/components/schemas/RagRetrievalConfig"},{"type":"null"}],"description":"Optional. The retrieval config for the Rag query."},"similarityTopK":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Similaritytopk","description":"Optional. Number of top k results to return from the selected corpora."},"storeContext":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Storecontext","description":"Optional. Currently only supported for Gemini Multimodal Live API. In Gemini Multimodal Live API, if `store_context` bool is specified, Gemini will leverage it to automatically memorize the interactions between the client and Gemini, and retrieve context when needed to augment the response generation for users' ongoing and future interactions."},"vectorDistanceThreshold":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Vectordistancethreshold","description":"Optional. Only return results with vector distance smaller than the threshold."}},"additionalProperties":false,"type":"object","title":"VertexRagStore","description":"Retrieve from Vertex RAG Store for grounding.\n\nThis data type is not supported in Gemini API."},"VertexRagStoreRagResource":{"properties":{"ragCorpus":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Ragcorpus","description":"Optional. RagCorpora resource name. Format: `projects/{project}/locations/{location}/ragCorpora/{rag_corpus}`"},"ragFileIds":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Ragfileids","description":"Optional. rag_file_id. The files should be in the same rag_corpus set in rag_corpus field."}},"additionalProperties":false,"type":"object","title":"VertexRagStoreRagResource","description":"The definition of the Rag resource.\n\nThis data type is not supported in Gemini API."},"VideoJob":{"properties":{"id":{"type":"string","title":"Id"},"object":{"type":"string","title":"Object","default":"video"},"model":{"type":"string","title":"Model"},"status":{"type":"string","title":"Status"},"progress":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Progress"},"prompt":{"type":"string","title":"Prompt"},"seconds":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Seconds"},"size":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Size"},"created_at":{"type":"integer","title":"Created At"},"completed_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Completed At"},"expires_at":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Expires At"},"error":{"anyOf":[{"$ref":"#/components/schemas/VideoJobError"},{"type":"null"}]},"video_url":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video Url"},"video_b64":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Video B64"},"vendor_task_id":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Task Id"},"vendor_provider":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Vendor Provider"}},"type":"object","required":["id","model","status","prompt","created_at"],"title":"VideoJob","description":"OpenAI 兼容的视频任务对象\n\n参考: https://platform.openai.com/docs/api-reference/videos/object"},"VideoJobError":{"properties":{"code":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Code"},"message":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Message"}},"type":"object","title":"VideoJobError","description":"视频生成错误信息"},"VideoMetadata":{"properties":{"endOffset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Endoffset","description":"Optional. The end offset of the video."},"fps":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Fps","description":"Optional. The frame rate of the video sent to the model. If not specified, the default value is 1.0. The valid range is (0.0, 24.0]."},"startOffset":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Startoffset","description":"Optional. The start offset of the video."}},"additionalProperties":false,"type":"object","title":"VideoMetadata","description":"Provides metadata for a video, including the start and end offsets for clipping and the frame rate."},"WebFetchTool20250910Param":{"properties":{"name":{"type":"string","const":"web_fetch","title":"Name"},"type":{"type":"string","const":"web_fetch_20250910","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"allowed_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Domains"},"blocked_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Blocked Domains"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"citations":{"anyOf":[{"$ref":"#/components/schemas/CitationsConfigParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"max_content_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Content Tokens"},"max_uses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Uses"},"strict":{"type":"boolean","title":"Strict"}},"type":"object","required":["name","type"],"title":"WebFetchTool20250910Param"},"WebFetchTool20260209Param":{"properties":{"name":{"type":"string","const":"web_fetch","title":"Name"},"type":{"type":"string","const":"web_fetch_20260209","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"allowed_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Domains"},"blocked_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Blocked Domains"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"citations":{"anyOf":[{"$ref":"#/components/schemas/CitationsConfigParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"max_content_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Content Tokens"},"max_uses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Uses"},"strict":{"type":"boolean","title":"Strict"}},"type":"object","required":["name","type"],"title":"WebFetchTool20260209Param"},"WebFetchTool20260309Param":{"properties":{"name":{"type":"string","const":"web_fetch","title":"Name"},"type":{"type":"string","const":"web_fetch_20260309","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"allowed_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Domains"},"blocked_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Blocked Domains"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"citations":{"anyOf":[{"$ref":"#/components/schemas/CitationsConfigParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"max_content_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Content Tokens"},"max_uses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Uses"},"strict":{"type":"boolean","title":"Strict"},"use_cache":{"type":"boolean","title":"Use Cache"}},"type":"object","required":["name","type"],"title":"WebFetchTool20260309Param","description":"Web fetch tool with use_cache parameter for bypassing cached content."},"WebSearch":{"properties":{},"additionalProperties":false,"type":"object","title":"WebSearch","description":"Standard web search for grounding and related configurations.\n\nOnly text results are returned."},"WebSearchTool20250305Param":{"properties":{"name":{"type":"string","const":"web_search","title":"Name"},"type":{"type":"string","const":"web_search_20250305","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"allowed_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Domains"},"blocked_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Blocked Domains"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"max_uses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Uses"},"strict":{"type":"boolean","title":"Strict"},"user_location":{"anyOf":[{"$ref":"#/components/schemas/UserLocationParam"},{"type":"null"}]}},"type":"object","required":["name","type"],"title":"WebSearchTool20250305Param"},"WebSearchTool20260209Param":{"properties":{"name":{"type":"string","const":"web_search","title":"Name"},"type":{"type":"string","const":"web_search_20260209","title":"Type"},"allowed_callers":{"items":{"type":"string","enum":["direct","code_execution_20250825","code_execution_20260120"]},"type":"array","title":"Allowed Callers"},"allowed_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Allowed Domains"},"blocked_domains":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Blocked Domains"},"cache_control":{"anyOf":[{"$ref":"#/components/schemas/CacheControlEphemeralParam"},{"type":"null"}]},"defer_loading":{"type":"boolean","title":"Defer Loading"},"max_uses":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Uses"},"strict":{"type":"boolean","title":"Strict"},"user_location":{"anyOf":[{"$ref":"#/components/schemas/UserLocationParam"},{"type":"null"}]}},"type":"object","required":["name","type"],"title":"WebSearchTool20260209Param"},"api__ai__ChatRequest":{"properties":{"name":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Name","description":"Agent的呢称，比如：妙妙"},"model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Model","description":"大模型名称，查看支持的模型，请调用接口：v1/models","examples":["doubao-seed-1-6","tongyi3","gpt-4.1-mini"]},"baseinfo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Baseinfo","description":"智能体的系统定义，让机器人大概有一些基础的记忆，回答更自然，比如当前游戏或主体公司的简要介绍，包括官网客服电话等","default":""},"input":{"type":"string","title":"Input","description":"用户输入的内容","default":""},"examples":{"anyOf":[{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},{"type":"null"}],"title":"Examples","description":"交谈范例，提供该内容AI会参考此风格进行回复,原理是加入到历史对说记录前：[[\"用户输入\",\"机器人回复\"]]"},"sessionid":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sessionid","description":"会话ID透传，多轮对话时建议提供，方便区分上下文历史，和统计会话的token用量"},"history":{"anyOf":[{"items":{"items":{"type":"string"},"type":"array"},"type":"array"},{"type":"null"}],"title":"History","description":"历史对说记录，格式：[[\"用户输入\",\"机器人回复\"]]"},"stream":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Stream","description":"流式开关，默认非流式返回","default":false},"show_history":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Show History","default":true},"short_style":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Short Style","description":"说话风格，比如：请以鲁迅的风格回复"},"sorryinfo":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sorryinfo","description":"抱歉的内容，比如：很抱歉，我还没有这方面的知识库。"},"search":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Search","description":"知识库内容，可以通过向量搜索到相关知识库，如果知识库小于32K，可以全部输入，知识库请以````````"},"files":{"anyOf":[{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"Files","description":"知识库文件，JSON格式：[{\"file_name\":\"文件名\",\"file_type\":\"文件类型\",\"file_content\":\"文件内容\"}]"},"title":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Title","description":"知识库标题"},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature","description":"随机程度,0.1-1，在各种模块的设定中会有不同的多样性结果，默认不用传值。"},"id":{"anyOf":[{"type":"string"},{"type":"integer"},{"type":"null"}],"title":"Id","description":"消息ID，用于消息去重和流式定位追加"},"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens","description":"控制输出内容单词个字，要精简就设置300左右，在生成长内容建议按模型能力设置，比如12000。","default":1024},"lang":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Lang","description":"强制控制对话语言，如果不控制将按用户输入语言回复"},"response_format":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Response Format","description":"输出JSON格式时可以指定，比如：{\"type\": \"json_object\"}，但有的模型可能不支持，建议在system提示中包含大写“JSON”的字符，以及json字段的例子"},"image_urls":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Image Urls","description":"图像的理解，输入url数组列表,格式：[\"：[\"https:www.q1.com/xxx.jpg\"]"},"extra_body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Body","description":"扩展参考，详情联系开发人员"},"online":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Online","description":"联网思考，0关,1-联网，2-联网思考，4-联网搜索 8-语雀搜索 12-联网搜索和语雀搜索，其中联网思考与模型能力有关","default":0},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User","description":"用户信息唯一标识，建议填userid，以记录用户的token用量"},"nick":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Nick","description":"用户昵称,让大模型更友好地称呼用户"},"zone":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Zone","description":"用户时区，用于时区转换，如：Asia/Shanghai或+8:00"},"issd":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Issd","description":"1绘画模式","default":0}},"additionalProperties":true,"type":"object","title":"ChatRequest"},"api__claude_client__ChatRequest":{"properties":{"max_tokens":{"type":"integer","title":"Max Tokens"},"messages":{"items":{"additionalProperties":true,"type":"object"},"type":"array","title":"Messages"},"model":{"anyOf":[{"type":"string","enum":["claude-opus-4-6","claude-sonnet-4-6","claude-haiku-4-5","claude-haiku-4-5-20251001","claude-opus-4-5","claude-opus-4-5-20251101","claude-sonnet-4-5","claude-sonnet-4-5-20250929","claude-opus-4-1","claude-opus-4-1-20250805","claude-opus-4-0","claude-opus-4-20250514","claude-sonnet-4-0","claude-sonnet-4-20250514","claude-3-haiku-20240307"]},{"type":"string"}],"title":"Model"},"metadata":{"anyOf":[{"$ref":"#/components/schemas/MetadataParam"},{"type":"null"}]},"container":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Container"},"context_management":{"anyOf":[{"$ref":"#/components/schemas/BetaContextManagementConfigParam"},{"type":"null"}]},"mcp_servers":{"anyOf":[{"items":{"$ref":"#/components/schemas/BetaRequestMCPServerURLDefinitionParam"},"type":"array"},{"type":"null"}],"title":"Mcp Servers"},"service_tier":{"anyOf":[{"type":"string","enum":["auto","standard_only"]},{"type":"null"}],"title":"Service Tier"},"stop_sequences":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Stop Sequences"},"system":{"anyOf":[{"type":"string"},{"items":{"additionalProperties":true,"type":"object"},"type":"array"},{"type":"null"}],"title":"System"},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"thinking":{"anyOf":[{"$ref":"#/components/schemas/BetaThinkingConfigEnabledParam"},{"$ref":"#/components/schemas/BetaThinkingConfigDisabledParam"},{"$ref":"#/components/schemas/BetaThinkingConfigAdaptiveParam"},{"type":"null"}],"title":"Thinking"},"tool_choice":{"anyOf":[{"$ref":"#/components/schemas/ToolChoiceAutoParam"},{"$ref":"#/components/schemas/ToolChoiceAnyParam"},{"$ref":"#/components/schemas/ToolChoiceToolParam"},{"$ref":"#/components/schemas/ToolChoiceNoneParam"},{"type":"null"}],"title":"Tool Choice"},"tools":{"anyOf":[{"items":{"anyOf":[{"$ref":"#/components/schemas/ToolParam"},{"$ref":"#/components/schemas/ToolBash20250124Param"},{"$ref":"#/components/schemas/CodeExecutionTool20250522Param"},{"$ref":"#/components/schemas/CodeExecutionTool20250825Param"},{"$ref":"#/components/schemas/CodeExecutionTool20260120Param"},{"$ref":"#/components/schemas/MemoryTool20250818Param"},{"$ref":"#/components/schemas/ToolTextEditor20250124Param"},{"$ref":"#/components/schemas/ToolTextEditor20250429Param"},{"$ref":"#/components/schemas/ToolTextEditor20250728Param"},{"$ref":"#/components/schemas/WebSearchTool20250305Param"},{"$ref":"#/components/schemas/WebFetchTool20250910Param"},{"$ref":"#/components/schemas/WebSearchTool20260209Param"},{"$ref":"#/components/schemas/WebFetchTool20260209Param"},{"$ref":"#/components/schemas/WebFetchTool20260309Param"},{"$ref":"#/components/schemas/ToolSearchToolBm25_20251119Param"},{"$ref":"#/components/schemas/ToolSearchToolRegex20251119Param"}]},"type":"array"},{"type":"null"}],"title":"Tools"},"top_k":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Top K"},"top_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top P"},"betas":{"anyOf":[{"items":{"anyOf":[{"type":"string"},{"type":"string","enum":["message-batches-2024-09-24","prompt-caching-2024-07-31","computer-use-2024-10-22","computer-use-2025-01-24","pdfs-2024-09-25","token-counting-2024-11-01","token-efficient-tools-2025-02-19","output-128k-2025-02-19","files-api-2025-04-14","mcp-client-2025-04-04","mcp-client-2025-11-20","dev-full-thinking-2025-05-14","interleaved-thinking-2025-05-14","code-execution-2025-05-22","extended-cache-ttl-2025-04-11","context-1m-2025-08-07","context-management-2025-06-27","model-context-window-exceeded-2025-08-26","skills-2025-10-02","fast-mode-2026-02-01"]}]},"type":"array"},{"type":"null"}],"title":"Betas"},"extra_headers":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Headers"},"extra_query":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Query"},"extra_body":{"anyOf":[{},{"type":"null"}],"title":"Extra Body"},"timeout":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Timeout","default":300},"stream":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Stream","default":false},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User"}},"type":"object","required":["messages","model"],"title":"ChatRequest"},"api__openai_sdk__ChatRequest":{"properties":{"messages":{"items":{},"type":"array","title":"Messages"},"model":{"type":"string","title":"Model"},"store":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Store","default":false},"reasoning_effort":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Reasoning Effort"},"metadata":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Metadata"},"frequency_penalty":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Frequency Penalty"},"logit_bias":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Logit Bias"},"logprobs":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Logprobs","default":false},"top_logprobs":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Top Logprobs","default":0},"max_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Tokens","default":6000},"max_completion_tokens":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Max Completion Tokens"},"n":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"N","default":1},"modalities":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Modalities"},"prediction":{"anyOf":[{},{"type":"null"}],"title":"Prediction"},"audio":{"anyOf":[{},{"type":"null"}],"title":"Audio"},"presence_penalty":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Presence Penalty"},"response_format":{"anyOf":[{},{"type":"null"}],"title":"Response Format"},"seed":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Seed"},"stop":{"anyOf":[{"items":{"type":"string"},"type":"array"},{"type":"null"}],"title":"Stop"},"stream":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Stream","default":false},"stream_options":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Stream Options"},"temperature":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Temperature"},"top_p":{"anyOf":[{"type":"number"},{"type":"null"}],"title":"Top P"},"tools":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Tools"},"tool_options":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Tool Options"},"parallel_tool_calls":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Parallel Tool Calls","default":true},"user":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"User"},"function_call":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Function Call"},"functions":{"anyOf":[{"items":{},"type":"array"},{"type":"null"}],"title":"Functions"},"extra_body":{"anyOf":[{"additionalProperties":true,"type":"object"},{"type":"null"}],"title":"Extra Body"},"timeout":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Timeout","default":120},"online":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Online","default":0},"isAnon":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Isanon","default":true},"issd":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Issd","default":false},"sd_model":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Sd Model","default":""},"raw":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Raw","default":false},"duration":{"anyOf":[{"type":"integer"},{"type":"null"}],"title":"Duration"},"quality":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Quality"},"aspect_ratio":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Aspect Ratio"},"generate_audio":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Generate Audio"},"image_urls":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Image Urls"},"keep_size":{"anyOf":[{"type":"boolean"},{"type":"null"}],"title":"Keep Size"},"tool_choice":{"anyOf":[{"type":"string"},{"type":"null"}],"title":"Tool Choice"}},"type":"object","required":["messages","model"],"title":"ChatRequest","examples":[{"max_tokens":8000,"messages":[{"content":"请帮我将以下测试用例文档转换成JSON对象格式，描述中的动作放到action，名词放到，object，并增加步骤的序号id，action名用英文(click,touchstart,touchmove,input,press,等)，remark中加上中文注释.json格式如下{'steps':[{'action':'','object':'',remark:''}]}","role":"system"},{"content":[{"text":"请处理后边的文档内容：","type":"text"},{"text":"# 文件名:\n测试用例.xls，# 文件内容：\n点击开始，输入cmd,按回车，等待cmd窗口打开后，在cmd窗口中输入dir按回车","type":"text"}],"role":"user"}],"model":"gpt-4.1-mini"}]}},"securitySchemes":{"APIKeyHeader":{"type":"apiKey","description":"Bearer token","in":"header","name":"Authorization"}}}}