消费方数据获取

消费方通过 API key 调用检索接口。授权范围由 data product 和 entitlement 控制,canonical data 仍属于数据中心。消费方不直接访问数据库、对象存储、索引或向量库。

当前验证环境使用 http://20.169.21.11。所有请求必须携带:

Authorization: Bearer whale_consumer_xxx

本页目录

章节内容
接入流程从拿到 API key 到完成首个查询
检索模式keyword、vector、hybrid 的适用场景
请求过滤平台、数据集、时间、内容类型、语言等
文档详情当前版本、完整正文、历史版本、快照、片段和事实
统计维度平台、数据集、内容类型、时间窗口和处理状态
错误处理常见错误语义

接入流程

生产接入建议先用小时间窗口和明确平台验证结果,再扩大查询范围。

检索模式

外部消费方优先使用统一入口 POST /v1/contents/search,通过 mode 选择检索模式。旧的 /v1/search/keyword/v1/search/vector/v1/search/hybrid 保留为兼容和专项调试接口。

API适合场景说明
POST /v1/contents/search推荐外部入口mode 可选 keywordvectorhybrid
POST /v1/search/keyword精确词、品牌、人名、URL、话题结果可解释,适合确定性召回
POST /v1/search/vector语义相似、跨语言、表达不一致可只传 query,由服务端生成 query embedding
POST /v1/search/hybrid默认推荐融合词面召回、向量召回、质量分和时效分

mode 省略时,没有 query_vector 默认走 keyword;传了 query_vector 默认走 hybrid

统一入口默认返回文档级结果,同一页同一个 document_id 只出现一次。body 是最佳命中分块摘要,不是完整正文;需要分块明细时传 include_chunks=true

请求过滤

常用过滤维度:

过滤维度示例说明
dataset_idsocial_media_raw数据产品或数据域
source_platformyoutube, weibo, xianyu来源平台
content_typevideo, article, product内容类型
published_from/to2026-08-01T00:00:00Z平台发布时间窗口
languagezh, en内容语言
regionCN, US平台或内容区域
factsprice <= 100, company=Example结构化事实筛选

示例请求:

{
  "mode": "hybrid",
  "query": "AI 视频生成",
  "dataset_ids": ["social_media_raw"],
  "source_platforms": ["youtube", "bilibili", "xiaohongshu"],
  "published_from": "2026-08-01T00:00:00Z",
  "published_to": "2026-09-01T00:00:00Z",
  "languages": ["zh", "en"],
  "top_k": 20
}

文档详情

统一入口检索结果是文档级。需要完整文档时,先从检索结果取 document_id,再调用:

  • POST /v1/documents/batch-get:批量读取文档元数据、当前版本、可选完整正文、最新快照、片段和事实
  • GET /v1/documents/{document_id}:文档元数据和当前版本
  • GET /v1/documents/{document_id}/content:当前版本完整正文
  • GET /v1/documents/{document_id}/content?version_id=ver_xxx:指定版本完整正文
  • GET /v1/documents/{document_id}/versions:正文版本历史
  • GET /v1/documents/{document_id}/snapshots:指标、作者状态和平台状态快照历史
  • GET /v1/documents/{document_id}/parts:字幕、OCR、规格、章节等多内容片段
  • GET /v1/documents/{document_id}/facts:价格、公司、地点、技能等结构化事实

正文、标题、URL、字幕、规格等内容变化会生成新版本;点赞、评论、播放、粉丝数、价格、库存等随时间变化的数据应从 snapshots 读取趋势。parts 面向可读片段,facts 面向可筛选和可聚合的结构化字段。

外部响应不会返回 Blob/R2 的 raw、text、manifest 或 part object key;完整正文和片段内容必须通过授权 API 获取。

列表页建议先用 batch-get 读取轻量信息和最新快照,详情页或导出场景再开启 include_content=true

版本、片段和快照

数据什么时候读取示例
当前版本只关心最新标题、正文、URL最新文章正文、最新视频描述
历史版本需要知道正文是否变更标题修改、商品描述修改
parts一个内容有多个可读片段YouTube 字幕、音频转录、小红书 OCR、商品规格
facts需要结构化筛选和聚合价格、公司、地点、薪资、技能
snapshots需要随时间变化的状态播放量、点赞、价格、库存、作者粉丝

统计维度

对外统计通常按以下维度理解:

维度说明
时间published_at 看业务发布时间,snapshot_at 看指标趋势,created_at 看系统入库时间
平台source_platform 表示来源平台
数据集dataset_id 表示数据产品或数据域
内容类型content_type 表示视频、文章、帖子、商品、职位等
指标统一指标字段加平台扩展指标
处理状态是否已可检索、已向量化、已分析

权限控制

consumer 不拥有数据,只拥有访问权。授权可以限制:

  • dataset
  • source platform
  • language
  • region
  • published time range
  • allowed fields

每日配额按 UTC 自然日、消费方和检索操作统计,并在进入检索后端前原子占用。已被平台接受但下游失败的请求仍计入请求用量;因达到配额而返回 429 的请求不计入。

实时限制由 entitlement 的 requests_per_secondburstmax_concurrency 控制。触发时返回 429 rate_limit_exceededRetry-After: 1,请求不会进入下游,也不计入 usage。当前该限制在单 Gateway 内执行;多 Gateway 部署需要在统一 API Gateway 层同步全局策略。

返回字段

默认返回文档、分块、标题、正文摘要和评分。服务会按每条结果实际命中的 entitlement 再次脱敏;未授权 body 时不会返回正文和高亮。请求中的 fields 只能缩小返回范围,不能扩大授权。文档详情接口同样受 entitlement 控制。

错误处理

错误含义处理建议
401 unauthorizedAPI key 缺失或无效检查鉴权头
403 entitlement_deniedAPI key 无权访问该 dataset、平台或字段缩小查询范围或申请授权
400 invalid_query请求字段格式错误或未知 mode按 API Reference 修正参数
429 quota_exceeded触发配额或限流降低并发,等待 Retry-After 指定的秒数后重试
429 rate_limit_exceeded触发实时 RPS、突发或并发限制等待 Retry-After 后重试并降低并发
503 search_backend_unavailableOpenSearch、Milvus、embedding 或 rerank 不可用使用指数退避重试

完整接入步骤见快速开始,密钥与错误语义见鉴权与密钥