diff --git a/README.md b/README.md index f9ee882..57ce3b4 100644 --- a/README.md +++ b/README.md @@ -4,9 +4,9 @@ # [Chat Nio](https://chatnio.net) -🚀 强大精美的 **AI聚合** 聊天平台 +_🚀 **下一代 AI 一站式解决方案**_ -🚀 Powerful and beautiful **AI Aggregation** chat platform +_🚀 **Next Generation AI One-Stop Solution**_ [官网](https://chatnio.net) | [开放文档](https://docs.chatnio.net) | [SDKs](https://docs.chatnio.net/kuai-su-kai-shi) | [QQ 群](http://qm.qq.com/cgi-bin/qm/qr?_wv=1027&k=1mv1Y8SyxnQVvQCoqhmIgVTbwQmkNmvQ&authKey=5KUA9nJPR29nQwjbsYNknN2Fj6cKePkRes%2B1QZy84Dr4GHYVzcvb0yklxiMMNVJN&noverify=0&group_code=749482576) @@ -16,54 +16,60 @@ ## 📝 功能 | Features -1. ✨ **AI 联网功能** - - ✨ **AI online searching service** -2. ⚡ 多账户均衡负载 - - ⚡ Multi-account load balancing -3. 🎉 HTTP2 Stream 实时响应功能 - - 🎉 HTTP2 Stream real-time response function -4. 🚀 节流和鉴权体系 - - 🚀 Throttling and authentication system -5. 🌈 丰富的聊天功能 (代码高亮,latex支持,卡片生成,右键菜单) - - 🌈 Rich chat features (code highlight, latex support, card generation, right-click menu) -6. 🎨 多端适配 - - 🎨 Multi-device adaptation -7. 📦 缓存系统 - - 📦 Cache system -8. 🎈 对话记忆功能 - - 🎈 Conversation memorization -9. 👋 对话分享 - - 👋 Conversation sharing -10. 🎁 图片生成功能 - - 🎁 Image generation -11. 🔔 PWA 应用 - - 🔔 PWA application -12. 📚 逆向工程模型支持 - - 📚 Reverse engineering model support -13. 🌏 国际化支持 - - 🌏 Internationalization support +- ✨ **AI 聊天对话功能** + 1. **丰富格式兼容** + - 支持 Vision 模型, 同时支持 ***直接上传图片*** 和 ***输入图片直链或 Base64 图片*** 功能 (如 GPT-4 Vision Preview, Gemini Pro Vision 等模型) + - 支持 DALL-E 模型绘图 + - 支持 Midjourney / Niji 模型的 **Imagine** / **Upscale** / **Variant** / **Reroll** 操作 + 2. **丰富 Markdown 支持**, 支持代码高亮, LaTeX 公式, 表格, 进度条, Virtual Message 等 + 3. **支持消息菜单**, 支持重新回答, 复制消息, 使用消息, 编辑消息, 删除消息, 保存为文件等操作 + 4. **支持多端适配**, 支持移动端, PC 端, Pad 端等, 支持 PWA 应用, 支持桌面端 *(桌面端基于 [Tauri](https://github.com/tauri-apps/tauri))* + 5. **对话记忆功能**, 云端同步, 原生支持站点直链分享对话, 支持使用分享对话, 分享对话保存为图片, 支持分享管理 (支持查看, 删除分享等操作) + 6. **原生支持文件解析**, 不依赖模型, 支持 pdf, docx, pptx, xlsx, 音频 *(需配置azure speech)*, 图片 *(需 vision 模型)* 等格式上传, 可直接从消息框 Ctrl+V 复制文件, 同时支持操作弹出窗口的点击上传和拖拽上传, 支持多文件管理 _(详情参考项目 [chatnio-blob-service](https://github.com/Deeptrain-Community/chatnio-blob-service))_ + 7. 支持 DuckDuckGo / New Bing 联网搜索功能 (不依赖模型 Function Calling) _(详情参考并自行一键搭建项目 [duckduckgo-api](https://github.com/binjie09/duckduckgo-api), 感谢作者 [@binjie09](https://github.com/binjie09))_ + 8. **大文本全屏编辑支持**, 支持 *纯文本编辑*, *纯预览模式*, *编辑预览模式* 三种模式切换 + 9. **模型市场功能**, 支持模型搜索, 支持设置模型名称, 模型描述, 模型 Tags, 内置模型图片选择和自定义模型图片设置, 自动绑定模型的价格设置, 自动绑定订阅配额 (包含在订阅的模型将标有 *plus* 标签) + 10. (自定义预设开发中) **支持预设功能**, 支持自定义预设和云端同步功能, 支持预设克隆, 预设头像设置, 预设简介设置 + 11. **支持站点公告** (公告弹窗显示, 需确认), 支持公告通知 (右侧通知显示, 无需确认) + 12. **支持主题切换**, 明亮 / 暗黑显示主题切换, 自动保存主题偏好, 自动获取默认系统主题 + 13. **支持偏好设置**, i18n 多语言支持, 自定义最大携带会话数, 最大回复 tokens 数, 模型参数自定义, 重置设置等 - 🇨🇳 简体中文 - 🇺🇸 English - 🇷🇺 Русский -14. 🍎 主题切换 - - 🍎 Theme switching -15. 🥪 Key 中转服务 - - 🥪 Key relay service -16. 🔨 多模型支持 - - 🔨 Multi-model support -17. ⚙ 后台管理系统 (仪表盘,用户管理,公告管理等) - - ⚙ Admin system (dashboard, user management, announcement management, etc.) -18. ⚒ 渠道管理 (多账号均衡负载,优先级调配,权重负载,模型映射,渠道状态管理) - - ⚒ Channel management (multi-account load balancing, priority allocation, weight load, model mapping, channel status management) -19. ⚡ 计费系统 (支持匿名计费,按次数计费,Token 弹性计费等方式) - - ⚡ Billing system (support anonymous billing, billing by number of times, Token billing, etc.) -20. 📂 文件上传功能 (支持 pdf, docx, pptx, xlsx, 音频, 图片等) - - 📂 File upload function (support pdf, docx, pptx, xlsx, audio, images, etc.) -21. 🥪 All in one (支持 smtp 发件,用户管理等功能) - - 🥪 All in one (supports smtp sending, user management, etc.) + - 🇯🇵 日本語 + 14. **附加功能** _(可通过后台系统设置设置附加功能的用户分组权限来开启和关闭)_ + - 🍎 **AI 项目生成器功能**, 支持生成过程查看, 支持 TAR / ZIP 格式下载 *(原理为预设实现, 可能不稳定)* + - 📂 **批量文章生成功能**, 支持生成进度条, 一键生成 DOCX 文档的 TAR / ZIP 格式下载 *(需要生成数量高于上游该模型的最高并发数)* + - 🥪 **AI 卡片功能** (已废弃), AI 的问题和答案以卡片形式展现, 可直接以图片 url 形式嵌入。*(原理为动态生成 SVG, 模型的相应时间可能较长而导致 TIMEOUT, 当前已放弃支持)* +- 🔔 丰富用户管理和计费体系 + 1. **丰富且美观的仪表盘**, 包含本日和当月入账信息, 订阅人数, 模型使用统计折线图, 饼状图分析, 收入统计, 用户类型统计, 模型使用统计, 请求次数和模型错误数量统计图表等 + 1. **支持用户系统**, *SMTP 发件*, *用户注册*, *用户登录*, *忘记密码* 等功能 + 2. **支持用户管理**, *用户列表*, *用户详情*, *管理操作* (*修改密码*, *修改邮箱*, *封禁 / 解封用户*, *设为管理员*, *点数变更*, *点数设置*, *订阅管理*, *订阅等级设置*, *释放订阅用量* 等操作) + 3. **支持邀请码和兑换码管理** 支持管理操作, 支持批量生成和保存为文件 _(邀请码一种类型只能一个用户只能绑定一次, 发福利等方式可使用邀请码;兑换码一种类型可以多个用户绑定, 可作为正常购买和发卡使用)_ + 4. **价格设定**, 支持模型价格设定 (_**次数计费**_, **_Token 弹性计费_**, _**不计费**_ 等类型), 支持同步上游 Chat Nio 站点的价格设定 (可选是否覆盖本站已有模型价格规则), 未设定价格模型检测 (如果非管理员将自动检测并停止使用模型进而防止金额损失) + 5. **订阅设定**, 区别于弹性计费, 订阅是一种固定按次的价格的计费方式, 平台用户可以通过套餐以固定价格订阅, 支持是否开启订阅 (默认关闭), 支持订阅分层 (固定为三种套餐:_基础版订阅_, _标准版订阅_, _专业版订阅_), 支持订阅配额设置 _(值为 -1 时为无限使用)_, 支持订阅配额涵盖模型设置, 图标设置, 从其他套餐的配额导入等功能, 可选订阅配额是否支持中转 API (默认关闭)。 + 6. **系统设置**, 自定义网站名称, 网站 Logo, 文档链接, 是否暂停注册, 用户初始点数等设置, 自定义购买链接 (卡密发卡地址), 联系信息, 页脚信息等 + 7. **支持 SMTP 发件**, 支持是否启用邮件后缀白名单, 支持自定义邮件后缀白名单 + 8. **支持模型缓存**, 即同一个入参下, 如果之前已请求过, 将直接返回缓存结果 (击中缓存将不计费), 减少请求次数。可自定义一种情况的最大缓存结果数 (默认为 1), 自定义可缓存的模型 (默认为空), 自定义缓存时间 (默认为 1 小时), 支持一键设置 *全部模型不缓存*, *免费模型缓存*, *所有模型缓存* 等操作 + 9. **支持可请求最小点数检测**, 防止滥用, 当请求点数低于最小请求点数时将返回点数不足的错误信息 (不计费模型无限制, 次数计费模型最小点数为该模型的 1 次请求点数, Token 弹性计费模型为 1K 输入 Tokens 价格 + 1K 输出 Tokens 价格) +- ⚡ 渠道管理体系 + 1. Chat Nio **自写渠道分配算法** (不依赖 http 上下文), 抽象 Adapter 兼容层架构, 低耦合, 高可扩展性 + 2. **支持多渠道管理**, 支持优先级调配, 权重负载, 渠道状态管理等 (优先级是在模型请求过程中, 渠道的优先级分配, 优先级越高, 越先被使用, 如果报错, 将自动 fall 至优先级更低的渠道;权重是指在一个优先级下, 渠道的权重, 权重越高, 被使用的概率越大, 同一个优先级的多个渠道最多只能有一个被使用, 权重越高, 被击中的概率越大) + 3. **兼容多种格式**, 支持多模型兼容层, 详情参见下方模型支持部分 + 4. **支持自定义模型**, 可通过 *添加模型* 使用已知模型, 支持增加自定义模型, 支持一键填入模板模型 (指当前格式默认支持的模板模型, 如 OpenAI 格式的模板模型有 *gpt-3.5-turbo-0613* 等), 支持一键清空模型 + 5. **支持渠道重试**, 支持渠道的 Retry 机制, 支持自定义重试次数, 重试次数超过后将自动 fall) + 6. **支持同渠道均衡负载**, 单个渠道内可配置多个密钥而非批量创建渠道 (多个密钥换行间隔), 以相同权重随机分配请求, Retry 机制也将和同渠道内的多密钥搭配使用, 随机抽取密钥进行重试。 + 7. **支持渠道模型映射**, 将模型映射至本渠道已支持模型中, 格式为 *目标模型*>*已有模型*, 加如前缀 `!` 即可让已有模型不分配在本渠道的请求击中的涵盖模型中, 具体使用方法请参考程序内的渠道设置内的说明和提示。 + 8. **支持用户分组**, 自定义勾选可使用此模型的用户分组 (如 _匿名用户_, _普通用户_, _基础版订阅用户_, _标准版订阅用户_, _专业版订阅用户_ 等分组, 设置为 0 分组可用和设置为全部分组可用都是一样的效果) +- ✨ 中转 API 服务 + 1. 以 OpenAI 通用格式兼容多种格式, 支持多模型兼容层, 这意味着你可以使用一种格式, 同时兼容多家 AI 模型 + 2. 将 `https://api.openai.com` 替换为 `https://api.chatnio.net` (示例), 填入控制台中的 `API 设置` 中的 API Key 即可使用, 支持重置 Key。 + 3. 支持格式 + - [x] Chat Completions _(/v1/chat/completions)_ + - [x] Image Generation _(/v1/images)_ -## 🔨 模型 | Models +## 🔨 支持模型 - [x] OpenAI - [x] Chat Completions (support *vision*, *tools_calling* and *function_calling*) - [x] Image Generation @@ -87,11 +93,11 @@ ## 📦 部署 | Deploy -*部署成功后,管理员账号为 `root`,密码默认为 `chatnio123456`* +*部署成功后, 管理员账号为 `root`, 密码默认为 `chatnio123456`* 1. ⚡ Docker Compose 安装 (推荐) - > 运行成功后,宿主机映射地址为 `http://localhost:8000`,使用 Nginx / Apache 进行反代是一个不错的选择(以及 SSL 配置) + > 运行成功后, 宿主机映射地址为 `http://localhost:8000`, 使用 Nginx / Apache 进行反代是一个不错的选择(以及 SSL 配置) ```shell git clone --depth=1 --branch=main --single-branch https://github.com/Deeptrain-Community/chatnio.git cd chatnio # project directory @@ -127,7 +133,7 @@ -e SERVE_STATIC=true \ programzmh/chatnio:latest ``` - > - *-p 8000:8094* 指映射宿主机端口为 8000,可自行修改冒号前的端口号 + > - *-p 8000:8094* 指映射宿主机端口为 8000, 可自行修改冒号前的端口号 > - MYSQL_HOST: MySQL 数据库地址 > - MYSQL_PORT: MySQL 数据库端口 > - MYSQL_DATABASE: MySQL 数据库名称 @@ -135,12 +141,12 @@ > - MYSQL_PASSWORD: MySQL 数据库密码 > - REDIS_HOST: Redis 数据库地址 > - REDIS_PORT: Redis 数据库端口 - > - SECRET: JWT 密钥,自行生成随机字符串修改即可 - > - SERVE_STATIC: 是否启用静态文件服务 (仅在前后端分离部署时,如 https://chatnio.net 后端部署为 https://api.chatnio.net 的情况才需关闭静态文件服务,默认情况下api地址为 **/api**,如需修改,请自行修改) - > - *-v ~/config:/config* 指挂载至宿主机配置文件目录为 ~/config,可自行修改冒号前的目录进行挂载 - > - *-v ~/logs:/logs* 指挂载至宿主机日志目录为 ~/logs,可自行修改冒号前的目录进行挂载 + > - SECRET: JWT 密钥, 自行生成随机字符串修改即可 + > - SERVE_STATIC: 是否启用静态文件服务 (仅在前后端分离部署时, 如 https://chatnio.net 后端部署为 https://api.chatnio.net 的情况才需关闭静态文件服务, 默认情况下api地址为 **/api**, 如需修改, 请自行修改) + > - *-v ~/config:/config* 指挂载至宿主机配置文件目录为 ~/config, 可自行修改冒号前的目录进行挂载 + > - *-v ~/logs:/logs* 指挂载至宿主机日志目录为 ~/logs, 可自行修改冒号前的目录进行挂载 - 版本更新(执行后按照上述步骤重新运行即可): + 版本更新(执行后按照上述步骤重新运行即可): ```shell docker stop chatnio docker rm chatnio @@ -148,6 +154,9 @@ ``` 3. ⚒ 编译安装 (自定义性强) + + > Config 配置项 (~/config/**config.yaml**) 可以使用环境变量进行覆盖, 如 `MYSQL_HOST` 环境变量可覆盖 `mysql.host` 配置项 + ```shell git clone https://github.com/Deeptrain-Community/chatnio.git cd chatnio # project directory @@ -165,66 +174,20 @@ ## 📚 预览 | Screenshots ![landspace](/screenshot/landspace.png) -![feature](/screenshot/code.png) +![web-searching](/screenshot/online.png) +![market](/screenshot/market.png) +![settings](/screenshot/settings.png) ![latex](/screenshot/latex.jpg) -![generation](/screenshot/generation.png) +![midjourney](/screenshot/code.png) +![sharing](/screenshot/sharing.png) ![shop](/screenshot/shop.png) ![subscription](/screenshot/subscription.png) ![admin](/screenshot/admin.png) +![admin-market](/screenshot/admin-market.png) +![admin-plan](/screenshot/plan.png) ![channel](/screenshot/channel.png) ![charge](/screenshot/charge.png) - -## 🔨 配置 | Config -> Config 配置项可以使用环境变量进行覆盖,如 `MYSQL_HOST` 环境变量可覆盖 `mysql.host` 配置项 - -~/config/**config.yaml** -```yaml -mysql: - db: chatnio - host: localhost - password: chatnio123456 - port: 3306 - user: root - -redis: - host: localhost - port: 6379 - -secret: SbitdyN5ZH39cNxSrG3kMNZ1GfiyyQ43 # jwt secret - -auth: - use_deeptrain: false - -server: - port: 8094 -system: - general: - backend: "" - mail: - host: "" - port: 465 - username: "" - password: "" - from: "" - search: - endpoint: https://duckduckgo-api.vercel.app - query: 5 - -serve_static: false # serve static files (false if only using backend) -``` - -## 📚 开发文档 | Docs -[开发文档](https://docs.chatnio.net) - -## ⚡ Key 中转服务 | Key Relay Service -- 支持多模型兼容层,这意味着你可以使用一次代码,同时兼容多家 AI 模型 - - Support multi-model compatible layer, which means you can use one code to be compatible with multiple AI models at the same time -- 支持多账户均衡负载,高并发 - - Support multi-account load balancing, high concurrency - -将 `https://api.openai.com` 替换为 `https://api.chatnio.net`,填入控制台中的 `API 设置` 中的 API Key 即可使用 - -Replace `https://api.openai.com` with `https://api.chatnio.net` and fill in the API Key in the `API Settings` in the console to use +![system](/screenshot/system.png) ## 📦 技术栈 | Tech Stack - 前端: React + Radix UI + Tailwind CSS + Redux @@ -241,23 +204,36 @@ Replace `https://api.openai.com` with `https://api.chatnio.net` and fill in the - [Golang SDK](https://github.com/Deeptrain-Community/chatnio-api-go) - [Java SDK](https://github.com/hujiayucc/ChatNio-SDK-Java) (感谢 [@hujiayucc](https://github.com/hujiayucc)) -## ✨ 其他项目 | Other Projects +## ✨ 优秀开源项目 +> **此处偏前端项目指偏向用户聊天界面的项目,偏后端项目指偏向于 API 中转和管理的项目,一站式指包含用户聊天界面和 API 中转和管理的项目* +- [Next Chat @yidadaa](https://github.com/ChatGPTNextWeb/ChatGPT-Next-Web) (偏前端项目) +- [Lobe Chat @arvinxx](https://github.com/lobehub/lobe-chat) (偏前端项目) +- [Chat Box @bin-huang](https://github.com/Bin-Huang/chatbox) (偏前端项目) +- [OpenAI Forward](https://github.com/KenyonY/openai-forward) (偏后端项目) +- [One API @justsong](https://github.com/songquanpeng/one-api) (偏后端项目) +- [New API @calon](https://github.com/Calcium-Ion/new-api) (偏后端项目) +- [FastGPT @labring](https://github.com/labring/FastGPT) (知识库) +- [Quivr @quivrhq](https://github.com/StanGirard/quivr) (知识库) +- [Bingo @weaigc](https://github.com/weaigc/bingo) (模型库) +- [Midjourney Proxy @novicezk](https://github.com/novicezk/midjourney-proxy) (模型库) -- [Fyrrum Start](https://fystart.com) -- [ChatNio Next Web](https://nextweb.chatnio.net) -## 📄 开源协议 | License +## 📄 开源协议 Apache License 2.0 -## ❤ 捐助 | Sponsor +## ❤ 捐助 [@4EvEr](https://github.com/3081394176) ¥1000 - [晞云 LightXi](https://open.lightxi.com) 提供字体 CDN 支持 - [BootCDN](https://bootcdn.cn) 和 [Static File](https://staticfile.org) 提供资源 CDN 支持 ## 写在最后 -Chat Nio 方向更多是提供一站式服务: -- 不会考虑前端自定义 Endpoint (考虑到 token 的安全性),不会考虑脱离后端纯前端运行来支持 Vercel / Netify 一键部署,如追求轻量化部署请前往 [Next Web](https://github.com/Yidadaa/ChatGPT-Next-Web) / [Chat Box](https://github.com/Bin-Huang/chatbox) 等优秀的开源项目, Chat Nio 相较于轻量化的优势在于更便捷的跨设备同步,仅需登录账户就可同步设置 / 对话等功能,以及平台内置的功能。然而仍然可以通过 Key 中转来使用此类项目。 -- 不会考虑支持 Midjourney Proxy 中转回调等其他一众格式的中转,如仅需搭建中转服务请右转 [One API](https://github.com/songquanpeng/one-api) 等项目即使在其项目架构和代码并非 *"最佳方案"* 的情况下,我仍然推荐你使用其服务进行中转,毕竟活跃的开发者们和社区,以及项目的方向性和针对性,经过时间考验是值得推荐的成熟的方案。 Chat Nio 的中转偏向 **Chat**,带来的好处是你可以无需自行兼容代码在 nextweb 等项目中直接使用该格式,如 GPT 4 Vision Preview(仅需在消息中复制 URL 即可),DALL-E,Midjourney 类等模型可直接使用聊天接口,依托于 Chat Nio 的 Adapter 层设计,可进行方便使用而无需自行兼容格式。 -- 还有一点需要注意的是,正如上文所说,我后期在时间不宽裕的情况下不会去考虑支持非导向为 Chat 的 Fine Tuning / Embeddings 等微调类模型,请右转。在 issue 里被我忽略或者关闭请不要不满。作为中学生(无他意,我不喜欢打年龄牌),我的时间有限,如果我不认为你的建议是值得去实现的,我不会去浪费时间。同时,不看文档提问题,不看相同 issue 提问题永远不是值得推荐的,同样适用于社区群中。 -- 顺带一提,不要以一个非友好状态来提问,学会良好的提问是推荐的。我不推荐你认为你自己是高人一等的。 +Chat Nio 偏向于一站式服务,集合了用户聊天界面和 API 中转和管理的项目。 +- 相对于 NextChat 等偏前端轻量部署的项目, Chat Nio 优势在于更便捷的云端同步、账号管理、更丰富的分享等功能,以及计费管理系统。 +- 相对于 OneAPI 等偏后端轻量部署的项目, Chat Nio 优势在于更丰富的用户界面,同时渠道管理体系功能更多,更丰富的用户管理,并推出偏向用户界面的订阅管理系统。 + +一站式服务的优势在于,用户可以在一个站点上完成所有的操作,无需频繁切换站点,更加便捷。 +包括查看自己的点数,消息的点数消耗,订阅配额都更加便捷,使用聊天界面的同时,开放了中转 API 和 Chat Nio 独有功能 API。 + +同时附加一点,由于开发者仍然在上学,Chat Nio 的开发进度可能会受到影响。如果我们认为此 issue 为非必要,我们将延后处理,或者选择直接关闭,不接受任何形式的催促。 +我们非常欢迎 PR 共享,并献上我们的感谢。 diff --git a/screenshot/admin-market.png b/screenshot/admin-market.png new file mode 100644 index 0000000..c27bc58 Binary files /dev/null and b/screenshot/admin-market.png differ diff --git a/screenshot/admin.png b/screenshot/admin.png index 8b200df..38d4e6d 100644 Binary files a/screenshot/admin.png and b/screenshot/admin.png differ diff --git a/screenshot/channel.png b/screenshot/channel.png index 036ecba..6666a06 100644 Binary files a/screenshot/channel.png and b/screenshot/channel.png differ diff --git a/screenshot/charge.png b/screenshot/charge.png index f8433a9..6daf544 100644 Binary files a/screenshot/charge.png and b/screenshot/charge.png differ diff --git a/screenshot/code.png b/screenshot/code.png index a08c2ca..0b18c85 100644 Binary files a/screenshot/code.png and b/screenshot/code.png differ diff --git a/screenshot/generation.png b/screenshot/generation.png deleted file mode 100644 index 9c2a0d2..0000000 Binary files a/screenshot/generation.png and /dev/null differ diff --git a/screenshot/landspace.png b/screenshot/landspace.png index a10ce6d..9fb5299 100644 Binary files a/screenshot/landspace.png and b/screenshot/landspace.png differ diff --git a/screenshot/latex.jpg b/screenshot/latex.jpg index 4b6fed2..f3d2d37 100644 Binary files a/screenshot/latex.jpg and b/screenshot/latex.jpg differ diff --git a/screenshot/market.png b/screenshot/market.png new file mode 100644 index 0000000..4516ce3 Binary files /dev/null and b/screenshot/market.png differ diff --git a/screenshot/online.png b/screenshot/online.png new file mode 100644 index 0000000..134544e Binary files /dev/null and b/screenshot/online.png differ diff --git a/screenshot/plan.png b/screenshot/plan.png new file mode 100644 index 0000000..4ec1ecf Binary files /dev/null and b/screenshot/plan.png differ diff --git a/screenshot/settings.png b/screenshot/settings.png new file mode 100644 index 0000000..50b0a48 Binary files /dev/null and b/screenshot/settings.png differ diff --git a/screenshot/sharing.png b/screenshot/sharing.png new file mode 100644 index 0000000..cf69c84 Binary files /dev/null and b/screenshot/sharing.png differ diff --git a/screenshot/subscription.png b/screenshot/subscription.png index 21bc442..90b5e9b 100644 Binary files a/screenshot/subscription.png and b/screenshot/subscription.png differ diff --git a/screenshot/system.png b/screenshot/system.png new file mode 100644 index 0000000..00762ee Binary files /dev/null and b/screenshot/system.png differ