Zettlr

Zettlr

开源Markdown编辑器及知识管理工具

Zettlr是一款开源的Markdown编辑器和知识管理工具。它支持Zettelkasten方法,提供全文搜索、引用管理和代码高亮等功能。Zettlr注重隐私保护,支持多语言,可导出多种格式。软件界面简洁专业,适合学术写作和知识管理。Zettlr免费开源,兼容Windows、macOS和Linux系统。

ZettlrMarkdown编辑器开源软件写作工具知识管理Github开源项目
<h1 align="center"> <a href="https://github.com/Zettlr/Zettlr"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/e05c036a-1186-442d-a7ab-c8096060c974.png" alt="Zettlr"/> </a> <br/> Zettlr [<em>ˈset·lər</em>] </h1> <p align="center"><strong>您的一站式出版工作台</strong>。</p> <p align="center"> <a href="https://doi.org/10.5281/zenodo.2580173"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/8a5c84fb-e805-4836-a5cb-0ac4ccd72568.svg" alt="DOI"> </a> <a href="https://www.gnu.org/licenses/gpl-3.0"> <img src="https://yellow-cdn.veclightyear.com/0a4dffa0/73c27eae-e3e0-4d4e-ba10-01b594c2be56.svg" alt="许可证:GNU GPL v3"> </a> <a href="https://www.zettlr.com/download"> <img alt="GitHub 标签(最新日期)" src="https://yellow-cdn.veclightyear.com/0a4dffa0/7cfb6015-75de-4f80-b2ef-53fcb7918204.svg?label=latest"> </a> <img alt="GitHub 所有版本" src="https://yellow-cdn.veclightyear.com/0a4dffa0/afa5c855-3425-4172-8d64-9de53d81dd1a.svg"> <img alt="单元测试 / Lint" src="https://yellow-cdn.veclightyear.com/0a4dffa0/5904768d-288d-448f-a426-02f03ba2a7f6.svg"> <img alt="构建" src="https://yellow-cdn.veclightyear.com/0a4dffa0/59e342ef-fa53-4e10-9920-116efb5c6689.svg"> </p> <p align="center"> <a href="https://www.zettlr.com/" target="_blank">主页</a> | <a href="https://www.zettlr.com/download">下载</a> | <a href="https://docs.zettlr.com/" target="_blank">文档</a> | <a rel="me" href="https://fosstodon.org/@zettlr" target="_blank">Mastodon</a> | <a href="https://discord.gg/PcfS3DM9Xj" target="_blank">Discord</a> | <a href="#contributing">贡献</a> | <a href="https://www.patreon.com/zettlr" target="_blank">支持我们</a> </p>

截图

Zettlr 为您的文本带来简洁。开放式写作适应您的风格。快速信息检索找到对您重要的内容。多功能导出使您能够适应雇主或学校使用的任何出版流程。

专注于对您重要的事情。

发表,而非沉沦。

在我们的网站上了解更多

