WingWell.Util.Volcengine 8.0.0

WingWell.Util.Volcengine

火山引擎知识库(VikingDB)API 封装。

配置项

{
  "Encrypt": "<AES 密钥>",
  "WingWell.Util.Volcengine": {
    "AccessKeyId": "<AK 明文>",
    "AccessKeySecret": "<SK 经 AES 加密后的密文>"
  }
}

AccessKeySecretAesHelper 使用 Encrypt 字段的密钥解密后使用。

结构

文件 说明
VolcengineClient.cs HTTP 客户端,封装 V4 签名鉴权、POST 和 SSE 流式请求
VikingKnowledgeProvider.cs 知识库业务接口封装
Internals/VolcSignerV4.cs HMAC-SHA256 签名器
Internals/ConfigEnvironment.cs AK/SK 配置读取
Internals/VikingFailedCodeHelper.cs 错误码辅助方法
Enums/VikingDocProcessStatus.cs 文档处理状态枚举
Enums/VikingChatStreamPhase.cs 流式对话阶段枚举
Models/VikingDocInfo.cs 文档详情模型(doc/info 返回值,含摘要、token、url)
Models/VikingDocItem.cs 文档状态模型(doc/list 返回值,无摘要和 token)
Models/VikingDocChunk.cs 切片内容模型(point/list 返回值)
Models/VikingChatMessage.cs 对话消息模型(role + content)
Models/VikingChatStreamChunk.cs 流式对话单帧模型
Models/VikingChatEvidence.cs 对话引用来源模型
Models/VikingChatTokenUsage.cs Token 用量统计模型

VikingKnowledgeProvider 已实现接口

方法 火山 API 说明
UploadDocAsync POST /api/knowledge/doc/v2/add 上传文档(带 tag_list)
UpdateDocMetaAsync POST /api/knowledge/doc/update_meta 更新文档标签(不触发重新切片)
GetDocInfoAsync POST /api/knowledge/doc/info 查询单个文档详情(返回完整摘要、total_tokens、url、statistics)
GetDocStatusAsync POST /api/knowledge/doc/list 按 doc_id 批量查询文档状态(每次最多 100 个)
GetAllDocStatusAsync POST /api/knowledge/doc/list 分页列举全部文档状态
GetDocPageAsync POST /api/knowledge/doc/list 单页分页查询
DeleteDocAsync POST /api/knowledge/doc/delete 删除文档(支持单个和批量)
GetDocChunksAsync POST /api/knowledge/point/list 分页查询切片内容
ChatStreamAsync POST /api/knowledge/service/chat 知识库问答(SSE 流式,支持 doc_filter 按 wiki 过滤)

doc/info 与 doc/list 差异

两个接口返回的 JSON 结构不同,使用独立的解析方法:

字段 doc/info doc/list(当前封装未传 detailed)
时间戳 毫秒级 秒级
total_tokens 有值 无此字段
doc_summary / brief_summary 有内容 空字符串
url
meta / statistics

业务刷新策略(VolcanoDocHelper):

  • 单个文档 → 直接调 GetDocInfoAsync 获取完整信息
  • 多个文档 → 先批量调 GetDocStatusAsync(每批 100 个)更新状态,再对缺少 TotalTokens 的文档补刷 GetDocInfoAsync

注意事项

  • doc/v2/add 对已存在的 doc_id 会报重复错误(1001002),不能用于更新标签
  • 标签更新应使用 doc/update_meta,但该接口是文档级全量替换,未传入的 meta 字段会被清空,调用时必须一次性推送全部标签
  • 官方 API 文档:/Users/tom/Library/Mobile Documents/iCloud~md~obsidian/Documents/Master/09 - 官方文档/火山向量知识库/2、API参考/

No packages depend on WingWell.Util.Volcengine.

.NET 8.0

Version Downloads Last updated
8.0.0 0 05/13/2026