Appearance
informat.company 团队
概述
使用informat.company对象进行团队相关操作。
getCompany
查询当前团队信息
javascript
informat.company.getCompany();返回值
类型为Company,返回团队
示例
javascript
informat.company.getCompany();json
{
"createAccountId": "wcueuhi1ib6ul",
"createTime": 1664196760747,
"dbIndex": 0,
"favicon": "0238219de8614a6a8a27db74d2dfc82a.jpg",
"id": "g09aj7cus3d8s",
"maxApplicationNum": 0,
"maxUserNum": 10000,
"name": "深圳交付团队UAT",
"updateTime": 1683595804684,
"version": "enterprise"
}queryRoleList
查询团队角色列表
javascript
informat.company.queryRoleList()返回值
类型为Array<Role>,返回所有角色
示例
javascript
informat.company.queryRoleList()json
[
{
"admin": true,
"createTime": 1664196760903,
"id": "admin",
"isAdmin": true,
"name": "管理员",
"permissionIds": []
},
{
"admin": false,
"createTime": 1664196760907,
"id": "member",
"isAdmin": false,
"name": "成员",
"permissionIds": [
"InviteMember"
]
},
{
"admin": false,
"createTime": 1670301261933,
"id": "supplier",
"isAdmin": false,
"name": "供应商",
"permissionIds": [
"InviteMember"
]
}
]addCompanyMember
将账号添加到团队成员列表中
javascript
informat.company.addCompanyMember(accountId, departmentList, roleList)提醒
添加账号到团队成员中会受到license中团队成员数量的限制,如果团队成员数量超过license的限制则添加不成功
| 参数 | 类型 | 描述 |
|---|---|---|
| accountId | String | 账号ID |
| departmentList | Array<String> | 部门ID列表,如果列表为空,则用户会被加入到根部门 |
| roleList | Array<String> | 角色ID列表 |
示例
javascript
informat.company.addCompanyMember('zhangsan', ['yanfabu'], ['tester']);deleteCompanyMember
将账号从团队成员中移除
javascript
informat.company.deleteCompanyMember(accountId)| 参数 | 类型 | 描述 |
|---|---|---|
| accountId | String | 账号ID |
返回值
类型为Boolean,返回是否移除成功
示例
javascript
informat.company.deleteCompanyMember('zhangsan');text
trueupdateCompanyMember
更新团队成员
javascript
informat.company.updateCompanyMember(member)| 参数 | 类型 | 描述 |
|---|---|---|
| member | CompanyMember | 团队成员 |
示例
javascript
informat.company.updateCompanyMember({
id: 'zhangsan',
departmentList: ['yanfabu', 'yunyingbu'],
roleList: ['tester', 'devopser'],
leaderList: ['lisi'],
dingtalkUserId: 'zhangsan',
weworkUserId: 'eobg38987',
feishuUserId: 'ecbg46933',
});queryCompanyMemberList
查询团队成员列表
javascript
informat.company.queryCompanyMemberList(query)| 参数 | 类型 | 描述 |
|---|---|---|
| query | Query | 团队成员查询条件 |
返回值 类型Array<CompanyMember>,团队成员列表
示例
javascript
informat.company.queryCompanyMemberList({
pageIndex:1,
pageSize:100,
filter:{
conditionList:[{
"fieldId":"weworkUserId",
"opt":"isnull"
}]
}
});json
[
{
"createTime": 1700628322740,
"departmentKeyList": [
"root"
],
"departmentList": [
"acocdpvd8d6a6"
],
"id": "zhangsan",
"name": "张三",
"rowNumber": 5,
"updateTime": 1700820250268
}
]queryCompanyMemberListCount
查询团队成员列表数量
javascript
informat.company.queryCompanyMemberListCount(filter)| 参数 | 类型 | 描述 |
|---|---|---|
| filter | Filter | 团队成员查询过滤器 |
返回值
类型为Integer,返回匹配到的总数
示例
javascript
informat.company.queryCompanyMemberListCount(
{
conditionList:[{
"fieldId":"weworkUserId",
"opt":"isnull"
}]
}
);text
2queryAppGroupById
通过ID查询应用分组
javascript
informat.company.queryAppGroupById(id)| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 应用分组ID |
返回值
类型为AppGroup,返回应用分组
示例
javascript
informat.company.queryAppGroupById('ruh8zp94ke3p0');json
{
"createTime": 1700628428167,
"id": "qvwfhdf328lex",
"name": "演示(gitee上有链接,供客户安装)",
"rowNumber": 1,
"updateTime": 1717149133338
}queryAppGroupList
查询应用分组列表
javascript
informat.company.queryAppGroupList(query)| 参数 | 类型 | 描述 |
|---|---|---|
| query | Query | 查询条件 |
返回值
类型为Array<AppGroup>,返回应用分组列表
示例
javascript
informat.company.queryAppGroupList({
pageIndex:1,
pageSize:100,
filter:{
conditionList:[{
"fieldId": "name",
"opt":"isnotnull"
}]
}
});json
[
{
"createTime": 1717146091865,
"id": "sjppghi7ofsci",
"name": "⚠️案例-项目管理",
"rowNumber": 5,
"updateTime": 1717660920434
},
{
"createTime": 1717660867337,
"id": "mjeb7d6mnrsi7",
"name": "⚠️案例-生产制造2",
"rowNumber": 8,
"updateTime": 1717660937343
}
]queryAppGroupListCount
查询应用分组列表数量
javascript
informat.company.queryAppGroupListCount(filter)| 参数 | 类型 | 描述 |
|---|---|---|
| filter | Filter | 查询过滤器 |
返回值
类型为Integer,返回匹配到的总数
示例
javascript
informat.company.queryAppGroupListCount({
conditionList:[{
"fieldId":"name",
"opt":"contains",
"value":"案例"
}]
}
)text
4addAppGroup
创建应用分组
javascript
informat.company.addAppGroup(group);| 参数 | 类型 | 描述 |
|---|---|---|
| group | AppGroup | 应用分组 |
返回值
类型String,新增应用分组的ID
示例
javascript
informat.company.addAppGroup({
'name':'测试分组'
});text
qunzjrmed162wupdateAppGroup
编辑应用分组
javascript
informat.company.updateAppGroup(group);| 参数 | 类型 | 描述 |
|---|---|---|
| group | AppGroup | 应用分组 |
返回值
类型Integer,编辑成功的分组数量
javascript
informat.company.updateAppGroup({
'id':'qunzjrmed162w',
'name':'测试分组2'
})text
1deleteAppGroup
删除应用分组
javascript
informat.company.deleteAppGroup(id);WARNING
分组下有应用则不能删除
| 参数 | 类型 | 描述 |
|---|---|---|
| id | String | 应用分组ID |
返回值
类型为Integer,删除成功的分组数量
示例
javascript
informat.company.deleteAppGroup('qunzjrmed162w');text
1queryAppList
查询应用列表
javascript
informat.company.queryAppList(query)| 参数 | 类型 | 描述 |
|---|---|---|
| query | Query | 查询条件 |
返回值
类型为Array<Application)>,返回应用列表
示例
javascript
informat.company.queryAppList({
pageIndex:1,
pageSize:100,
filter:{
conditionList:[{
"fieldId":"name",
"opt":"contains",
"value":"测试"
}]
}
});json
[
{
"appDefineId": "com.mycompany",
"color": "c7",
"createAccountId": "zhangsan",
"createTime": 1680006873433,
"icon": "home",
"id": "ftegr30w93jya",
"name": "测试一下",
"updateAccountId": "zhangsan",
"updateTime": 1696919628896
},
{
"appDefineId": "cn.informat.test",
"color": "c1",
"createAccountId": "zhangsan",
"createTime": 1664258560997,
"icon": "community",
"id": "btz5tka89273q",
"name": "全字段测试",
"updateAccountId": "zhangsan",
"updateTime": 1696919628886
}
]queryAppListCount
查询应用列表数量
javascript
informat.company.queryAppListCount(filter)| 参数 | 类型 | 描述 |
|---|---|---|
| filter | Filter | 查询过滤器 |
返回值
类型为Integer,返回匹配到的总数
示例
javascript
informat.company.queryAppListCount(
{
conditionList:[{
"fieldId":"name",
"opt":"contains",
"value":"测试"
}]
}
);text
2installApp
安装应用
javascript
informat.company.installApp(req);| 参数 | 类型 | 描述 |
|---|---|---|
| req | InstallAppRequest | 安装信息 |
返回值
类型为String, 新安装的应用ID
示例
javascript
let company = informat.company.getCompany();
informat.company.installApp({
'groupId': company.id,
'imrUrl':'https://next.inforamt.cn/test.imr'
});text
uzafvisn1whcquninstallApp
卸载应用
javascript
informat.company.uninstallApp(appId);| 参数 | 类型 | 描述 |
|---|---|---|
| appId | String | 应用ID |
示例
javascript
informat.company.uninstallApp('uzafvisn1whcq');getUserAppList
查询用户可以访问的应用列表
javascript
informat.company.getUserAppList(accountId)| 参数 | 类型 | 描述 |
|---|---|---|
| accountId | String | 账号ID |
返回值
类型为UserAppList,返回应用列表
示例
javascript
informat.company.getUserAppList('zhangsan');json
{
"appGroupList":[
{
"createTime":1737464180983,
"id":"nj4h8ci8kjpsu",
"name":"演示应用",
"rowNumber":1,
"updateTime":1738810011210
},
{
"createTime":1717142070955,
"id":"qdjpyk2iw8zzt",
"name":"开发迭代",
"rowNumber":2,
"updateTime":1738810011216
}
],
"appList":[
{
"appDefineBuild":920,
"appDefineEditable":true,
"appDefineId":"com.demo.srm",
"appDefineVersion":"1.0",
"color":"c1",
"createAccountId":"lwfwqr67xsvup",
"createTime":1725441476365,
"enableAppJsonLog":false,
"enableAppLog":false,
"icon":"instance-fill",
"id":"dvl8ig0j3odwh",
"logLevel":"DEBUG",
"name":"功能演示-供应商管理",
"groupId":"nj4h8ci8kjpsu",
"updateTime":1739861044583
},
{
"appDefineBuild":54,
"appDefineEditable":true,
"appDefineId":"demoApp.pm",
"appDefineVersion":"1.0",
"color":"c2",
"createTime":1725503438313,
"enableAppJsonLog":false,
"enableAppLog":false,
"icon":"task",
"id":"m4mfdpi5plchm",
"logLevel":"DEBUG",
"name":"功能演示-项目管理",
"groupId":"nj4h8ci8kjpsu",
"updateTime":1740559881456
}
]
}团队知识库脚本接口
以下接口均使用当前执行上下文的团队和账号,要求“团队知识库”管理权限;没有登录身份或以系统账号执行时拒绝访问。知识库ID与应用知识库模块Key不是同一种标识,必须先通过 queryKnowledgeBaseList() 获取真实ID。返回对象不包含向量模型配置或API密钥。
| 方法 | 说明 |
|---|---|
queryKnowledgeBaseList() | 返回团队知识库列表、ID、名称和文档数量 |
getKnowledgeBase(knowledgeBaseId) | 获取库详情及文档数量 |
createKnowledgeBase(name, description) | 新建知识库,返回含ID的信息 |
updateKnowledgeBase(knowledgeBaseId, name, description) | 修改名称及描述;描述为整体替换 |
deleteKnowledgeBase(knowledgeBaseId) | 级联删除文档、分块、目录、角色授权和专家引用 |
queryKnowledgeBaseDirectoryList(knowledgeBaseId) | 平铺目录列表,通过parentId组装目录树 |
createKnowledgeBaseDirectory(knowledgeBaseId, directory) | 新建目录;directory包含name、description和parentId |
updateKnowledgeBaseDirectory(knowledgeBaseId, directory) | 修改目录;directory包含id、name和description |
moveKnowledgeBaseDirectory(knowledgeBaseId, directoryId, parentId) | 移动目录;拒绝循环引用和跨库移动 |
deleteKnowledgeBaseDirectory(knowledgeBaseId, directoryId) | 仅可删除空目录 |
queryKnowledgeBaseDocumentList(knowledgeBaseId, directoryId, query) | 仅查询当前目录,空directoryId表示根目录;query可为null或包含status、documentType、documentName、createAccountId |
getKnowledgeBaseDocument(knowledgeBaseId, documentId) | 文档详情、status、chunkCount和errorMessage |
uploadKnowledgeBaseDocument(knowledgeBaseId, document) | 上传并异步处理文件,返回docId和taskId |
appendKnowledgeBaseDocument(knowledgeBaseId, documentId, content) | 原样追加UTF-8文本,保留文档ID并重新异步处理 |
reIngestKnowledgeBaseDocument(knowledgeBaseId, documentId) | 沿用原始文件和已保存分块配置重新处理 |
deleteKnowledgeBaseDocument(knowledgeBaseId, documentId) | 删除文档及分块 |
moveKnowledgeBaseDocuments(knowledgeBaseId, directoryId, documentIds) | 在同一知识库内批量移动文档;空directoryId表示根目录 |
getKnowledgeBaseIngestTaskStatus(knowledgeBaseId, taskId) | 获取异步状态与进度;taskId必须属于该库 |
searchKnowledgeBase(keyword, knowledgeBaseIds) | 请求ID与账号AI知识库权限取交集;空列表使用获准的全部库,交集为空时返回空结果 |
上传请求:name为带扩展名的文件名;base64Content为标准Base64文件内容(不带data URL前缀,解码后最多15MB);directoryId为空时上传到根目录。可选 documentType、category、chunkConfig,分块配置沿用应用知识库的父子分块模型。使用团队默认配置或库独立配置,接口不会修改向量模型设置。
javascript
// 此Base64示例解码后是简单的Markdown验收标题;实际文件内容由调用方提供。
var kb = informat.company.createKnowledgeBase("验收资料", "测试专用资料");
var queued = informat.company.uploadKnowledgeBaseDocument(kb.id, {
name: "acceptance.md",
base64Content: "IyBBY2NlcHRhbmNlCg==",
documentType: "MARKDOWN"
});
// 在后续调用中查询,避免在单个脚本中忙等。
var task = informat.company.getKnowledgeBaseIngestTaskStatus(kb.id, queued.taskId);
// 只有task.status为COMPLETED后再检索;FAILED时检查errorMessage。返回上传任务成功只表示任务已提交,并不代表文档已完成入库。实际问答需在异步处理完成后,将检索结果交给智能体;searchKnowledgeBase本身不调用聊天模型生成答案。
参数与返回对象
knowledgeBaseId、directoryId、documentId、taskId 均使用查询或创建接口返回的真实 ID。方法不接收 companyId 或操作账号参数,传入对象中的同名属性也不能切换团队或执行人。
| 返回类型 | 使用接口 | 主要字段 |
|---|---|---|
InformatCompanyKnowledgeBase | 库详情、新建、编辑;列表为此对象的数组 | id、name、description、documentCount、rowNumber、createTime、updateTime;文档数量在列表和详情中回填,新建/编辑的返回值不用于判断实时文档数量 |
InformatCompanyKnowledgeBaseDirectory | 目录新建、编辑、移动;列表为此对象的数组 | id、knowledgeBaseId、parentId、name、description、rowNumber |
InformatCompanyKnowledgeBaseDocument | 文档详情;列表为此对象的数组 | id、title、directoryId、fileName、fileSize、documentType、category、status、errorMessage、chunkCount、createAccountId、createdTime、updatedTime;不返回原始文件存储路径 |
InformatKnowledgeBaseWriteResult | 上传、追加、重新处理 | docId、taskId;用于后续状态查询 |
InformatKnowledgeBaseIngestTask | 任务状态查询 | taskId、docId、status、totalChunks、processedChunks、progress、errorMessage、startTime、endTime、duration |
| 检索分块列表 | 内容检索 | 由现有检索引擎返回,包含 docId、content 等分块信息;章节、页码和评分等信息视原文及检索配置而定 |
| 无返回值 | 删除知识库、删除目录、删除文档、移动文档 | 成功时正常结束,失败时抛出平台异常 |
任务的 progress 为百分数(0—100),duration 为毫秒,startTime/endTime 为 ISO-8601 字符串。任务状态包括 PENDING、PROCESSING、COMPLETED、FAILED。只有 COMPLETED 表示处理成功;FAILED 时查看 errorMessage。文档列表的 status 表示文档状态,getKnowledgeBaseIngestTaskStatus 表示某一次任务的状态,重新处理后应使用新返回的 taskId。
上传请求与分段配置
| 参数 | 类型 | 说明 |
|---|---|---|
name | String | 必填,带扩展名的文件名,例如 product.md;不能包含 /、\ 或空字符,不能为 . 或 .. |
base64Content | String | 必填,标准 Base64 字符串;不接受 URL、服务器路径或 data:...;base64, 前缀,解码后上限为 15MB;空文件无法完成内容摄入 |
directoryId | String | 可选,目标库内目录 ID;null 或空白值表示根目录 |
documentType | String | 可选,例如 MARKDOWN、CODE、API、FAQ、ARTICLE、TABLE、CUSTOM;省略时按文件名推断,类型设置不改变原始文件格式 |
category | String | 可选,文档分类 |
chunkConfig | Object | 可选,父子分块配置;省略时按文档类型采用推荐配置 |
chunkConfig 可使用以下字段:
| 字段 | 类型 | 默认值及约束 |
|---|---|---|
parentMaxLen | int | 默认 1500,必须大于 0 |
childMaxLen | int | 默认 400,必须大于 0 |
childMinLen | int | 默认 80,必须大于等于 0 且小于 childMaxLen |
childOverlapLen | int | 默认 50,必须大于等于 0 且小于 childMaxLen |
enableOverlap | boolean | 默认 true |
parentSeparator | String | 默认分隔表达式 \n\n,仅 CUSTOM 类型使用 |
childSeparator | String | 默认分隔表达式 \n,仅 CUSTOM 类型使用 |
表内默认值指显式传入 chunkConfig 时公开 SPI 模型的字段默认值;完全省略 chunkConfig 时采用文档类型推荐值。首次调用前应确认团队知识库已启用,并已在页面配置可用的团队默认向量模型或知识库独立配置。
示例一:创建知识库、目录并上传文件
下面会创建新的测试资料。实际业务应先查询列表,复用已有目标,避免重复创建。
javascript
var libraries = informat.company.queryKnowledgeBaseList();
var kb = informat.company.createKnowledgeBase("产品验收资料", "验收测试专用");
var directory = informat.company.createKnowledgeBaseDirectory(kb.id, {
name: "产品说明",
description: "产品文档",
parentId: null
});
var queued = informat.company.uploadKnowledgeBaseDocument(kb.id, {
name: "acceptance.md",
// 解码后为Markdown标题“# Acceptance”及换行。
base64Content: "IyBBY2NlcHRhbmNlCg==",
directoryId: directory.id,
documentType: "MARKDOWN",
category: "验收"
});
// 保存这些返回值供后续调用使用,不要把示例ID替换成自行编造的值。
var uploaded = {
knowledgeBaseId: kb.id,
directoryId: directory.id,
documentId: queued.docId,
taskId: queued.taskId
};示例一补充:上传 Word 文件
Word 文件使用同一个上传接口,支持 .doc、.docx。knowledgeBaseId 来自已有知识库的查询或创建结果,wordBase64 由调用方传入,必须是原始 Word 文件二进制内容的标准 Base64,不是正文文字的 Base64,也不带 data:...;base64, 前缀。
javascript
// 文件名扩展名应与真实文件格式一致;这里上传的是.docx文件。
var wordQueued = informat.company.uploadKnowledgeBaseDocument(knowledgeBaseId, {
name: "产品说明.docx",
base64Content: wordBase64,
directoryId: null, // 根目录;上传到子目录时填已有目录ID。
category: "产品资料"
// documentType省略,由系统按文件名推断,无需填写WORD或DOCX。
});
// 保存返回值,传给后续脚本查询处理状态。
var wordUploaded = {
knowledgeBaseId: knowledgeBaseId,
documentId: wordQueued.docId,
taskId: wordQueued.taskId
};接口会自动将 Base64 解码为原始附件,解析 Word 文字,再异步分块、生成向量并建立索引;原始文件不超过 15MB。返回成功仅表示已提交处理,不能立即视为可检索。
在后续另一次脚本中,传入上一步返回的 knowledgeBaseId、documentId、taskId:
javascript
var wordTask = informat.company.getKnowledgeBaseIngestTaskStatus(knowledgeBaseId, taskId);
var wordDocument = informat.company.getKnowledgeBaseDocument(knowledgeBaseId, documentId);
var wordChunks = [];
if (wordTask.status === "COMPLETED") {
wordChunks = informat.company.searchKnowledgeBase("产品说明", [knowledgeBaseId]);
}
// FAILED时查看wordTask.errorMessage;不要在单次脚本中循环忙等。当前不会自动识别 Word 内嵌图片中的文字或图像含义。appendKnowledgeBaseDocument 仅支持文本文件,不能用于向 Word 原始附件追加内容。
示例二:查询处理结果后检索
下面的 knowledgeBaseId、directoryId、documentId、taskId 来自前一次上传的返回值,由调用方传入本次脚本。不要在单次脚本中使用循环忙等处理完成。
javascript
var task = informat.company.getKnowledgeBaseIngestTaskStatus(knowledgeBaseId, taskId);
var document = informat.company.getKnowledgeBaseDocument(knowledgeBaseId, documentId);
var files = informat.company.queryKnowledgeBaseDocumentList(knowledgeBaseId, directoryId, {
status: "COMPLETED",
documentName: "acceptance"
});
var chunks = [];
if (task.status === "COMPLETED") {
chunks = informat.company.searchKnowledgeBase("Acceptance", [knowledgeBaseId]);
}
// chunks是检索材料;智能体需基于材料组织回答,并在资料不足时明确说明。queryKnowledgeBaseDocumentList(knowledgeBaseId, null, null) 只返回根目录文档,不递归遍历子目录;需要遍历全库时先查目录列表,再逐个查询。searchKnowledgeBase 按知识库检索,不按内部目录限制范围。
示例三:编辑、移动与重新处理
下面所有 ID 均应来自当前团队的前序查询结果。目录编辑只修改名称和描述,移动目录必须使用专门的移动接口。
javascript
var detail = informat.company.getKnowledgeBase(knowledgeBaseId);
var updated = informat.company.updateKnowledgeBase(knowledgeBaseId, "产品验收资料(更新)", "最新验收资料");
var directories = informat.company.queryKnowledgeBaseDirectoryList(knowledgeBaseId);
var editedDirectory = informat.company.updateKnowledgeBaseDirectory(knowledgeBaseId, {
id: directoryId,
name: "产品说明(更新)",
description: "更新后的目录说明"
});
// 移动到根目录;null表示根目录,不改变知识库归属。
var movedDirectory = informat.company.moveKnowledgeBaseDirectory(knowledgeBaseId, directoryId, null);
informat.company.moveKnowledgeBaseDocuments(knowledgeBaseId, null, [documentId]);
var retried = informat.company.reIngestKnowledgeBaseDocument(knowledgeBaseId, documentId);
// 重新处理保留documentId,但应使用retried.taskId查询新任务。追加现有文本文件
对已上传或脚本创建的 UTF-8 .md、.markdown、.txt 文档,可以追加正文并保持原 documentId:
javascript
// knowledgeBaseId、documentId取自前序查询或上传返回值。
var appended = informat.company.appendKnowledgeBaseDocument(
knowledgeBaseId,
documentId,
"\n\n## 新内容\n这里是追加的资料。\n"
);
// appended.docId仍是原文档ID;保存appended.taskId,在后续调用中查询新任务状态。追加文本按原样写入,不自动补换行;原文及新增内容均须为有效 UTF-8,追加内容不能仅为空白,合并后的文件不超过 15MB。不支持向 Word、PDF 等二进制附件追加文本。
接口保留原文档名称、标题、目录、分类、创建时间和分块配置,保存合并后的新原始文件,清理旧分块后重新注册异步摄入。返回成功只代表任务已提交;应等待新任务 COMPLETED 后检索追加内容。事务失败时保留旧附件,提交成功后清理被替换的旧附件。
文档行锁用于避免并发覆盖;文档处于 PENDING 或 PROCESSING 时拒绝追加,应等待当前任务结束再提交。追加不是幂等操作,不要在执行结果不明时直接重放同一请求,否则可能重复追加。
删除与异常处理
删除前先查询核对真实目标。以下是相互独立的调用方式,按业务需要选择,不要将其作为固定清理步骤自动执行:
javascript
// 删除单篇文档及其分块。
informat.company.deleteKnowledgeBaseDocument(knowledgeBaseId, documentId);
// 删除空目录;存在子目录或文档时会失败。
informat.company.deleteKnowledgeBaseDirectory(knowledgeBaseId, directoryId);
// 删除整个库及文档、分块、内部目录、角色授权引用和专家绑定。
informat.company.deleteKnowledgeBase(knowledgeBaseId);常见失败原因包括:当前账号无团队知识库管理权限、目标属于其他团队或知识库、团队知识库未启用、配置重建尚未完成、目录不为空或存在循环引用、文件大小或 Base64 格式不合法、分段参数不合法,以及任务不存在。异常信息由平台返回;不要把失败当作空结果。检索范围与账号 AI 知识库权限取交集后为空,则正常返回空列表,不会自动扩大到其他库。

