Giter Club home page Giter Club logo

qchatgpt's Introduction

QChatGPT

QChatGPT

GitHub release (latest by date) docker pull Wakapi Count python Static Badge
Static Badge Static Badge Static Badge Static Badge Static Badge

回复效果演示(带有联网插件) 联网演示GIF

NOTE
2023/9/13 现已支持通过One API接入 Azure、Anthropic Claude、Google PaLM 2、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问以及 360 智脑等模型,欢迎测试并反馈。
2023/8/29 逆向库插件已支持 gpt4free
2023/8/14 逆向库插件已支持Claude和Bard
2023/7/29 支持使用GPT的Function Calling功能实现类似ChatGPT Plugin的效果,请见Wiki内容函数

🍺模型一览和功能点

文字对话

  • OpenAI GPT-3.5模型(ChatGPT API), 本项目原生支持, 默认使用
  • OpenAI GPT-3模型, 本项目原生支持, 部署完成后前往config.py切换
  • OpenAI GPT-4模型, 本项目原生支持, 目前需要您的账户通过OpenAI的内测申请, 请前往config.py切换
  • ChatGPT网页版GPT-3.5模型, 由插件接入
  • ChatGPT网页版GPT-4模型, 目前需要ChatGPT Plus订阅, 由插件接入
  • New Bing逆向库, 由插件接入
  • HuggingChat, 由插件接入, 仅支持英文
  • Claude, 由插件接入
  • Google Bard, 由插件接入

模型聚合平台

  • One API, Azure、Anthropic Claude、Google PaLM 2、智谱 ChatGLM、百度文心一言、讯飞星火认知、阿里通义千问以及 360 智脑等模型的官方接口转换成 OpenAI API 接入,QChatGPT 原生支持,您需要先配置 One API,之后在config.py中设置反向代理和One API的密钥后使用。
  • gpt4free, 破解以免费使用多个平台的各种文字模型, 由插件接入, 无需鉴权, 稳定性较差。
  • Poe, 破解免费使用Poe上多个平台的模型, 由oliverkirk-sudo/ChatPoeBot接入(由于 Poe 上可用的大部分模型现已通过revLibs插件或其他方式接入,此插件现已停止维护)。

故事续写

  • NovelAI API, 由插件接入

图片绘制

语音生成

  • TTS+VITS, 由插件接入
  • Plachta/VITS-Umamusume-voice-synthesizer, 由插件接入

安装此插件,即可在使用中切换文字模型。

功能点

✅支持敏感词过滤,避免账号风险
  • 难以监测机器人与用户对话时的内容,故引入此功能以减少机器人风险
  • 加入了百度云内容审核,在config.py中修改baidu_check的值,并填写baidu_api_keybaidu_secret_key以开启此功能
  • 编辑sensitive.json,并在config.py中修改sensitive_word_filter的值以开启此功能
✅群内多种响应规则,不必at
  • 默认回复ai作为前缀或@机器人的消息
  • 详细见config.py中的response_rules字段
✅完善的多api-key管理,超额自动切换
  • 支持配置多个api-key,内部统计使用量并在超额时自动切换
  • 请在config.py中修改openai_config的值以设置api-key
  • 可以在config.py中修改api_key_fee_threshold来自定义切换阈值
  • 运行期间向机器人说!usage以查看当前使用情况
✅支持预设文字
  • 支持以自然语言预设文字,自定义机器人人格等信息
  • 详见config.py中的default_prompt部分
  • 支持设置多个预设情景,并通过!reset、!default等命令控制,详细请查看wiki命令
✅支持对话、绘图等模型,可玩性更高
  • 现已支持OpenAI的对话Completion API和绘图Image API
  • 向机器人发送命令!draw <prompt>即可使用绘图模型
✅支持命令控制热重载、热更新
  • 允许在运行期间修改config.py或其他代码后,以管理员账号向机器人发送命令!reload进行热重载,无需重启
  • 运行期间允许以管理员账号向机器人发送命令!update进行热更新,拉取远程最新代码并执行热重载
✅支持插件加载🧩
  • 自行实现插件加载器及相关支持
  • 支持GPT的Function Calling功能
  • 详细查看插件使用页
✅私聊、群聊黑名单机制
  • 支持将人或群聊加入黑名单以忽略其消息
  • 详见Wiki加入黑名单
