26 lines
836 B
Go
26 lines
836 B
Go
package main
|
|
|
|
import (
|
|
"context"
|
|
|
|
"gitea.zheromiku.top/Weknora/dobotai-platform/internal/channels/dingtalk"
|
|
"gitea.zheromiku.top/Weknora/dobotai-platform/internal/reasoningmode"
|
|
)
|
|
|
|
type dingTalkReasoningRouter struct {
|
|
service *reasoningmode.Service
|
|
}
|
|
|
|
func (r *dingTalkReasoningRouter) Prepare(ctx context.Context, message dingtalk.ReasoningMessage) (dingtalk.ReasoningDecision, error) {
|
|
decision, err := r.service.Prepare(ctx, reasoningmode.Scope{
|
|
TenantKey: message.TenantKey, Channel: message.Channel, ExternalActorID: message.StaffID,
|
|
}, message.Text)
|
|
if err != nil {
|
|
return dingtalk.ReasoningDecision{}, err
|
|
}
|
|
return dingtalk.ReasoningDecision{
|
|
Handled: decision.Handled, Reply: decision.Reply, Query: decision.Query,
|
|
AgentID: decision.AgentID, Execution: decision.Execution, Expired: decision.Expired,
|
|
}, nil
|
|
}
|