特性

  • 您的笔记属于您:Zettlr 以隐私为先
  • 引用变得简单:与您喜爱的参考文献管理器(Zotero、JabRef 等)紧密集成,并不断扩展
  • 提供十多种语言版本
  • 在专业环境中起草您的出版物,支持 LaTeX 和 Word 模板
  • 使用 PandocLaTeXTextbundle 进行简单而美观的导出
  • 代码片段允许您自动插入常用代码
  • 主题、深色模式和自定义 CSS 的完全灵活性
  • 支持多种语言的代码高亮
  • 支持最先进的知识管理技术(卡片盒笔记法
  • 强大的全文搜索帮助您随时随地找到任何内容

……最棒的是:Zettlr 是自由开源软件(FOSS)

安装

要安装 Zettlr,只需下载适用于您操作系统的最新版本。目前支持 macOS、Windows 和大多数 Linux 发行版(通过 Debian 和 Fedora 软件包以及 AppImage)。

在我们的网站和 GitHub 上,我们提供了一套适用于最常见使用场景的安装程序。我们提供 64 位安装程序以及 ARM 系统安装程序(在 macOS 生态系统中称为"Apple Silicon")。不支持 32 位。我们直接提供以下二进制文件:

  • Windows(x64)
  • macOS(Intel 和 Apple Silicon)
  • Debian 和 Fedora(x64 和 ARM)
  • AppImage(x64 和 ARM)

感谢我们的社区,我们还可以为您提供多种其他安装方式:

所有其他 Electron 支持的平台 也受支持,但您需要自行构建应用程序才能使用。

请考虑成为赞助人一次性捐赠

入门

安装 Zettlr 后,前往我们的文档了解 Zettlr。如果您更喜欢直接上手使用软件,请参阅快速入门指南

使用深色主题的 Zettlr 中央窗口

贡献

作为一个开源应用程序,Zettlr 始终欢迎来自社区的贡献。**您不需要懂得编写代码就能提供帮助!**在我们的贡献指南中可以找到您可以提供帮助的所有领域的完整概述。在这里,我们介绍了两个最需要帮助的主要领域:翻译和代码贡献。

翻译

开发团队维护英语和德语翻译,但缺乏对其他语言的充分了解。所有其他可用的翻译都是由我们的社区创建的。

Zettlr 的翻译使用 gettext 系统。这意味着翻译保存在 static/lang 目录 中的 PO 文件中。 要更新翻译,只需下载相应的语言文件并进行编辑。您可以使用简单的文本编辑器编辑 PO 文件,但如果您更喜欢更舒适的图形化编辑器,有很多可供选择。一个不错的选择是开源编辑器 POedit

一旦您对修改感到满意,请在此处打开一个更新相应文件的拉取请求。GitHub 创建了一个很棒的如何打开拉取请求的指南

贡献代码

Zettlr 是一个基于 Electron 的应用程序,因此要开始开发,您需要在电脑上安装以下内容:

  1. NodeJS。确保至少是 Node 20(lts/iron)。要测试您的版本,运行 node -v
  2. Yarn。这是项目的包管理器,因为我们不提交 package-lock.json 文件,而且许多命令需要 yarn。您可以使用 npm install -g yarn 或 Homebrew(如果您使用 macOS)全局安装它。
  3. 在 Windows 上,我们建议安装 Windows 子系统 Linux (WSL),这将使接下来的许多步骤更容易。
  4. 一些命令行工具,各种脚本需要这些工具来运行开发构建:
    • cURL(Pandoc 下载脚本需要)
    • unzip(Pandoc 下载脚本需要)
    • jq(i18n 脚本需要)
  5. 适用于您操作系统的适当构建工具链,因为 Zettlr 需要一些必须在运行应用程序之前编译的原生 C++ 模块:
    • macOS:在 macOS 上,通过 xcode-select --install 安装 XCode 命令行工具就足够了
    • Windows:在 Windows 上,您需要免费的 Visual Studio 开发工具,其中包含所需的工具
    • Linux:在 Linux 上,有各种兼容的工具链可用,有时它们已经预先安装。请参阅您发行版的手册以获取更多信息。

然后,只需克隆仓库并在本地计算机上安装依赖项:

$ git clone https://github.com/Zettlr/Zettlr.git $ cd Zettlr $ yarn install --immutable

--immutable 标志确保 yarn 会坚持使用 yarn.lock 中列出的版本,而不会尝试更新它们。

在开发过程中,热模块重载(HMR)处于活动状态,因此您可以轻松编辑渲染器的代码,并在 electron-forge 编译更改后按 F5。您可以保持开发者工具打开,以查看 HMR 何时完成加载您的更改。

我需要了解什么才能贡献代码?

为了提供代码,您应该对以下主题和/或手册有基本的了解(按重要性降序排列):

[!TIP] 查看下面的"目录结构"部分,了解 Zettlr 的具体工作方式。

开发命令

本节列出了在应用程序开发过程中可以使用的所有可用命令。这些命令在 package.json 中定义,可以通过在命令前加上 yarn 来从命令行运行。请在仓库的基本目录中运行它们。

start

使用此命令可以无忧无虑地测试您对应用程序所做的任何更改。此命令将启动应用程序,但会提供自定义配置和自定义目录。因此,它不会触及常规 Zettlr 安装使用的任何文件。

第一次运行此命令时,传递 --clean 标志以将一些测试文件复制到您的 ./resources 目录,在项目根目录中创建 test-config.yml,并使用这个干净的配置启动应用程序。然后,您可以根据自己的喜好调整 test-config.yml(这样,某些您通常总是需要设置的设置就可以预先设置,而无需打开首选项)。

每当您想将测试目录重置为初始状态(或者您删除了目录,或重新克隆了整个项目)时,请向命令传递 --clean 标志以创建或重置目录。如果您在 test-config.yml 中更改了某些内容,这也是必要的

如果您想阻止创建配置文件(例如,模拟首次启动体验),您可以向此命令传递 --no-config 标志。

您还可以向此命令传递其他命令行开关,如 --clear-cache。它们将被传递给子进程。

[!WARNING] 注意:在首次运行命令之前,您必须使用 --clean 标志运行它以首先创建目录!

另外,请查看我们的完整开发文档

package

打包应用程序,但不将其捆绑成安装程序。没有任何后缀时,此命令将为您当前的平台和架构打包应用程序。要创建特定的包(可能需要在相应的平台上运行),可以使用以下后缀:

  • package:mac-x64(基于 Intel 的 Mac)
  • package:mac-arm(基于 Apple Silicon 的 Mac)
  • package:win-x64(基于 Intel 的 Windows)
  • package:linux-x64(基于 Intel 的 Linux)
  • package:linux-arm(基于 ARM 的 Linux)

生成的应用程序包存储在 ./out 中。

[!IMPORTANT] 此命令将跳过类型检查以加快构建速度,因此我们建议在打包之前运行 lint 以确保没有错误。

release:{platform-arch}

打包应用程序,然后将其捆绑成相应平台和架构的安装程序。要创建这样的捆绑包(可能需要在相应的平台上运行),{platform-arch} 需要是以下值之一:

  • release:mac-x64(基于 Intel 的 Mac)
  • release:mac-arm(基于 Apple Silicon 的 Mac)
  • release:win-x64(基于 Intel 的 Windows)
  • release:linux-x64(基于 Intel 的 Linux)
  • release:linux-arm(基于 ARM 的 Linux)

生成的安装包存储在 ./release 中。

[!NOTE] 虽然您可以直接使用 package 命令为您的平台打包而不需要任何后缀,但在创建发布捆绑包时,您需要指定平台和架构,因为 electron-builder 否则会在 app.asar 中包含开发依赖项,导致应用程序变得臃肿。

csl:refresh

这会下载应用程序附带的引文样式语言(CSL)文件,并将它们分别放置在 static/csl-localesstatic/csl-styles 目录中。

[!NOTE] 该命令用于仓库中不时运行的自动化工作流,以执行此操作。请勿将更新后的文件提交到仓库。相反,每当你执行 git fetch 时,都会下载更新后的文件。

lint

运行 ESLint。像 Visual Studio Code 这样的应用程序会自动在后台对你打开的文件运行 ESLint。此命令会在整个代码库中运行它们。请确保在提交拉取请求之前运行此命令。

[!NOTE] 该命令将在每个拉取请求上自动运行,以检查你的代码是否存在不一致之处。

shortcut:install

在你的应用程序中创建一个 .desktop 文件,使你能够快速启动从源代码编译的应用程序。这需要 Linux 系统。要使用新的更改,只需同步仓库,再次运行 package,然后就可以使用了。

[!WARNING] 我们提供此命令是为了方便。除非你知道自己在做什么,否则不应直接运行从开发分支的 HEAD 提交编译的代码。然而,在某些情况下,如果你知道可能会出现什么问题并能采取适当的预防措施,此命令可能会有用。

shortcut:uninstall

删除由 shortcut:install 创建的 .desktop 文件。

[!NOTE] 每次重新编译二进制文件时,你不必卸载并重新安装快捷方式。只需确保在重新编译之前关闭 Zettlr。只有在模板(在 scripts/assets/zettlr-dev.desktop 中)发生变化时,你才需要重新安装快捷方式。

test

这会运行 ./test 目录中的单元测试。请确保在提交拉取请求之前运行此命令,因为每次你向拉取请求提交内容时都会运行此命令,这样你就可以确保你的更改不会破坏任何测试,从而使整个拉取请求过程更加顺利。

test-gui

参见 start

[!IMPORTANT] 此命令已被弃用,只是 start 的别名。请使用 start 代替。

目录结构

Zettlr 是一个成熟的应用程序,在其开发过程中积累了数百个目录。由于没有任何指导就很难为应用程序做出贡献,我们编写了一个简短的目录描述,说明它们之间的相互关系。

<!-- 文件树由在根目录中运行 `tree -d -L 4 -I node_modules .` 生成 -->
.
├── out                         # 运行任何 `package` 命令后包含未打包的二进制文件
├── release                     # 运行任何 `release` 命令后包含可分发文件
├── resources                   # 通用资源文件
│   ├── NSIS                    # Windows 安装程序位图
│   ├── icons                   # 各种图标格式
│   ├── screenshots             # 包含主要截图
├── scripts                     # 构建过程和 CI 管道中使用的脚本
│   ├── assets                  # 脚本文件的资源
│   └── test-gui                # 用于 `test-gui` 命令的完整文件树
├── source                      # 这是实际的源文件树
│   ├── app                     # 主进程组件
│   │   ├── service-providers   # 处理大部分业务逻辑的服务提供者
│   │   └── util                # 主进程的实用函数
│   ├── common                  # 各种渲染进程之间共享的文件
│   │   ├── img                 # 在各处使用的图像
│   │   ├── modules             # 共享模块
│   │   │   ├── markdown-editor # 主 Markdown 编辑器
│   │   │   ├── markdown-utils  # MD 实用工具,如 md2html 转换器
│   │   │   ├── preload         # Electron 预加载文件
│   │   │   └── window-register # 每个渲染器在设置期间运行
│   │   ├── util                # 通用实用函数
│   │   └── vue                 # 共享 Vue 组件
│   ├── pinia                   # 渲染器状态管理
│   ├── types                   # 仅类型目录;已弃用
│   ├── win-about               # 关于对话框窗口
│   ├── win-assets              # 资源管理器
│   ├── win-error               # 错误窗口
│   ├── win-log-viewer          # 日志查看器
│   ├── win-main                # 主窗口
│   ├── win-paste-image         # 粘贴图像对话框
│   ├── win-preferences         # 首选项窗口
│   ├── win-print               # 打印预览
│   ├── win-project-properties  # 项目属性
│   ├── win-splash-screen       # 启动画面
│   ├── win-stats               # 统计窗口
│   ├── win-tag-manager         # 标签管理器
│   └── win-update              # 更新程序
├── static                      # 包含静态资源
│   ├── csl-locales             # CSL 语言环境文件
│   ├── csl-styles              # CSL 样式
│   ├── defaults                # 默认的默认值/Pandoc 配置文件
│   ├── dict                    # 随应用程序一起提供的字典
│   ├── fonts                   # 随应用程序一起提供的字体
│   ├── lang                    # 语言和 i18n 相关文件
│   ├── lua-filter              # 默认 Lua 过滤器
│   └── tutorial                # 各种语言的教程文件
└── test                        # 单元测试

模块和服务提供者的区别

你会注意到 Zettlr 同时包含"模块"和"服务提供者"。两者的区别很简单:服务提供者在主进程中运行,完全自主,同时为整个应用程序提供功能。另一方面,模块提供必须由用户操作触发的功能(例如导出器和导入器)。

应用程序生命周期

每当你运行 Zettlr 时,将执行以下步骤:

  1. 执行 source/main.ts
  2. 环境检查(source/app/lifecycle.ts::bootApplication
  3. 启动服务提供者(source/app/lifecycle.ts::bootApplication
  4. 启动主应用程序(source/main/zettlr.ts
  5. 加载文件树和文档
  6. 显示主窗口

当你关闭应用程序时,将运行以下步骤:

  1. 关闭除主窗口之外的所有窗口
  2. 尝试关闭主窗口
  3. 关闭主应用程序(source/main/zettlr.ts::shutdown
  4. 关闭服务提供者(source/app/lifecycle.ts::shutdownApplication
  5. 退出应用程序

在应用程序开发期间(yarn startyarn test-gui),将运行以下步骤:

  1. Electron forge 将分别为主进程和每个渲染进程编译代码(因为这些是独立的进程),使用 TypeScript 和 webpack 进行编译和转译。
  2. Electron forge 将该代码放入 .webpack 目录,用适当的入口点替换你可以在窗口管理器的"create"方法中找到的常量。
  3. Electron forge 将启动几个开发服务器以提供热模块重载(HMR),然后实际启动应用程序。

每当构建应用程序时,将运行以下步骤:

  1. Electron forge 将执行上述步骤 1 和 2,但不是运行应用程序,而是将生成的代码打包成一个功能性的应用程序包。
  2. Electron builder 然后将这些预构建的包装入特定平台的安装程序(DMG 文件、Windows 安装程序或 Linux 包)。

Electron forge 将把打包的应用程序放入 ./out 目录,而 Electron builder 将把安装程序放入 ./release 目录。

命令行开关

Zettlr 二进制文件具有一些命令行开关,你可以将其用于不同目的。

--launch-minimized

此 CLI 标志将指示 Zettlr 在启动时不显示主窗口。这对创建自动启动项很有用。在这种情况下,在系统启动时使用此标志启动 Zettlr 将确保你只能在托盘中看到其图标。 由于这意味着需要在以这种方式启动应用程序时将其运行在托盘栏或通知区域中,它会自动将相应的设置 system.leaveAppRunning 设为 true。

[!注意] 此标志对不支持在托盘栏或通知区域显示图标的 Linux 系统无效。

--clear-cache

这将指示文件系统抽象层在启动时完全清除其缓存。这可用于缓解与代码库变更相关的问题。为确保与缓存中存储的信息的任何更改兼容,当 config.json 中的版本字段与 package.json 中的不匹配时,缓存也会自动清除。这意味着,只要你没有在 test-config.yml 中显式设置 version 字段,每次运行 yarn test-gui 时缓存都会被清除。

[!提示] 如果你只是想随意清除缓存以进行故障排除,你也可以通过选择"帮助"菜单中的相应菜单项来清除缓存,这样可以避免你处理任何技术性问题。

--data-dir=路径

使用此开关指定自定义数据目录,该目录存放你的配置文件。如果不使用此开关,数据目录默认为 %AppData%/Zettlr(在 Windows 10 及更高版本上),~/.config/Zettlr(在 Linux 上),或 ~/Library/Application Support/Zettlr(在 macOS 上)。路径可以是绝对路径或相对路径。相对路径的基准将是二进制文件的目录(运行打包应用程序时)或仓库根目录(运行未打包的应用程序时)。如有必要,记得转义空格或用引号括起路径。在这种情况下,~ 字符不会被展开为表示主目录,所以如果需要,请确保传递完整的主目录路径。由于 Electron 的一个小 bug,会在默认数据目录中创建一个空的 Dictionaries 子目录,但这不会影响功能。

--disable-hardware-acceleration

此开关会导致 Zettlr 禁用硬件加速,这在某些设置中可能是必要的。有关为什么添加此标志的更多信息,请参见问题 #2127

VSCode 扩展推荐

本仓库利用了 Visual Studio Code 的推荐扩展功能。这意味着:如果你使用 VS Code 并首次打开仓库,VS Code 会告诉你仓库推荐安装一些扩展。如果你使用 Zettlr,这些扩展是推荐的,它们将使贡献变得更加容易。推荐在 .vscode/extensions.json 文件中指定。

由于安装扩展有时是个人喜好的问题,我们在该文件中为每个推荐的扩展添加了简短描述,解释为什么我们推荐它。这样你可以自行决定是否要安装这些扩展(例如,如果你不处理仓库中提供的 SVG 文件,SVG 扩展就不是必要的)。

如果你选择不一次性安装所有推荐的扩展(我们建议这样做),VS Code 会在扩展侧边栏中显示推荐,这样你就可以先决定安装哪些扩展,然后手动安装你想要的扩展。

[!提示] 使用与核心开发团队相同的扩展将使代码整体更加一致,因为你将得到相同的视觉反馈。

许可证

本软件通过 GNU GPL v3 许可证 授权。

品牌(包括名称、图标和所有可识别 Zettlr 的元素)被排除在外,保留所有权利。如果你想分叉 Zettlr 开发另一个应用程序,请随意,但请更改名称和图标。阅读有关 logo 使用的信息

编辑推荐精选

问小白

问小白

全能AI智能助手,随时解答生活与工作的多样问题

问小白,由元石科技研发的AI智能助手,快速准确地解答各种生活和工作问题,包括但不限于搜索、规划和社交互动,帮助用户在日常生活中提高效率,轻松管理个人事务。

热门AI助手AI对话AI工具聊天机器人
Transly

Transly

实时语音翻译/同声传译工具

Transly是一个多场景的AI大语言模型驱动的同声传译、专业翻译助手,它拥有超精准的音频识别翻译能力,几乎零延迟的使用体验和支持多国语言可以让你带它走遍全球,无论你是留学生、商务人士、韩剧美剧爱好者,还是出国游玩、多国会议、跨国追星等等,都可以满足你所有需要同传的场景需求,线上线下通用,扫除语言障碍,让全世界的语言交流不再有国界。

讯飞智文

讯飞智文

一键生成PPT和Word,让学习生活更轻松

讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。

AI办公办公工具AI工具讯飞智文AI在线生成PPTAI撰写助手多语种文档生成AI自动配图热门
讯飞星火

讯飞星火

深度推理能力全新升级,全面对标OpenAI o1

科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。

热门AI开发模型训练AI工具讯飞星火大模型智能问答内容创作多语种支持智慧生活
Spark-TTS

Spark-TTS

一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型

Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。

Trae

Trae

字节跳动发布的AI编程神器IDE

Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。

AI工具TraeAI IDE协作生产力转型热门
咔片PPT

咔片PPT

AI助力,做PPT更简单!

咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。

讯飞绘文

讯飞绘文

选题、配图、成文,一站式创作,让内容运营更高效

讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。

热门AI辅助写作AI工具讯飞绘文内容运营AI创作个性化文章多平台分发AI助手
材料星

材料星

专业的AI公文写作平台,公文写作神器

AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。

openai-agents-python

openai-agents-python

OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。

openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。

下拉加载更多