- 用户域:注册/登录(JWT)/修改密码/个人资料 - 照片/衣橱/身形/化身:上传存储 + 3D 化身模板匹配 - 穿搭生成:天气(高德+和风+缓存) → 规则预筛 → LLM 规划(1次调用) → 规则评分(5维100分制) → 全低分触发 LLM 兜底创作 → 异步任务状态机 - 效果图:选主方案后异步生成 3 视角(mock/wanx 供应商 + 内容 hash 缓存 + 每日限额) - 商业化:合作门店列表(seed 4 家) - 冒烟:全链路端到端验证通过(mock LLM/天气),23 个 API 端点 Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
56 lines
1.2 KiB
Go
56 lines
1.2 KiB
Go
package agent
|
|
|
|
import "context"
|
|
|
|
// ==================== 工具 ====================
|
|
|
|
// ToolInfo 工具定义(包含执行函数)
|
|
type ToolInfo struct {
|
|
Name string
|
|
Description string
|
|
Parameters map[string]any
|
|
Func func(ctx context.Context, args map[string]any) (string, error)
|
|
}
|
|
|
|
// ToolCall 模型请求的工具调用
|
|
type ToolCall struct {
|
|
ID string `json:"id"`
|
|
Name string `json:"name"`
|
|
Arguments string `json:"arguments"`
|
|
}
|
|
|
|
// ==================== 聊天消息 ====================
|
|
|
|
// ChatMessage 对话消息
|
|
type ChatMessage struct {
|
|
Role string `json:"role"`
|
|
Content string `json:"content"`
|
|
ToolCalls []*ToolCall `json:"tool_calls,omitempty"`
|
|
ToolCallID string `json:"tool_call_id,omitempty"`
|
|
Name string `json:"name,omitempty"`
|
|
}
|
|
|
|
// ChatRequest 聊天请求
|
|
type ChatRequest struct {
|
|
Messages []*ChatMessage
|
|
MaxTokens int
|
|
Temperature float32
|
|
Stream bool
|
|
Tools []*ToolInfo
|
|
}
|
|
|
|
// ChatResponse 聊天响应
|
|
type ChatResponse struct {
|
|
Content string
|
|
ToolCalls []*ToolCall
|
|
}
|
|
|
|
// ==================== 角色常量 ====================
|
|
|
|
const (
|
|
RoleSystem = "system"
|
|
RoleUser = "user"
|
|
RoleAssistant = "assistant"
|
|
RoleTool = "tool"
|
|
)
|