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"
"ai_scheduler/internal/data/impl"
"ai_scheduler/internal/data/model"
"ai_scheduler/internal/domain/workflow/zltx"
"ai_scheduler/internal/entitys"
"ai_scheduler/internal/gateway"
"ai_scheduler/internal/pkg/l_request"
"ai_scheduler/internal/pkg/mapstructure"
"ai_scheduler/internal/pkg/util"
"ai_scheduler/internal/tools"
"ai_scheduler/internal/tools_bot"
"context"
@ -110,6 +112,8 @@ func (r *Handle) HandleMatch(ctx context.Context, client *gateway.Client, requir
return r.handleKnowle(ctx, requireData, pointTask)
case constants.TaskTypeBot:
return r.handleBot(ctx, requireData, pointTask)
case constants.TaskTypeEinoWorkflow:
return r.handleEinoWorkflow(ctx, requireData, pointTask)
default:
return r.handleOtherTask(ctx, requireData)
}
@ -265,11 +269,31 @@ func (r *Handle) handleApiTask(ctx context.Context, requireData *entitys.Require
err = errors.NewBusinessErr(422, "api地址获取失败")
return
}
entitys.ResLoading(requireData.Ch, requireData.Task.Index, "正在请求数据")
res, err := request.Send()
if err != nil {
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
}

View File

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

View File

@ -0,0 +1 @@
package workflow

View File

@ -10,12 +10,10 @@ import (
)
type OrderAfterSaleResellerBatchWorkflowInput struct {
Token string `json:"token"`
OrderNumber []string `json:"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) {
// 定义工作流、出入参
@ -26,9 +24,6 @@ func BuildOrderAfterResellerBatchWorkflow(ctx context.Context, cfg config.ToolCo
if len(in.OrderNumber) == 0 {
return OrderAfterSaleResellerBatchWorkflowInput{}, ErrInvalidOrderNumbers
}
if in.Token == "" {
return OrderAfterSaleResellerBatchWorkflowInput{}, ErrMissingToken
}
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)
}
}