Git Product home page Git Product logo

eryajf / chatgpt-dingtalk Goto Github PK

View Code? Open in Web Editor NEW
2.1K 22.0 389.0 654 KB

🎒 钉钉 & 🤖 GPT-3.5 让你的工作效率直接起飞 🚀 私聊群聊方式、单聊串聊模式、角色扮演、图片创作 🚀

Home Page: https://wiki.eryajf.net

License: MIT License

Dockerfile 0.59% Go 98.60% Makefile 0.48% Shell 0.32%
chatgpt chatgpt-api dingtalk dingtalk-robot openai go-gpt connect-ai go golang

chatgpt-dingtalk's Issues

机器人太累了,让她休息会儿,过一会儿再来请求。

超过97个tokens的文本就会报错,看起来有4000个token是completion的,这个是什么地方的限制吗。
"error": {
"message": "This model's maximum context length is 4097 tokens, however you requested 4995 tokens (995 in your prompt; 4000 for the completion). Please reduce your prompt; or completion length.",
"type": "invalid_request_error",
"param": null,
"code": null
}

一个关于上下文的问题

看日志和代码目前是拼接之前的问题和答案之后发过去 ,但是可能会超过字数限制,而且对于收费影响也较大。

不知道是否有别的方式 。

项目不更新了,都散了吧

项目不更新了,都散了吧项目不更新了,都散了吧项目不更新了,都散了吧项目不更新了,都散了吧项目不更新了,都散了吧

日志报 ssl证书过期

通过curl模拟钉钉推过来的消息测试连通性。
日志显示请求openai的api的ssl证书过期。实际官方证书确实没过期。

本地使用curl访问也提示过期。
尝试将openai的证书下载并添加到机器的 /etc/pki/ca-trust/extracted/pem/tls-ca-bundle.pem后
curl已经不提示过期。

但是在go中请求仍旧提示ssl证书过期。

没写过go,请问有办法忽略ssl证书吗?或者有什么地方能够配置?
image
image
image

和机器人说话提示错误,您看看是docker没运行好么

45678900',
},
};
const requiredFields = {
payload: {
firstName: 'Example',
lastName: 'User',
email: '[email protected]',
password: 'TestPass12345678900',
},
};
const userData = {
firstName: 'Example',
lastName: 'User',
email: '[email protected]',
password: 'TestPass12345678900',
};
const spy = sinon.spy(validator, 'validate');
const spySchema = sinon.spy(userSchemas, 'registerSchema');
const spyUserModel = sinon.spy(userModel, 'createUser');
const spyHelper = sinon.spy(helper, 'getToken');
const spySendEmail = sinon.spy(mailer, 'sendVerificationEmail');
const spySendEmailFunction = sinon.spy(emailTemplate, 'sendVerificationEmail');
try {
await UserController.registerUser(req, res);
} catch (error) {
expect(error).to.be.an.instanceOf(Error);
}
expect(spy.calledOnce).to.be.true;
expect(spySchema.calledOnceWithExactly(requiredFields)).to.be.true;
expect(spyUserModel.calledOnceWithExactly(userData)).to.be.true;
expect(spyHelper.calledOnce).to.be.true;
expect(spySendEmail.calledOnce).to.be.true;
expect(spySendEmailFunction.calledOnce).to.be.true;
validator.validate.restore();
userSchemas.registerSchema.restore();
userModel.createUser.restore();
helper.getToken.restore();
mailer.sendVerificationEmail.restore();
emailTemplate.sendVerificationEmail.restore();
});

