实时文档解析

最近更新时间:2024-09-04 15:31:52

我的收藏
在知识问答中,如果要上传文档进行实时问答,需要先对接实时文档解析接口。过程如下:
1. 调用DescribeStorageCredential 接口,获取临时密钥。
2. 通过临时密钥,通过COS的PutObject 接口上传到 cos。
3. 调用实时文档解析接口,获取 doc_id。

实时文档解析接口地址:https://wss.lke.cloud.tencent.com/v1/qbot/chat/docParse
请求方式:POST

1. 请求参数

请放到 HTTP Body 中, 以 JSON 的形式发送,具体如下:
名称
类型
是否必填
说明
session_id
string(64)
会话 ID,用于标识一个会话(外部系统提供,建议不同的用户端会话传入不同的 session_id,否则同一个应用下的不同用户的消息记录会串掉)
注意:
文档解析的 session_id 要与会话的保持一致。如果一次多轮会话涉及多次上传文档,该 session_id 也要保持一致,会话时会校验。
bot_app_key
string
应用密钥(运营提供)
request_id
string
请求的唯一 ID,建议使用 UUID 保证唯一性。
cos_bucket
string
cos 桶,使用 lke-realtime-1251316161
file_type
string
文件类型(md|txt|docx|pdf|xlsx) 示例值:md|txt|docx|pdf|xlsx
file_name
string
文件名 示例值:测试.docx
cos_url
string
平台 cos 路径,与 DescribeStorageCredential 接口查询 UploadPath 参数保持一致 示例值:/corp/23432432/233432/doc/zeSOHIBsdawkmlMMXOp-1796022574489010176.docx
cos_hash
string
cos_hash x-cos-hash-crc64ecma 头部中的 CRC64 编码进行校验上传到云端的文件和本地文件的一致性
e_tag
string
ETag 全称为 Entity Tag,是对象被创建时标识对象内容的信息标签,可用于检查对象的内容是否发生变化 示例值:"58e88ad7665f11c4f66eba0eada383a5"
size
string
uint64 类型转为 string,上传文档的大小

1.1 curl 调用示例

curl --location 'https://wss.lke.cloud.tencent.com/v1/qbot/chat/docParse' \\
--header 'Content-Type: application/json' \\
--data '{
"session_id": "<your session_id>",
"request_id": "<random uuid>",
"cos_bucket": "lke-realtime-1251316161",
"file_type": "txt",
"file_name": "西红柿炒鸡蛋.txt",
"cos_url": "/corp/1750375931926544384/1750376442139246592/doc/AaCIYEATBTYUQXDfXOTN-1807688648286535680.txt",
"e_tag": "\\"6886efe263f34c9f9401c2d910b02635\\"",
"cos_hash": "6138891591882964610",
"size": "355",
"bot_app_key": "<your appkey>"
}'

1.2 postman 调用示例





2. 响应参数

SSE 流式返回
名称
类型
说明
session_id
string(64)
会话 ID,同发起请求时的 session_id
trace_id
string
返回的唯一 ID
is_final
bool
消息是否已输出完成
doc_id
string
文档解析接口返回的 doc_id
process
int32
当前进度,整数,值为100时表示成功结束
status
string
状态:PARSING、SUCCESS、FAILED
timestamp
int64
时间戳,单位:秒
error_message
string
错误信息,出错时返回

2.1 返回示例

{"type":"parsing","payload":{"doc_id":"0","error_message":"","is_final":false,"process":0,"session_id":"c7852s9d-aba8-4ee8-9c88-d65f28ddbc47","status":"PARSING","timestamp":1719821535,"trace_id":"1f1e5bfc9a3588d3abc62b9729fc6f62"},"message_id":"1b28b359-203e-4dbc-a103-6d92629cb1e0"}

{"type":"parsing","payload":{"doc_id":"0","error_message":"","is_final":false,"process":2,"session_id":"c7852s9d-aba8-4ee8-9c88-d65f28ddbc47","status":"PARSING","timestamp":1719821535,"trace_id":"1f1e5bfc9a3588d3abc62b9729fc6f62"},"message_id":"60c2a29a-7658-4186-90a9-d81c8c0b14b4"}

{"type":"parsing","payload":{"doc_id":"0","error_message":"","is_final":false,"process":85,"session_id":"c7852s9d-aba8-4ee8-9c88-d65f28ddbc47","status":"PARSING","timestamp":1719821536,"trace_id":"1f1e5bfc9a3588d3abc62b9729fc6f62"},"message_id":"65ca6da3-8909-42c4-9ea1-4a09be299a7b"}

{"type":"parsing","payload":{"doc_id":"1807688654434383264","error_message":"","is_final":true,"process":100,"session_id":"c7852s9d-aba8-4ee8-9c88-d65f28ddbc47","status":"SUCCESS","timestamp":1719821536,"trace_id":"1f1e5bfc9a3588d3abc62b9729fc6f62"},"message_id":"43046854-c596-45f5-9195-3df4f82a67ff"}

3. 实时文档解析 demo:

其他编程语言暂无 Demo,可以参考文档和现有 Demo 自行实现。