【ChatGPT】基于GO语言实现的微信聊天和图片生成机器人

news/2024/5/3 11:32:13/文章来源:https://blog.csdn.net/weixin_41099712/article/details/129796871

ChatGPT-DreamStudio WeChat Robot

🎨基于GO语言实现的微信聊天和图片生成机器人🎨

个人微信接入ChatGPT,实现和GPT机器人互动聊天,同时支持基于文本生成图像。支持私聊回复和群聊艾特回复。

GitHub源代码地址

实现功能

  • GPT机器人模型热度可配置
  • 提问增加上下文&指令清空上下文
  • DreamStudio图像生成模型参数可配置
  • 可设定图像生成触发指令
  • 机器人私聊回复&机器人群聊@回复
  • 好友添加自动通过可配置

实现机制

  1. 利用微信A作为机器人扫码登录程序模拟的微信电脑端,程序后端调用API接口进行文本回复和图片生成。其他微信账号与微信A聊天实现微信个人机器人功能。基于openwechat开源仓库实现

  2. 基于openai官网提供的GPT API,实现文本交互功能,每个新账号前三个月有18美元免费额度。

  3. 基于stability官网提供的DreamStudio API,实现图像生成功能,每个账号注册送500张图像生成免费额度,玩玩基本够用了,不够的话10$可购买5000张。

GPT的官方文档和详细参数示例 。

DreamStudio的官方文档和详细参数示例 。

使用前提

  • 有openai账号,并且创建好api_key,注册事项可以参考此文章 。
  • 有dreamstudio.ai账号,并且创建好api_key
  • 微信必须实名认证。最好用小号

注意事项

  • 项目仅供娱乐,滥用可能有微信封禁的风险,请勿用于商业用途。
  • 请注意收发敏感信息,本项目不做信息过滤。
  • dreamstudio图像生成 仅对英文的支持比较好

结果展示

Screenshot_20230324_181306_edit_70435407551751.jpg

docker运行

使用docker快速运行本项目。

1.基于配置文件挂载运行(推荐)

# 1. 创建目录
$ mkdir -p /data/openai
$ cd /data/openai
# 2. 创建配置文件
$ touch config.json
# 3. 编辑配置文件 ...  配置内容粘贴下文 【配置说明】并按需修改
$ vim config.json
# 4. 拉取镜像
$ docker run -dti --name wechatbot -v /data/openai/config.json:/app/config.json  yinqishuo/wechatbot:latest
# 5. 进入容器内部,打开日志文件扫码登陆
$ docker exec -it wechatbot bash 
$ tail -f -n 50 /app/run.log # 操作出错后删除容器的操作
$ docker stop wechatbot
$ docker remove wechatbot# 退出容器
$ exit

其中配置文件参考下边的配置文件说明。

2.基于环境变量运行

# 运行项目,环境变量参考下方配置说明
$ docker run -itd --name wechatbot --restart=always \-e GPTAPIKEY=换成你的GPT key \-e AUTO_PASS=false \-e SESSION_TIMEOUT=60s \-e MODEL=text-davinci-003 \-e MAX_TOKENS=512 \-e TEMPREATURE=0.9 \-e REPLY_PREFIX=我是来自机器人回复: \-e SESSION_CLEAR_TOKEN=下个问题 \-e DREAMSTDIO_APIKEY=换成你的dreamstudio key \-e ENGINE_ID=stable-diffusion-v1-5 \-e PICTURE_WIDTH=512 \-e PICTURE_HEIGHT=512 \-e STEPS=30 \-e CFG_SCALE= 7 \-e PICTURE_TOKEN=生成图片 \yinqishuo/wechatbot:latest#进入容器内部,打开日志文件扫码登陆
$ docker exec -it wechatbot bash 
$ tail -f -n 50 /app/run.log # 退出容器
$ exit

运行命令中映射的配置文件参考下边的配置文件说明。

3.配置说明

模板:

{"gpt_api_key": "你的gpt api key","auto_pass": true,"session_timeout": 60,"max_tokens": 1024,"model": "text-davinci-003","temperature": 1,"reply_prefix": "来自机器人回复:","session_clear_token": "我要问下一个问题了","dreamstdio_api_key":"你的dreamstdio账号api_key","engine_id":"stable-diffusion-v1-5","picture_width":512,"picture_height":512,"steps":30,"cfg_scale":7,"picture_token":"生成图片"
}

