Files
ai-kefu-admin/seed_profiles/README.md
T

31 lines
2.3 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# seed_profiles —— 出厂租户档案
每个子目录是一个租户的出厂档案(Phase 1 的配置来源;Phase 2 换 platform.db 后作为"新建租户"的模板与"重置出厂"的基准)。
## 目录结构
```
seed_profiles/<slug>/
├── tenant.json # 站点 + 品牌 + 引擎配置(本文件是租户装配入口)
├── wall.json # 安全墙词表/话术(Task 4 由老项目 AST 提取生成)
├── prompts/ # 提示词 4 件套 md(Task 6 拷入)
│ ├── system.md / company_facts.md / extractor.md / evaluator.md
└── brand_values.json # 品牌值机器提取草稿(人工归一参考,运行时不读)
```
## tenant.json 要点
- **slug 不可变**:客户端存储 key(邀请卡状态、会话令牌)全部以 slug 命名,改动 = 重置所有客户页面记忆;site slug 同理。`slug` 字段必须与目录名一致(加载期校验)。
- **站点模型**:域名挂在站点上,站点属于租户。每租户**至少一个站点**。站点两种接入方式(jiancai 的两个站点即示范):
- **绑域名**:`main` 站 `"domains": ["chat2.agent.hnxinyouhe.com", ...]`,按请求 Host 自动识别(大小写/端口会先归一);
- **空域名 + `data-site`**:`es` 站 `"domains": []`,与 main 共用挂件域名,嵌入代码以 `data-site="es"` 参数选择站点。
- **`site.brand` 是覆盖层**:缺省项继承 `config.brand`(深合并),只覆盖门面(标题/欢迎语等);AI 脑子与线索管道留在租户级。
- **wall 不写在 tenant.json 里**:加载器会把同目录 `wall.json` **隐式并入** `config["wall"]`(原始词表,供后台编辑/回滚),编译产物挂 runtime 的 `compiled_wall` 供引擎消费——词表数据源只有 wall.json 一份。
- **`config` 内不含 prompts**:提示词由目录内 `prompts/*.md` 提供(Task 6)。
- 加载期显性失败(不流入运行期):无效 JSON、slug 与目录名不一致、零站点、wall 编译错误、域名跨站点/跨租户重复绑定。
## 纪律
- 改动本目录后必须跑全量 pytest(出厂配置影响面大,见 CLAUDE.md)。
- `brand_values.json` 是 Task 4 的机器提取草稿(`conflict=true` 处需人工归一),`tenant.json` 的品牌值应与其保持一致;它本身不被运行时读取。