Capek是一个自托管的对话式人工智能平台。
\[!警告\] 这个项目最初是一个实验,目前仍在进行中。预计会有突破性的变化。
特性
- 具有RBAC和行级安全性(RLS)的多用户支持。
- 单用户、OpenID连接(OIDC)和代理身份验证模式。
- 具有分流和专业模式的代理编排。
- OpenAI兼容的LLM提供者集成。
- MCP服务器集成。
- 使用沙盒代码解释器的技能。
- 黑暗/光明主题。
- 可定制的品牌。
- 国际化。
Running locally with llama.cpp (gpt-oss-120b) and a Playwright skill.
技术栈
| 层 | 技术 |
|---|---|
| 框架 | Nuxt |
| 前端 | Nuxt UI、顺风CSS、Pinia |
| API | tRPC,佐德 |
| 数据库 | PostgreSQL,Kysely(PGlite用于开发) |
| 测试 | 剧作家 |
代码解释器
代码解释器在 QuickJS WASM构建具有内存和执行时间限制。
每个聊天会话都有自己的内存中虚拟文件系统(VFS)。这 /workspace 目录是可写的;其他路径是只读的。Node.js-like fs API可用于文件操作。
技能和MCP工具作为ES模块公开 /skills/index.js 和 /servers/index.js:
const { $mySkill } = await import("/skills/index.js");
const { $myTool } = await import("/servers/myServer/index.js");该代理具有使用上下文,可以通过探索VFS(例如阅读 SKILL.md 文档文件)。
发展
设置
pnpm install
pnpm dev应用程序在单用户模式下运行 http://localhost:3000 并自动以管理员用户身份登录。
配置
复制 .env.example 到 .env 并根据需要进行调整。关键变量:
| 变量 | 描述 | 默认值 |
|---|---|---|
NUXT_DATABASE_URL | PostgreSQL连接字符串或PGlite文件路径 | file://./.data/pglite |
NUXT_AUTH_MODE | 身份验证模式: single-user, oidc, proxy | single-user |
NUXT_LOG_LEVEL | 日志级别: fatal, error, warn, info, debug | info |
看 .env.example 对于所有可用的配置选项。
部署
生产建设
pnpm build
pnpm start码头工人
docker build -t localhost/capek:latest ./
docker run -it --rm -p 127.0.0.1:3000:3000/tcp localhost/capek:latestDocker Compose
该项目包括示例Compose配置以供参考:
compose.base.yaml:核心服务(Traefik、PostgreSQL、MCP服务器)。compose.keycloak.yaml:使用Keycloak为OIDC扩展底座。compose.dex.yaml:扩展了OIDC的Dex基础。compose.proxy.yaml:通过代理身份验证扩展基础。
启动整个堆栈:
docker compose -f ./compose.keycloak.yaml up -d该应用程序可在以下网址访问 https://capek.localhost.
许可证
根据 欧盟公共许可证v.1.2或更高版本 © 赫克托·莫利内罗·费尔南德斯.在使用或分发之前,请先查看许可证条件。
