Files
GoLoom/internal/model/types.go
hhs 9d04b0b200
All checks were successful
GoLoom CI / Lint (push) Successful in 21m3s
GoLoom CI / Test (push) Successful in 9m20s
GoLoom CI / Build (push) Successful in 9m27s
feat(llm): 实现阶段 3 LLM 集成 — OpenAI 客户端与 ChatModel 适配器
2026-06-10 13:46:38 +08:00

55 lines
1.4 KiB
Go

package model
import "context"
// 核心接口
// Tool 外部工具接口
type Tool interface {
Name() string
Description() string
Call(ctx context.Context, input string) (string, error)
}
// ChatModel 聊天模型接口,支持同步生成和流式输出
type ChatModel interface {
Generate(ctx context.Context, messages []ChatMessage) (ChatReply, error)
Stream(ctx context.Context, messages []ChatMessage) (<-chan ChatStreamEvent, <-chan error)
}
// Agent 智能体接口
type Agent interface {
Name() string
Run(ctx context.Context, content ChatContent) (string, error)
Stream(ctx context.Context, content ChatContent, out chan<- string) error
}
// Runner 运行器接口,管理会话并执行 Agent
type Runner interface {
CreateSession(userID string) (string, error)
Run(userID, sessionID string, content ChatContent) ([]string, error)
Stream(userID, sessionID string, content ChatContent) (<-chan string, <-chan error)
}
// 注册与存储接口
// RegisteredAgent 已注册的 Agent 信息
type RegisteredAgent struct {
AppName string
AgentID string
AgentName string
AgentDesc string
Runner Runner
}
// AgentRegistry Agent 注册表接口
type AgentRegistry interface {
Register(agent RegisteredAgent) error
Get(agentID string) (RegisteredAgent, bool)
List() []RegisteredAgent
}
// SessionStore 会话存储接口
type SessionStore interface {
Get(userID, agentID string) (string, bool)
Set(userID, agentID, sessionID string) error
}