只需域名即可实现微信公众号机器人,基于 vercel 的 serverless,go 语言实现 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
coderpwh
0D
V2EX    分享创造

只需域名即可实现微信公众号机器人,基于 vercel 的 serverless,go 语言实现

  •  
  •   coderpwh
    pwh-pwh 2024-03-01 08:55:08 +08:00 5438 次点击
    这是一个创建于 596 天前的主题,其中的信息可能已经有所发展或是发生改变。

    aiwechat-vercel

    使用 vercel 的 functions ,将 ai 功能加入微信公众号 地址aiwechat-vercel

    介绍

    无需服务器,门槛低,只需一个可以绑定到 vercel 的域名即可,基本 0 成本

    快速开始

    fork 本项目,到 vercel 点击构建,环境变量填写参数

    GPT_TOKEN=sk-*** 你的 gpt token GPT_URL=https://xxx 代理 gpt 服务器(选填,默认 openai 官网 api) TOKEN=*** 微信公众号开发平台设置的 token TYPE=** 机器人类型 目前支持(gpt,echo)例如 TYPE=gpt 

    如何检查是否配置成功 部署后访问 你的域名/api/check 页面返回 check ok 即可 域名增加cname解析到cname-china.vercel-dns.com

    微信公众号配置:

    微信公众号。后台管理页面上找到设置与开发-基本配置-服务器配置,修改服务器地址 url 为https://你的域名/api/wx

    功能支持

    1. gpt 回复
    2. 超时回复(go 协程很好用)
    3. 支持连续问答(todo 需要使用 redis redis 也可以白嫖 后续更新)
    4. 隐藏功能 你的域名/api/chat?msg=你的问题

    后续

    • 支持国内大部分可以白嫖的 ai 如星火,等
    • 增加记忆功能
    • 增加指令控制,增加管理员设置
    • 增加预定义 prompts

    杂念

    项目起因:偶然看到网上有人使用 vercel 实现了,自己看了下文档,居然支持 go 了,就实现了, 也欢迎各位大佬 pr

    项目灵感来源

    spark-wechat-vercel

    第 1 条附言    2024-03-05 17:11:29 +08:00
    最新功能支持:

    接入 gpt,星火,通义千问
    超时回复(go 协程很好用)
    支持连续问答(只需要在 vercel 创建一个 redis 实例,在本项目下的 Storage 设置连接即可,vercel 会自动配置 KV_URL 环境变量,默认记忆对话 30 分钟内的内容)
    隐藏功能 你的域名/api/chat?msg=你的问题 (仅用于测试是否配置 gpt 成功,中文问题会乱码,不用管,是 vercel 服务器问题)
    检查配置:你的域名/api/check (显示当前 bot 的配置信息是否正确)
    支持图床功能,即发送图片给公众号,返回图片 url
    51 条回复    2024-03-07 14:46:23 +08:00
    kaixinguoruobing
        1
    kaixinguoruobing  
       2024-03-01 09:47:48 +08:00
    已 star ,今晚接入试试
    listkun
        2
    listkun nbsp;
       2024-03-01 10:19:37 +08:00
    ngrok 可行?
    coderpwh
        3
    coderpwh  
    OP
       2024-03-01 11:21:27 +08:00
    @listkun 这个关键点在于微信公众平台支持你的域名不,没测试过
    knva
        4
    knva  
       2024-03-01 11:30:32 +08:00
    要能接 ghcopilot 转的 gpt 就好了。
    mightybruce
        5
    mightybruce  
       2024-03-01 11:39:56 +08:00
    vercel 都支持 go 语言了?
    coderpwh
        6
    coderpwh  
    OP
       2024-03-01 11:43:56 +08:00
    @mightybruce 我也是看文档才知道
    coderpwh
        7
    coderpwh  
    OP
       2024-03-01 11:44:45 +08:00
    @knva 自行实现也可以
    JustW
        8
    JustW  
       2024-03-01 11:55:37 +08:00
    请问下这个订阅号能用么?是如何解决 5 秒内响应这个问题的呀!
    yilishan163
        9
    yilishan163  
       2024-03-01 11:58:13 +08:00
    请问大佬微信公众号绑定的域名是不是一定要 ICP 备案过?绑定 vercel 服务的域名能通过备案吗?
    taogen
        10
    taogen  
       2024-03-01 12:07:57 +08:00
    @mightybruce 是 Serverless Function
    pangdundun996
        11
    pangdundun996  
       2024-03-01 12:18:10 +08:00
    @coderpwh GPT_TOKEN=sk-*** 你的 gpt token
    GPT_URL=https://xxx 代理 gpt 服务器(选填,默认 openai 官网 api) 请问这两个配置是啥值?
    coderpwh
        12
    coderpwh  
    OP
       2024-03-01 12:31:21 +08:00
    @yilishan163 不需要备案
    coderpwh
        13
    coderpwh  
    OP
       2024-03-01 12:32:10 +08:00
    @pangdundun996 就是 gpt api 的配置啊
    coderpwh
        14
    coderpwh  
    OP
       2024-03-01 12:33:20 +08:00
    @JustW 公众号不就是订阅号吗,5s 问题很简单,微信会请求 3 次,只需等待获取内容后返回即可
    pianjiao
        15
    pianjiao  
       2024-03-01 13:57:27 +08:00
    token 验证失败怎么弄啊
    JustW
        16
    JustW  
       2024-03-01 14:01:11 +08:00
    @coderpwh 分订阅号和服务号.
    coderpwh
        17
    coderpwh  
    OP
       2024-03-01 14:02:08 +08:00
    @JustW 没有影响,自动回复功能都有的
    pangdundun996
        18
    pangdundun996  
       2024-03-01 14:02:37 +08:00
    @coderpwh F12 从请求头上拿吗?
    pianjiao
        19
    pianjiao  
       2024-03-01 14:13:29 +08:00
    api check f 返回的 配置成功 算成功了吗。 公众号也配置成功了 发消息没反应
    coderpwh
        20
    coderpwh  
    OP
       2024-03-01 14:18:42 +08:00
    @pangdundun996 你去 open ai 官网了解一下 api
    coderpwh
        21
    coderpwh  
    OP
       2024-03-01 14:20:16 +08:00
    @pianjiao 浏览器访问/api/chat?msg=hi 看看有没有返回,没有就是 gpt 配置问题,把 TYPT 改成 echo,看看公众号有没有返回重复信息,没有就是公众号配置问题,检查域名能否国内访问
    Dogergo
        22
    Dogergo  
       2024-03-01 14:41:07 +08:00
    原来给我提 ISSUE 的是你呀,你怎么不提供 netlify 域名支持。我不了解这个平台。
    pangdundun996
        23
    pangdundun996  
       2024-03-01 14:50:17 +08:00
    @coderpwh 找到了,原来要外国手机号验证-_-
    neoshui
        24
    neoshui  
       2024-03-01 14:59:54 +08:00 via Android
    为什么不能使用 vercel 提供的域名?
    coderpwh
        25
    coderpwh  
    OP
       2024-03-01 15:04:31 +08:00
    @AlexShui vercel 提供的域名被墙了
    coderpwh
        26
    coderpwh  
    OP
       2024-03-01 15:06:51 +08:00
    @Dogergo netlify 支持 Lambda ,后续会更新支持
    neoshui
        27
    neoshui  
       2024-03-01 15:11:16 +08:00 via Android
    @coderpwh 路由 fq 的我没注意到这个问题
    itart
        28
    itart  
       2024-03-01 15:20:07 +08:00
    go.mod 里为什么都是间接依赖?
    coderpwh
        29
    coderpwh  
    OP
       2024-03-01 15:37:58 +08:00
    @newte88 这个问题我也不知道()
    pianjiao
        30
    pianjiao  
       2024-03-01 16:18:59 +08:00
    @coderpwh gptclient err:&{%!E(string=invalid character 'A' looking for beginning of value) %!E(int64=1)} 这个错误是什么意思啊
    flyrr
        31
    flyrr  
       2024-03-01 16:28:18 +08:00
    @pianjiao baseurl 是不是没有带/v1/
    coderpwh
        32
    coderpwh  
    OP
       2024-03-01 16:29:23 +08:00
    @pianjiao 你配置的 gpt 不可用,你要先本地调下你的 gpt api
    coderpwh
        33
    coderpwh  
    OP
       2024-03-01 16:37:42 +08:00
    @flyrr 只需要主域名
    flyrr
        34
    flyrr  
       2024-03-01 16:42:08 +08:00
    @coderpwh 我加了 v1 才调通,`/api/chat?msg=`可以用,但是中文会变乱码。重新部署后公众号 echo 和 gpt 都没回复,也看不出哪设置的有问题
    coderpwh
        35
    coderpwh  
    OP
       2024-03-01 16:49:49 +08:00
    @flyrr 中文乱码不用管,是 vercel 服务器问题
    jemmy1980
        36
    jemmy1980  
       2024-03-01 17:01:13 +08:00
    晚点试试看
    pianjiao
        37
    pianjiao  
       2024-03-01 17:03:59 +08:00
    @flyrr 加了之后可以了
    rtx3
        38
    rtx3  
       2024-03-01 17:10:29 +08:00
    楼主加个限制提问次数的功能吧
    coderpwh
        39
    coderpwh  
    OP
       2024-03-01 17:12:26 +08:00
    @flyrr 要带的,写错了
    coderpwh
        40
    coderpwh  
    OP
       2024-03-01 17:15:04 +08:00
    @coderpwh
    @pianjiao 加上/v1
    coderpwh
        41
    coderpwh  
    OP
       2024-03-01 17:16:34 +08:00
    @rtx3 后续可以增加,需要数据库支持
    GGG123Z
        42
    GGG123Z  
       2024-03-01 17:19:44 +08:00
    +1 配置完之后出的都是中文乱码
    coderpwh
        43
    coderpwh  
    OP
       2024-03-01 17:34:13 +08:00
    @GGG123Z 这个是 vercel 服务器问题,微信公众号回复不受影响
    job32
        44
    job32  
       2024-03-01 18:49:49 +08:00
    大佬能支持 Gemini api 不?
    coderpwh
        45
    coderpwh  
    OP
       2024-03-01 20:56:53 +08:00
    @job32 后续支持
    buyno1
        46
    buyno1  
       2024-03-06 00:23:24 +08:00
    404: NOT_FOUND
    Code: NOT_FOUND
    小白 求解
    coderpwh
        47
    coderpwh  
    OP
       2024-03-06 09:06:45 +08:00
    @buyno1 去我项目的 readme 看看,增加了视频讲解
    bitkuang8
        48
    bitkuang8  
       2024-03-07 10:10:52 +08:00
    100star~
    coderpwh
        49
    coderpwh  
    OP
       2024-03-07 11:04:20 +08:00
    @bitkuang8 感谢
    bitkuang8
        50
    bitkuang8  
       2024-03-07 11:18:14 +08:00
    微信公众号不能置顶不太好使用,期待接入企业微信~
    coderpwh
        51
    coderpwh  
    OP
       2024-03-07 14:46:23 +08:00
    @bitkuang8 微信公众号可以添加到桌面快捷方式,方便手机使用,支持企业微信等待基本接入其他 ai 后再弄了
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     1272 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 27ms UTC 17:22 PVG 01:22 LAX 10:22 JFK 13:22
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86