增加stream插件消息处理逻辑和example
This commit is contained in:
parent
0845d43d46
commit
b46abaf516
|
|
@ -382,8 +382,8 @@ func (cli *StreamClient) RegisterChatBotCallbackRouter(messageHandler chatbot.IC
|
|||
}
|
||||
|
||||
// AI插件的注册函数
|
||||
func (cli *StreamClient) RegisterPluginCallbackRouter(messageHandler plugin.IDingTalkPluginHandler) {
|
||||
cli.RegisterRouter(utils.SubscriptionTypeKCallback, payload.BotPluginCallbackTopic, plugin.NewDefaultDingTalkPluginFrameHandler(messageHandler).OnEventReceived)
|
||||
func (cli *StreamClient) RegisterPluginCallbackRouter(messageHandler plugin.IPluginMessageHandler) {
|
||||
cli.RegisterRouter(utils.SubscriptionTypeKCallback, payload.PluginMessageCallbackTopic, plugin.NewDefaultPluginFrameHandler(messageHandler).OnEventReceived)
|
||||
}
|
||||
|
||||
// 事件类型的注册函数
|
||||
|
|
|
|||
|
|
@ -23,8 +23,8 @@ const (
|
|||
DataFrameResponseStatusCodeKInternalError = 500
|
||||
DataFrameResponseStatusCodeKHandlerNotFound = 404
|
||||
|
||||
BotMessageCallbackTopic = "/v1.0/im/bot/messages/get" //机器人消息统一回调topic
|
||||
BotPluginCallbackTopic = "/v1.0/agi/plugins/callback" //AI插件消息统一回调topic
|
||||
BotMessageCallbackTopic = "/v1.0/im/bot/messages/get" //机器人消息统一回调topic
|
||||
PluginMessageCallbackTopic = "/v1.0/agi/plugins/callback" //AI插件消息统一回调topic
|
||||
)
|
||||
|
||||
func GenerateMessageId(prefix string) string {
|
||||
|
|
|
|||
|
|
@ -10,19 +10,19 @@ type CallbackResponse struct {
|
|||
Response interface{} `json:"response"`
|
||||
}
|
||||
|
||||
type IDingTalkPluginHandler func(c context.Context, data *DingTalkPluginMessage) (interface{}, error)
|
||||
type IPluginMessageHandler func(c context.Context, data *DingTalkPluginMessage) (interface{}, error)
|
||||
|
||||
type DefaultDingTalkPluginFrameHandler struct {
|
||||
defaultHandler IDingTalkPluginHandler
|
||||
type DefaultPluginFrameHandler struct {
|
||||
defaultHandler IPluginMessageHandler
|
||||
}
|
||||
|
||||
func NewDefaultDingTalkPluginFrameHandler(defaultHandler IDingTalkPluginHandler) *DefaultDingTalkPluginFrameHandler {
|
||||
return &DefaultDingTalkPluginFrameHandler{
|
||||
func NewDefaultPluginFrameHandler(defaultHandler IPluginMessageHandler) *DefaultPluginFrameHandler {
|
||||
return &DefaultPluginFrameHandler{
|
||||
defaultHandler: defaultHandler,
|
||||
}
|
||||
}
|
||||
|
||||
func (h *DefaultDingTalkPluginFrameHandler) OnEventReceived(ctx context.Context, df *payload.DataFrame) (*payload.DataFrameResponse, error) {
|
||||
func (h *DefaultPluginFrameHandler) OnEventReceived(ctx context.Context, df *payload.DataFrame) (*payload.DataFrameResponse, error) {
|
||||
msgData := &DingTalkPluginMessage{}
|
||||
err := json.Unmarshal([]byte(df.Data), msgData)
|
||||
if err != nil {
|
||||
|
|
|
|||
Loading…
Reference in New Issue