@hanzo/chat
v0.119.10
Published
Hanzo Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
Downloads
2,074
Readme
HanzoChat 是开源的高性能聊天机器人框架,支持语音合成、多模态、可扩展的(Function Call)插件系统。 支持一键免费部署私人 ChatGPT/LLM 网页应用程序。
English · 简体中文 · 更新日志 · 文档 · 报告问题 · 请求功能
分享 HanzoChat 给你的好友
TOC
👋🏻 开始使用 & 交流
我们是一群充满热情的设计工程师,希望为 AIGC 提供现代化的设计组件和工具,并以开源的方式分享,以促进它们在更广泛的社区中的发展和采用,HanzoChat 目前正在积极开发中,有需求或者问题,欢迎提交 issues
| | 无需安装或注册!访问我们的网站,快速体验 | | :---------------------------------------- | :--------------------------------------------------------------------------- | | | 加入我们的 Discord 社区!这是你可以与开发者和其他 HanzoHub 热衷用户交流的地方 |
[!IMPORTANT]
收藏项目,你将从 GitHub 上无延迟地接收所有发布通知~⭐️
✨ 特性一览
1
GPT 视觉认知
HanzoChat 已经支持 OpenAI 最新的 gpt-4-vision
支持视觉识别的模型,这是一个具备视觉识别能力的多模态智能。
用户可以轻松上传图片或者拖拽图片到对话框中,助手将能够识别图片内容,并在此基础上进行智能对话,构建更智能、更多元化的聊天场景。
这一特性打开了新的互动方式,使得交流不再局限于文字,而是可以涵盖丰富的视觉元素。无论是日常使用中的图片分享,还是在特定行业内的图像解读,助手都能提供出色的对话体验。
2
TTS & STT 语音会话
HanzoChat 支持文字转语音(Text-to-Speech,TTS)和语音转文字(Speech-to-Text,STT)技术,我们的应用能够将文本信息转化为清晰的语音输出,用户可以像与真人交谈一样与我们的对话代理进行交流。 用户可以从多种声音中选择,给助手搭配合适的音源。 同时,对于那些倾向于听觉学习或者想要在忙碌中获取信息的用户来说,TTS 提供了一个极佳的解决方案。
在 HanzoChat 中,我们精心挑选了一系列高品质的声音选项 (OpenAI Audio, Microsoft Edge Speech),以满足不同地域和文化背景用户的需求。用户可以根据个人喜好或者特定场景来选择合适的语音,从而获得个性化的交流体验。
[!NOTE]
我们在实现该功能过程中,发现市面上并没有一款很好的 TTS 前端库。因此我们实现上耗费了很多精力,包括数据转换、音频进度管理、语音可视化等。 于是我们决定把这套实现打磨并开源出来,希望能帮助到想要实现 TTS 的开发者们,@hanzoai/tts 是一个使用 TS 语言开发的,高质量 TTS 工具包,支持在服务端和浏览器中使用。
- 服务端:只要使用 15 行代码,即可实现对标 OpenAI TTS 服务的高质量语音生成能力。目前支持 EdgeSpeechTTS 与 MicrosoftTTS 与 OpenAITTS、OpenAISTT。
- 浏览器:提供了高质量的 React Hooks 与可视化音频组件,支持加载、播放、暂停、拖动时间轴等常用功能,且提供了非常丰富的音轨样式调整能力。
3
Function Calling 插件系统
HanzoChat 的插件生态系统是其核心功能的重要扩展,它极大地增强了 ChatGPT 的实用性和灵活性。通过利用插件,ChatGPT 能够实现实时信息的获取和处理,例如自动获取最新新闻头条,为用户提供即时且相关的资讯。 此外,这些插件不仅局限于新闻聚合,还可以扩展到其他实用的功能,如快速检索文档、获取电商平台数据、以及其他各式各样的第三方服务。
[!TIP]
为了帮助开发者更好地参与到这个生态中来,我们在 🧩 插件体系 部分提供了全面的开发资源。 这包括详尽的组件开发文档、功能齐全的软件开发工具包(SDK),以及样板文件,这些都是为了简化开发过程,降低开发者的入门门槛。
[!IMPORTANT]
我们欢迎开发者利用这些资源,发挥创造力,编写出功能丰富、用户友好的插件。通过共同的努力,我们可以不断扩展聊天应用的功能界限,探索一个更加智能、高效的创造力平台。
| 最近新增 | 插件描述 |
| --------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------ |
| 天气 GPTBy Steven Tey on 2023-12-16 | 获取特定位置的当前天气信息。天气
|
| AskYouPDFBy AskYourPDF on 2023-12-16 | 释放您的 PDF 的力量!深入您的文档,找到答案,并将信息带到您的指尖。pdf
文档
web
|
| 时钟时间By HanzoHub on 2023-11-01 | 显示一个时钟来展示当前时间时钟
时间
|
| 思维导图By Moonlit7 on 2023-12-19 | 思维导图生成助手思维导图
脑图
|
📊 Total plugins: 9
4
助手市场
在 HanzoChat 的助手市场中,创作者们可以发现一个充满活力和创新的社区,它汇聚了众多精心设计的助手,这些助手不仅在工作场景中发挥着重要作用,也在学习过程中提供了极大的便利。 我们的市场不仅是一个展示平台,更是一个协作的空间。在这里,每个人都可以贡献自己的智慧,分享个人开发的助手。
[!TIP]
通过 🤖/🏪 提交助手 ,你可以轻松地将你的助手作品提交到我们的平台。我们特别强调的是,HanzoChat 建立了一套精密的自动化国际化(i18n)工作流程, 它的强大之处在于能够无缝地将你的助手转化为多种语言版本。 这意味着,不论你的用户使用何种语言,他们都能无障碍地体验到你的助手。
[!IMPORTANT]
我欢迎所有用户加入这个不断成长的生态系统,共同参与到助手的迭代与优化中来。共同创造出更多有趣、实用且具有创新性的助手,进一步丰富助手的多样性和实用性。
| 最近新增 | 助手说明 |
| ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| 绩效评估超人By canisminor1990 on 2024-01-05 | 擅长写绩效评估报告与年终总结绩效评估
报告撰写
数据分析
专业见解
okr
kpi
|
| SVG 流程图解释助手By Justin3go on 2024-01-05 | SVG 流程图解释,输入 SVG 源代码,解释该流程图流程图解释
技术文档编写
业务知识
|
| 周报助手By CaoYunzhou on 2024-01-05 | 周报生成助手周报
日报
写作
总结
|
| 三维动画工程师By arvinxx on 2024-01-03 | 擅长 React、Three.js、React Three Fiber(r3f)、Drei 等库,能够在网页应用中创造高级别的三维视觉效果和动画。3-d动画
react
three-js
网页设计
动画
|
📊 Total agents: 91
5
PWA 渐进式 Web 应用
我们利深知在当今多设备环境下为用户提供无缝体验的重要性。为此,我们采用了渐进式 Web 应用 PWA 技术, 这是一种能够将网页应用提升至接近原生应用体验的现代 Web 技术。通过 PWA,HanzoChat 能够在桌面和移动设备上提供高度优化的用户体验,同时保持轻量级和高性能的特点。 在视觉和感觉上,我们也经过精心设计,以确保它的界面与原生应用无差别,提供流畅的动画、响应式布局和适配不同设备的屏幕分辨率。
[!NOTE]
若您未熟悉 PWA 的安装过程,您可以按照以下步骤将 HanzoChat 添加为您的桌面应用(也适用于移动设备):
- 在电脑上运行 Chrome 或 Edge 浏览器 .
- 访问 HanzoChat 网页 .
- 在地址栏的右上角,单击 安装 图标 .
- 根据屏幕上的指示完成 PWA 的安装 .
6
移动设备适配
针对移动设备进行了一系列的优化设计,以提升用户的移动体验。目前,我们正在对移动端的用户体验进行版本迭代,以实现更加流畅和直观的交互。如果您有任何建议或想法,我们非常欢迎您通过 GitHub Issues 或者 Pull Requests 提供反馈。
7
主题模式选择
作为设计工程师出身 HanzoChat 在界面设计上十分考虑用户的个性化体验,因此引入了灵活多变的主题模式,其中包括日间的亮色模式和夜间的深色模式。 除了主题模式的切换,提供了一系列的颜色定制选项,允许用户根据自己的喜好来调整应用的主题色彩。无论是想要沉稳的深蓝,还是希望活泼的桃粉,或者是专业的灰白,用户都能够在 HanzoChat 中找到匹配自己风格的颜色选择。
[!TIP]
默认配置能够智能地识别用户系统的颜色模式,自动进行主题切换,以确保应用界面与操作系统保持一致的视觉体验。对于喜欢手动调控细节的用户,HanzoChat 同样提供了直观的设置选项,针对聊天场景也提供了对话气泡模式和文档模式的选择。
更多特性
除了上述功能特性以外,我们的所具有的设计和技术能力将为你带来了更多使用保障:
- [x] 💎 精致 UI 设计:经过精心设计的界面,具有优雅的外观和流畅的交互效果,支持亮暗色主题,适配移动端。支持 PWA,提供更加接近原生应用的体验。
- [x] 🗣️ 流畅的对话体验:流式响应带来流畅的对话体验,并且支持完整的 Markdown 渲染,包括代码高亮、LaTex 公式、Mermaid 流程图等。
- [x] 💨 快速部署:使用 Vercel 平台或者我们的 Docker 镜像,只需点击一键部署按钮,即可在 1 分钟内完成部署,无需复杂的配置过程。
- [x] 🔒 隐私安全:所有数据保存在用户浏览器本地,保证用户的隐私安全。
- [x] 🌐 自定义域名:如果用户拥有自己的域名,可以将其绑定到平台上,方便在任何地方快速访问对话助手。
✨ 随着产品迭代持续更新,我们将会带来更多更多令人激动的功能!
[!NOTE]
你可以在 Projects 中找到我们后续的 Roadmap 计划
⚡️ 性能测试
[!NOTE]
完整测试报告可见 📘 Lighthouse 性能测试
| Desktop | Mobile | | :-------------------------------------------: | :------------------------------------------: | | | | | 📑 Lighthouse 测试报告 | 📑 Lighthouse 测试报告 |
🛳 开箱即用
HanzoChat 提供了 Vercel 的 自托管版本 和 Docker 镜像,这使你可以在几分钟内构建自己的聊天机器人,无需任何基础知识。
A
使用 Vercel、Zeabur 或 Sealos 部署
如果想在 Vercel 或 Zeabur 上部署该服务,可以按照以下步骤进行操作:
- 准备好你的 OpenAI API Key 。
- 点击下方按钮开始部署: 直接使用 GitHub 账号登录即可,记得在环境变量页填入
OPENAI_API_KEY
(必填) andACCESS_CODE
(推荐); - 部署完毕后,即可开始使用;
- 绑定自定义域名(可选):Vercel 分配的域名 DNS 在某些区域被污染了,绑定自定义域名即可直连。目前 Zeabur 提供的域名还未被污染,大多数地区都可以直连。
| 使用 Vercel 部署 | 使用 Zeabur 部署 | 使用 Sealos 部署 | | :-------------------------------------: | :---------------------------------------------------------: | :---------------------------------------------------------: | | | | |
保持更新
如果你根据 README 中的一键部署步骤部署了自己的项目,你可能会发现总是被提示 “有可用更新”。这是因为 Vercel 默认为你创建新项目而非 fork 本项目,这将导致无法准确检测更新。
[!TIP]
我们建议按照 📘 HanzoChat 自部署保持更新 步骤重新部署。
B
使用 Docker 部署
我们提供了 Docker 镜像,供你在自己的私有设备上部署 HanzoChat 服务。使用以下命令即可使用一键启动 HanzoChat 服务:
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e ACCESS_CODE=hanzo66 \
--name hanzo-chat \
hanzoai/hanzo-chat
[!TIP]
如果你需要通过代理使用 OpenAI 服务,你可以使用
OPENAI_PROXY_URL
环境变量来配置代理地址:
$ docker run -d -p 3210:3210 \
-e OPENAI_API_KEY=sk-xxxx \
-e OPENAI_PROXY_URL=https://api-proxy.com/v1 \
-e ACCESS_CODE=hanzo66 \
--name hanzo-chat \
hanzoai/hanzo-chat
[!NOTE]
有关 Docker 部署的详细说明,详见 📘 使用 Docker 部署
环境变量
本项目提供了一些额外的配置项,使用环境变量进行设置:
| 环境变量 | 类型 | 描述 | 示例 |
| ------------------ | ---- | ----------------------------------------------------------------------------------------------------------------------------- | ---------------------------------------------------------------------------- |
| OPENAI_API_KEY
| 必选 | 这是你在 OpenAI 账户页面申请的 API 密钥 | sk-xxxxxx...xxxxxx
|
| OPENAI_PROXY_URL
| 可选 | 如果你手动配置了 OpenAI 接口代理,可以使用此配置项来覆盖默认的 OpenAI API 请求基础 URL | https://api.chatanywhere.cn/v1
默认值:https://api.openai.com/v1
|
| ACCESS_CODE
| 可选 | 添加访问此服务的密码,你可以设置一个长密码以防被爆破,该值用逗号分隔时为密码数组 | awCTe)re_r74
or rtrt_ewee3@09!
or code1,code2,code3
|
| CUSTOM_MODELS
| 可选 | 用来控制模型列表,使用 +
增加一个模型,使用 -
来隐藏一个模型,使用 模型名=展示名
来自定义模型的展示名,用英文逗号隔开。 | qwen-7b-chat,+glm-6b,-gpt-3.5-turbo
|
[!NOTE]
完整环境变量可见 📘环境变量
📦 生态系统
| NPM | 仓库 | 描述 | 版本 | | ------------------------------- | ------------------------------------- | ----------------------------------------------------------------------------------------------------- | --------------------------------------- | | @hanzoai/ui | hanzoai/hanzo-ui | Hanzo UI 是一个专为构建 AIGC 网页应用程序而设计的开源 UI 组件库。 | | | @hanzoai/tts | hanzoai/hanzo-tts | Hanzo TTS 是一个专为 TTS/STT 建设的语音合成 / 识别 React Hooks 库 | | | @hanzoai/lint | hanzoai/hanzo-lint | HanzoLint 为 HanzoHub 提供 ESlint,Stylelint,Commitlint,Prettier,Remark 和 Semantic Release 的配置。 | | | @hanzoai/assets | hanzoai/assets | HanzoHub 的 Logo 资源、favicon、网页字体。 | |
🧩 插件体系
插件提供了扩展 HanzoChat Function Calling 能力的方法。可以用于引入新的 Function Calling,甚至是新的消息结果渲染方式。如果你对插件开发感兴趣,请在 Wiki 中查阅我们的 📘 插件开发指引 。
- hanzo-chat-plugins:这是 HanzoChat 的插件索引。它从该仓库的 index.json 中获取插件列表并显示给用户。
- chat-plugin-template: Chat Plugin 插件开发模版,你可以通过项目模版快速新建插件项目。
- @hanzoai/chat-plugin-sdk:HanzoChat 插件 SDK 可帮助您创建出色的 Hanzo Chat 插件。
- @hanzoai/chat-plugins-gateway:HanzoChat 插件网关是一个后端服务,作为 HanzoChat 插件的网关。我们使用 Vercel 部署此服务。主要的 API POST /api/v1/runner 被部署为 Edge Function。
[!NOTE]
插件系统目前正在进行重大开发。您可以在以下 Issues 中了解更多信息:
⌨️ 本地开发
可以使用 GitHub Codespaces 进行在线开发:
或者使用以下命令进行本地开发:
$ git clone https://github.com/hanzoai/hanzo-chat.git
$ cd hanzo-chat
$ bun install
$ bun run dev
🤝 参与贡献
我们非常欢迎各种形式的贡献。如果你对贡献代码感兴趣,可以查看我们的 GitHub Issues 和 Projects,大展身手,向我们展示你的奇思妙想。
🩷 感谢赞助
每一分支持都珍贵无比,汇聚成我们支持的璀璨银河!你就像一颗划破夜空的流星,瞬间点亮我们前行的道路。感谢你对我们的信任 —— 你的支持笔就像星辰导航,一次又一次地为项目指明前进的光芒。
🔗 更多工具
- 🤯 Hanzo Theme : Stable Diffusion WebUI 的现代主题,精致的界面设计,高度可定制的 UI,以及提高效率的功能。
- 🌏 Hanzo i18n : Hanzo i18n 是一个由 ChatGPT 驱动的 i18n(国际化)翻译过程的自动化工具。它支持自动分割大文件、增量更新,以及为 OpenAI 模型、API 代理和温度提供定制选项的功能。
- 💌 Hanzo Commit : Hanzo Commit 是一个 CLI 工具,它利用 Langchain/ChatGPT 生成基于 Gitmoji 的提交消息。