ndk16
CGO_ENABLED=1 \ CC=$ANDROID_NDK_HOME/toolchains/arm-linux-androideabi-4.9/prebuilt/darwin-x86_64/bin/arm-linux-androideabi-gcc GOOS=linux \ GOARCH=amd64 \ go build -o openaiBin
docker run -d -p 80:80 -v $PWD/openaiBin:/app/openaiBin -v $PWD/log:/app/log -v $PWD/config.yaml:/app/config.yaml tomatocuke/openai
加密微信文档参考 http://caibaojian.com/wxwiki/c12b653c4b8dc110b2929421d3f4d297f7c6608d.html#.E5.87.BD.E6.95.B0.E8.AF.B4.E6.98.8E 结下,
- 返回时候的时间串和随机数需要新生成,不能用请求时候时间。
- 另外返回时候生成sha1签名时候,需要带上mgs。
- 对比收req解密时候不需要使用msg进行sha1验证签名
- 学会了修改源码,之前copy代码到项目下,包一样。
- 中间过程不造轮子。最关键是找到对接文档。就是收到时候的xml(这个可以直接打印)。返回的加密文。
- 说明
- 解决微信被动回复限制问题。(设定超时时间,滚动返回)
- 支持用户语音输入。(要主动开启,设置与开发->接口权限->接收语音识别结果。已关注用户可能24小时内生效,可重新关注尝试)
- 设置代理
- prompt 提示、max_tokens、temperature 参数调节
- 敏感词检测及自定义添加。(不清楚这样是否降低风险。代码内置隐藏了一些敏感词,你也可以启动时在根目录添加
keyword.txt
自定义敏感词。 如有敏感词误杀,你可以向我反馈) - 上下文。(其实开发也不算难。主要是OpenAI不记录会话,上下文的本质是把之前的QA都作为新的参数传过去,这会叠加消耗token)
- 用户身份验证。(待开发)
- 获取
API_KEY
。OpenAI (如果访问被拒绝,注意全局代理,打开调试,Application清除LocalStorage后刷新,实测可以) - 获取微信公众号
令牌Token
:微信公众平台->基本配置->服务器配置->令牌(Token) - 克隆项目,修改配置文件
config.yaml
- 两种方式部署。(简单举例占用80端口,如果需要别的端口自己配置nginx等)
- 直接二进制启动 (Linux amd64)
mkdir log # 尝试启动 ./openaiBin # 守护进程启动 nohup ./openaiBin >> log/data.log 2>&1 &
- 使用Docker启动服务
# 注意这里会拷贝配置到容器里,如果修改配置,需到容器内修改,或者启用新的容器 docker run -d -p 80:80 -v $PWD/log:/app/log -v $PWD/config.yaml:/app/config.yaml tomatocuke/openai # 查看状况 docker logs 容器ID
- 服务器地址(URL)填写
http://服务器IP/wx
,设置明文方式传输,提交后,点击「启用」。
-
日志出现
openai请求超时
答:对openai的请求发不过去 -
出现报错
connection reset by peer
或Post "https://api.openai.com/v1/chat/completions": EOF
答:是否使用了代理呢? 大概率是IP被多人使用的结果,换个IP,但是部署不建议使用代理的方式,不稳定。 -
服务正常,但是公众号无响应?
答:初次设置生效要等一会,过几分钟把公众号的服务器设置按钮关闭再启用试试。 -
文档真特么烂,我部署不成功!
答:别github提问,我很少看。或者你有什么好的建议,欢迎加我QQ:772532526
,不收费。