Orchidea Archive
企业知识库与记忆系统后端(Backend Service)
Orchidea Archive 是 Orchidea 产品线的企业知识库 + 记忆系统后端服务,基于 FastAPI 构建,提供知识管理、语义检索、知识演进、实时协同与 AI 问答能力,并通过 MCP Server 将知识库能力开放给 AI 客户端(如 Orchidea Desktop、Cursor 等)。
2026-11 能力更新(v0.3.0)
- 分片上传与断点续传:S3 Multipart +
upload_sessions会话表(迁移 0033),提供创建 / 查询进度 / 完成 / 中止端点 - 文档路由:
document_router.py按 52 类扩展名分流direct/vision/know,PDF 依文本密度动态判定 - 向量去重:Milvus 写入新增
source_channel标量字段,区分 archive 与 vision 来源,避免双写重复命中 - 图片管线:图片文本绑定与嵌入管线补齐
2026-10 能力更新(v0.2.0)
- 标准情报巡检(Standard Patrol):搜索 → 抓取 → 候选池 → 人工审核 → 入知识条目,绝不直接写入;来源限定 ISA-95 / IEC 62443 / ISO 22400 / B2MML / AAS / OPC UA / ISA-88
- 候选治理与证据链:差异对比、批量审核、审批撤销/恢复/置顶、SLA 升级、拒绝洞察、订阅矩阵、巡检运行报告与进度;候选证据、影响分析、审核链校验、标准盘点导入/查询、抽样审计
- 冲突管理:知识冲突检测与治理(
app/knowledge/conflict.py) - MCP Server:统一 registry 扩展至 101 个工具(知识 82 / 文档 13 / 本体 3 / 运行 3),工具带
read/write/admin权限与readOnlyHint/idempotentHint注解 - 知识规范:21 个知识分类、10 种关系类型,支持校验/建议/Turtle/JSON/Markdown 编译与
owl:inverseOf推断
功能特性
知识管理
- 页面与空间:pages / spaces / tables / slides / templates / workspaces 多级内容组织
- 协作文档:双链(backlinks)、评论(comments)、关注(watchers)、收藏(favorites)、页面分享(share)、页面校验(verifications)
- 导入导出:DOCX 导入、Confluence ZIP 导入、导出任务(export_jobs)
- 附件索引:上传附件并索引,内容参与全文搜索
知识工程与语义能力(app/knowledge)
- 知识提取与编译:extractor / embedder / compiler / converter / blocks,从文档编译为结构化知识条目
- 语义检索:Beam Retriever(beam_retriever)与 Vectorless RAG(vectorless_rag,无需向量库的检索增强生成)
- Q&A 查询智能体:query_agent 基于工具调用循环(search/read/traverse relations)回答知识库问题
- 通用 AI 工具闭环(AIP):
app/ai/agent.py提供 provider 无关(Anthropic/OpenAI/generic)的通用 agentic 工具调用循环,可驱动统一 registry(app/ai/registry)注册的任意工具集(ontology / knowledge / doc 工具),将工具结果回填给模型直至产出最终答案或轮次耗尽 - 知识演进:evolver 持续改进知识条目,operation_log 记录演进轨迹
- 语义校验:semantic_lint / lint 对知识条目做语义与质量检查;knowledge_spec 定义知识规范
- 本体桥接:ontology_bridge 将 Archive 知识分类映射为 Plex 本体概念(IRI),打通知识库与语义平台
MCP Server
app/knowledge/mcp_server.py 提供 stdio 协议的 MCP Server(JSON-RPC),向 AI 客户端暴露 search_knowledge、get_knowledge_entry 等工具,可直接查询与检索知识库。
实时协同(app/realtime)
- collab:Yjs 驱动的多人协同编辑(WebSocket)
- doc_sync / history_writer:文档同步与编辑历史
- present:演示/共享会话
安全与企业能力
- 认证:账号密码 + MFA(TOTP)、API Keys、会话管理(sessions)
- SSO / OIDC:auth_providers / sso 路由支持第三方身份源
- 审计与限流:audit 审计日志、rate_limit 限流、权限模型(permissions)
- 多工作区:workspaces / spaces / enterprise(权益 entitlements)
基础设施
- 存储抽象:local 与 S3 双驱动(app/storage)
- 搜索驱动:database(默认)与 Typesense
- 异步任务:arq 队列 + 文件监听(watcher)
- 国际化:en / zh 双语
- 数据模型:SQLAlchemy(async)+ Alembic 迁移(alembic/versions)
架构简述
app/
├── main.py # FastAPI 应用入口(/api 前缀、WebSocket、中间件)
├── api/routes/ # REST 路由(auth/sso/pages/spaces/tables/slides/knowledge/search 等)
├── core/ # 配置、安全、审计、权限、队列、限流、错误处理
├── db/ # SQLAlchemy 模型、Alembic 迁移、初始化
├── knowledge/ # 知识引擎(提取/检索/RAG/演进/语义校验/MCP/本体桥接)
├── ai/ # 通用 agentic 工具调用闭环(registry / agent)
├── realtime/ # Yjs 协同、文档同步、演示
├── storage/ # local / S3 存储驱动
└── i18n/ # 国际化(en/zh)
快速开始
环境要求
- Python >= 3.11
- PostgreSQL(含 pgvector 扩展);Redis 可选(队列/缓存/文档同步)
安装与启动
python -m venv .venv
.venv/bin/python -m pip install -U pip
.venv/bin/python -m pip install -e .
# 设置环境变量(参考 .env.example),然后启动:
.venv/bin/uvicorn app.main:app --reload --port 8000
默认 API 前缀为 /api,启动后可访问:
- API 文档:
http://localhost:8000/docs - 协同编辑 WebSocket:
/collab
知识库 CLI
python -m app.knowledge.cli init --workspace <id> # 初始化知识库
python -m app.knowledge.cli add <file_or_dir> --workspace <id> # 导入内容
python -m app.knowledge.cli query "搜索词" --workspace <id> # 检索
python -m app.knowledge.cli lint --workspace <id> # 语义校验
python -m app.knowledge.cli compile --workspace <id> # 知识编译
python -m app.knowledge.cli evaluate --workspace <id> # 评估
python -m app.knowledge.cli watch <dir> --workspace <id> # 目录监听
Docker
仓库根目录提供 Dockerfile,构建后以 uvicorn 监听 8000 端口:
docker build -t orchidea-archive .
docker run -p 8000:8000 orchidea-archive
环境变量
配置项均以 CRB_ 前缀定义,完整清单见 .env.example,主要分组:
| 分组 | 变量示例 | 说明 |
|---|---|---|
| 应用 | CRB_APP_NAME、CRB_API_PREFIX、CRB_ENVIRONMENT | 应用名、API 前缀、运行环境 |
| 安全 | CRB_SECRET_KEY、CRB_ACCESS_TOKEN_TTL_MINUTES、CRB_COLLAB_TOKEN_TTL_MINUTES | 会话令牌与密钥 |
| 数据库 | CRB_DATABASE_URL(PostgreSQL + asyncpg)、CRB_AUTO_CREATE_SCHEMA | 数据库连接与自动建表 |
| 缓存/队列 | CRB_REDIS_URL | Redis(可选) |
| 搜索 | CRB_SEARCH_DRIVER(database/typesense)、CRB_TYPESENSE_* | 搜索驱动与 Typesense 配置 |
| AI / LLM | CRB_LLM_BASE_URL、CRB_LLM_API_KEY、CRB_ANTHROPIC_API_KEY、CRB_OPENAI_API_KEY | 大模型服务配置 |
| Embedding | CRB_EMBEDDING_API_URL、CRB_EMBEDDING_MODEL、CRB_EMBEDDING_DIMENSIONS | 向量嵌入配置 |
| 知识编译 | CRB_KNOWLEDGE_*、CRB_BEAM_SEARCH_*、CRB_VECTORLESS_RAG_* | 知识编译、Beam 检索、Vectorless RAG 参数 |
| 协同 | CRB_COLLAB_DRIVER、CRB_HOCUSPOCUS_*、CRB_YJS_HISTORY_DEBOUNCE_MS | Yjs/Hocuspocus 协同配置 |
| 存储 | CRB_STORAGE_DRIVER(local/s3)、CRB_S3_* | 对象存储配置 |
| SSO | CRB_SSO_OIDC_* | OIDC 单点登录配置 |
| SMTP | CRB_SMTP_* | 邮件服务 |
| 其他 | CRB_MAX_UPLOAD_BYTES、CRB_DEFAULT_LOCALE、CRB_AVAILABLE_LOCALES | 上传限制、国际化 |