ConnectAI-E / feishu-openai

🎒 飞书 ×(GPT-4 + GPT-4V + DALL·E-3 + Whisper)= 飞一般的工作体验 🚀 语音对话、角色扮演、多话题讨论、图片创作、表格分析、文档导出 🚀
https://www.connectai-e.com
GNU General Public License v3.0
5.49k stars 956 forks source link

🚀 功能改善 目前版本是否支持Stream流式传输?是否考虑增加GPT-4模型的调用? #228

Closed Gogoworks closed 1 year ago

Gogoworks commented 1 year ago

功能改善建议 🚀

目前版本是否支持Stream流式传输?

特别:需要等待bot才输出所有回复,如果内容较长的话,等待的时间体验感会不好,特别有bot是否不稳定怀疑。建议像Feishu-OpenAI-Stream-Chatbot 一样增加Stream流式传输,但不知道在飞书平台是否稳定。

或者在bot输出前,增加一个提示:"正在思考中......"

是否考虑增加GPT-4模型的调用?

官方开始开放GPT-4模型API调用权限,希望可以增加GPT-4模型的调用。

OyutianO commented 1 year ago

我本地部署了Feishu-OpenAI-Stream-Chatbot,是模拟流式输出的,实际就是将内容一部分一部分的更新到消息卡片上,自己可以改下mesaage部分即可实现哈

bourne7 commented 1 year ago

@Gogoworks 你要的这2个功能在 https://github.com/ConnectAI-E/Feishu-OpenAI-Stream-Chatbot 里面都已经有实现了。不过 Feishu-OpenAI-Stream-Chatbot 里面的功能没有这里的多。

Gogoworks commented 1 year ago

我本地部署了Feishu-OpenAI-Stream-Chatbot,是模拟流式输出的,实际就是将内容一部分一部分的更新到消息卡片上,自己可以改下mesaage部分即可实现哈

请问mesaage部分 在哪个文件中?

Gogoworks commented 1 year ago

@Gogoworks 你要的这2个功能在 https://github.com/ConnectAI-E/Feishu-OpenAI-Stream-Chatbot 里面都已经有实现了。不过 Feishu-OpenAI-Stream-Chatbot 里面的功能没有这里的多。

感谢回复,不知道在此版本中是否可以实现。

OyutianO commented 1 year ago

我本地部署了Feishu-OpenAI-Stream-Chatbot,是模拟流式输出的,实际就是将内容一部分一部分的更新到消息卡片上,自己可以改下mesaage部分即可实现哈

请问mesaage部分 在哪个文件中?

你可以参考上面大佬说的Feishu-OpenAI-Stream-Chatbot项目,在当前项目中修改event_msg_action.go文件来实现

Gogoworks commented 1 year ago

我本地部署了Feishu-OpenAI-Stream-Chatbot,是模拟流式输出的,实际就是将内容一部分一部分的更新到消息卡片上,自己可以改下mesaage部分即可实现哈

请问mesaage部分 在哪个文件中?

你可以参考上面大佬说的Feishu-OpenAI-Stream-Chatbot项目,在当前项目中修改event_msg_action.go文件来实现

OK,感谢!

Gogoworks commented 1 year ago

我本地部署了Feishu-OpenAI-Stream-Chatbot,是模拟流式输出的,实际就是将内容一部分一部分的更新到消息卡片上,自己可以改下mesaage部分即可实现哈

请问mesaage部分 在哪个文件中?

你可以参考上面大佬说的Feishu-OpenAI-Stream-Chatbot项目,在当前项目中修改event_msg_action.go文件来实现

package handlers

import ( "fmt"

"start-feishubot/services/openai"

)

type MessageAction struct{ /消息/ }

func (MessageAction) Execute(a ActionInfo) bool { sendProcessingCard(a.ctx, a.info.msgId) //添加此行以发送处理中卡片

msg := a.handler.sessionCache.GetMsg(*a.info.sessionId)
msg = append(msg, openai.Messages{
    Role: "user", Content: a.info.qParsed,
})
// get ai mode as temperature
aiMode := a.handler.sessionCache.GetAIMode(*a.info.sessionId)
completions, err := a.handler.gpt.Completions(msg, aiMode)
if err != nil {
    replyMsg(*a.ctx, fmt.Sprintf(
        "🤖️:消息机器人摆烂了,请稍后再试~\n错误信息: %v", err), a.info.msgId)
    return false
}
msg = append(msg, completions)
a.handler.sessionCache.SetMsg(*a.info.sessionId, msg)
//if new topic
if len(msg) == 2 {
    sendNewTopicCard(*a.ctx, a.info.sessionId, a.info.msgId,
        completions.Content)
    return false
}

err = updateProcessingCard(a.ctx, completions.Content, a.info.msgId) // 使用此行替换 replyMsg 函数调用

if err != nil {
    replyMsg(*a.ctx, fmt.Sprintf(
        "🤖️:消息机器人摆烂了,请稍后再试~\n错误信息: %v", err), a.info.msgId)
    return false
}
return true

}

以上是修改代码event_msg_action.go后导致在构建镜像中出现错误:

=> ERROR [feishu-chatgpt golang 4/4] RUN CGO_ENABLED=0 GOOS=linux go build -ldflags '-w -s' -o feishu_chatgpt 71.5s

求教