内容
# AIQSA
[](https://github.com/insciqq/AIQSA/actions/workflows/release.yml)
[](https://github.com/insciqq/AIQSA/releases/latest)
[](LICENSE)
适用于希望拥有明确控制权的人和小型团队的自托管问题 → 搜索 → 答案的AI工作空间。

AIQSA 将对话式用户界面与可检查的执行相结合:用户可以选择具体的模型和搜索策略,然后审查引文、推理、事件、使用情况和分支历史。工作空间数据存储在您的PostgreSQL数据库和私有的S3兼容存储中;为运行选择的內容会发送到配置的AI提供商。
## 亮点
- 原生OpenAI、Anthropic、Gemini交互和OpenRouter提供商适配器,以及手动OpenAI兼容聊天端点。
- 可选的OpenAI网络搜索、原生Gemini Google搜索和通过OpenRouter的Perplexity搜索。
- 可分支的对话、保存的聊天、项目、提示预设和附件。
- 可检查的引文、推理、提供商事件、请求预览和令牌使用情况。
- 多用户帐户、邀请、访问规则、模型权限和管理员控制台。
- 管理员管理的MCP服务器,具有按用户/组访问、个人凭证、多服务器工具使用和隔离的本地工作负载。
- 可选的Google和Yandex登录。
## 快速开始
您需要带有Docker Compose插件的Docker Engine和OpenSSL。
从此存储库的**代码**菜单中复制HTTPS或SSH克隆URL。这可以是上游存储库或您自己的分支。然后将其克隆到稳定的本地目录名称:
```bash
git clone REPOSITORY_URL aiqsa
cd aiqsa
bash prepare-secrets.sh
```
将`REPOSITORY_URL`替换为复制的克隆URL。设置脚本仅询问初始管理员电子邮件,创建私有的`.env`,生成其密码和所需的基礎設施秘密,并打印一次管理员密码。将该密码保存在密码管理器中。如果`.env`已经存在,则脚本不会读取或更改它。对于无人值守的设置,请显式传递电子邮件:
```bash
bash prepare-secrets.sh --admin-email owner@example.com
```
参见[配置](docs/configuration.md),如果您更喜欢手动创建`.env`或需要更改可选设置。
然后启动AIQSA:
```bash
docker compose pull
docker compose up -d
```
打开[http://localhost:3000](http://localhost:3000)并使用`.env`中的初始管理员帐户登录。
然后打开`控制中心 -> 提供商`。选择OpenAI、Anthropic、Gemini或OpenRouter,粘贴其API密钥,并选择**测试并保存**;AIQSA安装每个当前审查的聊天模型,并选择一个推荐的默认模型,然后直接链接回聊天。对于另一个OpenAI兼容的聊天API,请选择**连接自定义端点**,输入其API根、手动模型ID和密钥,然后使用相同的**测试并保存**流程。正常的单管理员路径不需要组设置。第一个管理员已经是内置的、不可删除的`完全访问`组的拥有者,该组的显式成员有权访问所有当前和未来的提供商、模型、搜索策略和MCP服务器;凭证和个人MCP秘密保持单独。提供商密钥和SMTP设置由数据库管理,不作为普通的`.env`输入。
这足以进行本地使用。域名、SMTP服务器和OAuth凭证是可选的。PostgreSQL和上传的对象存储在命名的Docker卷中,因此正常的重建或更新不会擦除它们。
捆绑的ToolHive服务允许管理员添加远程、npm、PyPI或digest-pinned OCI MCP服务器,而无需更改一键启动。本地MCP在子容器中运行,但ToolHive具有对主机Docker套接字的受信任访问;仅安装受信任的MCP代码。参见[配置](docs/configuration.md#mcp-servers)在启用本地MCP之前。
## 更新
默认`.env`遵循发布的`latest`镜像。从现有的安装目录,创建经过验证的备份,更新小的Compose checkout,拉取当前镜像,然后重新启动堆栈:
```bash
ops/backup/create.sh /secure/aiqsa-backups
git pull --ff-only
docker compose pull
docker compose up -d
docker compose ps
curl -fsS http://127.0.0.1:3000/api/health/ready
```
使用现有的受保护目录代替示例备份路径。启动作业在应用程序准备好之前应用提交的数据库迁移。本地`.env`、现有用户、聊天记录、设置和上传的对象保留在安装和命名的Docker卷中。在进行大版本跳转或需要新配置时,请查看发布说明和`.env.example`的更改。要保留特定版本,请在相同的`.env`中将`AIQSA_IMAGE`设置为`ghcr.io/insciqq/aiqsa:X.Y.Z`等标签。
通常不需要先停止堆栈。 在更新期间绝不能运行`docker compose down -v`:`-v`会删除持久的数据库和对象存储卷。 有关备份、迁移、恢复和旧安装指南,请参见[部署和更新](docs/deployment.md)。
## 文档
- [配置](docs/configuration.md) — 提供商、MCP服务器、SMTP、OAuth、网络和所有操作员设置。
- [部署和更新](docs/deployment.md) — 在服务器上运行、TLS、备份和安全更新。
- [开发](docs/development.md) — 单独的可处置开发和测试堆栈。
AIQSA 预发布 1.0 版本,适用于小型、由操作员管理的安装。目前它不是一个高可用性系统,不提供用户自我服务的提供商密钥或计费;管理员可以直接向用户或组分配一个安装程序管理的凭证。
## 许可证
AIQSA 遵循 [GNU Affero 通用公共许可证 v3.0 仅](LICENSE)。