news 2026/8/31 10:39:31

Cherry Studio 教程:从零搭建支持多模型 LLM 的开源 AI 桌面助手(完整指南)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Cherry Studio 教程:从零搭建支持多模型 LLM 的开源 AI 桌面助手(完整指南)

Cherry Studio 教程:从零搭建支持多模型 LLM 的开源 AI 桌面助手(完整指南)

【免费下载链接】cherry-studioAI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs项目地址: https://gitcode.com/GitHub_Trending/ch/cherry-studio

Cherry Studio 是一款基于 Electron 的开源 AI 生产力工作室:统一接入 OpenAI、Anthropic、Gemini 等云端模型与 Ollama 等本地模型,内置 300+ 预置助手、知识库、MCP 工具调用与本地 API 网关,支持 Windows、macOS、Linux 三平台。

一个典型的痛点:模型太多,入口太散

如果你同时持有 OpenAI、Anthropic 的 Key,本地又跑着 Ollama,想对比几个模型对同一问题的回答,或者想让某个内部脚本像调用 OpenAI 一样调用自己本地的模型——逐个登录各家 Web 控制台,或者自己写一堆 HTTP 客户端,是常见且繁琐的做法。Cherry Studio 把这件事收敛到一个桌面客户端里:统一的模型管理、并排的多模型对话、文档知识检索,外加一个本地 HTTP 网关供其他程序调用。

项目定位速览:它适合谁,不适合谁

Cherry Studio 解决的核心问题是**"多 LLM 提供商的统一接入与本地化 AI 工作流"**,不解决的问题同样明确:

  • 适合:需要频繁切换/对比多家 LLM 的开发者与重度用户;需要私有化对话(本地模型 + 本地知识库)的场景;希望把本地模型暴露成 OpenAI 兼容 API 给其他工具用的集成需求。
  • 不适合:只需要单一模型 API 调用的轻量脚本场景(直接调官方 SDK 更轻);它本身不做模型训练与微调。

架构上它是标准 Electron 三进程结构(主进程 / preload / 渲染进程),数据落在本地 SQLite,代码按"主进程业务、渲染进程 UI、共享层原语"分域组织,详见 docs/references/architecture/README.md。

最短上手路径:从 clone 到跑起来

环境要求以 package.json 为准:Node.js>=24.11.1 <24.16.0(版本范围锁定在engines字段,.node-version文件给出确切版本),包管理器为 pnpm(版本锁定在packageManager字段)。

git clone https://gitcode.com/GitHub_Trending/ch/cherry-studio cd cherry-studio corepack enable # 自动启用锁定版本的 pnpm nvm install # 按 .node-version 安装匹配的 Node pnpm install cp .env.example .env pnpm dev # 重建 better-sqlite3 并启动开发模式

说明两点:

  • pnpm dev会先执行rebuild:electron(强制重建 better-sqlite3 原生模块)并下载运行所需的二进制,所以首次启动较慢属于正常现象。
  • 要出正式安装包用pnpm build:win/pnpm build:mac/pnpm build:linux,它们先跑类型检查再调 electron-builder 打包。

完整开发环境说明(包括 IDE 扩展、Zed 配置、Linux 打包细节)在 docs/contrib/development.md。

能力地图:按"它帮你解决什么"来看

1. 多提供商统一接入——解决"每家模型一套配置"的问题云端支持 OpenAI、Gemini、Anthropic 等主流服务,本地支持 Ollama、LM Studio,并集成了 Claude、Perplexity 等 Web 服务。提供商与模型清单不是硬编码散落的,而是集中维护在 packages/provider-registry/(data/providers.jsonmodels.json),端点如何映射到具体 AI SDK 适配器的规则见 docs/references/ai/provider-resolution.md。

2. 300+ 预置助手 + 多模型并发对话——解决"同一问题横向对比"的问题典型场景:把同一个需求分别发给 GPT、Claude 和 Gemini,并排看回答差异。预置助手覆盖不同角色与领域,也可以自定义;多模型同时回答是它的招牌交互。对话域的代码集中在 src/renderer/components/chat/ 与 src/main/ai/messages/。

3. 知识库与文档处理——解决"让模型读懂你的私有资料"的问题支持文本、图片、Office、PDF 等格式的文档入库,对话时可检索引用;数据支持 WebDAV 备份。知识库服务在 src/main/features/knowledge/,底层向量与数据表结构见 docs/references/data/database-patterns.md。

4. MCP 工具调用——解决"模型只能聊天、不能动手"的问题通过 Model Context Protocol 接入外部工具与 API,模型可以在对话中发起工具调用,且工具执行有独立的审批机制(docs/references/ai/tool-approval.md)。MCP 客户端与工具注册表源码在 src/main/ai/mcp/ 和 src/main/ai/tools/。

5. 本地 API 网关——解决"其他程序也想用我的本地模型"的问题docs/references/api-gateway/README.md 描述的本地 HTTP 网关把 Cherry Studio 自身暴露为 OpenAI、Anthropic、Gemini 及 MCP 兼容端点,源码在 src/main/features/apiGateway/。也就是说,你配好的任意提供商都可以被外部脚本当作标准 API 调用。

