公开知识库(Public KB)是您知识库中可无需登录即可通过直接链接、小组件或 iframe 访问的部分。只有您明确标记为公开的文章才会出现在这里。
原因:
- 客户自助服务 — 客户无需联系支持即可自行找到答案
- SEO — 公开文章会被 Google 及其他搜索引擎索引
- 演示 — 潜在客户在购买前阅读文档
- 合作伙伴 — 无需创建账户即可访问技术文档
#文章如何变为公开
公开性由两项设置启用 —— 一项在文章级别,一项在组织级别。在两者都就位之前,匿名访客都不会看到该文章。
public 的文章才会进入匿名访问;internal / draft / inherit 保持隐藏。文章只能在 corporate 空间中被标记为公开 —— 在 private 和 personal 空间中发布被禁用。public 状态的文章。不存在“public”空间类型。 空间只有 Corporate / Private / Personal 三种。文章之所以可见,不是通过将其移入某个特殊空间,而是通过
publish_state=public标记(在 corporate 空间中)加上组织的公开访问模式已开启。
#publish_state 状态(ADR 0029)
LiKE 使用 publish_state 字段(它取代了旧的 visibility 字段)。共四种状态:
| 状态 | 谁能看到 | 备注 |
|---|---|---|
| draft | 仅作者和空间编辑者 | 草稿 — 团队不可见,也不纳入搜索 |
| inherit | 继承父集合/空间的可见性级别 | ADR 0029 |
| internal | 空间中所有已授权的成员 | 团队可见(新文章的默认值) |
| public | 所有人,包括通过 Public KB 访问的匿名用户 | 编辑器中的“发布”按钮 — 仅在 corporate 空间中可用 |
在 UI 中,状态的颜色通过一个圆点指示器显示:
相同的标记也会显示在文章管理的文章列表中。
#虚拟 __public__ 空间
当匿名用户通过直接链接或小组件打开 Public KB 时,从技术上讲,他们并不在您的任何空间中。相反,LiKE 使用一个虚拟“空间” __public__ — 一个哨兵值,它:
- 在数据库中并不作为真实的
ArticleCollection.type='public'存在 - 包含组织的 corporate 空间中所有
publish_state='public'的文章 - 用于匿名用户 RAG 搜索中的筛选
- 在 SpaceSwitcher 中显示为“🌐 公开文章”(如果该用户同时拥有私有空间)
如果您是已授权成员,在 SpaceSwitcher 中切换到 __public__,即可看到与匿名访客完全相同的一组文章 — 这便于检查“我不小心发布了什么”。
#设置(分步骤)
#第 1 步 — 将文章放入 corporate 空间
您只能从 corporate 空间对外发布文章(在 private 和 personal 空间中发布被禁用)。如果您的文章在其他空间中,请将它们移入 corporate 空间:逐篇通过文章的上下文菜单 → 移动,或批量(复选框 → 移动)。创建空间时,可用的类型为 Corporate 和 Private;“Personal”是系统空间。
#第 2 步 — 将文章设为公开
将您需要的文章切换为 publish_state = public(参见文章管理):
- 批量 — 用复选框选择 → 操作栏上的**地球(🌐)**按钮 → Public
- 单篇文章 — **“⋮”**菜单 → “可见性:…” → Public;在“树形”模式中 — 上下文菜单 → “设为公开”
- 在编辑器中 — 头部的 **“发布”**按钮
之后,状态指示器变为绿色,并出现 🌐 公开 标记。如果文章包含个人数据,会弹出确认对话框 —— 参见下文“发布前的个人数据检查”。
#第 3 步 — 开启组织的公开模式
设置 → 组织 → 访问模式 → 选择 “公开”。
- 公开 — 匿名用户可在公开地址看到被标记为公开的文章;私有空间仍仅限受邀者访问。
- 企业 — 一切仅对已登录成员可用;未登录的外部用户看不到任何内容,即使是被标记为公开的文章。
未开启“公开”模式时,公开地址处于关闭状态 —— 此步骤为必需。
#第 4 步 — 公开地址与渠道
有三种方式打开已就绪的公开知识库:
- 公开门户 — 您地址的根
https://<your-slug>.lynkora.pro:无需登录即可搜索、获取 AI 回答和阅读文章。单篇文章位于/kb/<article-slug>。 - JS 小组件 — 嵌入到您的网站;小组件代码取自 集成 → 渠道(“JS 小组件”卡片)。
- iframe — 将完整搜索界面嵌入到页面中。
设置中不再有单独的“Public KB”标签页(ADR 0029):公开性现在由文章标记 + 组织模式设置,而不是来源白名单。小组件在 集成 → 渠道 中管理。
#发布前的个人数据检查
当您将文章切换为公开时,LiKE 会自动扫描其中的个人数据(PII)。如果检测到任何个人数据,发布将被暂停,并弹出**"检测到个人数据"**对话框——在文章对所有人开放、无需登录即可访问之前。
**触发时机:**仅在发布时(切换为 public,匿名访问)。它不会对 internal、draft 或 inherit 运行。它适用于所有发布路径:编辑器中的"发布"按钮、列表/树形中的"设为公开"、批量可见性更改,以及发布合集/空间。
检测内容(确定性的、基于模式):
- 电子邮件
- 电话
- 支付卡(Luhn 校验和)
- IBAN(校验和验证)
- IP 地址
- 出生日期
特殊类别(健康、生物识别等,GDPR Art. 9)目前尚不会被自动检测——对话框仅就发布此类数据所涉及的更高责任发出提示。
对话框显示内容:
- 标题"检测到个人数据"以及检测到的类型及其计数列表(在所有正在发布的文章中汇总)。
- 一个必选的确认复选框:该工具有助于检测 PII,但不保证完整性;您作为数据控制者,仍须对发布的合法性以及是否具备法律依据或同意负责。
- 取消和发布按钮(仅在勾选复选框后才启用"发布")。
**确认之后:**文章将被发布,确认记录会连同检测到的数据类型一起写入活动日志(pii_public_ack)——而不存储 PII 文本本身(隐私设计原则,privacy-by-design)。该确认与文章的当前版本绑定:如果之后您编辑了文本,则需要重新确认。
**谁可以确认:**与可发布者相同的角色——文章所在空间中的 Editor 及以上(Owner 和 Admin 始终可以)。批量发布某个来源的所有文章仅限 Owner/Admin。
#用于 Public KB 的小组件(dual-auth,ADR 0032)
LiKE 为小组件支持两种身份验证模式 — 在 集成 → 小组件 中创建小组件时选择:
#模式 1 — 允许的路径(用于公开站点)
嵌入在公司公开站点(落地页、营销页面、帮助中心)上的小组件。无需身份验证 — 该小组件对任何访客可用。
滥用防护:
- 允许的 URL 列表(allowed paths)— 此 api-key 在这些地方有效。例如,
https://yoursite.com/*和https://docs.yoursite.com/*。来自其他域的请求会被拒绝(CORS + 检查)。 - Public 伞形范围 — 小组件仅可访问
__public__空间 + 该空间中在创建时定义的特定集合。 - api-key 上的速率限制 — 防止机器人。
#模式 2 — 会话 JWT(用于带身份验证的企业站点)
嵌入在公司内部门户上的小组件,用户已经通过了身份验证。该小组件接受会话 JWT,并且看到的内容与该用户看到的完全一致。
使用场景:
- 企业内网上的小组件 → 每位员工看到自己的空间
- 嵌入 SaaS 应用(例如 CRM)中 — 用户看到与其角色相符的文档
#每租户多小组件(ADR 0029 Stage 4)
在一个组织内,您可以创建多个具有不同范围的小组件:
- 一个 — 公开的,用于营销站点(allowed paths)
- 另一个 — 企业的,用于内网(会话 JWT)
- 第三个 — 用于特定集合(例如,仅面向支持中心的 FAQ)
每个小组件都有自己的 api-key、范围和身份验证模式。详情参见集成 → 小组件和 API 与小组件。
#匿名访客看到的内容
| 元素 | 是否可见? |
|---|---|
公开空间中 publish_state=public 的文章 |
✅ 是 |
| 针对这些文章的 AI 搜索 | ✅ 是 |
| 公开空间的集合目录 | ✅ 是 |
| 简短的分享/嵌入链接(如果为该文章启用) | ✅ 是 |
| “登录以获取完整访问权限”横幅(如果小组件是匿名的) | ✅ 是 |
internal、draft、inherit 文章 |
❌ 否 |
| 来自私有空间的文章 | ❌ 否 |
| 查询历史 / 推荐(个人的) | ❌ 否 |
| 管理面板、回收站、日志、分析 | ❌ 否 |
匿名搜索默认使用客户端指纹 cookie 进行基本的速率限制,但不会将请求关联到用户账户。
#隐藏单个集合
在公开空间中,并非所有集合都必须对匿名用户可见。您可以隐藏特定集合:
- 集合的上下文菜单 → 属性
- 集合的
publish_state字段:- inherit — 继承自空间(默认)
- internal — 对匿名用户隐藏,对团队可见
- public — 明确公开(仅在 corporate 空间中,否则被禁用)
这提供了灵活性:例如,在公开的“文档”空间中,您可以将草稿保留在一个 publish_state=internal 的 Internal Drafts 集合中 — 它们对外不可见,但对您的编辑者可用。
#嵌入到网站
Public KB 可通过三种方式集成到网站中:
| 方式 | 说明 |
|---|---|
| 直接链接 | https://<slug>.lynkora.pro — 一个完整的门户站点,带有文章列表、AI 搜索和导航 |
| JS 小组件 | 任意页面角落的浮动按钮;它展开为 AI 对话与搜索;行为可配置,在带 white-label 的套餐上,品牌也可配置 |
| iframe | 一个嵌入块(例如,您应用内的“帮助”页面)— 框架中的完整 LiKE 界面 |
| REST API | 通过 api-key 从您的后端发起直接请求 — 用于集成到您自己的界面中 |
#White-label 与自定义域名
公开知识库在默认地址 slug.lynkora.pro 上可用。高级门户能力 — white-label(无 LiKE 品牌)和连接自定义域名(设置 → 域名)— 包含在启用了 white-label 的套餐中。此项没有单独的付费附加项。
哪些能力在哪些套餐中可用以及价格如何 — 参见价格页面和您的管理面板。