✅长消息处理策略
  • 支持将长消息转换成图片或消息记录组件,避免消息刷屏
  • 请查看config.pyblob_message_strategy等字段
✅回复速度限制
  • 支持限制单会话内每分钟可进行的对话次数
  • 具有“等待”和“丢弃”两种策略
    • “等待”策略:在获取到回复后,等待直到此次响应时间达到对话响应时间均值
    • “丢弃”策略:此分钟内对话次数达到限制时,丢弃之后的对话
  • 详细请查看config.py中的相关配置
✅支持使用网络代理
  • 目前已支持正向代理访问接口
  • 详细请查看config.py中的openai_config的说明
✅支持自定义提示内容
  • 允许用户自定义报错、帮助等提示信息
  • 请查看tips.py

🏞️截图

私聊GPT-3.5
群聊GPT-3.5
New Bing

详情请查看Wiki功能使用页

🚀部署和使用

NOTE

  • 部署过程中遇到任何问题,请先在QChatGPTqcg-installer的issue里进行搜索
  • QChatGPT需要Python版本>=3.9
  • 官方群和社区群群号请见文档顶部

- 注册OpenAI账号

点此查看步骤

若您要直接使用非OpenAI的模型(如New Bing),可跳过此步骤,直接进行之后的部署,完成后按照相关插件的文档进行配置即可

参考以下文章自行注册

国内注册ChatGPT的方法(100%可用)
手把手教你如何注册ChatGPT,超级详细

注册成功后请前往个人中心查看api_key
完成注册后,使用以下自动化或手动部署步骤

- Docker或自动化部署

展开查看,以下方式二选一,Linux首选Docker,Windows首选安装器

Docker方式

docker方式较为复杂,若您不熟悉docker的操作及相关知识,强烈建议您使用其他方式部署,我们不会且难以解决您主机上多个容器的连接问题。

请查看此文档

安装器方式

使用此安装器(若无法访问请到Gitee)进行部署

  • 安装器目前仅支持部分平台,请到仓库文档查看,其他平台请手动部署

- 手动部署

手动部署适用于所有平台
  • 请使用Python 3.9.x以上版本

① 配置QQ登录框架

目前支持mirai和go-cqhttp,配置任意一个即可

mirai
  1. 按照此教程配置Mirai及mirai-api-http
  2. 启动mirai-console后,使用login命令登录QQ账号,保持mirai-console运行状态
  3. 在下一步配置主程序时请在config.py中将msg_source_adapter设为yirimirai
go-cqhttp
  1. 按照此文档配置go-cqhttp
  2. 启动go-cqhttp,确保登录成功,保持运行
  3. 在下一步配置主程序时请在config.py中将msg_source_adapter设为nakuru

② 配置主程序

  1. 克隆此项目
git clone https://github.com/RockChinQ/QChatGPT
cd QChatGPT
  1. 安装依赖
pip3 install requests yiri-mirai openai colorlog func_timeout dulwich Pillow nakuru-project-idk CallingGPT tiktoken
  1. 运行一次主程序,生成配置文件
python3 main.py
  1. 编辑配置文件config.py

按照文件内注释填写配置信息

  1. 运行主程序
python3 main.py

无报错信息即为运行成功

常见问题

  • mirai登录提示QQ版本过低,见此issue
  • 如提示安装uvicornhypercorn不要安装,这两个不是必需的,目前存在未知原因bug
  • 如报错TypeError: As of 3.10, the *loop* parameter was removed from Lock() since it is no longer necessary, 请参考 此处

部署完成后必看: 命令说明

所有功能查看Wiki功能使用页

🧩插件生态

⭐我们已经支持了GPT的Function Calling能力,请查看Wiki内容函数

使用方法见:Wiki插件使用
开发教程见:Wiki插件开发

所有插件列表,欢迎提出issue以提交新的插件

部分插件

😘致谢和赞赏

以及所有贡献者和其他为本项目提供支持的朋友们。

赞赏码

qchatgpt's People

Contributors

rockchinq avatar chordfish-k avatar github-actions[bot] avatar linstcl avatar dependabot[bot] avatar 2675hujilo avatar haibersut avatar oliverkirk-sudo avatar zyckk4 avatar crossgg avatar hissincn avatar flashszn avatar maimierjiafude avatar mikumifa avatar systemtang avatar yichuxue avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.