关键配置:真正影响体验的少数几项

  • 提供商端点配置:接入一家新模型提供商时,核心是端点配置(endpointConfigs)与adapterFamily字段——它决定请求走哪个@ai-sdk包。写路径与解析链的完整规则见 docs/references/ai/adapter-family.md 和 docs/references/ai/provider-state-ownership.md,配置前读一遍能少走弯路。
  • 模型重试与降级:请求失败时可以在用户侧配置同模型重试和备用模型,行为由chat.retry.*偏好项驱动,实现与配置项说明见 docs/references/ai/model-retry.md。
  • 开发多实例数据隔离:默认开发数据目录在 Electron 的 userData 后追加Dev后缀,与正式包数据分离;同时跑多个开发实例时,在.env里给每个实例设置不同的CS_DEV_USER_DATA_SUFFIX,避免两个实例共享同一目录。
  • 界面语言:界面内置 12 种语言(src/main/i18n/locales/),新增语言或校对词条走pnpm i18n:extract等脚本,规则见 docs/references/i18n/README.md。

二次开发入口:从哪个文件开始看

  • 聊天主链路:从渲染进程useChat()经 Electron IPC 到主进程AiStreamManager,再到 AI Core / Claude Agent SDK 流式回传并落库 SQLite。端到端流程先读 docs/references/ai/core-architecture.md,代码入口是 src/main/ai/AiService.ts 与 src/main/ai/streamManager/。
  • IPC 契约:通道常量集中在 src/shared/IpcChannel.ts,主进程路由在 src/main/ipc/IpcRouter.ts;新增功能的第一站通常是这里加通道定义。
  • 数据层:SQLite + Drizzle,迁移文件在 migrations/sqlite-drizzle/,数据表与偏好、缓存、应用状态的使用决策见 docs/references/data/README.md。
  • 前端 UI:可复用组件库在 packages/ui/src/components/,页面与业务组件在 src/renderer/,主题与 design token 规范见 packages/ui/docs/design-token-system.md。
  • 测试:单测按进程分 project(pnpm test:mainpnpm test:renderer等),端到端测试在 tests/e2e/ 用 Playwright 驱动,写测试的约定见 docs/references/testing/README.md。

常见坑与排障

  1. Node 版本不对,装依赖或启动就报错engines锁定>=24.11.1 <24.16.0,24 的其他小版本不满足范围。用nvm install(读.node-version)而不是手动装任意 LTS。
  2. Windows 上 clone 后文件同步异常。项目用符号链接同步 AGENTS.md、skills 等文件,Windows 必须先在"设置 → 开发者模式"开启符号链接支持并执行git config --global core.symlinks true然后再 clone——顺序反了需要重新 clone,详见 docs/contrib/development.md。
  3. 用 npm 代替 pnpm。仓库锁定 pnpm 且package.jsonprepare/postinstall脚本(如 dsh-bridge 子包构建、prek 安装)依赖 corepack 环境;直接npm install会跳过这些钩子导致构建失败。
  4. pnpm startpnpm dev搞混startrebuild:electron + electron-vite preview,即预览已构建产物;开发期用dev,它带热更新并会下载运行二进制。

延伸资源

  • 文档总索引:docs/README.md(覆盖 AI 管线、数据系统、IPC、知识库、窗口管理等全部参考文档,由脚本生成、与代码同步校验)
  • 贡献与分支策略:CONTRIBUTING.md、docs/contrib/branching-strategy.md
  • AI 子系统入口:docs/references/ai/README.md
  • 架构总览:docs/references/architecture/README.md

【免费下载链接】cherry-studioAI productivity studio with smart chat, autonomous agents, and 300+ assistants. Unified access to frontier LLMs项目地址: https://gitcode.com/GitHub_Trending/ch/cherry-studio

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/8/31 10:38:40

Positorium多模型数据库引擎:一体化部署与四类数据模型验证

这次我们来看一个数据库方向的项目&#xff1a; Positorium 。从项目名称和定位看&#xff0c;它没有把自己局限在传统关系型数据库里&#xff0c;而是想同时吸收 RDBMS、图数据库、列式存储、name-value&#xff08;键值&#xff09;类数据库的特性&#xff0c;做成一个多模…

作者头像 李华
网站建设 2026/8/31 10:37:00

从Prompt到Skill:构建AI-Native组织的可复用技能体系

如果你所在的团队已经全员用上了 AI 编程助手&#xff0c;但研发效率并没有出现期待中的“翻倍”效果&#xff0c;那问题大概率不在模型能力&#xff0c;而在组织怎么把 AI 能力沉淀下来复用。过去一年&#xff0c;我观察到一个明显变化&#xff1a;真正跑通 AI 研发流程的团队…

作者头像 李华
网站建设 2026/8/31 10:36:11

开源机器人Microduck销售额破百万,开源硬件商业化闭环如何跑通?

1. 这篇文章真正要解决的问题 最近社区里有一则消息让不少做机器人、做开源、或者两头都沾的开发者讨论比较多&#xff1a;Microduck 这款开源机器人项目&#xff0c;宣称销售额已经突破百万美元。 先给一个明确判断&#xff1a; 这件事最值得关注的&#xff0c;不是又一个机…

作者头像 李华
网站建设 2026/8/31 10:35:47

程序员如何用GitHub开源项目打造可持续英语学习闭环?

先说结论&#xff1a;如果你在 GitHub 上看到“ZuodaoTech / everyone-can-use-english”这个项目&#xff0c;第一反应不应该是“又一个英语学习资料合集”&#xff0c;而应该把它理解成一个问题&#xff1a;英语到底能不能被普通人用一套稳定、低成本、可持续执行的方案搞定。…

作者头像 李华