V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
爱意满满的作品展示区。
coderpwh
V2EX  ›  分享创造

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

  •  
  •   coderpwh ·
    pwh-pwh · 292 天前 · 4850 次点击
    这是一个创建于 292 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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 条附言  ·  288 天前
    最新功能支持:

    接入 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  
       292 天前
    已 star ,今晚接入试试
    listkun
        2
    listkun  
       292 天前
    ngrok 可行?
    coderpwh
        3
    coderpwh  
    OP
       292 天前
    @listkun 这个关键点在于微信公众平台支持你的域名不,没测试过
    knva
        4
    knva  
       292 天前
    要能接 ghcopilot 转的 gpt 就好了。
    mightybruce
        5
    mightybruce  
       292 天前
    vercel 都支持 go 语言了?
    coderpwh
        6
    coderpwh  
    OP
       292 天前
    @mightybruce 我也是看文档才知道
    coderpwh
        7
    coderpwh  
    OP
       292 天前
    @knva 自行实现也可以
    JustW
        8
    JustW  
       292 天前
    请问下这个订阅号能用么?是如何解决 5 秒内响应这个问题的呀!
    yilishan163
        9
    yilishan163  
       292 天前
    请问大佬微信公众号绑定的域名是不是一定要 ICP 备案过?绑定 vercel 服务的域名能通过备案吗?
    taogen
        10
    taogen  
       292 天前
    @mightybruce 是 Serverless Function
    pangdundun996
        11
    pangdundun996  
       292 天前
    @coderpwh GPT_TOKEN=sk-*** 你的 gpt token
    GPT_URL=https://xxx 代理 gpt 服务器(选填,默认 openai 官网 api) 请问这两个配置是啥值?
    coderpwh
        12
    coderpwh  
    OP
       292 天前
    @yilishan163 不需要备案
    coderpwh
        13
    coderpwh  
    OP
       292 天前
    @pangdundun996 就是 gpt api 的配置啊
    coderpwh
        14
    coderpwh  
    OP
       292 天前
    @JustW 公众号不就是订阅号吗,5s 问题很简单,微信会请求 3 次,只需等待获取内容后返回即可
    pianjiao
        15
    pianjiao  
       292 天前
    token 验证失败怎么弄啊
    JustW
        16
    JustW  
       292 天前
    @coderpwh 分订阅号和服务号.
    coderpwh
        17
    coderpwh  
    OP
       292 天前
    @JustW 没有影响,自动回复功能都有的
    pangdundun996
        18
    pangdundun996  
       292 天前
    @coderpwh F12 从请求头上拿吗?
    pianjiao
        19
    pianjiao  
       292 天前
    api check f 返回的 配置成功 算成功了吗。 公众号也配置成功了 发消息没反应
    coderpwh
        20
    coderpwh  
    OP
       292 天前
    @pangdundun996 你去 open ai 官网了解一下 api
    coderpwh
        21
    coderpwh  
    OP
       292 天前
    @pianjiao 浏览器访问/api/chat?msg=hi 看看有没有返回,没有就是 gpt 配置问题,把 TYPT 改成 echo,看看公众号有没有返回重复信息,没有就是公众号配置问题,检查域名能否国内访问
    Dogergo
        22
    Dogergo  
       292 天前
    原来给我提 ISSUE 的是你呀,你怎么不提供 netlify 域名支持。我不了解这个平台。
    pangdundun996
        23
    pangdundun996  
       292 天前
    @coderpwh 找到了,原来要外国手机号验证-_-
    AlexShui
        24
    AlexShui  
       292 天前 via Android
    为什么不能使用 vercel 提供的域名?
    coderpwh
        25
    coderpwh  
    OP
       292 天前
    @AlexShui vercel 提供的域名被墙了
    coderpwh
        26
    coderpwh  
    OP
       292 天前
    @Dogergo netlify 支持 Lambda ,后续会更新支持
    AlexShui
        27
    AlexShui  
       292 天前 via Android
    @coderpwh 路由 fq 的我没注意到这个问题😂😂😂
    newte88
        28
    newte88  
       292 天前
    go.mod 里为什么都是间接依赖?
    coderpwh
        29
    coderpwh  
    OP
       292 天前
    @newte88 这个问题我也不知道(😂)
    pianjiao
        30
    pianjiao  
       292 天前
    @coderpwh gptclient err:&{%!E(string=invalid character 'A' looking for beginning of value) %!E(int64=1)} 这个错误是什么意思啊
    flyrr
        31
    flyrr  
       292 天前
    @pianjiao baseurl 是不是没有带/v1/
    coderpwh
        32
    coderpwh  
    OP
       292 天前
    @pianjiao 你配置的 gpt 不可用,你要先本地调下你的 gpt api
    coderpwh
        33
    coderpwh  
    OP
       292 天前
    @flyrr 只需要主域名
    flyrr
        34
    flyrr  
       292 天前
    @coderpwh 我加了 v1 才调通,`/api/chat?msg=`可以用,但是中文会变乱码。重新部署后公众号 echo 和 gpt 都没回复,也看不出哪设置的有问题
    coderpwh
        35
    coderpwh  
    OP
       292 天前
    @flyrr 中文乱码不用管,是 vercel 服务器问题
    jemmy1980
        36
    jemmy1980  
       292 天前
    晚点试试看
    pianjiao
        37
    pianjiao  
       292 天前
    @flyrr 加了之后可以了
    rtx3
        38
    rtx3  
       292 天前
    楼主加个限制提问次数的功能吧
    coderpwh
        39
    coderpwh  
    OP
       292 天前
    @flyrr 要带的,写错了
    coderpwh
        40
    coderpwh  
    OP
       292 天前
    @coderpwh
    @pianjiao 加上/v1
    coderpwh
        41
    coderpwh  
    OP
       292 天前
    @rtx3 后续可以增加,需要数据库支持
    GGG123Z
        42
    GGG123Z  
       292 天前
    +1 配置完之后出的都是中文乱码
    coderpwh
        43
    coderpwh  
    OP
       292 天前
    @GGG123Z 这个是 vercel 服务器问题,微信公众号回复不受影响
    job32
        44
    job32  
       292 天前
    大佬能支持 Gemini api 不?
    coderpwh
        45
    coderpwh  
    OP
       292 天前
    @job32 后续支持
    buyno1
        46
    buyno1  
       287 天前
    404: NOT_FOUND
    Code: NOT_FOUND
    小白 求解
    coderpwh
        47
    coderpwh  
    OP
       287 天前
    @buyno1 去我项目的 readme 看看,增加了视频讲解
    bitkuang8
        48
    bitkuang8  
       286 天前
    100star~
    coderpwh
        49
    coderpwh  
    OP
       286 天前
    @bitkuang8 感谢
    bitkuang8
        50
    bitkuang8  
       286 天前
    微信公众号不能置顶不太好使用,期待接入企业微信~
    coderpwh
        51
    coderpwh  
    OP
       286 天前
    @bitkuang8 微信公众号可以添加到桌面快捷方式,方便手机使用,支持企业微信等待基本接入其他 ai 后再弄了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3036 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 28ms · UTC 14:05 · PVG 22:05 · LAX 06:05 · JFK 09:05
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.