chore: 暂存

This commit is contained in:
fuzhongyun 2025-12-11 16:41:46 +08:00
parent b243d03226
commit 15c3febe76
5 changed files with 77 additions and 10 deletions

View File

@ -7,10 +7,12 @@ import (
errors "ai_scheduler/internal/data/error" errors "ai_scheduler/internal/data/error"
"ai_scheduler/internal/data/impl" "ai_scheduler/internal/data/impl"
"ai_scheduler/internal/data/model" "ai_scheduler/internal/data/model"
"ai_scheduler/internal/domain/workflow/zltx"
"ai_scheduler/internal/entitys" "ai_scheduler/internal/entitys"
"ai_scheduler/internal/gateway" "ai_scheduler/internal/gateway"
"ai_scheduler/internal/pkg/l_request" "ai_scheduler/internal/pkg/l_request"
"ai_scheduler/internal/pkg/mapstructure" "ai_scheduler/internal/pkg/mapstructure"
"ai_scheduler/internal/pkg/util"
"ai_scheduler/internal/tools" "ai_scheduler/internal/tools"
"ai_scheduler/internal/tools_bot" "ai_scheduler/internal/tools_bot"
"context" "context"
@ -110,6 +112,8 @@ func (r *Handle) HandleMatch(ctx context.Context, client *gateway.Client, requir
return r.handleKnowle(ctx, requireData, pointTask) return r.handleKnowle(ctx, requireData, pointTask)
case constants.TaskTypeBot: case constants.TaskTypeBot:
return r.handleBot(ctx, requireData, pointTask) return r.handleBot(ctx, requireData, pointTask)
case constants.TaskTypeEinoWorkflow:
return r.handleEinoWorkflow(ctx, requireData, pointTask)
default: default:
return r.handleOtherTask(ctx, requireData) return r.handleOtherTask(ctx, requireData)
} }
@ -265,11 +269,31 @@ func (r *Handle) handleApiTask(ctx context.Context, requireData *entitys.Require
err = errors.NewBusinessErr(422, "api地址获取失败") err = errors.NewBusinessErr(422, "api地址获取失败")
return return
} }
entitys.ResLoading(requireData.Ch, requireData.Task.Index, "正在请求数据")
res, err := request.Send() res, err := request.Send()
if err != nil { if err != nil {
return return
} }
entitys.ResJson(requireData.Ch, "", res.Text) entitys.ResJson(requireData.Ch, requireData.Task.Index, res.Text)
return
}
// eino 工作流
func (r *Handle) handleEinoWorkflow(ctx context.Context, requireData *entitys.RequireData, task *model.AiTask) (err error) {
// token 写入ctx
ctx = util.SetTokenToContext(ctx, requireData.Auth)
// 构建工作流 - todo 示例,后续抽象出来
zltxWorkflow, err := zltx.BuildOrderAfterResellerBatchWorkflow(ctx, r.conf.Tools.ZltxOrderAfterSaleResellerBatch)
if err != nil {
return
}
// 工作流执行
_, err = zltxWorkflow.Invoke(ctx, zltx.OrderAfterSaleResellerBatchWorkflowInput{})
return return
} }

View File

@ -11,10 +11,11 @@ const (
type TaskType int32 type TaskType int32
const ( const (
TaskTypeApi TaskType = 1 TaskTypeApi TaskType = 1
TaskTypeKnowle TaskType = 2 TaskTypeKnowle TaskType = 2
TaskTypeFunc TaskType = 3 TaskTypeFunc TaskType = 3
TaskTypeBot TaskType = 4 TaskTypeBot TaskType = 4
TaskTypeEinoWorkflow TaskType = 5 // eino 工作流
) )
type UseFul int32 type UseFul int32

View File

@ -0,0 +1 @@
package workflow

View File

@ -10,12 +10,10 @@ import (
) )
type OrderAfterSaleResellerBatchWorkflowInput struct { type OrderAfterSaleResellerBatchWorkflowInput struct {
Token string `json:"token"`
OrderNumber []string `json:"orderNumber"` OrderNumber []string `json:"orderNumber"`
} }
var ErrInvalidOrderNumbers = errors.New("orderNumber 不能为空") var ErrInvalidOrderNumbers = errors.New("orderNumber 不能为空")
var ErrMissingToken = errors.New("token 不能为空")
func BuildOrderAfterResellerBatchWorkflow(ctx context.Context, cfg config.ToolConfig) (compose.Runnable[OrderAfterSaleResellerBatchWorkflowInput, toolZoarb.OrderAfterSaleResellerBatchData], error) { func BuildOrderAfterResellerBatchWorkflow(ctx context.Context, cfg config.ToolConfig) (compose.Runnable[OrderAfterSaleResellerBatchWorkflowInput, toolZoarb.OrderAfterSaleResellerBatchData], error) {
// 定义工作流、出入参 // 定义工作流、出入参
@ -26,9 +24,6 @@ func BuildOrderAfterResellerBatchWorkflow(ctx context.Context, cfg config.ToolCo
if len(in.OrderNumber) == 0 { if len(in.OrderNumber) == 0 {
return OrderAfterSaleResellerBatchWorkflowInput{}, ErrInvalidOrderNumbers return OrderAfterSaleResellerBatchWorkflowInput{}, ErrInvalidOrderNumbers
} }
if in.Token == "" {
return OrderAfterSaleResellerBatchWorkflowInput{}, ErrMissingToken
}
return in, nil return in, nil
})) }))

View File

@ -0,0 +1,46 @@
package zltx
import (
"ai_scheduler/internal/config"
"context"
"errors"
"strings"
"testing"
)
func TestOrderAfterResellerBatch_InvalidOrderNumbers(t *testing.T) {
ctx := context.Background()
cfg := config.ToolConfig{}
run, err := BuildOrderAfterResellerBatchWorkflow(ctx, cfg)
if err != nil {
t.Fatalf("build workflow error: %v", err)
}
_, err = run.Invoke(ctx, OrderAfterSaleResellerBatchWorkflowInput{})
if err == nil {
t.Fatalf("expected error, got nil")
}
if !errors.Is(err, ErrInvalidOrderNumbers) {
t.Fatalf("expected ErrInvalidOrderNumbers, got %v", err)
}
}
func TestOrderAfterResellerBatch_ContextTokenRequired(t *testing.T) {
ctx := context.Background()
cfg := config.ToolConfig{}
run, err := BuildOrderAfterResellerBatchWorkflow(ctx, cfg)
if err != nil {
t.Fatalf("build workflow error: %v", err)
}
in := OrderAfterSaleResellerBatchWorkflowInput{OrderNumber: []string{"123"}}
_, err = run.Invoke(ctx, in)
if err == nil {
t.Fatalf("expected error, got nil")
}
if !strings.Contains(err.Error(), "token 未注入") {
t.Fatalf("expected contains 'token 未注入', got %v", err)
}
}