参数说明:

"gpt_api_key":						# openai账号里设置的api_key
"auto_pass":# 是否自动通过好友添加"session_timeout": 60,            # 会话超时时间,默认60秒,单位秒,在会话时间内所有发送给机器人的信息会作为上下文"max_tokens": 1024,               # GPT响应字符数,最大2048,默认值512。会影响接口响应速度,字符越大响应越慢"model": "text-davinci-003",      # GPT选用模型,默认text-davinci-003,具体选项参考官网训练场"temperature": 1,                 # GPT热度,0到1,默认0.9,数字越大创造力越强,但更偏离训练事实,越低越接近训练事实"reply_prefix": "来自机器人回复:", # 私聊回复前缀"session_clear_token": "清空会话"  # 会话清空口令,默认`下个问题`"dreamstdio_api_key":"你的dreamstdio账号api_key",     #dreamstdio账号的api_key"engine_id":"stable-diffusion-v1-5",     			  #dreamstdio模型的名称"picture_width":512,								  #生成图片的宽度,长度,默认512*512"picture_height":512,								#要求为64的倍数,且>=128,尺寸越大消耗的credits越多"steps":30,										#代表模型的渲染步数,越高图片越精细,所需的渲染时间也越长,默认为30,数值越大消耗的credits越多;"cfg_scale":7,									#表示生成图像与文本提示的相似度,越高越像"picture_token":"生成图片"						  #生成图像的触发口令

源码运行

适合了解go语言编程并想进行源码修改的同学,

# 获取项目
$ git clone https://github.com/yinqishuo/chatgpt-dreamstudio_wechat_robot# 进入项目目录
$ cd chatgpt_wechat_robot# 复制配置文件
$ cp config.dev.json config.json# 添加依赖
$ go mod tidy# 启动项目
$ go run main.go# 若想编译为可执行文件
$ go run main.go# 若想打包成docker镜像,需安装Docker ,建议在linux环境下打包,镜像名称为wechatbot
$ make docker# 执行镜像,步骤如上

常见问题

如无法登录login error: write storage.json: bad file descriptor
删除掉storage.json文件重新登录。

如无法登录login error: wechat network error: Get "https://wx.qq.com/cgi-bin/mmwebwx-bin/webwxnewloginpage": 301 response missing Location header
一般是微信登录权限问题,先确保PC端能否正常登录。

其他无法登录问题
尝试删除掉storage.json文件,结束进程(linux一般是kill -9 进程id)之后重启程序,重新扫码登录。
如果为docket部署,Supervisord进程管理工具会自动重启程序。

机器人一直答非所问
可能因为上下文累积过多。切换不同问题时,发送指令:启动时配置的session_clear_token字段。会清空上下文

https://link.zhihu.com/?target=https%3A//github.com/Maks-s/sd-akashic

图像生成技巧

想让 AI 图像生成器创作出精准高质的图像,填写准确合适的文本提示词十分重要。

  1. 不要只输入一个简单的词语(raw prompt),如 Panda(熊猫)、A warrior(战士)等,这样生成的图像会缺少美感和艺术性。
  2. 使用风格提示词能让图像更具艺术性。在提示词中加入艺术风格的关键词,如 Realistic(写实)、Oil painting(油画)、Pencil drawing(铅笔画)、Concept art(概念艺术)等;此外写实风格的提示词有多重表达形式,如[ a photo of + raw prompt ]、[ a photograph of + raw prompt ]、[ raw prompt,hyperrealistic ]、[ raw prompt,realistic ]。
  3. 使用艺术家名称让风格更具像或保持风格一致。比如想表现抽象艺术,可以使用[made by Pablo Picassoa]或者 [ raw prompt,Picassoa]。还可以同时输入多名艺术家,效果会更加有趣。
  4. 最终修饰词。在文本末尾加上的一个修饰词,使图像更符合你想要的效果。比如想要逼真的灯光,可以加上“Unreal Engine”,展现精密细节加上“4K”或“8K”,想要更有艺术性可以加上“trending on artstation”等。

① Stable Diffusion Artist Studies

网址: https://proximacentaurib.notion.site/e2537cbf42c34b7e9a9a4126f81dfd0d

