🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI
广告☁️ 云服务器特惠阿里云首购 8 折 · 腾讯云合作特惠
DeepSeek Harness Hub
← 返回列表

visiyondotcom/openchat

DeepSeek Harnessspec-screened扫描:中风险在 GitHub 查看 ↗
未验证

Openchat 一体化 AI 视频、SaaS、图像、动态生成器、视频编辑器等

尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/8 · 已提供中文文档

自托管、开源 AI 聊天平台,内置计费功能——可作为你自己的 SaaS 运行,或完全免费地自托管。

综合分
28.6
GitHub 分
28.6
用户评分
—
★ Stars
0
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add visiyondotcom/openchat
该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
信任档位:已验证本站已于 0 天前真实安装成功
是什么
dsh 原生插件 · chat
装得上吗
本站已真实安装成功(非静态推断)
安全吗
本站尚未对该插件做风险分级(暂未覆盖,不等同于无风险)
还在维护吗
活跃:最近一次提交在 17 天前

档位由下列信号合成:本站实装验证(真实安装,当前最高到 L4)· 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。下方各区块是它的证据明细。 验证判据与等级说明 →

🟢实装验证通过· 2026/9/25
由本站实装验证器在真实 dsh 环境安装成功,非静态推断。
数据截至 2026/9/21(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动

README

由 DeepSeek 最新模型翻译生成
openchat V2.0.0

Openchat 一体化 AI 视频、SaaS、图像、动态生成器、视频编辑器等

立即在 ai.visiyon.com 上试用

立即开启属于你自己的 Kling AI 业务或 OpenAI 业务

开源、可自托管的 AI 平台,用于启动你自己的 AI 业务——Kling 风格视频生成、OpenAI 风格聊天 API、多种 LLM(Ollama/Llama)、图像生成、多用户账户,以及内置 Stripe 计费。支持白标。

开源 AI 聊天界面,可自托管,专为与 Visiyon 平台其余部分协同运行而构建。
开源、可自托管的 AI 聊天平台——ChatGPT 替代方案,支持本地 LLM(Ollama)、多用户账户,以及可选的 Stripe 计费,让你作为自己的 SaaS 运行。Visiyon AI 套件的一部分。
Visiyon AI 自托管 Open AI Claude Code、Claude Coding、自托管 Claude API、在你的服务器上运行你自己的 Claude、SaaS AI、Cursor XAI、Grok AI、自托管 GROK AI、Deepseek、Qwen AI、GLM 5.2 AI、KIMI 3 AI 自托管平台、Anthropic 平台 🚀
自托管 Anthropic Fable 5 AI、Sonnet 5、Opus 5、Haiku 5 AI 自托管、Gemini AI 自托管 Google AI 自托管 在你的 PC、笔记本电脑、智能手机、服务器上运行 AI。一个面向 Ubuntu Server 22.04、由 Ollama 驱动的自托管 AI 助手平台。Next.js 15 · React 19 · TypeScript · Tailwind · Fastify · PostgreSQL · Prisma · Redis · Nginx · Docker Compose。

当前已包含并可用的内容
完整的 Docker Compose 技术栈:Postgres、Redis、Ollama、SearXNG、Whisper(STT)、Piper/Kokoro/Coqui XTTS-v2(TTS)、Fastify 后端、Next.js 前端、Nginx 反向代理
面板内更新:Admin > Updates 会检查 GitHub 上的新版本,并通过一个小型 sidecar 容器一键应用更新(git pull + rebuild)——请参阅下方“更新”。在你设置 UPDATE_REPO 之前默认关闭。
JWT 认证:注册、登录,第一个注册用户成为管理员。会话令牌在 JWT_EXPIRES_IN(默认 7 天)后过期;前端在收到 401 时会自动登出并重定向到 /login。登录、注册和密码重置请求均有限流(5–10 次尝试 / 15 分钟),以防止暴力破解。
SSO (OIDC):可选的“使用  继续”登录,可对接任意 OpenID Connect 提供商(Keycloak、Authentik、Auth0、Azure AD、Google Workspace、Okta……);未配置时自动隐藏。当提供商名称以“Microsoft”或“Azure”开头时,登录界面会自动渲染一个带品牌的白色“使用 Microsoft 继续”按钮(带有四色 Microsoft 徽标)——任何其他提供商名称则回退为普通的描边按钮。可从 管理 → 设置 → 登录提供商 进行配置(推荐——持久化到数据库中,无需重新部署),或通过 OIDC_* 环境变量配置;管理面板中留空的任何字段都会回退到这些环境变量。要接入 Microsoft Entra ID (Azure AD),请在该管理页面填写(或设置为环境变量):
Issuer URL:      https://login.microsoftonline.com//v2.0
Client ID:
Client secret:
Provider name:   Microsoft
Redirect URI:    https:///api/auth/sso/callback
(在 Azure Portal → App registrations 下创建应用注册,将重定向 URI 添加为 Web 平台回调,并授予其 openid、email、profile 委托权限)
密码重置:通过 nodemailer 发送真实 SMTP 邮件(适用于任何 SMTP 服务器,包括像 Mailpit 这样的免费本地服务器)——如果未配置 SMTP,则回退为在 API 响应中返回令牌,因此该流程在本地开发中仍可端到端运行
语音:说出你的消息(自托管 Whisper 转写),并具备实时流式文本转语音功能,在回复仍在生成时就开始说话,并且可以在句子中途被打断(barge-in)——从 管理 → 设置 → 语音 中选择 TTS 引擎:Piper(内置,最快,略带机械感)、Kokoro(内置,自然,对 CPU 友好——docker compose --profile tts-kokoro up -d)、Coqui XTTS-v2(内置,最自然的本地选项,支持声音克隆,推荐使用 GPU——docker compose --profile tts-coqui up -d),或 ElevenLabs(云 API,最像真人,需要 API 密钥)
浅色 / 深色模式:在侧边栏中切换,偏好存储在 localStorage 中,重新加载时不会出现错误主题闪烁
API 密钥:在设置中签发/撤销个人 API 密钥;requireAuth 接受以 vis_ 为前缀的密钥作为 Bearer 令牌,与普通 JWT 并列,因此密钥可在所有路由上使用
自动检测拉取到 Ollama 中的每个模型(GLM-4、Granite、Llama、Qwen、Gemma、DeepSeek、Mistral、Phi、视觉模型——无需硬编码)
通过 SSE 实现真正的逐令牌流式聊天,并通过 Nginx 代理(禁用缓冲,以便实时流式传输)
停止生成、重新生成、多聊天、搜索/重命名/置顶/删除聊天、自动生成标题
RAG / 文档上传:将 PDF、DOCX、TXT、MD 或 CSV 文件附加到任何聊天中。文档会被分块、嵌入(通过 Ollama 的 embeddings API),并存储在带有 pgvector 的 Postgres 中。检索到的分块会作为上下文注入,并在回复中按来源引用,UI 中带有可点击的来源标签。
提示库:保存可复用的系统提示预设,可以是个人预设,也可以是(仅管理员可创建)与所有人共享的预设;一键将其应用到某个聊天,并持久保留在该聊天上
Playground:一个独立页面,可用自由滑块测试任意模型的 temperature/top-p/上下文窗口,独立于聊天历史——服务端不保存任何内容
权限组:管理员可以创建组,配置 Ollama 模型的允许列表,并将用户分配到这些组;没有组的用户(或允许列表为空的组中的用户)保持不受限制的访问权限
网页搜索:按消息切换实时网页搜索。由内置的 SearXNG 实例提供支持;结果会被获取、格式化为带编号的来源,并在模型回答前作为上下文注入
工具 / 函数调用:将工具附加到聊天中,模型可以在对话中途调用它们,并以多轮循环方式运行(调用工具、获取结果、回答——设有边界以避免循环)。内置安全工具(通过 mathjs 实现的计算器、current_datetime);管理员可以针对任意外部 API 注册额外的 HTTP 工具,并在请求发出前进行参数验证。HTTP 工具执行经过沙箱隔离:私有/回环/链路本地/云元数据地址会被阻止(SSRF 防护),请求在 10 秒后超时,输出有大小上限。工具调用及其结果会作为 TOOL 消息持久化,并在 UI 中以“Used ”指示器显示。
图像生成:可选、多提供商,在 Admin > Settings > Image generation 中选择。四种选项:Self-hosted 通过内置的 sd-wrapper 服务在你自己的 GPU 上运行 AUTOMATIC1111/stable-diffusion-webui(docker compose --profile selfhosted-images up -d)——已针对 2x Tesla P100 测试;Custom 将 IMAGE_GEN_URL 指向任何其他符合 OpenAI images API 形态的服务(LocalAI、ComfyUI 的 OpenAI 兼容包装器、fal.ai);OpenAI 和 Stability AI 直接使用这些提供商自己的 API,并使用各自的密钥字段。生成的图像会像其他回复一样放入聊天历史。默认关闭,未配置时完全隐藏。
聊天分享:为任意聊天生成公开的只读链接(/share/:id)——任何拥有该链接的人无需账户即可查看对话;可随时撤销。被标记/系统消息以及原始工具负载绝不会包含在公开视图中。
Pipelines(审核/钩子):管理员定义的关键词/正则规则,会在每条消息上运行——PRE 规则可以在消息到达模型前将其 BLOCK,POST 规则会 FLAG 回复以供审核。无需外部审核 API。
文件夹:在侧边栏中创建/重命名/删除文件夹,从任意聊天的悬停菜单将其移入或移出文件夹;删除文件夹会保留聊天,只是将它们取消归档
管理员事件日志:由数据库支持的日志,记录认证失败、SSO 错误、工具/文档处理失败以及 pipeline 阻止/标记,可在管理面板中按级别和来源筛选
Markdown 渲染、带复制功能的语法高亮代码块、Mermaid 图表、LaTeX(KaTeX)
黑色、OpenAI 风格的落地页,带有 Visiyon 品牌、动画主视觉、功能卡片、模型区块、交互式演示、FAQ、联系、页脚
管理后台:用户列表 + 角色管理、带按组模型访问权限的组管理、服务器/Ollama/SearXNG 健康状态、模型列表、通过 API 拉取/删除模型、事件日志
内置平台支持聊天:一个“需要帮助?”小组件(右下角,任意已登录页面)回答关于如何使用 Visiyon 本身的问题——某个设置在哪里、某个功能是做什么的、为什么某个模型没有显示出来。它运行在此部署自己的本地 Ollama 上(无外部 API、无额外费用);除非设置了 SUPPORT_MODEL,否则会选择任何已安装且支持聊天的模型。它的知识是 backend/src/lib/support-knowledge.ts 中的一个固定文档——如果你重命名/添加主要功能,请更新它。
分析:管理面板中的一个监控标签页——在 7/30/90 天窗口内的消息和 token 使用量(提示/补全,直接来自 Ollama)、按天图表、按模型细分以及可选的成本估算(配置 MODEL_COST_PER_1M 以附加一个参考的 $/1M-token 数值——自托管 Ollama 没有真实的按 token 成本,所以这是可选的),以及一个按用户划分的表格(消息、token、最后活跃时间),用于关注谁在使用平台以及如何使用
配置说明
图像生成现在有一条完全自托管的路径:使用 docker compose --profile selfhosted-images up -d 启用它(需要 NVIDIA GPU——已在 2x Tesla P100 上验证),然后在 Admin > Settings 中将提供商设置为“Self-hosted”。无需 API 密钥或外部服务。如果你更愿意使用云提供商——你自己的,或为其他运行此平台但没有 GPU 的人——选择 OpenAI、Stability AI,或将“Custom”指向任何实现 POST {url}/v1/images/generations 且符合 OpenAI 格式的端点。

运行自托管技术栈(2x P100 或类似配置):

docker compose --profile selfhosted-images up -d sd-webui sd-wrapper
首次启动会将基础 SD checkpoint 下载到 sd_models_data 卷中,这可能需要一段时间。一旦 sd-webui 健康,在管理面板中设置提供商为“Self-hosted”——wrapper URL 在集群内默认为 http://sd-wrapper:8000,因此无需其他配置。可选环境变量:SD_MODEL(要强制使用的 checkpoint 文件名)和 WRAPPER_API_KEY(要求 wrapper 自身端点使用 bearer token,如果你将其暴露到内部网络之外,这会很有用)。

管理日志是一个普通的 Postgres 表(Log),不是 Loki/ELK 流水线——这是有意为之,这样就没有额外服务需要运行。如果你还想要容器级日志转发(用于应用事件之外的基础设施调试),它仍然可以很好地叠加在这之上。

如果你想进一步扩展,这些都不需要重写——schema 和路由在设计时就为此预留了空间。

要求
Ubuntu Server 22.04(或任何带 Docker 的 Linux 主机)
Docker Engine + Docker Compose 插件
在 CPU 上运行 8-9B 模型建议约 8GB+ RAM;GPU(带 nvidia-container-toolkit)会让这快得多
1. 安装 Docker(如果尚未安装)
curl -fsSL https://get.docker.com | sh
sudo usermod -aG docker $USER
newgrp docker
2. 将项目放到你的服务器上
将整个 visiyon-ai/ 文件夹复制到你的服务器,例如通过 scp 或 git:

scp -r visiyon-ai your-user@your-server:/opt/visiyon-ai
ssh your-user@your-server
cd /opt/visiyon-ai
3. 配置环境
cp .env.example .env
nano .env   # 将 POSTGRES_PASSWORD 和 JWT_SECRET 设置为真正的随机值
快速生成一个强密钥:

openssl rand -hex 32
4. 构建并启动所有内容
docker compose up -d --build
这会按依赖顺序启动:Postgres、Redis、Ollama、后端(启动时会将 Prisma schema 推送到 Postgres)、前端,以及监听 80 端口的 Nginx。

检查一切是否健康:

docker compose ps
docker compose logs -f backend
想让 Admin > System resources 面板显示 GPU 统计信息吗?这需要将 GPU 专门挂载到后端容器(默认情况下它只挂载到 Ollama/sd-webui)。如果后端运行在同一台 GPU 机器上:

docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d --build
GPU 统计信息故障排除
如果在应用上述覆盖配置后,Admin 面板仍显示 “No GPU stats available”(或 docker exec -it visiyon-backend nvidia-smi 失败),请按顺序排查以下各项——每一项都会排除不同的层面:

1. 确认宿主机本身能看到 GPU:

nvidia-smi -L
如果这一步失败,请先在宿主机上安装/配置 NVIDIA 驱动——没有它,下面的任何步骤都无法工作。

2. 确认 GPU 直通到 Docker 本身可以工作,与本项目无关:

docker run --rm --gpus all nvidia/cuda:12.4.1-base-ubuntu22.04 nvidia-smi
如果这一步失败,说明宿主机的 NVIDIA Container Toolkit 尚未接入 Docker 守护进程:

sudo nvidia-ctk runtime configure --runtime=docker
sudo systemctl restart docker
然后在继续之前重新测试这一步。

3. 确认 GPU 覆盖配置确实应用到了后端服务:

docker compose -f docker-compose.yml -f docker-compose.gpu.yml config | grep -B2 -A8 "runtime\|reservations"
你应该能在 backend 下同时看到 runtime: nvidia 和一个 deploy.resources.reservations.devices 块。如果两者都没有看到,你很可能仍在使用旧版本的 docker-compose.gpu.yml——请从本仓库重新复制并重试。docker-compose.gpu.yml 有意以两种不同方式声明 GPU 访问(deploy.resources.reservations.devices 以及较旧的 runtime: nvidia + NVIDIA_VISIBLE_DEVICES),因为哪一种实际生效取决于你的 Docker Compose 版本——除非你已确认你的环境需要哪一种,否则请保留两者。
4. 如果第 3 步看起来正确,但 nvidia-smi 在容器内仍然失败,并报出类似 executable file not found in $PATH 的错误,那么原因几乎总是后端的 base image,而不是 GPU 直通本身。NVIDIA Container Toolkit 注入 nvidia-smi 和驱动库的方式是针对 glibc 构建的——它无法可靠地在像 node:*-alpine 这样的基于 musl 的镜像上工作。本项目的 backend/Dockerfile 正是出于这个原因使用 node:20-bookworm-slim(Debian,glibc)。如果你已将 Dockerfile 自定义为使用 Alpine 基础镜像,那么无论 compose 文件如何配置,GPU 统计信息都无法工作——请改回基于 Debian/Ubuntu 的 Node 镜像,使用 --no-cache 重新构建,然后重新测试:

docker compose -f docker-compose.yml -f docker-compose.gpu.yml build --no-cache backend
docker compose -f docker-compose.yml -f docker-compose.gpu.yml up -d backend
docker exec -it visiyon-backend nvidia-smi
一旦 nvidia-smi 在容器内正常工作,Admin 面板会在下一次轮询时(每隔几秒)自动识别到它——无需进一步重启。

5. 拉取你想要的模型
docker exec -it visiyon-ollama ollama pull glm4:9b
docker exec -it visiyon-ollama ollama pull granite4:8b
添加任何其他模型:llama3.1、qwen2.5、gemma2、deepseek-r1、mistral、phi3、llava(视觉)等。

RAG(文档上传 / 向量搜索)正常工作所必需的:
docker exec -it visiyon-ollama ollama pull nomic-embed-text
它们会自动出现在聊天 UI 的模型下拉菜单中——无需重启。

6. 打开它
访问 http://your-server-ip/。注册一个账号(创建的第一个账号会自动成为管理员),然后开始聊天。管理面板位于 /admin。

RAG(文档聊天)如何工作
点击消息框中的回形针图标 → 上传 PDF/DOCX/TXT/MD/CSV。
后端提取文本,将其拆分为约 1200 字符的重叠块,使用 nomic-embed-text 对每个块进行嵌入,并将向量存储在 Postgres(pgvector)中。状态会从 PENDING → PROCESSING → READY(或 FAILED 并附带原因)——面板会轮询并实时更新。
在就绪的文档上点击 Attach,将其链接到当前聊天。
从那时起,你在该聊天中发送的每条消息都会首先从已附加的文档中检索 5 个最相关的块(余弦相似度),并将它们作为上下文提供给模型——自动完成,无需额外步骤。
文档存放在你的个人库中,可以附加到多个聊天;删除文档会移除其块,并在所有位置解除关联。
网络搜索如何工作
点击消息框中的地球图标,为你的下一条消息开启网络搜索。
发送时,后端会使用内置的 SearXNG 实例查询你的消息文本,并返回前 5 条结果。
结果会被格式化为编号来源列表,并作为系统消息注入到对话之前——模型会被要求使用这些结果作答,并在相关处引用 [n]。
切换开关默认关闭,且仅按消息生效;如果 SearXNG 无法访问,请求仍会成功,只是会跳过搜索上下文,改为根据模型自身的知识来回答。
首次运行需要拉取并初始化 SearXNG 的容器——在 docker compose up 之后等一分钟,再开启网页搜索开关。如果你想直接调整搜索引擎,可以通过 /searxng/ 访问 SearXNG 自带的 Web UI(参见 searxng/settings.yml)。
更新
手动,从命令行进行——始终有效,无需任何设置:

git pull   # 或者把新文件复制过来
docker compose up -d --build
或者从管理面板进行。Admin > Updates 可以检查新版本并一键应用,因此运行你 fork 的这个平台的人无需 shell 访问服务器就能保持最新:

它的工作原理是将正在运行的 APP_VERSION 与你设置在 UPDATE_REPO 中的仓库的最新 GitHub release 进行比较(例如在 .env 中设置 UPDATE_REPO=yourname/your-fork)。如果不设置 UPDATE_REPO,Updates 页面只会显示更新未配置——其他一切都不变。
应用更新由一个小型 updater sidecar 容器处理(参见 updater/ 以及 docker-compose.yml 中的 updater 服务),它挂载了宿主机的 Docker socket 和此仓库的 checkout。它运行 git fetch
git reset --hard origin/ + docker compose up -d --build,并将进度流式传回管理面板。UPDATE_BRANCH 控制它拉取哪个分支(默认为 main)。
只有那个 sidecar 拥有 Docker/宿主机访问权限——主后端永远没有。如果你完全不想提供自助更新,可以把 docker-compose.yml 中的 updater 服务注释掉,并保持 UPDATE_REPO 未设置。
每次你发布新的 release/tag 时,都要在 .env(或你的发布流程所设置的环境)中提升 APP_VERSION,这样侧边栏中显示的版本和更新检查才能保持准确。
本地开发(不使用 Docker)
Backend
cd backend
npm install
npx prisma generate
DATABASE_URL=postgresql://visiyon:visiyon@localhost:5432/visiyon \
REDIS_URL=redis://localhost:6379 \
OLLAMA_URL=http://localhost:11434 \
JWT_SECRET=dev_secret \
npm run dev

Frontend (separate terminal)
cd frontend
npm install
NEXT_PUBLIC_API_URL=http://localhost:4000 npm run dev
你还需要在本地运行 Postgres、Redis 和 Ollama(或者将 DATABASE_URL / REDIS_URL / OLLAMA_URL 指向远程实例)。

项目结构
visiyon-ai/
├── docker-compose.yml
├── .env.example
├── nginx/nginx.conf
├── backend/            # Fastify API: auth, chats, models, admin
│   ├── prisma/schema.prisma
│   └── src/
└── frontend/           # Next.js 15 App Router
├── app/             # landing page, /chat, /login, /register, /admin
├── components/
└── lib/             # API client + zustand chat store

上游仓库有新提交时邮件通知你(每天最多一封,无更新不打扰),随时一键退订。

💬 加入社群

插件用法、部署报错、新插件第一时间同步——群里问,比一个人翻文档快。

DPharness QQ 群二维码,QQ 扫码进群
QQ 扫码进群
DPharness 飞书群二维码,飞书扫码进群
飞书扫码进群