fix(data): complete verified contracts and source maintenance (#114)

This commit is contained in:
2026-10-03 03:49:55 -07:00
committed by GitHub
parent 647d6f0cfd
commit 642985e819
208 changed files with 5313 additions and 2285 deletions

View File

@@ -0,0 +1,55 @@
# Brave Search API
本轮读取失败,以下仅锁定现有待核合同,尚未证明字段有效。补官网正文并核实字段后再提升状态。
数据区中的 claims 是复核边界,pending 字段是当前配置快照,不能当官方证明。enabled/priority/timeout 是产品策略,未复制到合同中。更新合同必须重新读官方正文、记录实际证明字段;结构校验不等于账号可用。
<!-- data-source:start -->
```json
{
"kind": "api-contract",
"config": "api-providers/web-search/brave.json",
"checkedAt": "2026-10-03",
"status": "pending",
"sources": [
{
"url": "https://api.search.brave.com/app/documentation/web-search/get-started",
"retrieval": "failed",
"checkedAt": "2026-10-03",
"resolvedUrl": null,
"contentSha256": null,
"failure": "HTTP Error 403: Forbidden"
}
],
"verifiedFields": [],
"claims": {
"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"
}
}
}
}
```
<!-- data-source:end -->

View File

@@ -0,0 +1,69 @@
# 视觉模型(Anthropic 兼容,复用默认映射)
旧 docs.anthropic.com 跳转至此官方域名,正文证明 Messages 的 image/base64/media_type/data 结构;max_tokens=1024 是本仓输出预算策略,官网示例使用该值不证明它是默认或上限。认证、API 版本和 content.0.text 不因本篇已读而视作全部核验;任意网关仍需验收。
数据区中的 claims 是复核边界,pending 字段是当前配置快照,不能当官方证明。enabled/priority/timeout 是产品策略,未复制到合同中。更新合同必须重新读官方正文、记录实际证明字段;结构校验不等于账号可用。
<!-- data-source:start -->
```json
{
"kind": "api-contract",
"config": "api-providers/image-understanding/configured-vision-anthropic.json",
"checkedAt": "2026-10-03",
"status": "partial",
"sources": [
{
"url": "https://platform.claude.com/docs/en/build-with-claude/vision",
"retrieval": "fetched",
"checkedAt": "2026-10-03",
"resolvedUrl": "https://platform.claude.com/docs/en/build-with-claude/vision",
"contentSha256": "b35b04f339283acf2d250590830e7c552575c27d78c9b694523a6417a7a58044"
}
],
"verifiedFields": [
"request.bodyTemplate.messages.0.content.0.type",
"request.bodyTemplate.messages.0.content.0.source.type"
],
"claims": {
"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"
}
}
}
```
<!-- data-source:end -->

View File

@@ -0,0 +1,62 @@
# 视觉模型(OpenAI 兼容,复用默认映射)
OpenAI Docs 明示 Chat Completions 的 image_url 内容块与 choices.message.content。只证明 OpenAI 原生格式;任意兼容网关、所选模型和动态 baseUrl 需分别验收。
数据区中的 claims 是复核边界,pending 字段是当前配置快照,不能当官方证明。enabled/priority/timeout 是产品策略,未复制到合同中。更新合同必须重新读官方正文、记录实际证明字段;结构校验不等于账号可用。
<!-- data-source:start -->
```json
{
"kind": "api-contract",
"config": "api-providers/image-understanding/configured-vision-openai.json",
"checkedAt": "2026-10-03",
"status": "partial",
"sources": [
{
"url": "https://developers.openai.com/api/docs/guides/images-vision",
"retrieval": "fetched",
"checkedAt": "2026-10-03",
"resolvedUrl": "https://developers.openai.com/api/docs/guides/images-vision",
"contentSha256": "be92335e88c4af71534c352bb82f67040afac9fc96bcef3c2b5a7a103fd5163a"
}
],
"verifiedFields": [
"request.bodyTemplate.messages.0.content.1.type",
"response.textPath"
],
"claims": {
"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"
}
}
}
```
<!-- data-source:end -->

View File

@@ -0,0 +1,55 @@
# 豆包搜索 Global
火山文档读取失败;不能认定其证明 feedcoopapi 的合同。需确认该具体域名所属服务、地域、认证和结果映射。
数据区中的 claims 是复核边界,pending 字段是当前配置快照,不能当官方证明。enabled/priority/timeout 是产品策略,未复制到合同中。更新合同必须重新读官方正文、记录实际证明字段;结构校验不等于账号可用。
<!-- data-source:start -->
```json
{
"kind": "api-contract",
"config": "api-providers/web-search/doubao-search-global.json",
"checkedAt": "2026-10-03",
"status": "pending",
"sources": [
{
"url": "https://www.volcengine.com/docs/85508/1650263",
"retrieval": "shell",
"checkedAt": "2026-10-03",
"resolvedUrl": "https://docs.volcengine.com/docs/NetworkedQAAgent/FusionInformationSearchAPI?lang=zh",
"contentSha256": "98f4de231487390a83d6929b01e41e83de77b884dccc3f93e2adeb8036eb1bcc"
}
],
"verifiedFields": [],
"claims": {
"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
}
}
}
}
```
<!-- data-source:end -->

View File

@@ -0,0 +1,49 @@
# Serper
首页可读,但未找到认证请求与完整响应契约,本轮不能据此确认 X-API-KEY、organic 等字段。需官方控制台文档或示例。
数据区中的 claims 是复核边界,pending 字段是当前配置快照,不能当官方证明。enabled/priority/timeout 是产品策略,未复制到合同中。更新合同必须重新读官方正文、记录实际证明字段;结构校验不等于账号可用。
<!-- data-source:start -->
```json
{
"kind": "api-contract",
"config": "api-providers/web-search/serper.json",
"checkedAt": "2026-10-03",
"status": "pending",
"sources": [
{
"url": "https://serper.dev/",
"retrieval": "fetched",
"checkedAt": "2026-10-03",
"resolvedUrl": "https://serper.dev/",
"contentSha256": "ad5b407c075ef4357fc4674cafb1b215d2713dc17d65d0607504bfec29b62c6c"
}
],
"verifiedFields": [],
"claims": {
"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"
}
}
}
}
```
<!-- data-source:end -->

View File

@@ -0,0 +1,58 @@
# Tavily
官网明示 POST /search、Bearer、query/max_results/search_depth 与 results 的 title/url/content;本仓模板仍需客户端插值为正确类型。未进行账号调用。
数据区中的 claims 是复核边界,pending 字段是当前配置快照,不能当官方证明。enabled/priority/timeout 是产品策略,未复制到合同中。更新合同必须重新读官方正文、记录实际证明字段;结构校验不等于账号可用。
<!-- data-source:start -->
```json
{
"kind": "api-contract",
"config": "api-providers/web-search/tavily.json",
"checkedAt": "2026-10-03",
"status": "partial",
"sources": [
{
"url": "https://docs.tavily.com/documentation/api-reference/endpoint/search",
"retrieval": "fetched",
"checkedAt": "2026-10-03",
"resolvedUrl": "https://docs.tavily.com/documentation/api-reference/endpoint/search",
"contentSha256": "66af3f0a8b6a72650ba5a1e99a8f72818dc2e8dab81ae8dcd88437330181f912"
}
],
"verifiedFields": [
"endpoint",
"method",
"auth.type",
"request.bodyTemplate.search_depth",
"response.resultsPath",
"response.item.titlePath",
"response.item.urlPath",
"response.item.snippetPath"
],
"claims": {
"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"
}
}
}
}
```
<!-- data-source:end -->