it('should throw an error if res.status is not 200', async () => {
const req = {

部署不成功

钉钉提示 : 消息接收地址校验失败(请确保公网可访问该地址,如无有效SSL证书,可选择禁用证书校验)

unmarshal request body failed: unexpected end of JSON input?

https://open.dingtalk.com/document/robots/enterprise-created-chatbot

{
    "conversationId": "xxx",
    "atUsers": [
        {
            "dingtalkId": "xxx",
            "staffId":"xxx"
        }
    ],
    "chatbotCorpId": "dinge8a565xxxx",
    "chatbotUserId": "$:LWCP_v1:$Cxxxxx",
    "msgId": "msg0xxxxx",
    "senderNick": "杨xx",
    "isAdmin": true,
    "senderStaffId": "user123",
    "sessionWebhookExpiredTime": 1613635652738,
    "createAt": 1613630252678,
    "senderCorpId": "dinge8a565xxxx",
    "conversationType": "2",
    "senderId": "$:LWCP_v1:$Ff09GIxxxxx",
    "conversationTitle": "机器人测试-TEST",
    "isInAtList": true,
    "sessionWebhook": "https://oapi.dingtalk.com/robot/sendBySession?session=xxxxx",
    "text": {
        "content": " 你好"
    },
    "msgtype": "text"
}

钉钉也挺逆天的

从wechat-chatgpt过来的,刚注册五分钟的账号啥也没发就被封了,蚌埠住了

🙋 常见问题速览

注意

📢 注意:当下部署以及配置流程都已非常成熟,文档和issue中基本都覆盖到了,因此不再回答任何项目安装部署与配置使用上的问题,如果完全不懂,可考虑通过邮箱联系我进行付费的技术支持。


经过大家的一些体验,现在积累了不少的常见问题,这里统一整理,让你更快地了解ChatGPT,以及这个项目。

此处的链接没有跳转效果,可仅当做目录。

关于如何升级

  • 因为这个项目没有什么其他依赖,因此升级非常简单,如果你是docker部署的,那么停掉服务,删除本地镜像,然后重新拉取镜像部署即可,同理,如果你是二进制运行,那就下载最新release的二进制,然后替换原来的二进制,然后启动服务即可。
  • 📢 注意:无论任何时候升级,你都应该看看最新的配置文件说明,如果有新的内容,我都会在这里进行更新。你也应该仔细阅读,并且正确配置,以确保完整地体验到新的功能特性。

关于钉钉后台添加回调地址时如何禁用https

钉钉开放平台在开发管理页面配置机器人消息接收地址时由于没有https ,报错: 消息接收地址校验失败(请确保公网可访问该地址,如无有效SSL证书,可选择禁用证书校验)请问在哪里禁用证书校验,或者跳过这个限制使用http地址。

关于这个问题,可以先输入一个https://,然后就能看到禁用https的选项了,选择禁用,然后再把地址改成http就好了。

📢 注意:配置这一步的时候,务必让服务是启动状态,否则保存时无法通过验证。

为什么图片无法正常显示?

如果服务器上图片有正常生成,那么原因一定是 service_url 的配置项没有正确配置,这项配置应该与钉钉管理后台配置的回调地址一样。

与机器人单独对话

我发现也可以不在群里艾特机器人聊天,还可点击机器人,然后点击发消息,通过与机器人直接对话进行聊天:

image

@Raytow 同学发现,在机器人自动生成的测试群里无法私聊机器人,在其他群里单独添加这个机器人,就可以跟它私聊了.

通过内置prompt聊天

image_20230318_093225

如果你发现有比较优秀的prompt,欢迎PR。注意:一些与钉钉使用场景不是很匹配的,就不要提交了。

钉钉群聊艾特机器人之后,没有回应,应用也没有任何输出

注意钉钉艾特群聊之后,会通过回调服务器的外网IP与域名把请求发过来,如果这个环节有问题,大概率是你的服务未暴漏出来让钉钉访问到。

一切配置完毕之后,群聊艾特机器人没有反应,看应用输出内容为:回调参数为空,以至于无法正常解析,请检查原因

可能是创建的机器人有问题,建议重新走一遍创建机器人的流程,创建一个新的机器人再试试。需要注意的是,机器人的名字尽量避开chatgpt等关键字,有人反馈可能官方会有限制 #42

为啥感觉这里聊天的不够只能,跟网页版的不一样

首先程序里用模型是3.0,网页版肯定代表官方最新的成果,因此会有差别。不过,每个参数都可能影响你得到不一样的聊天效果,改变一个参数你就可能得到另一种回答,所以请自己尝试去调试,不要上来就抱怨人工智障。文档中有二十多中参数示例,如AI聊天机器人 ,产品名称生成,python代码修复器等等等...

添加机器人回调地址之后,点击保存的时候报错 消息接收地址校验失败

这个问题我也遇到过,但并非稳定复现,时好时坏,所以目前给到的解决方案大概就是稍后再试下。

回调参数为空,以至于无法正常解析,请检查原因

出现这个问题,那就是钉钉回调没带任何内容,不必再重复提问。

最新版本代码接入的模型是 gpt-3.5 ,请不要再提不够智能之类的问题了

为这个问题我很困扰,特地问了一下gpt,看看她的解释:

image_20230302_151729

🙋 问题交流

问题反馈

docker报错如下:
[INFO]2023/02/18 08:48:40 logger.go:21: gpt request error: %v
error, status code: 401
[WARNING]2023/02/18 08:48:40 logger.go:33: get gpt result falied: %v

请问是什么原因

上下文的逻辑有些怪

每次都会把上次的提问和回复作为新的问题提交
这是符合预期的吗?

eg:
Q1:你好
A1:你好,很高兴认识你。
Q2:今天天气怎么样

Q2实际发送给openAI的请求是:"你好 你好,很高兴认识你。 今天天气怎么样"

请问可以让机器人发图片么?

我现在让机器人给我生成一张图片
机器人会回复
(图片链接)
这几个字,连链接都看不到。。能不能让机器人把图片发出来?

docker部署升级后无与api交互的输出了

问题反馈

  • 搜索打开和关闭的 GitHub 问题,请勿重复提交issue。

重要:提交问题时,请务必带上输出日志,以及个人排查的成果。

原docker部署的0.0.8版本正常使用。近期看到版本有更新,下载0.1.1新的镜像部署后。
运行测试curl只有参数日志。 没有与openai的接口调用日志了。切换回低版本无问题,请问是哪里有变化了?
image

报错

[WARNING]2023/02/16 09:05:35 logger.go:33: send message error: %v
Post "": unsupported protocol scheme ""
[WARNING]2023/02/16 09:05:35 logger.go:33: process request failed: %v
Post "": unsupported protocol scheme ""

不知道啥问题

这个提示是不是正常的?

[INFO]2023/02/10 04:24:37 logger.go:21: gtp request error: %v Post "https://api.openai.com/v1/completions": dial tcp: lookup api.openai.com on 183.60.82.98:53: read udp 172.17.0.2:52575->183.60.82.98:53: i/o timeout

部署项目碰到的几个问题,请教

一是答复格式和截取方式似乎有些问题,经常在答复开头有个“?”,并且增加一个换行。说请继续后,前几个字感觉之前还有内容,可能是截取掉了一些内容。我有截图,不知道如何上传。
二是看gpt-3的api是有性格描述的,是用Prompt给模型一个性格设定,这样可以帮助更好回答,因为我不太懂go语言,看看可不可以把这个参量加上,方便自行调整模型状态。
三是在windows上部署偶尔会见程序卡死,在命令行用ctrl+c才会推进,不知道是什么原因。

感谢帮助

非linux部署,下载zip包,可执行文件部署的两个问题

懒人使用可执行文件使用时的细节:
如果在使用下载对应zip包,非linux部署,进行chatgpt-dingtalk可执行文件的直接使用时,需更改如下:
1、目前使用可执行文件,会报错config.json不存在问题:
记得在下载zip包,解压之后,重新命名一下json文件为config.json即可。
2、在钉钉的开发平台中修改如下信息:
服务器出口IP
127.0.0.1
消息接收地址
http://chat.eryajf.net:8090/
目的是:请求的时候会请求到自己本机地址的服务器和对应端口

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.