mirror of
https://git.openapi.site/https://github.com/desirecore/config-center.git
synced 2026-10-21 06:44:14 +08:00
824 lines
30 KiB
JSON
824 lines
30 KiB
JSON
{
|
||
"checkedAt": "2026-10-04",
|
||
"sources": [
|
||
{
|
||
"id": "brave-reference",
|
||
"url": "https://api-dashboard.search.brave.com/api-reference/web/search/get",
|
||
"finalUrl": "https://api-dashboard.search.brave.com/api-reference/web/search/get",
|
||
"publisher": "Brave",
|
||
"kind": "official-docs",
|
||
"retrieval": "readable",
|
||
"summary": "GET与鉴权、查询参数和web.results结构已读取。",
|
||
"scope": "Brave Web Search GET;不证明账号额度、套餐或本仓变量插值。"
|
||
},
|
||
{
|
||
"id": "brave-main",
|
||
"url": "https://brave.com/search/api/",
|
||
"finalUrl": "https://brave.com/search/api/",
|
||
"publisher": "Brave",
|
||
"kind": "official-docs",
|
||
"retrieval": "readable",
|
||
"summary": "官网GET示例含Accept和gzip请求头。",
|
||
"scope": "官方请求示例。"
|
||
},
|
||
{
|
||
"id": "serper-main",
|
||
"url": "https://serper.dev/",
|
||
"finalUrl": "https://serper.dev/",
|
||
"publisher": "Serper",
|
||
"kind": "official-docs",
|
||
"retrieval": "readable",
|
||
"summary": "官网Search示例明确organic及title/link/snippet。页面没有证明请求endpoint/header。",
|
||
"scope": "公开搜索响应示例,不能证明所有选项或收费调用。"
|
||
},
|
||
{
|
||
"id": "serper-sdk",
|
||
"url": "https://github.com/langchain-ai/langchain-community/blob/main/libs/community/langchain_community/utilities/google_serper.py",
|
||
"finalUrl": "https://github.com/langchain-ai/langchain-community/blob/main/libs/community/langchain_community/utilities/google_serper.py",
|
||
"publisher": "LangChain",
|
||
"kind": "trusted-secondary",
|
||
"retrieval": "readable",
|
||
"summary": "维护者SDK以POST调用google.serper.dev,使用X-API-KEY,并用query params发送q/num。",
|
||
"scope": "可信实现旁证;非Serper发布者合同;不证明JSON bodyTemplate或当前账号可用性。",
|
||
"contentSha256": "fc0c2a956a98da95f1117460da78a61f2ccceba7acb8d8febf4f87d33882f49f"
|
||
},
|
||
{
|
||
"id": "serper-reference",
|
||
"url": "https://reference.langchain.com/python/langchain-community/utilities/google_serper/GoogleSerperAPIWrapper",
|
||
"finalUrl": "https://reference.langchain.com/python/langchain-community/utilities/google_serper/GoogleSerperAPIWrapper",
|
||
"publisher": "LangChain",
|
||
"kind": "trusted-secondary",
|
||
"retrieval": "blocked",
|
||
"summary": "搜索发现入口,但本轮正文读取Internal Error。",
|
||
"scope": "不作为字段证明。"
|
||
},
|
||
{
|
||
"id": "doubao-original",
|
||
"url": "https://www.volcengine.com/docs/85508/1650263",
|
||
"finalUrl": "https://www.volcengine.com/docs/85508/1650263",
|
||
"publisher": "火山引擎",
|
||
"kind": "official-docs",
|
||
"retrieval": "blocked",
|
||
"summary": "原入口重定向后工具无法读取正文。",
|
||
"scope": "不能拿另一签名或地域的Fusion API替代feedcoopapi合同。"
|
||
},
|
||
{
|
||
"id": "doubao-current",
|
||
"url": "https://docs.volcengine.com/docs/NetworkedQAAgent/FusionInformationSearchAPI?lang=zh",
|
||
"finalUrl": "https://docs.volcengine.com/docs/NetworkedQAAgent/FusionInformationSearchAPI?lang=zh",
|
||
"publisher": "火山引擎",
|
||
"kind": "official-docs",
|
||
"retrieval": "blocked",
|
||
"summary": "本轮正文读取Internal Error;也试过.md入口,未取得可读正文。",
|
||
"scope": "endpoint/Bearer/Result映射仍待证明。"
|
||
},
|
||
{
|
||
"id": "doubao-global-rendered",
|
||
"url": "https://docs.volcengine.com/docs/Networkedsearch/doubao-search-global-edition?lang=zh",
|
||
"finalUrl": "https://docs.volcengine.com/docs/Networkedsearch/doubao-search-global-edition?lang=zh",
|
||
"publisher": "火山引擎",
|
||
"kind": "official-docs",
|
||
"retrieval": "readable",
|
||
"summary": "SubAgent实际浏览器渲染读取Global独立页:POST/global_search、Bearer、Query/SearchType/DocCount/MaxSnippetLength及Result.Documents。",
|
||
"scope": "仅Global按量后付费;不证明Custom、订阅或TOP网关。",
|
||
"retrievalMethod": "rendered-browser-dom"
|
||
},
|
||
{
|
||
"id": "tavily-reference",
|
||
"url": "https://docs.tavily.com/documentation/api-reference/endpoint/search",
|
||
"finalUrl": "https://docs.tavily.com/documentation/api-reference/endpoint/search",
|
||
"publisher": "Tavily",
|
||
"kind": "official-docs",
|
||
"retrieval": "readable",
|
||
"summary": "官方cURL与响应示例已读取,POST/Bearer/query/max_results/basic/results明确。",
|
||
"scope": "原生Tavily API,不证明客户端变量转换或账号资格。"
|
||
},
|
||
{
|
||
"id": "openai-vision",
|
||
"url": "https://developers.openai.com/api/docs/guides/images-vision",
|
||
"finalUrl": "https://developers.openai.com/api/docs/guides/images-vision",
|
||
"publisher": "OpenAI",
|
||
"kind": "official-docs",
|
||
"retrieval": "readable",
|
||
"summary": "原platform域名跳转官方developers域名;Chat Completions示例含image_url和choices[0].message.content。",
|
||
"scope": "原生Chat Completions视觉合同,不能覆盖Responses-only型号和任意兼容网关。"
|
||
},
|
||
{
|
||
"id": "anthropic-vision",
|
||
"url": "https://platform.claude.com/docs/en/build-with-claude/vision",
|
||
"finalUrl": "https://platform.claude.com/docs/en/build-with-claude/vision",
|
||
"publisher": "Anthropic",
|
||
"kind": "official-docs",
|
||
"retrieval": "readable",
|
||
"summary": "旧docs域名跳转官方platform域名;实际读取image/source/base64/media_type/data示例。",
|
||
"scope": "仅原生视觉请求形状;1024不是厂商最大或默认输出限制。"
|
||
}
|
||
],
|
||
"findings": [
|
||
{
|
||
"recordKind": "api-contract",
|
||
"recordKey": "api-providers/web-search/brave.json#api-contract",
|
||
"supplier": "brave",
|
||
"modelId": "brave",
|
||
"config": "api-providers/web-search/brave.json",
|
||
"sourceDoc": "docs/data-sources/api-providers/brave.md",
|
||
"originalStatus": "pending",
|
||
"originalGap": "api-pending",
|
||
"current": {
|
||
"endpoint": "https://api.search.brave.com/res/v1/web/search",
|
||
"method": "GET",
|
||
"auth": {
|
||
"type": "header",
|
||
"headerName": "X-Subscription-Token",
|
||
"apiKeyRef": "brave"
|
||
},
|
||
"request": {
|
||
"headers": {
|
||
"Accept": "application/json",
|
||
"Accept-Encoding": "gzip"
|
||
},
|
||
"queryParams": {
|
||
"q": "${query}",
|
||
"count": "${maxResults}"
|
||
}
|
||
},
|
||
"response": {
|
||
"resultsPath": "web.results",
|
||
"item": {
|
||
"titlePath": "title",
|
||
"urlPath": "url",
|
||
"snippetPath": "description",
|
||
"pageAgePath": "page_age"
|
||
}
|
||
}
|
||
},
|
||
"knownFieldEvidence": [],
|
||
"outcome": "official-fields-found",
|
||
"sourceIds": [
|
||
"brave-reference",
|
||
"brave-main"
|
||
],
|
||
"fieldEvidence": [
|
||
{
|
||
"field": "endpoint",
|
||
"currentValue": "https://api.search.brave.com/res/v1/web/search",
|
||
"supportedValue": "https://api.search.brave.com/res/v1/web/search",
|
||
"sourceId": "brave-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "method",
|
||
"currentValue": "GET",
|
||
"supportedValue": "GET",
|
||
"sourceId": "brave-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "auth.type",
|
||
"currentValue": "header",
|
||
"supportedValue": "header",
|
||
"sourceId": "brave-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "auth.headerName",
|
||
"currentValue": "X-Subscription-Token",
|
||
"supportedValue": "X-Subscription-Token",
|
||
"sourceId": "brave-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "request.headers.Accept",
|
||
"currentValue": "application/json",
|
||
"supportedValue": "application/json",
|
||
"sourceId": "brave-main",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "request.headers.Accept-Encoding",
|
||
"currentValue": "gzip",
|
||
"supportedValue": "gzip",
|
||
"sourceId": "brave-main",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.resultsPath",
|
||
"currentValue": "web.results",
|
||
"supportedValue": "web.results",
|
||
"sourceId": "brave-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.titlePath",
|
||
"currentValue": "title",
|
||
"supportedValue": "title",
|
||
"sourceId": "brave-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.urlPath",
|
||
"currentValue": "url",
|
||
"supportedValue": "url",
|
||
"sourceId": "brave-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.snippetPath",
|
||
"currentValue": "description",
|
||
"supportedValue": "description",
|
||
"sourceId": "brave-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.pageAgePath",
|
||
"currentValue": "page_age",
|
||
"supportedValue": "page_age",
|
||
"sourceId": "brave-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
}
|
||
],
|
||
"remainingFields": [
|
||
"request.queryParams.q:客户端变量插值",
|
||
"request.queryParams.count:整数转换和最大20",
|
||
"账号资格及配额"
|
||
],
|
||
"nextAction": "复核字段证据的来源身份和适用接口;未证明项继续保留,不把示例或SDK代码当账号调用验收。",
|
||
"notes": []
|
||
},
|
||
{
|
||
"recordKind": "api-contract",
|
||
"recordKey": "api-providers/web-search/serper.json#api-contract",
|
||
"supplier": "serper",
|
||
"modelId": "serper",
|
||
"config": "api-providers/web-search/serper.json",
|
||
"sourceDoc": "docs/data-sources/api-providers/serper.md",
|
||
"originalStatus": "pending",
|
||
"originalGap": "api-pending",
|
||
"current": {
|
||
"endpoint": "https://google.serper.dev/search",
|
||
"method": "POST",
|
||
"auth": {
|
||
"type": "header",
|
||
"headerName": "X-API-KEY",
|
||
"apiKeyRef": "serper"
|
||
},
|
||
"request": {
|
||
"bodyTemplate": {
|
||
"q": "${query}",
|
||
"num": "${maxResults}"
|
||
}
|
||
},
|
||
"response": {
|
||
"resultsPath": "organic",
|
||
"item": {
|
||
"titlePath": "title",
|
||
"urlPath": "link",
|
||
"snippetPath": "snippet"
|
||
}
|
||
}
|
||
},
|
||
"knownFieldEvidence": [],
|
||
"outcome": "official-fields-found",
|
||
"sourceIds": [
|
||
"serper-main",
|
||
"serper-sdk",
|
||
"serper-reference"
|
||
],
|
||
"fieldEvidence": [
|
||
{
|
||
"field": "response.resultsPath",
|
||
"currentValue": "organic",
|
||
"supportedValue": "organic",
|
||
"sourceId": "serper-main",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.titlePath",
|
||
"currentValue": "title",
|
||
"supportedValue": "title",
|
||
"sourceId": "serper-main",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.urlPath",
|
||
"currentValue": "link",
|
||
"supportedValue": "link",
|
||
"sourceId": "serper-main",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.snippetPath",
|
||
"currentValue": "snippet",
|
||
"supportedValue": "snippet",
|
||
"sourceId": "serper-main",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "endpoint",
|
||
"currentValue": "https://google.serper.dev/search",
|
||
"supportedValue": "https://google.serper.dev/search",
|
||
"sourceId": "serper-sdk",
|
||
"assessment": "matches",
|
||
"explanation": "仅可信SDK旁证,不是Serper官方合同;不可由此升级官方状态。"
|
||
},
|
||
{
|
||
"field": "method",
|
||
"currentValue": "POST",
|
||
"supportedValue": "POST",
|
||
"sourceId": "serper-sdk",
|
||
"assessment": "matches",
|
||
"explanation": "仅可信SDK旁证,不是Serper官方合同;不可由此升级官方状态。"
|
||
},
|
||
{
|
||
"field": "auth.headerName",
|
||
"currentValue": "X-API-KEY",
|
||
"supportedValue": "X-API-KEY",
|
||
"sourceId": "serper-sdk",
|
||
"assessment": "matches",
|
||
"explanation": "仅可信SDK旁证,不是Serper官方合同;不可由此升级官方状态。"
|
||
}
|
||
],
|
||
"remainingFields": [
|
||
"request.bodyTemplate:官方JSON正文合同未取得,SDK示例使用params",
|
||
"request.bodyTemplate.num:类型/上限",
|
||
"账号及额度"
|
||
],
|
||
"nextAction": "复核字段证据的来源身份和适用接口;未证明项继续保留,不把示例或SDK代码当账号调用验收。",
|
||
"notes": [
|
||
"官网仅证明响应形状,SDK可旁证endpoint/POST/header;SDK发query params,不能证明当前JSON正文。"
|
||
]
|
||
},
|
||
{
|
||
"recordKind": "api-contract",
|
||
"recordKey": "api-providers/web-search/tavily.json#api-contract",
|
||
"supplier": "tavily",
|
||
"modelId": "tavily",
|
||
"config": "api-providers/web-search/tavily.json",
|
||
"sourceDoc": "docs/data-sources/api-providers/tavily.md",
|
||
"originalStatus": "partial",
|
||
"originalGap": "api-partial",
|
||
"current": {
|
||
"endpoint": "https://api.tavily.com/search",
|
||
"method": "POST",
|
||
"auth": {
|
||
"type": "bearer",
|
||
"apiKeyRef": "tavily"
|
||
},
|
||
"request": {
|
||
"bodyTemplate": {
|
||
"query": "${query}",
|
||
"max_results": "${maxResults}",
|
||
"search_depth": "basic"
|
||
}
|
||
},
|
||
"response": {
|
||
"resultsPath": "results",
|
||
"item": {
|
||
"titlePath": "title",
|
||
"urlPath": "url",
|
||
"snippetPath": "content"
|
||
}
|
||
}
|
||
},
|
||
"knownFieldEvidence": [
|
||
{
|
||
"field": "endpoint"
|
||
},
|
||
{
|
||
"field": "method"
|
||
},
|
||
{
|
||
"field": "auth.type"
|
||
},
|
||
{
|
||
"field": "request.bodyTemplate.search_depth"
|
||
},
|
||
{
|
||
"field": "response.resultsPath"
|
||
},
|
||
{
|
||
"field": "response.item.titlePath"
|
||
},
|
||
{
|
||
"field": "response.item.urlPath"
|
||
},
|
||
{
|
||
"field": "response.item.snippetPath"
|
||
}
|
||
],
|
||
"outcome": "official-fields-found",
|
||
"sourceIds": [
|
||
"tavily-reference"
|
||
],
|
||
"fieldEvidence": [
|
||
{
|
||
"field": "endpoint",
|
||
"currentValue": "https://api.tavily.com/search",
|
||
"supportedValue": "https://api.tavily.com/search",
|
||
"sourceId": "tavily-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "method",
|
||
"currentValue": "POST",
|
||
"supportedValue": "POST",
|
||
"sourceId": "tavily-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "auth.type",
|
||
"currentValue": "bearer",
|
||
"supportedValue": "bearer",
|
||
"sourceId": "tavily-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "request.bodyTemplate.search_depth",
|
||
"currentValue": "basic",
|
||
"supportedValue": "basic",
|
||
"sourceId": "tavily-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.resultsPath",
|
||
"currentValue": "results",
|
||
"supportedValue": "results",
|
||
"sourceId": "tavily-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.titlePath",
|
||
"currentValue": "title",
|
||
"supportedValue": "title",
|
||
"sourceId": "tavily-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.urlPath",
|
||
"currentValue": "url",
|
||
"supportedValue": "url",
|
||
"sourceId": "tavily-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.snippetPath",
|
||
"currentValue": "content",
|
||
"supportedValue": "content",
|
||
"sourceId": "tavily-reference",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
}
|
||
],
|
||
"remainingFields": [
|
||
"request.bodyTemplate.query:变量插值",
|
||
"request.bodyTemplate.max_results:整数转换",
|
||
"账号及额度"
|
||
],
|
||
"nextAction": "复核字段证据的来源身份和适用接口;未证明项继续保留,不把示例或SDK代码当账号调用验收。",
|
||
"notes": []
|
||
},
|
||
{
|
||
"recordKind": "api-contract",
|
||
"recordKey": "api-providers/web-search/doubao-search-global.json#api-contract",
|
||
"supplier": "doubao-search-global",
|
||
"modelId": "doubao-search-global",
|
||
"config": "api-providers/web-search/doubao-search-global.json",
|
||
"sourceDoc": "docs/data-sources/api-providers/doubao-search-global.md",
|
||
"originalStatus": "pending",
|
||
"originalGap": "api-pending",
|
||
"current": {
|
||
"endpoint": "https://open.feedcoopapi.com/search_api/global_search",
|
||
"method": "POST",
|
||
"auth": {
|
||
"type": "bearer",
|
||
"apiKeyRef": "doubao-search-global"
|
||
},
|
||
"request": {
|
||
"bodyTemplate": {
|
||
"Query": "${query}",
|
||
"SearchType": "web",
|
||
"DocCount": "${maxResults}",
|
||
"MaxSnippetLength": 500
|
||
}
|
||
},
|
||
"response": {
|
||
"resultsPath": "Result.Documents",
|
||
"item": {
|
||
"titlePath": "Title",
|
||
"urlPath": "Url",
|
||
"snippetPath": "Snippet.0.Text",
|
||
"pageAgePath": "DocumentInfo.PublishTime"
|
||
},
|
||
"successCondition": {
|
||
"path": "Result.ErrorCode",
|
||
"equals": 0
|
||
}
|
||
}
|
||
},
|
||
"knownFieldEvidence": [],
|
||
"outcome": "official-fields-found",
|
||
"sourceIds": [
|
||
"doubao-original",
|
||
"doubao-current",
|
||
"doubao-global-rendered"
|
||
],
|
||
"fieldEvidence": [
|
||
{
|
||
"field": "endpoint",
|
||
"currentValue": "https://open.feedcoopapi.com/search_api/global_search",
|
||
"supportedValue": "https://open.feedcoopapi.com/search_api/global_search",
|
||
"sourceId": "doubao-global-rendered",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "method",
|
||
"currentValue": "POST",
|
||
"supportedValue": "POST",
|
||
"sourceId": "doubao-global-rendered",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "auth.type",
|
||
"currentValue": "bearer",
|
||
"supportedValue": "bearer",
|
||
"sourceId": "doubao-global-rendered",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "request.bodyTemplate.SearchType",
|
||
"currentValue": "web",
|
||
"supportedValue": "web",
|
||
"sourceId": "doubao-global-rendered",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "request.bodyTemplate.MaxSnippetLength",
|
||
"currentValue": 500,
|
||
"supportedValue": 500,
|
||
"sourceId": "doubao-global-rendered",
|
||
"assessment": "matches",
|
||
"explanation": "官网web默认500 tokens,不是500字符;最大3000,建议不超过1000。"
|
||
},
|
||
{
|
||
"field": "response.resultsPath",
|
||
"currentValue": "Result.Documents",
|
||
"supportedValue": "Result.Documents",
|
||
"sourceId": "doubao-global-rendered",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.titlePath",
|
||
"currentValue": "Title",
|
||
"supportedValue": "Title",
|
||
"sourceId": "doubao-global-rendered",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.urlPath",
|
||
"currentValue": "Url",
|
||
"supportedValue": "Url",
|
||
"sourceId": "doubao-global-rendered",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.item.pageAgePath",
|
||
"currentValue": "DocumentInfo.PublishTime",
|
||
"supportedValue": "DocumentInfo.PublishTime",
|
||
"sourceId": "doubao-global-rendered",
|
||
"assessment": "matches",
|
||
"explanation": "官方DocumentInfo.PublishTime为非必填String,样例空字符串;只证明路径,不保证有时间。"
|
||
},
|
||
{
|
||
"field": "response.item.snippetPath",
|
||
"currentValue": "Snippet.0.Text",
|
||
"supportedValue": {
|
||
"array": "Snippet",
|
||
"discriminator": "Type",
|
||
"textField": "Text"
|
||
},
|
||
"sourceId": "doubao-global-rendered",
|
||
"assessment": "not-comparable",
|
||
"explanation": "官方数组混合text/image类型,不保证首项text。需按Type选择;不是可直接复制到本仓路径字段的表达式。"
|
||
},
|
||
{
|
||
"field": "response.successCondition.equals",
|
||
"currentValue": 0,
|
||
"supportedValue": 0,
|
||
"sourceId": "doubao-global-rendered",
|
||
"assessment": "not-comparable",
|
||
"explanation": "官方成功示例ErrorCode为0,仅字段定义错误码;示例不能证明完整错误判定规则。"
|
||
}
|
||
],
|
||
"remainingFields": [
|
||
"Query必填1~100字符与客户端插值",
|
||
"DocCount web默认10最多20及整数转换",
|
||
"Snippet.0.Text不保证首项为text,需按Type选择",
|
||
"ErrorCode=0仅官方成功示例,完整错误规则待核",
|
||
"DocumentInfo.PublishTime非必填且样例空值",
|
||
"MaxSnippetLength单位tokens默认500/最大3000"
|
||
],
|
||
"nextAction": "复核字段证据的来源身份和适用接口;未证明项继续保留,不把示例或SDK代码当账号调用验收。",
|
||
"notes": []
|
||
},
|
||
{
|
||
"recordKind": "api-contract",
|
||
"recordKey": "api-providers/image-understanding/configured-vision-openai.json#api-contract",
|
||
"supplier": "configured-vision-openai",
|
||
"modelId": "configured-vision-openai",
|
||
"config": "api-providers/image-understanding/configured-vision-openai.json",
|
||
"sourceDoc": "docs/data-sources/api-providers/configured-vision-openai.md",
|
||
"originalStatus": "partial",
|
||
"originalGap": "api-partial",
|
||
"current": {
|
||
"endpoint": "${baseUrl}/chat/completions",
|
||
"method": "POST",
|
||
"auth": {
|
||
"type": "bearer"
|
||
},
|
||
"request": {
|
||
"imageMode": "url",
|
||
"bodyTemplate": {
|
||
"model": "${model}",
|
||
"messages": [
|
||
{
|
||
"role": "user",
|
||
"content": [
|
||
{
|
||
"type": "text",
|
||
"text": "${prompt}"
|
||
},
|
||
{
|
||
"type": "image_url",
|
||
"image_url": {
|
||
"url": "${imageUrl}"
|
||
}
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"response": {
|
||
"textPath": "choices.0.message.content"
|
||
}
|
||
},
|
||
"knownFieldEvidence": [
|
||
{
|
||
"field": "request.bodyTemplate.messages.0.content.1.type"
|
||
},
|
||
{
|
||
"field": "response.textPath"
|
||
}
|
||
],
|
||
"outcome": "official-fields-found",
|
||
"sourceIds": [
|
||
"openai-vision"
|
||
],
|
||
"fieldEvidence": [
|
||
{
|
||
"field": "request.bodyTemplate.messages.0.content.1.type",
|
||
"currentValue": "image_url",
|
||
"supportedValue": "image_url",
|
||
"sourceId": "openai-vision",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "response.textPath",
|
||
"currentValue": "choices.0.message.content",
|
||
"supportedValue": "choices.0.message.content",
|
||
"sourceId": "openai-vision",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
}
|
||
],
|
||
"remainingFields": [
|
||
"动态baseUrl和实际型号",
|
||
"Responses-only适配",
|
||
"Bearer/网关认证",
|
||
"客户端变量插值及输入输出预算"
|
||
],
|
||
"nextAction": "复核字段证据的来源身份和适用接口;未证明项继续保留,不把示例或SDK代码当账号调用验收。",
|
||
"notes": []
|
||
},
|
||
{
|
||
"recordKind": "api-contract",
|
||
"recordKey": "api-providers/image-understanding/configured-vision-anthropic.json#api-contract",
|
||
"supplier": "configured-vision-anthropic",
|
||
"modelId": "configured-vision-anthropic",
|
||
"config": "api-providers/image-understanding/configured-vision-anthropic.json",
|
||
"sourceDoc": "docs/data-sources/api-providers/configured-vision-anthropic.md",
|
||
"originalStatus": "partial",
|
||
"originalGap": "api-partial",
|
||
"current": {
|
||
"endpoint": "${baseUrl}/messages",
|
||
"method": "POST",
|
||
"auth": {
|
||
"type": "header",
|
||
"headerName": "x-api-key"
|
||
},
|
||
"request": {
|
||
"imageMode": "base64",
|
||
"headers": {
|
||
"anthropic-version": "2023-06-01"
|
||
},
|
||
"bodyTemplate": {
|
||
"model": "${model}",
|
||
"max_tokens": 1024,
|
||
"messages": [
|
||
{
|
||
"role": "user",
|
||
"content": [
|
||
{
|
||
"type": "image",
|
||
"source": {
|
||
"type": "base64",
|
||
"media_type": "${imageMime}",
|
||
"data": "${imageBase64}"
|
||
}
|
||
},
|
||
{
|
||
"type": "text",
|
||
"text": "${prompt}"
|
||
}
|
||
]
|
||
}
|
||
]
|
||
}
|
||
},
|
||
"response": {
|
||
"textPath": "content.0.text"
|
||
}
|
||
},
|
||
"knownFieldEvidence": [
|
||
{
|
||
"field": "request.bodyTemplate.messages.0.content.0.type"
|
||
},
|
||
{
|
||
"field": "request.bodyTemplate.messages.0.content.0.source.type"
|
||
}
|
||
],
|
||
"outcome": "official-fields-found",
|
||
"sourceIds": [
|
||
"anthropic-vision"
|
||
],
|
||
"fieldEvidence": [
|
||
{
|
||
"field": "request.bodyTemplate.messages.0.content.0.type",
|
||
"currentValue": "image",
|
||
"supportedValue": "image",
|
||
"sourceId": "anthropic-vision",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
},
|
||
{
|
||
"field": "request.bodyTemplate.messages.0.content.0.source.type",
|
||
"currentValue": "base64",
|
||
"supportedValue": "base64",
|
||
"sourceId": "anthropic-vision",
|
||
"assessment": "matches",
|
||
"explanation": "已读官方原生示例,限此字段和上述接入范围。"
|
||
}
|
||
],
|
||
"remainingFields": [
|
||
"动态baseUrl和实际型号",
|
||
"auth/anthropic-version",
|
||
"response.textPath",
|
||
"客户端变量插值",
|
||
"max_tokens=1024为产品预算非厂商上限"
|
||
],
|
||
"nextAction": "复核字段证据的来源身份和适用接口;未证明项继续保留,不把示例或SDK代码当账号调用验收。",
|
||
"notes": []
|
||
}
|
||
]
|
||
}
|