npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@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

22

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 (必填) and ACCESS_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 中了解更多信息:

  • [x] 插件一期: 实现插件与主体分离,将插件拆分为独立仓库维护,并实现插件的动态加载
  • [x] 插件二期: 插件的安全性与使用的稳定性,更加精准地呈现异常状态,插件架构的可维护性与开发者友好
  • [ ] 插件三期:更高阶与完善的自定义能力,支持插件鉴权与示例

⌨️ 本地开发

可以使用 GitHub Codespaces 进行在线开发:

或者使用以下命令进行本地开发:

$ git clone https://github.com/hanzoai/hanzo-chat.git
$ cd hanzo-chat
$ bun install
$ bun run dev

🤝 参与贡献

我们非常欢迎各种形式的贡献。如果你对贡献代码感兴趣,可以查看我们的 GitHub IssuesProjects,大展身手,向我们展示你的奇思妙想。

🩷 感谢赞助

每一分支持都珍贵无比,汇聚成我们支持的璀璨银河!你就像一颗划破夜空的流星,瞬间点亮我们前行的道路。感谢你对我们的信任 —— 你的支持笔就像星辰导航,一次又一次地为项目指明前进的光芒。

🔗 更多工具

  • 🤯 Hanzo Theme : Stable Diffusion WebUI 的现代主题,精致的界面设计,高度可定制的 UI,以及提高效率的功能。
  • 🌏 Hanzo i18n : Hanzo i18n 是一个由 ChatGPT 驱动的 i18n(国际化)翻译过程的自动化工具。它支持自动分割大文件、增量更新,以及为 OpenAI 模型、API 代理和温度提供定制选项的功能。
  • 💌 Hanzo Commit : Hanzo Commit 是一个 CLI 工具,它利用 Langchain/ChatGPT 生成基于 Gitmoji 的提交消息。


Copyright © 2023 HanzoHub. This project is MIT licensed.