From 164627004251e6cfd64b3fb8d494b07cb7d5e317 Mon Sep 17 00:00:00 2001 From: wanghe Date: Thu, 7 Dec 2023 16:10:55 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E9=83=A8=E5=88=86=E5=BA=94?= =?UTF-8?q?=E7=94=A8=E4=BC=98=E5=8C=96=20(#686)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../2.9.12/docker-compose.yml | 6 +- apps/chatgpt-next-web/README.md | 203 ++---------------- apps/chatgpt-next-web/data.yml | 4 +- apps/filecodebox.zip | Bin 32562 -> 0 bytes apps/filecodebox/2.0/data.yml | 10 - apps/filecodebox/2.0/docker-compose.yml | 10 - apps/filecodebox/README.md | 16 +- apps/filecodebox/beta/data.yml | 10 + apps/filecodebox/beta/docker-compose.yml | 17 ++ apps/filecodebox/data.yml | 31 +-- apps/koishi/1.12.2/data.yml | 9 +- apps/koishi/1.12.2/docker-compose.yml | 8 +- apps/koishi/README.md | 35 +-- apps/koishi/data.yml | 33 +-- apps/prometheus/README.md | 2 +- apps/prometheus/data.yml | 1 + apps/prometheus/v2.48.0/scripts/init.sh | 2 + apps/tailchat/README.md | 53 ++--- 18 files changed, 129 insertions(+), 321 deletions(-) delete mode 100644 apps/filecodebox.zip delete mode 100644 apps/filecodebox/2.0/data.yml delete mode 100644 apps/filecodebox/2.0/docker-compose.yml create mode 100644 apps/filecodebox/beta/data.yml create mode 100644 apps/filecodebox/beta/docker-compose.yml diff --git a/apps/chatgpt-next-web/2.9.12/docker-compose.yml b/apps/chatgpt-next-web/2.9.12/docker-compose.yml index 1702c0ae4..544cd85cf 100644 --- a/apps/chatgpt-next-web/2.9.12/docker-compose.yml +++ b/apps/chatgpt-next-web/2.9.12/docker-compose.yml @@ -13,9 +13,9 @@ services: - "PROXY_URL=${PROXY}" - "BASE_URL=${API_BASE_URL}" image: yidadaa/chatgpt-next-web:v2.9.12 - labels: + labels: createdBy: "Apps" -networks: - 1panel-network: +networks: + 1panel-network: external: true diff --git a/apps/chatgpt-next-web/README.md b/apps/chatgpt-next-web/README.md index f8d5693ee..3feaa4e59 100644 --- a/apps/chatgpt-next-web/README.md +++ b/apps/chatgpt-next-web/README.md @@ -1,186 +1,17 @@ -
-预览 - -

ChatGPT Next Web

- -一键免费部署你的私人 ChatGPT 网页应用。 - -[演示 Demo](https://chat-gpt-next-web.vercel.app/) / [反馈 Issues](https://github.com/Yidadaa/ChatGPT-Next-Web/issues) / [加入 Discord](https://discord.gg/zrhvHCr79N) / [QQ 群](https://user-images.githubusercontent.com/16968934/228190818-7dd00845-e9b9-4363-97e5-44c507ac76da.jpeg) / [打赏开发者](https://user-images.githubusercontent.com/16968934/227772541-5bcd52d8-61b7-488c-a203-0330d8006e2b.jpg) / [Donate](#捐赠-donate-usdt) - -[![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FYidadaa%2FChatGPT-Next-Web&env=OPENAI_API_KEY&env=CODE&project-name=chatgpt-next-web&repository-name=ChatGPT-Next-Web) - -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/Yidadaa/ChatGPT-Next-Web) - -![主界面](https://github.com/Yidadaa/ChatGPT-Next-Web/raw/main/docs/images/cover.png) - -
- -## 开始使用 - -1. 准备好你的 [OpenAI API Key](https://platform.openai.com/account/api-keys); -2. 点击右侧按钮开始部署: - [![Deploy with Vercel](https://vercel.com/button)](https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2FYidadaa%2FChatGPT-Next-Web&env=OPENAI_API_KEY&env=CODE&project-name=chatgpt-next-web&repository-name=ChatGPT-Next-Web),直接使用 Github 账号登录即可,记得在环境变量页填入 API Key 和[页面访问密码](#配置页面访问密码) CODE; -3. 部署完毕后,即可开始使用; -4. (可选)[绑定自定义域名](https://vercel.com/docs/concepts/projects/domains/add-a-domain):Vercel 分配的域名 DNS 在某些区域被污染了,绑定自定义域名即可直连。 - -## 保持更新 - -如果你按照上述步骤一键部署了自己的项目,可能会发现总是提示“存在更新”的问题,这是由于 Vercel 会默认为你创建一个新项目而不是 fork 本项目,这会导致无法正确地检测更新。 -推荐你按照下列步骤重新部署: - -- 删除掉原先的仓库; -- 使用页面右上角的 fork 按钮,fork 本项目; -- 在 Vercel 重新选择并部署,[请查看详细教程](https://github.com/Yidadaa/ChatGPT-Next-Web/raw/main/docs/vercel-cn.md#如何新建项目)。 - -### 打开自动更新 - -> 如果你遇到了 Upstream Sync 执行错误,请手动 Sync Fork 一次! - -当你 fork 项目之后,由于 Github 的限制,需要手动去你 fork 后的项目的 Actions 页面启用 Workflows,并启用 Upstream Sync Action,启用之后即可开启每小时定时自动更新: - -![自动更新](https://github.com/Yidadaa/ChatGPT-Next-Web/raw/main/docs/images/enable-actions.jpg) - -![启用自动更新](https://github.com/Yidadaa/ChatGPT-Next-Web/raw/main/docs/images/enable-actions-sync.jpg) - -### 手动更新代码 - -如果你想让手动立即更新,可以查看 [Github 的文档](https://docs.github.com/en/pull-requests/collaborating-with-pull-requests/working-with-forks/syncing-a-fork) 了解如何让 fork 的项目与上游代码同步。 - -你可以 star/watch 本项目或者 follow 作者来及时获得新功能更新通知。 - -## 配置页面访问密码 - -> 配置密码后,用户需要在设置页手动填写访问码才可以正常聊天,否则会通过消息提示未授权状态。 - -> **警告**:请务必将密码的位数设置得足够长,最好 7 位以上,否则[会被爆破](https://github.com/Yidadaa/ChatGPT-Next-Web/issues/518)。 - -本项目提供有限的权限控制功能,请在 Vercel 项目控制面板的环境变量页增加名为 `CODE` 的环境变量,值为用英文逗号分隔的自定义密码: - -``` -code1,code2,code3 -``` - -增加或修改该环境变量后,请**重新部署**项目使改动生效。 - -## 环境变量 - -> 本项目大多数配置项都通过环境变量来设置,教程:[如何修改 Vercel 环境变量](https://github.com/Yidadaa/ChatGPT-Next-Web/raw/main/docs/vercel-cn.md)。 - -### `OPENAI_API_KEY` (必填项) - -OpanAI 密钥,你在 openai 账户页面申请的 api key。 - -### `CODE` (可选) - -访问密码,可选,可以使用逗号隔开多个密码。 - -**警告**:如果不填写此项,则任何人都可以直接使用你部署后的网站,可能会导致你的 token 被急速消耗完毕,建议填写此选项。 - -### `BASE_URL` (可选) - -> Default: `https://api.openai.com` - -> Examples: `http://your-openai-proxy.com` - -OpenAI 接口代理 URL,如果你手动配置了 openai 接口代理,请填写此选项。 - -> 如果遇到 ssl 证书问题,请将 `BASE_URL` 的协议设置为 http。 - -### `OPENAI_ORG_ID` (可选) - -指定 OpenAI 中的组织 ID。 - -### `HIDE_USER_API_KEY` (可选) - -如果你不想让用户自行填入 API Key,将此环境变量设置为 1 即可。 - -### `DISABLE_GPT4` (可选) - -如果你不想让用户使用 GPT-4,将此环境变量设置为 1 即可。 - -### `HIDE_BALANCE_QUERY` (可选) - -如果你不想让用户查询余额,将此环境变量设置为 1 即可。 - -## 开发 - -点击下方按钮,开始二次开发: - -[![Open in Gitpod](https://gitpod.io/button/open-in-gitpod.svg)](https://gitpod.io/#https://github.com/Yidadaa/ChatGPT-Next-Web) - -在开始写代码之前,需要在项目根目录新建一个 `.env.local` 文件,里面填入环境变量: - -``` -OPENAI_API_KEY= - -# 中国大陆用户,可以使用本项目自带的代理进行开发,你也可以自由选择其他代理地址 -BASE_URL=https://chatgpt1.nextweb.fun/api/proxy -``` - -### 本地开发 - -1. 安装 nodejs 18 和 yarn,具体细节请询问 ChatGPT; -2. 执行 `yarn install && yarn dev` 即可。⚠️ 注意:此命令仅用于本地开发,不要用于部署! -3. 如果你想本地部署,请使用 `yarn install && yarn build && yarn start` 命令,你可以配合 pm2 来守护进程,防止被杀死,详情询问 ChatGPT。 - -## 部署 - -### 容器部署 (推荐) - -> Docker 版本需要在 20 及其以上,否则会提示找不到镜像。 - -> ⚠️ 注意:docker 版本在大多数时间都会落后最新的版本 1 到 2 天,所以部署后会持续出现“存在更新”的提示,属于正常现象。 - -```shell -docker pull yidadaa/chatgpt-next-web - -docker run -d -p 3000:3000 \ - -e OPENAI_API_KEY="sk-xxxx" \ - -e CODE="页面访问密码" \ - yidadaa/chatgpt-next-web -``` - -你也可以指定 proxy: - -```shell -docker run -d -p 3000:3000 \ - -e OPENAI_API_KEY="sk-xxxx" \ - -e CODE="页面访问密码" \ - --net=host \ - -e PROXY_URL="http://127.0.0.1:7890" \ - yidadaa/chatgpt-next-web -``` - -如果你的本地代理需要账号密码,可以使用: - -```shell --e PROXY_URL="http://127.0.0.1:7890 user password" -``` - -如果你需要指定其他环境变量,请自行在上述命令中增加 `-e 环境变量=环境变量值` 来指定。 - -### 本地部署 - -在控制台运行下方命令: - -```shell -bash <(curl -s https://raw.githubusercontent.com/Yidadaa/ChatGPT-Next-Web/main/scripts/setup.sh) -``` - -⚠️ 注意:如果你安装过程中遇到了问题,请使用 docker 部署。 - -## 鸣谢 - -### 捐赠者 - -> 见英文版。 - -### 贡献者 - -[见项目贡献者列表](https://github.com/Yidadaa/ChatGPT-Next-Web/graphs/contributors) - -## 开源协议 - -> 反对 996,从我开始。 - -[Anti 996 License](https://github.com/kattgu7/Anti-996-License/blob/master/LICENSE_CN_EN) +# ChatGPT-Next-Web + +一键免费部署你的跨平台私人 ChatGPT 应用。 + +## 特征: + +- 只需在 1 分钟内即可在 Vercel 上一键免费部署 +- Linux/Windows/MacOS 上的紧凑型客户端 (~5MB),立即下载 +- 与自部署llms完全兼容,推荐与RWKV-Runner或LocalAI配合使用 +- 隐私第一,所有数据都存储在浏览器本地 +- Markdown 支持:LaTex、mermaid、代码高亮等。 +- 响应式设计、深色模式和 PWA +- 首屏加载速度快(~100kb),支持流式响应 +- v2 中的新增功能:使用提示模板(掩码)创建、共享和调试您的聊天工具 +- 由Awesome-chatgpt-prompts-zh和Awesome-chatgpt-prompts提供支持的很棒的提示 +- 自动压缩聊天历史记录以支持长时间对话,同时保存您的令牌 +- 国际化:英语、简体中文、繁体中文、日本语、法语、西班牙语、意大利语、土耳其语、德语、Tiếng Việt、Русский、Čeština、한국어、印度尼西亚 \ No newline at end of file diff --git a/apps/chatgpt-next-web/data.yml b/apps/chatgpt-next-web/data.yml index cacde37f4..6a3502a53 100644 --- a/apps/chatgpt-next-web/data.yml +++ b/apps/chatgpt-next-web/data.yml @@ -1,8 +1,8 @@ name: ChatGPT-Next-Web tags: - - 工具 + - 实用工具 title: 一键免费部署你的跨平台私人 ChatGPT 应用 -type: 工具 +type: 实用工具 description: 一键免费部署你的跨平台私人 ChatGPT 应用 additionalProperties: key: chatgpt-next-web diff --git a/apps/filecodebox.zip b/apps/filecodebox.zip deleted file mode 100644 index 522b07e177c5e7d15ee4ae7f1e1fb32ea9a96c4b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 32562 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 - - logo - -

Koishi

+# Koishi -[![Codecov](https://img.shields.io/codecov/c/github/koishijs/koishi?style=flat-square)](https://codecov.io/gh/koishijs/koishi) -[![downloads](https://img.shields.io/npm/dm/koishi?style=flat-square)](https://www.npmjs.com/package/koishi) -[![npm](https://img.shields.io/npm/v/koishi?style=flat-square)](https://www.npmjs.com/package/koishi) -[![GitHub](https://img.shields.io/github/license/koishijs/koishi?style=flat-square)](https://github.com/koishijs/koishi/blob/master/LICENSE) - - - -Koishi 是一个跨平台、可扩展、高性能的聊天机器人框架。 - -它的名字和图标设计来源于来源于东方 Project 中的角色古明地恋 (Komeiji Koishi)。古明地恋是一个会做出无意识举动的角色,取这个名字既象征着聊天机器人的主题,也蕴含了开发者为之倾注的热爱。 +**Koishi** 是一个跨平台、可扩展、高性能的聊天机器人框架。 ## 特性 @@ -36,21 +23,3 @@ Koishi 更为开发者准备了众多专业功能,使插件开发者得以在 - 类型支持:Koishi 完全基于 TypeScript 开发,拥有顶级的类型支持,丰富的代码提示让你在编写代码的时候甚至无需查看文档 - 单元测试:所有核心功能均已经通过单元测试,既确保了可靠性,也为开发者提供了一套测试插件和定位问题的最佳实践 - 模块热重载:开发 Koishi 插件时,只需轻点保存即可热重载,无需频繁重启机器人,如同前端开发一样丝滑顺畅 - -## 快速起步 - -[前往文档](https://koishi.chat/manual/starter/) - -## 许可证 - -Koishi 完全使用 [MIT](./LICENSE) 协议开源,维护良好的开源生态从我做起 (*>ω<)φ - -Copyright © 2019-2023, Shigma - -[![FOSSA Status](https://app.fossa.com/api/projects/git%2Bgithub.com%2Fkoishijs%2Fkoishi.svg?type=large)](https://app.fossa.com/projects/git%2Bgithub.com%2Fkoishijs%2Fkoishi?ref=badge_large) - -## 更多 - -- [贡献指南](./CONTRIBUTING.md) -- [参与讨论](https://koishi.chat/about/contact.html) -- [支持作者](https://afdian.net/a/shigma) \ No newline at end of file diff --git a/apps/koishi/data.yml b/apps/koishi/data.yml index 19475b014..b0a017bfa 100644 --- a/apps/koishi/data.yml +++ b/apps/koishi/data.yml @@ -1,13 +1,20 @@ -additionalProperties: #固定参数 - key: koishi #应用的 key ,仅限英文,用于在 Linux 创建文件夹 - name: Koishi #应用名称 - tags: - - Tool #应用标签,可以有多个,请参照下方的标签列表 - shortDescZh: 跨平台、可扩展、高性能的聊天机器人框架 #应用中文描述,不要超过30个字 - shortDescEn: Cross-platform, extensive, high-performance chatbot framework #应用英文描述 - type: tool #应用类型,区别于应用分类,只能有一个,请参照下方的类型列表 - crossVersionUpdate: true #是否可以跨大版本升级 - limit: 0 #应用安装数量限制,0 代表无限制 - website: https://koishi.chat #官网地址 - github: https://github.com/koishijs/koishi #github 地址 - document: https://koishi.chat #文档地址 \ No newline at end of file +name: Koishi +tags: + - 实用工具 +title: 跨平台、可扩展、高性能的聊天机器人框架 +type: 实用工具 +description: 跨平台、可扩展、高性能的聊天机器人框架 +additionalProperties: + key: koishi + name: Koishi + tags: + - Tool + shortDescZh: 跨平台、可扩展、高性能的聊天机器人框架 + shortDescEn: Cross-platform, extensive, high-performance chatbot framework + type: tool + crossVersionUpdate: true + limit: 0 + recommend: 0 + website: https://koishi.chat + github: https://github.com/koishijs/koishi + document: https://koishi.chat/zh-CN/manual/introduction.html \ No newline at end of file diff --git a/apps/prometheus/README.md b/apps/prometheus/README.md index 345f963f6..30074a0c8 100644 --- a/apps/prometheus/README.md +++ b/apps/prometheus/README.md @@ -1,6 +1,6 @@ # Prometheus -Prometheus 一个监控系统和时间序列数据库 +**Prometheus** 一个监控系统和时间序列数据库 ## 主要功能: diff --git a/apps/prometheus/data.yml b/apps/prometheus/data.yml index 07c66f1b1..106d9f06a 100644 --- a/apps/prometheus/data.yml +++ b/apps/prometheus/data.yml @@ -14,6 +14,7 @@ additionalProperties: type: runtime crossVersionUpdate: false limit: 0 + recommend: 0 website: https://prometheus.io github: https://github.com/prometheus/prometheus document: https://prometheus.io/docs/introduction/overview/ \ No newline at end of file diff --git a/apps/prometheus/v2.48.0/scripts/init.sh b/apps/prometheus/v2.48.0/scripts/init.sh index 850056489..93e5dd0c4 100644 --- a/apps/prometheus/v2.48.0/scripts/init.sh +++ b/apps/prometheus/v2.48.0/scripts/init.sh @@ -1 +1,3 @@ +#!/bin/bash + chmod -R 777 prometheus \ No newline at end of file diff --git a/apps/tailchat/README.md b/apps/tailchat/README.md index 4bca05ae8..02796a329 100644 --- a/apps/tailchat/README.md +++ b/apps/tailchat/README.md @@ -1,41 +1,18 @@ -# Tailchat - -Tailchat 是一款功能强大的聊天工具,旨在提供出色的沟通和协作体验。 - -## 安装演示视频 - -- [在 bilibili 中观看](https://www.bilibili.com/video/BV1hP411v7Gj) - -## 主要功能: - -### 实时聊天 - -Tailchat 提供实时聊天功能,允许用户与他人进行即时沟通。无论是一对一聊天还是群组聊天,您都可以轻松地与同事、朋友和家人保持联系。 - -### 多平台支持 - -Tailchat 可以在多个平台上使用,包括桌面、移动设备和Web浏览器。这意味着您可以随时随地访问您的聊天会话,无需担心设备兼容性问题。 - -### 文件共享 - -用户可以在聊天中轻松共享文件,包括图片、文档和音频文件。这样,您可以与团队成员共享重要文档或娱乐内容,提高工作效率和娱乐乐趣。 - -### 消息历史记录 - -Tailchat 会自动保存聊天消息的历史记录,因此您可以随时查看之前的对话。这对于追踪项目进展、查找之前的信息或进行审计非常有用。 - -### 自定义表情和贴纸 - -为了增加聊天的趣味性,Tailchat 支持自定义表情和贴纸。用户可以发送各种表情符号和有趣的贴纸来表达自己的情感和想法。 - -### 安全和隐私 - -Tailchat 提供了强大的安全性和隐私保护功能,包括端到端加密,以确保您的聊天内容不会被未经授权的访问。 - -## 部署说明 - -### 关于后台 +# 关于后台 访问 `http://:11002/admin/` 进入后台服务 -*11002是后台默认端口,你可以在安装时修改成自己想要的端口* +> 11002是后台默认端口,你可以在安装时修改成自己想要的端口。 + +# Tailchat + +**Tailchat** 是一款功能强大的聊天工具,旨在提供出色的沟通和协作体验。 + +## 主要功能: + +- **实时聊天**:Tailchat 提供实时聊天功能,允许用户与他人进行即时沟通。无论是一对一聊天还是群组聊天,您都可以轻松地与同事、朋友和家人保持联系。 +- **多平台支持**:Tailchat 可以在多个平台上使用,包括桌面、移动设备和Web浏览器。这意味着您可以随时随地访问您的聊天会话,无需担心设备兼容性问题。 +- **文件共享**:用户可以在聊天中轻松共享文件,包括图片、文档和音频文件。这样,您可以与团队成员共享重要文档或娱乐内容,提高工作效率和娱乐乐趣。 +- **消息历史记录**:Tailchat 会自动保存聊天消息的历史记录,因此您可以随时查看之前的对话。这对于追踪项目进展、查找之前的信息或进行审计非常有用。 +- **自定义表情和贴纸**:为了增加聊天的趣味性,Tailchat 支持自定义表情和贴纸。用户可以发送各种表情符号和有趣的贴纸来表达自己的情感和想法。 +- **安全和隐私**:Tailchat 提供了强大的安全性和隐私保护功能,包括端到端加密,以确保您的聊天内容不会被未经授权的访问。