切片管理

更新时间:
复制 MD 格式

管理知识库中的文档切片,包括查看和更新切片内容。

前提条件

  • 已创建知识库并导入文档,且目标文档状态为 Completed(仅已完成文档可查看和编辑切片)。

  • 若知识库开启了子空间(subspace),切片操作必须指定 subspace。

查看切片

分页查询指定文档的切片列表,包含切片 ID、内容、标题、类型和可检索状态。

控制台

登录Agent Storage控制台,在文档管理列表中点击目标文档操作列的查看切片,打开切片列表弹窗。每条切片显示类型、ID、内容、可检索状态和创建/更新时间。

SDK

Python

from tablestore_agent_storage import AgentStorageClient

client = AgentStorageClient(
    api_key="<your-api-key>",
    ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
    ots_instance_name="<instance-name>",
)

resp = client.list_chunks({
    "knowledgeBaseName": "product_docs_kb",
    "docId": "fc6ed97f-...",
    "maxResults": 5
})

for chunk in resp["data"]["chunkDetails"]:
    print(f"[Chunk {chunk['chunkId']}] ({chunk['status']}) {chunk['content'][:80]}...")

TypeScript

import { AgentStorageClient } from '@tablestore/agent-storage';

const client = new AgentStorageClient({
  apiKey: '<your-api-key>',
  endpoint: 'https://<instance>.<region>.ots.aliyuncs.com',
  instanceName: '<instance-name>',
});

const resp = await client.listChunks({
  knowledgeBaseName: 'product_docs_kb',
  docId: 'fc6ed97f-...',
  maxResults: 5,
});
for (const chunk of resp.data.chunkDetails) {
  console.log(`[Chunk ${chunk.chunkId}] (${chunk.status}) ${chunk.content.slice(0, 80)}...`);
}

API

调用 ListChunks 列出切片。完整字段参见列出切片。

更新切片

批量更新切片的标题、内容或状态,单次请求最多 10 个切片。

  • 将切片 status 设为 inactive 后,该切片不会出现在 Retrieve 结果中,可用于临时屏蔽不准确的内容而无需删除整个文档。

  • 与 AddDocuments 类似,更新结果需逐个检查 updateDetails 中每个切片的 updateStatus,HTTP 200 + code: SUCCESS 不代表所有切片都更新成功。

  • title 最大 100 Token,content 最大 320 Token。

控制台

在切片列表中点击目标切片的编辑,修改标题和内容后保存;如需临时屏蔽某条切片,可切换其可检索状态。

SDK

Python

修改切片标题和内容:

from tablestore_agent_storage import AgentStorageClient

client = AgentStorageClient(
    api_key="<your-api-key>",
    ots_endpoint="https://<instance>.<region>.ots.aliyuncs.com",
    ots_instance_name="<instance-name>",
)

resp = client.update_chunks({
    "knowledgeBaseName": "product_docs_kb",
    "chunks": [
        {
            "docId": "fc6ed97f-...",
            "chunkId": 1,
            "title": "更新后的标题",
            "content": "更新后的内容"
        }
    ]
})

for detail in resp["data"]["updateDetails"]:
    print(f"chunk {detail['chunkId']}: {detail['updateStatus']}")

屏蔽不准确的切片(设为不可检索):

resp = client.update_chunks({
    "knowledgeBaseName": "product_docs_kb",
    "chunks": [
        {
            "docId": "fc6ed97f-...",
            "chunkId": 0,
            "status": "inactive"
        }
    ]
})

TypeScript

import { AgentStorageClient } from '@tablestore/agent-storage';

const client = new AgentStorageClient({
  apiKey: '<your-api-key>',
  endpoint: 'https://<instance>.<region>.ots.aliyuncs.com',
  instanceName: '<instance-name>',
});

const resp = await client.updateChunks({
  knowledgeBaseName: 'product_docs_kb',
  chunks: [
    {
      docId: 'fc6ed97f-...',
      chunkId: 1,
      title: '更新后的标题',
      content: '更新后的内容',
    },
  ],
});

for (const detail of resp.data.updateDetails) {
  console.log(`chunk ${detail.chunkId}: ${detail.updateStatus}`);
}

API

调用 UpdateChunks 更新切片。完整字段参见更新切片。

相关文档