展开本页目录
开始前准备什么
- 准备本篇使用的 AnythingLLM Query 模式教程 环境;当前入口与版本参照文末官方来源。
- 将本页下载包解压到独立练习目录,先读原始输入与 README。
- 只运行对应步骤所需依赖;离线检查与目标产品运行分别记录。
- 建立资料故意不同的两个工作区
- 将文件放进对应工作区知识
- 在工作区选择 Query 模式
- 分别新建聊天问售价
- 再问两份资料都没有的重量
- 用查询阈值排查无命中
1. 建立资料故意不同的两个工作区
准备 red.md 和 blue.md,分别包含售价 39 与 59,重量都没有提供。完全原创的商品例子用于检查资料边界,不代表真实商品报价。
2. 将文件放进对应工作区知识
上传后检查 red 只包含 RED-1,blue 只包含 BLUE-1,完成嵌入。全局文件上传与当前工作区已使用文档是两件事,先看当前工作区的文档列表。
3. 在工作区选择 Query 模式
从工作区设置切换 Query。官方把 Query 定位为文档问答,Chat 会混合一般知识;当前使用 agentic chat 的实例先确认是否仍显示同样模式入口。
config.json · 字段教材,不可作为工作流导入
{
"mode": "Query",
"workspaces": [
"red-lab",
"blue-lab"
],
"documents": "上传后移入对应工作区并完成嵌入",
"similarity": "从当前设置开始,按实际检索结果调整",
"comparison": "new chat per workspace"
}4. 分别新建聊天问售价
在 red-lab 新聊天问当前款售价,预期来自 39;blue-lab 新聊天预期 59。打开文档引用核对来源,不在同一聊天连续换工作区来测试隔离。
5. 再问两份资料都没有的重量
期望提示没有相关资料,不把售价转成重量,也不查另一工作区的推测值。Query 的产品定位不保证所有模型绝无幻觉,仍记录实际原文。
6. 用查询阈值排查无命中
若已知售价也无结果,先检查文档进入工作区并完成索引,再核对相似度阈值。降低阈值只用于诊断,不作为文件权限设置;检索范围与用户权限另查。
7. 下载教材并运行离线核对
先下载完整教材包并解压,在材料目录运行 python3 check-fixture.py。脚本只读取原创输入、人工预期与配置,对照本页固定验收条件;通过说明材料内部关系一致,实际产品、模型与业务写入另需按前六步验证。
bash
unzip lesson.zip -d anythingllm-workspace-query-isolation
cd anythingllm-workspace-query-isolation
python3 check-fixture.py怎样确认已经完成
- 两工作区文档列表不混入对方文件。
- 售价回答引用当前工作区资料。
- 重量未知不补值,模式与实际响应分别记录。
常见问题
Query 模式能保证只说文档事实吗?
官方描述是文档问答并在无资料时提示,但实际模型仍需验收。用已知、未知和另一工作区问题分别核对,不把模式标签当事实证明。
调阈值可以替代工作区隔离吗?
不能。阈值影响相似度检索,文档范围与用户权限是另两层设置,应独立检查。

