Skip to content

OceanLcJ/ai-wechat-vercel

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

spark-wechat-vercel

基于vercel的serverless服务,把星火认知大模型接入微信公众号

必要条件

  1. 有一个域名

这个条件我觉得已经相当低了,至少成本比服务器要少很多吧。xyz、fun、asia 结尾的域名只要6-14块一年。

流程

  1. 注册星火认知大模型,创建一个应用,获得APPID,API_SECRET,API_KEY,领取400w token 的额度。
  2. 去阿里云购买个你喜欢的域名,最便宜的那种就行。买完增加cname解析到cname-china.vercel-dns.com
  3. 注册微信公众号,个人订阅号就行。后台管理页面上找到设置与开发-基本配置-服务器配置,修改服务器地址url为https://你的域名/api/spark-wechatTOKEN是自定义的,随便编一个。EncodingAESKey随机生成(反正我们不用这一项),我们选明文模式就好了。先不要提交,提交会校验TOKEN,所以等下一步我们部署好了再进行操作。
  4. fork本项目到你自己的仓库,访问【Vercel】使用github账号登录就好了。然后新建项目,选择Import Git Repository从github仓库导入。在Environment Variables选项卡,增加环境变量。把下面的变量一项一项的加进去:
#这是v3版本星火大模型的请求地址,如果请求v2,v1.5修改HOST_URL、SPARK_DOMAIN这两项即可
#v1.5 地址:ws(s)://spark-api.xf-yun.com/v1.1/chat DOMAIN:general
#V2 地址:ws(s)://spark-api.xf-yun.com/v2.1/chat DOMAIN:generalv2
HOST_URL=wss://spark-api.xf-yun.com/v3.1/chat
SPARK_DOMAIN=generalv3
APPID=星火appid
API_SECRET=星火appsecret
API_KEY=星火apikey
WX_TOKEN=微信公众号TOKEN
#这一项是关键词自动回复,是个json串,用于对特定关键词回复不同内容
KEYWORD_REPLAY={"聊天记录":"哈喽"}
#此项为关注后的自动回复配置
SUBSCRIBE_REPLY=欢迎关注,我已经接入了星火认知大模型。快来和我对话吧。

填完之后点击Deploy,等待部署完成后,点击settings找到Domain,把你的域名填上去就好了,会自动加https

  1. 这个时候回到微信后台,可以点击提交了,不出意外的话,会提示token验证成功,到外边,启用服务器配置。ok,大功告成。现在你有一个接入星火认知大模型的微信公众号聊天机器人了。

QA

部署完成后为什么访问会404啊?

不用纠结为什么会404,我们使用的是vercel的serverless能力,我们项目里没有部署页面。所以访问首页会404,这是正常的。 如果要确认是否部署成功,请看一下一个问题。

部署成功的特征是什么?

答:访问路径https://你的域名/api/qw-wechat,页面输出failed,即为部署成功,可以去微信公众平台提交开发配置,验证token

公众号验证token成功,但是发送消息没反应啊?

答:检查微信公众平台开发配置有没有启用。Vercel环境变量是否正确,务必注意环境变量的大小写情况以及命名方式是蛇形,不是驼峰,建议直接复制。 image

HOST_URL
SPARK_DOMAIN
APPID
API_SECRET
API_KEY
WX_TOKEN
KEYWORD_REPLAY
SUBSCRIBE_REPLY

为什么有时候会忘记之前的对话

答:serverless服务是一种无状态的服务,每次请求都是一个新的生命周期,只有在两次请求相距时间很短的情况下才有可能会复用上个生命周期,呈现出记录了上次对话的状态。因此,如果模型忘记了上次对话才是常态,记住了,才是取巧。

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published