一个由国外网友收集建立的艺术家风格概览表,找到你喜欢的风格后在自己的提示词中加上对应艺术家的名字,就能生成类似风格的图片。

② Stable Diffusion prompting cheatsheet

网址: https://moritz.pm/posts/parameters

一个简短的提示词列表,里面列举了如果你想要实现 3D、精致细节、光照、大环境等效果,应该使用哪些关键词。

③ Stable Diffusion Akashic Records

网址: https://github.com/Maks-s/sd-akashic

一个专业的研究资料库,收集了关于模型原理、艺术风格、提示词、使用技巧和其他有用的工具,适合想深入了解文本-图像扩散模型的人阅读。

本段内容复制于AI绘画神器:DreamStudio - 知乎 (zhihu.com)

友情提示

本项目是 fork 他人的项目来进行学习和使用,请勿商用,可以下载下来做自定义的功能。
项目基于eatmoreapple/openwechat 、ZYallers/chatgpt_wechat_robot 、qingconglaixueit/wechatbot开发。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_198.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

微软发布ChatGPT 版必应 用的是 .NET 技术

微软在今天在Redmond 线下举办媒体一场活动,发布了新版的微软必应,在桌面上推出了测试版,移动版也即将推出。微软首席执行官纳德拉称Al-powered搜索为公司自云15年以来最大的事情。2023年1月初,微软已经在讨论将OpenAI的技术纳入W…

python 调用 chatgpt

1. 安装 openai 的包: 我们在 pycharm 中安装包 pip3 install openai 2. 我们查找 chatgpt 账户的 api 的 key 1. 首先我们进入到官网: OpenAI 2. 接下来我们点击 api 即可: 3. 查找自己账户的 key: 我们依次点击 Personal &…

在Matlab上用API调用chatgpt模型

在这个快节奏的数字时代 深度学习技术正逐渐成为大家的热门话题 如果你也是一名程序员或者科研工作者 那么你一定听说过GPT模型 是一种非常流行的自然语言处理模型 各大平台都已经接入了ChatGpt模型 将其应用各行对应的领域 下面介绍如何在Matlab中使用API调用chtgpt模型…

ChatGPT|一文读懂GPT-4!

前言 大家好,我是小满同学,感谢各位的点赞、收藏、评论 今天早上一早醒来,发现各大科技圈公众号平台开始刷屏OpenAI发布的新模型GPT4.0,看这个版本号就已经知道又是一大波特性的更新 于是立马起来开始学习! GPT-4 发…

ChatGPT为什么可以取代那么多职位?

最近的ChatGPT段子满天飞,以至于,不聊ChatGPT咱都不好意思在社交媒体上发言了。 这种力度的出圈,各种长期离线好友,甚至我妈都来问我,这是啥玩意啊? “十年老友,不请自来”?这架势&…

ChatGPT快速开始 (Node版本)

近期公司大佬让我调研一下ChatGPT,虽然网络上已经热火朝天了,感觉很多人都在应用它,但是ChatGPT 对大多数人来说依旧是一个很陌生的东西,对我来说也是。只能一点点的去了解去学习,浅显的先从账号注册、接口调用来看一看…

抱抱脸:ChatGPT背后的算法——RLHF | 附12篇RLHF必刷论文

文 | 卖萌酱大家好,我是卖萌酱。前几天,抱抱脸公司(HuggingFace)发表了一篇博客[1],详细讲解了ChatGPT背后的技术原理——RLHF。笔者读过之后,觉得讲解的还是蛮清晰的,因此提炼了一下核心脉络&a…

工具 | VSCode+ChatGPT 编程利器

本文首发微信公众号:全副武装的大师兄(一个分享前沿技术,生活感受的公众号,关注我,率先了解好玩的工具) 托了GPT同学的福,最近编程时,常会在ChatGPT中说明自己的需求以生成代码&…

Java调用ChatGPT(基于SpringBoot),实现可连续对话和流式输出的ChatGPT API(可自定义实现AI助手)

目录1. 配置阶段1.1 依赖引入1.2 配置application.yml文件1.3 注解添加2 使用2.1 生成回答2.1.1 测试2.2 生成图片2.2.1 测试2.3 下载图片2.3.1 测试2.4 生成流式回答2.4.1 流式回答输出到IDEA控制台2.4.2 流式回答输出到浏览器页面3 AI助手展示本文Demo地址:https:…

