main
NyaHome - 在线 AI 聊天室 基础设施
NyaHome 是由 FastAPI 后端、Vue WebUI 实现的在线 AI 文学创作平台的基础设施。
特色功能
- AI 创作聊天室
- 接入 OpenAI 兼容模型提供商,自携带 API 凭据
- 用户系统
- 由用户自行管理自己的聊天室
- 安全的密码管理与 JWT 令牌签发和验证
- 邮箱绑定、邮件验证码发送和验证
- 用户安全事件记录、修改密码时自动登出所有设备
- NyaHome 系统功能
- 在线后台管理面板
- 邮件 SMTP 发件
- 基于 mjml -> Jinja2 -> HTML 邮件的全链路渲染和发件流程
- 异步邮件发送队列
未来功能计划
| 功能 | 阶段 | 优先级 |
|---|---|---|
| 剧本市场 - 剧本分享、聊天室导出为剧本 | 规划中 | 低 |
| 用户功能 - 绑定手机号、接收手机验证码 | 规划中 | 低 |
| 用户功能 - 第三方账户 Oauth 登录 | 规划中 | 低 |
代码规范
NyaHome 的项目代码可以分为 Python 后端部分和 TypeScript 前端部分。
Python 部分
NyaHome 使用 uv 作为项目管理工具,使用 ruff 和 mypy 进行代码检查。在新的代码提交之前,应使用以下命令进行代码检查:
uv run ruff check --fix
uv run ruff format
uv run mypy
以上检查也被写入了 git 的 pre-push 钩子中,会在推送前自动进行检查。
TypeScript 部分
NyaHome 的 Vue 前端使用 TS。同时,使用 Oxc 的 linter 和 formatter。你可以在 webui 目录下使用以下命令进行代码检查:
pnpm run lint
pnpm run format
更新日志 CHANGELOD.md
NyaHome 尝试编写遵循 Keep a changelog 规范的更新日志。这意味着:
| 变动类型 | 变动含义 |
|---|---|
| Added | 新添加的功能。 |
| Changed | 对现有功能的变更。 |
| Deprecated | 已经不建议使用,即将移除的功能。 |
| Removed | 已经移除的功能。 |
| Fixed | 对 bug 的修复。 |
| Security | 对安全性的改进。 |
虽然 NyaHome 同时尝试维护规范的 git 日志,但是 git 日志毕竟是给开发者看的,而 CHANGELOG 是给所有人看的,包括你。
Description
Languages
Python
45.4%
Vue
40.5%
Jinja
7.3%
TypeScript
5.2%
SCSS
1.2%
Other
0.4%