常见问题
常见问题(FAQ)
部署相关
Q: 支持哪些数据库?
A: M-Doc 支持 PostgreSQL(推荐)、MySQL 和 SQLite。生产环境建议使用 PostgreSQL,因为向量搜索功能(pgvector)仅支持 PostgreSQL。
Q: 需要 Redis 吗?
A: 是的,Redis 用于缓存和会话管理。M-Doc 启动时会连接 Redis,请确保 Redis 服务可用。
Q: 如何使用 HTTPS?
A: M-Doc 本身不处理 TLS,建议使用 Nginx 或 Caddy 作为反向代理,在代理层配置 SSL 证书。
Q: Docker 部署时如何持久化数据?
A: 使用 Docker Volume 挂载数据库数据目录和日志目录。如使用 Docker Compose,参考部署指南中的示例配置。
使用相关
Q: 文档的 Slug 可以修改吗?
A: 不可以。Slug 是文档的永久标识,创建后不可更改。请在创建时谨慎选择。
Q: 删除文章后能恢复吗?
A: 不能。文章删除后会级联删除所有相关的版本和数据。请在删除前确认。
Q: 如何将文章从一个版本移动到另一个版本?
A: 使用「合并」功能。在目标版本中选择文章,从源版本合并过来。
Q: 版本之间有什么关系?
A: 版本类似 Git 的分支。你可以从一个版本 Fork 出新版本,两者之后独立编辑。也可以将修改合并回去。
API 相关
Q: PAT 和 API Key 有什么区别?
A: PAT 更简单(Bearer Token),适合脚本和 AI 工具;API Key 更安全(HMAC 签名),适合服务端集成。PAT 有 Scope 限制,API Key 拥有全部权限。
Q: OpenAPI 接口返回 403 怎么办?
A: 检查以下几点:
- PAT 是否具有所需的 Scope
- PAT 是否已过期
- API Key 签名是否正确
- 时间窗口是否在 15 分钟内
Q: 如何批量导入文章?
A: 使用 OpenAPI 的创建和发布接口。创建 PAT(需要 write:articles 权限),然后通过脚本调用 API 批量创建。
AI 功能相关
Q: 语义搜索没有结果怎么办?
A: 检查以下配置:
vectorize.enabled是否为truevectorstore.enabled是否为true- pgvector 扩展是否已安装
- 文章是否已发布(仅发布状态的文章会被向量化)
- Embedding API 是否可访问
Q: 支持哪些 Embedding 模型?
A: 任何兼容 OpenAI Embedding API 的服务,如:
- OpenAI:
text-embedding-3-small,text-embedding-3-large - 智谱:
embedding-3 - 其他兼容服务
Q: 向量化失败会影响文章操作吗?
A: 不会。向量化是异步操作,失败不会影响文章的创建、编辑和发布。失败信息会记录在日志中。