35 lines
880 B
Go
35 lines
880 B
Go
package agent
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
|
|
"eino-project/internal/domain/llm"
|
|
|
|
"github.com/cloudwego/eino/adk"
|
|
)
|
|
|
|
func NewIntentAgent(ctx context.Context, models llm.LLM) adk.Agent {
|
|
intentModel, err := models.Intent()
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
a, err := adk.NewChatModelAgent(ctx, &adk.ChatModelAgentConfig{
|
|
Name: "意图识别智能体",
|
|
Description: "根据用户输入识别意图",
|
|
Instruction: `
|
|
# 你是一个意图识别智能体,根据用户输入识别用户的意图。
|
|
- 当用户输入商品相关时,意图为"商品查询"(product)
|
|
- 当用户输入订单相关时,意图为"订单诊断"(order)
|
|
- 当用户输入其他问题时,意图为"其他"(other)
|
|
- 输出结构为: {"intent": "product|order|other"}
|
|
`,
|
|
Model: intentModel,
|
|
OutputKey: "intent",
|
|
})
|
|
if err != nil {
|
|
log.Fatal(err)
|
|
}
|
|
return a
|
|
}
|