zhayujie / chatgpt-on-wechat

基于大模型搭建的聊天机器人,同时支持 微信公众号、企业微信应用、飞书、钉钉 等接入,可选择GPT3.5/GPT-4o/GPT-o1/ Claude/文心一言/讯飞星火/通义千问/ Gemini/GLM-4/Claude/Kimi/LinkAI,能处理文本、语音和图片,访问操作系统和互联网,支持基于自有知识库进行定制企业智能客服。
https://docs.link-ai.tech/cow
MIT License
29.85k stars 7.88k forks source link

服务器部署群聊无法触发Dall-e-3画图 #2240

Closed Standy0215 closed 4 weeks ago

Standy0215 commented 4 weeks ago

前置确认

⚠️ 搜索issues中是否已存在类似问题

操作系统类型?

Linux

运行的python版本是?

python 3.10

使用的chatgpt-on-wechat版本是?

Latest Release

运行的channel类型是?

wx(个人微信, itchat)

复现步骤 🕹

复现步骤

git clone https://github.com/zhayujie/chatgpt-on-wechat
cd chatgpt-on-wechat/
pip3 install -r requirements.txt
pip3 install -r requirements-optional.txt
nohup python3 app.py & tail -f nohup.out 

config.json内容

{
    "open_ai_api_base": "URL",
    "open_ai_api_key": "KEY",
    "model": "DEPLOYMENT-NAME",
    "use_azure_chatgpt": true,
    "azure_deployment_id": "DEPLOYMENT-ID",
    "azure_api_version": "2024-05-01-preview",
    "single_chat_prefix": ["Standy-bot", "@Standy-bot"],
    "single_chat_reply_prefix": "[Standy-bot] \n",
    "group_chat_prefix": "[@Standy-bot]",
    "group_chat_reply_prefix": "",
    "group_chat_reply_suffix": "",
    "group_name_white_list": ["GPT测试"],
    "group_chat_in_one_session": ["GPT测试"],
    "group_welcome_msg": "",
    "text_to_image": "dall-e-3",
    "dalle3_image_style": "natural",
    "dalle3_image_quality": "hd",
    "azure_openai_dalle_api_base": "URL",
    "azure_openai_dalle_api_key": "KEY",
    "azure_openai_dalle_deployment_id":"DEPLOYMENT_ID",
    "image_create_prefix": ["画", "看", "找"],
    "concurrency_in_session": 1,
    "character_desc": "你是ChatGPT, 一个由OpenAI训练的大型语言模型, 你旨在回答并解决人们的任何问题,并且可以使用多种语言与人交流。",
    "conversation_max_tokens": 1000,
    "expires_in_seconds": 3600,
    "temperature": 0.9,
    "top_p": 1,
    "frequency_penalty": 0,
    "presence_penalty": 0,
    "request_timeout": 180,
    "hot_reload": true
}

问题描述 😯

部署环境Ubuntu 22.04 Python版本3.10.12

运行,登陆,对话都没问题

但是使用image_create_prefix里的关键字触发画图的时候,个人聊天可以完美触发,但是群聊无法触发画图。

PS:我在个人聊天和群聊中都发送的是画一个猫。

终端日志 📒

Start auto replying.
[INFO][2024-08-15 02:44:43][bridge.py:68] - create bot chatGPTOnAzure for chat
[INFO][2024-08-15 02:45:06][wechat_channel.py:230] - [WX] download image success, size=3163267, img_url=https://dalleprodaue.blob.core.windows.net/private/images/8821fe9e-ca44-4441-8055-d8d888d73e2b/generated_00.png?se=2024-08-16T02%3A44%3A59Z&sig=ZzBorjeyPyXZDptjgoApcxgz63jm%2B%2BY5ugPt5n%2BNYsA%3D&ske=2024-08-20T17%3A33%3A41Z&skoid=f4f58869-78fa-4857-8a87-4ce5ae4ba8c3&sks=b&skt=2024-08-13T17%3A33%3A41Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02
[INFO][2024-08-15 02:45:08][wechat_channel.py:239] - [WX] sendImage url=https://dalleprodaue.blob.core.windows.net/private/images/8821fe9e-ca44-4441-8055-d8d888d73e2b/generated_00.png?se=2024-08-16T02%3A44%3A59Z&sig=ZzBorjeyPyXZDptjgoApcxgz63jm%2B%2BY5ugPt5n%2BNYsA%3D&ske=2024-08-20T17%3A33%3A41Z&skoid=f4f58869-78fa-4857-8a87-4ce5ae4ba8c3&sks=b&skt=2024-08-13T17%3A33%3A41Z&sktid=33e01921-4d64-4f8c-a055-5bdaffd5e33d&skv=2020-10-02&sp=r&spr=https&sr=b&sv=2020-10-02, receiver=@682de5b2ba1b3570b44193ea8da42a60366a798faa73ff11603d1f2bcc796442

[INFO][2024-08-15 02:45:29][chat_channel.py:117] - [chat_channel]receive group at
[INFO][2024-08-15 02:45:29][chat_gpt_bot.py:49] - [CHATGPT] query=Standy-bot 画一个猫
[WARNING][2024-08-15 02:45:32][chat_gpt_session.py:86] - num_tokens_from_messages() is not implemented for model standy-gpt-4o. Returning num tokens assuming gpt-3.5-turbo.
[WARNING][2024-08-15 02:45:39][chat_gpt_session.py:86] - num_tokens_from_messages() is not implemented for model standy-gpt-4o. Returning num tokens assuming gpt-3.5-turbo.
[INFO][2024-08-15 02:45:39][wechat_channel.py:214] - [WX] sendMsg=Reply(type=TEXT, content=@Standy
虽然我不能直接画画,但我可以用文字帮你描述一个简笔画的小猫,你也可以根据这个描述自己画一个。

1. 首先,画一个圆形作为猫的头。
2. 然后,在圆形的顶部两侧,各画一个小三角形作为猫的耳朵。
3. 在圆形中间的位置,画两只圆圆的眼睛,眼睛中间可以再加两个小圆作为瞳孔。
4. 在眼睛下方,画一个小的倒三角形作为猫的鼻子。
5. 从鼻子的底部,向下画两条弯曲的线作为猫的嘴巴,看起来像一个小笑脸。
6. 然后,画一个椭圆形或圆形作为猫的身体,可以稍微比头大一些。
7. 在身体的底部两侧,各画两条弯曲的线作为猫的前腿,然后在身体的后面画两条弯曲的线作为后腿。
8. 最后,在身体的右边或左边,画一条弯弯的尾巴。

这样一个简单的小猫形象就完成了!希望这个描述对你有帮助。), receiver=@@d8e0371422ab036f1676dc5d5a2ce94a1d8c206e382b0402b33ad4e3f464e70d
Standy0215 commented 4 weeks ago

问题解决了,group_chat_prefix是个list,我给配成了个string...

把"group_chat_prefix": "[@Standy-bot]"改成"group_chat_prefix": ["@Standy-bot"]就好了