奇舞周刊第486期:ChatGPT 的狂飙之路

记得点击文章末尾的“ 阅读原文 ”查看哟~下面先一起看下本期周刊 摘要 吧~奇舞推荐■ ■ ■ChatGPT 的狂飙之路最近随着 ChatGPT 爆火出圈,网络上各种关于 ChatGPT 的争论声也不断;有些人把它当成一个更高级的聊天机器人,有人兴奋地看到了创…

阿里巴巴达摩院通义千问【附申请链接】阿里版ChatGPT

🥑 Welcome to Aedream同学 s blog! 🥑 文章目录报名测试实际体验效果阿里云作为数一数二的全球云平台,阿里的大语言模型通义千问还是值得期待的,凭借强大的算力支持还是有机会赶上人工智能发展浪潮。 早前阿里巴巴达摩院关于人工…

如何在QQ群中接入ChatGPT机器人

最近ChatGPT很火,但是每次要在浏览器上输入显得很麻烦。那么能不能在我们日常使用的软件中接入它让我们能方便的使用它呢?下面为你介绍如何在QQ群中接入chatgpt。环境介绍今天我们的分享主要围绕着大部分用户Windows电脑。基于nodejs。所需工具nodejs(版…

InstructGPT论文详解(学习ChatGPT必看论文)

InstructGPT论文详解(Training language models to follow instructions with human feedback,学习ChatGPT必看论文)返回论文和资料目录 1.导读 继ChatGPT大火后,越来越多人想了解ChatGPT相关技术。OpenAI官网虽然没有给出ChatG…

解放生产力!chatGPT接入Excel与Word教程(需要魔法上网,不用的都是骗人的)

解放生产力!chatGPT接入Excel与Word教程(需要魔法上网,不用的都是骗人的)!!!默认你注册过openAI账号了并使用过chatGPT了,本文就不教如何注册GPT啦,网上全是教程&#xf…

已获得百度文心一言内测资格,和ChatGPT3.5简单对比测评

今日获得了百度刚发布的文心一言的内测资格。整体感觉还不错哟。 闲来无事,使用同样的问题,用文心一言和我们基于ChatGPT的GPT-3.5-Turbo接口开发的免费镜像网站作了一下对比。给各位同学提前做一下参考。 传送门:https://ai.bo-e.com/ 接口…

ChatGPT技术与市场动态

ChatGPT服务器,深度拆解(2023)ChatGPT发布之后,引发了全球范围的关注和讨论,国内各大厂商相继宣布GPT模型开发计划。据各公司官网,2023年2月7日,百度宣布将推出ChatGPT类似产品“文心一言”&…

PHP - ChatGpt 学习 仅供参考

由于最近ChatGpt 大火,但是门槛来说是对于大家最头疼的环节, 由此ChatGpt 有一个API 可以仅供大伙对接 让我来说下资质: 1:首先要搞得到一个 ChatGpt 的账户, 会获得一个KEY,该key为访问API核心&#xff0…

ChatGPT王炸更新!能联网获取新知识,可与5000+个应用交互,网友:太疯狂了

梦晨 杨净 发自 凹非寺量子位 | 公众号 QbitAI都说ChatGPT是AI的“iPhone时刻”,现在属于它的“应用商店”来了。OpenAI刚刚又甩出一个王炸——宣布推出插件功能,赋予ChatGPT使用工具、联网、运行计算的能力。例如在官方演示中,ChatGPT一旦接…

chatgpt的多种免费使用方式

很多朋友因为各种限制无法开通#ChatGPT Plus,而申请OpenAI的GPT-4 API也要慢慢排队(我的也还没下来)。于是在这里我搜集了X个可以免费使用的方法。 注:哪有什么真正免费,只不过有人在替你付钱。因此下述的方法都有限制…

ChatGPT带你轻松入门嵌入式,实现51、STM32、Arduino、树莓派、Linux各种点灯程序...

关注星标公众号,不错过精彩内容作者 | strongerHuang微信公众号 | strongerHuang最近两个月什么最火?我想 ChatGPT 必定算其中一个。这东西能有多火?我之前一直以为只有在互联网等技术领域比较火,直到前不久,我们当地政…