Documentation
¶
Index ¶
- type ConversationTrace
- type ConversationTracer
- func (c *ConversationTracer) EndConversation(ctx context.Context, convID string) error
- func (c *ConversationTracer) ExportJSON(convID string) ([]byte, error)
- func (c *ConversationTracer) GetConversation(convID string) (*ConversationTrace, bool)
- func (c *ConversationTracer) StartConversation(ctx context.Context, name string) (context.Context, *ConversationTrace)
- func (c *ConversationTracer) TraceTurn(ctx context.Context, userInput string, fn func() (string, TokenUsage, error)) (*TurnTrace, error)
- type CostCalculator
- func (c *CostCalculator) Calculate(provider, model string, tokensInput, tokensOutput int) float64
- func (c *CostCalculator) GetPrice(provider, model string) *ModelPrice
- func (c *CostCalculator) SetPrice(provider, model string, priceInput, priceOutput float64)
- func (c *CostCalculator) UpdatePrices(prices []ModelPrice)
- type CostSummary
- type CostTracker
- type Metrics
- func (m *Metrics) EndRequest(ctx context.Context, span trace.Span, req RequestAttrs, resp ResponseAttrs)
- func (m *Metrics) RecordCacheMiss(ctx context.Context, provider, model string)
- func (m *Metrics) RecordToolCall(ctx context.Context, toolName string, duration time.Duration, success bool)
- func (m *Metrics) StartRequest(ctx context.Context, attrs RequestAttrs) (context.Context, trace.Span)
- func (m *Metrics) Tracer() trace.Tracer
- type ModelPrice
- type RequestAttrs
- type ResponseAttrs
- type Run
- type TokenUsage
- type ToolCall
- type Trace
- type TraceExporter
- type TraceFeedback
- type TraceType
- type Tracer
- func (t *Tracer) AddFeedback(traceID string, feedback TraceFeedback) error
- func (t *Tracer) EndRun(ctx context.Context, runID string, status string) error
- func (t *Tracer) EndTrace(ctx context.Context, traceID string, output any, err error)
- func (t *Tracer) GetRun(runID string) (*Run, bool)
- func (t *Tracer) GetTrace(traceID string) (*Trace, bool)
- func (t *Tracer) StartRun(ctx context.Context, name string) (context.Context, *Run)
- func (t *Tracer) StartTrace(ctx context.Context, traceType TraceType, name string, input any) (context.Context, *Trace)
- func (t *Tracer) TraceLLMCall(ctx context.Context, model string, input any, fn func() (any, error)) (any, error)
- func (t *Tracer) TraceToolCall(ctx context.Context, toolName string, input any, fn func() (any, error)) (any, error)
- type TracerConfig
- type TurnTrace
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
This section is empty.
Types ¶
type ConversationTrace ¶
type ConversationTrace struct {
ID string `json:"id"`
RunID string `json:"run_id"`
Turns []*TurnTrace `json:"turns"`
StartTime time.Time `json:"start_time"`
EndTime time.Time `json:"end_time,omitempty"`
Metadata map[string]any `json:"metadata,omitempty"`
}
ConversationTrace 表示追踪的对话.
type ConversationTracer ¶
type ConversationTracer struct {
// contains filtered or unexported fields
}
ConversationTracer 追踪多回合对话.
func NewConversationTracer ¶
func NewConversationTracer(tracer *Tracer) *ConversationTracer
NewConversationTracer 创建新的对话追踪器.
func (*ConversationTracer) EndConversation ¶
func (c *ConversationTracer) EndConversation(ctx context.Context, convID string) error
EndConversation 结束对话追踪.
func (*ConversationTracer) ExportJSON ¶
func (c *ConversationTracer) ExportJSON(convID string) ([]byte, error)
ExportJSON 将对话追踪导出为 JSON.
func (*ConversationTracer) GetConversation ¶
func (c *ConversationTracer) GetConversation(convID string) (*ConversationTrace, bool)
GetConversation 获取对话追踪.
func (*ConversationTracer) StartConversation ¶
func (c *ConversationTracer) StartConversation(ctx context.Context, name string) (context.Context, *ConversationTrace)
StartConversation 开始追踪对话.
type CostCalculator ¶
type CostCalculator struct {
// contains filtered or unexported fields
}
CostCalculator 成本计算器
func (*CostCalculator) Calculate ¶
func (c *CostCalculator) Calculate(provider, model string, tokensInput, tokensOutput int) float64
Calculate 计算成本
func (*CostCalculator) GetPrice ¶
func (c *CostCalculator) GetPrice(provider, model string) *ModelPrice
GetPrice 获取模型价格
func (*CostCalculator) SetPrice ¶
func (c *CostCalculator) SetPrice(provider, model string, priceInput, priceOutput float64)
SetPrice 设置模型价格
func (*CostCalculator) UpdatePrices ¶
func (c *CostCalculator) UpdatePrices(prices []ModelPrice)
UpdatePrices 批量更新价格(从配置/数据库)
type CostSummary ¶
type CostSummary struct {
TotalCost float64
TotalTokens int
TokensInput int
TokensOutput int
RequestCount int
AvgCostPerReq float64
AvgTokensPerReq float64
}
CostSummary 成本汇总
type CostTracker ¶
type CostTracker struct {
// contains filtered or unexported fields
}
CostTracker 成本追踪器(用于会话级别的成本统计)
func NewCostTracker ¶
func NewCostTracker(calculator *CostCalculator) *CostTracker
NewCostTracker 创建成本追踪器
type Metrics ¶
type Metrics struct {
// contains filtered or unexported fields
}
Metrics LLM 指标收集器
func (*Metrics) EndRequest ¶
func (m *Metrics) EndRequest(ctx context.Context, span trace.Span, req RequestAttrs, resp ResponseAttrs)
EndRequest 结束请求追踪
func (*Metrics) RecordCacheMiss ¶
RecordCacheMiss 记录缓存未命中
func (*Metrics) RecordToolCall ¶
func (m *Metrics) RecordToolCall(ctx context.Context, toolName string, duration time.Duration, success bool)
RecordToolCall 记录工具调用
func (*Metrics) StartRequest ¶
func (m *Metrics) StartRequest(ctx context.Context, attrs RequestAttrs) (context.Context, trace.Span)
StartRequest 开始请求追踪
type ModelPrice ¶
type ModelPrice struct {
Provider string
Model string
PriceInput float64 // USD per 1K tokens
PriceOutput float64 // USD per 1K tokens
}
ModelPrice 模型价格
type RequestAttrs ¶
type RequestAttrs struct {
Provider string
Model string
TenantID string
UserID string
Feature string
TraceID string
}
RequestAttrs 请求属性
type ResponseAttrs ¶
type ResponseAttrs struct {
Status string
ErrorCode string
TokensPrompt int
TokensCompletion int
Cost float64
Duration time.Duration
Cached bool
Fallback bool
FallbackLevel int
}
ResponseAttrs 响应属性
type Run ¶
type Run struct {
ID string `json:"id"`
Name string `json:"name"`
Traces []*Trace `json:"traces"`
StartTime time.Time `json:"start_time"`
EndTime time.Time `json:"end_time,omitempty"`
Status string `json:"status"`
Metadata map[string]any `json:"metadata,omitempty"`
Tokens TokenUsage `json:"tokens"`
Cost float64 `json:"cost"`
}
Run 表示一个完整的执行运行.
type TokenUsage ¶
type TokenUsage struct {
Prompt int `json:"prompt"`
Completion int `json:"completion"`
Total int `json:"total"`
}
TokenUsage 追踪 Token 消耗.
type ToolCall ¶
type ToolCall struct {
Name string `json:"name"`
Input any `json:"input"`
Output any `json:"output"`
Duration time.Duration `json:"duration"`
Error string `json:"error,omitempty"`
}
ToolCall 表示回合内的工具调用.
type Trace ¶
type Trace struct {
ID string `json:"id"`
ParentID string `json:"parent_id,omitempty"`
RunID string `json:"run_id"`
Type TraceType `json:"type"`
Name string `json:"name"`
Input any `json:"input"`
Output any `json:"output,omitempty"`
Error string `json:"error,omitempty"`
StartTime time.Time `json:"start_time"`
EndTime time.Time `json:"end_time,omitempty"`
Duration time.Duration `json:"duration,omitempty"`
Metadata map[string]any `json:"metadata,omitempty"`
Tags []string `json:"tags,omitempty"`
Feedback *TraceFeedback `json:"feedback,omitempty"`
}
Trace 表示一个追踪条目.
type TraceExporter ¶
type TraceExporter interface {
Export(ctx context.Context, run *Run) error
ExportTrace(ctx context.Context, trace *Trace) error
}
TraceExporter 向外部系统导出追踪.
type TraceFeedback ¶
type TraceFeedback struct {
Score float64 `json:"score"`
Comment string `json:"comment,omitempty"`
UserID string `json:"user_id,omitempty"`
}
TraceFeedback 表示用户对追踪的反馈.
type Tracer ¶
type Tracer struct {
// contains filtered or unexported fields
}
Tracer 提供追踪能力.
func (*Tracer) AddFeedback ¶
func (t *Tracer) AddFeedback(traceID string, feedback TraceFeedback) error
AddFeedback 为追踪添加反馈.
func (*Tracer) StartTrace ¶
func (t *Tracer) StartTrace(ctx context.Context, traceType TraceType, name string, input any) (context.Context, *Trace)
StartTrace 在运行中开始新的追踪.
type TracerConfig ¶
type TracerConfig struct {
ServiceName string
Exporter TraceExporter
BufferSize int
}
TracerConfig 配置追踪器.
type TurnTrace ¶
type TurnTrace struct {
ID string `json:"id"`
TurnNumber int `json:"turn_number"`
UserInput string `json:"user_input"`
Response string `json:"response"`
Model string `json:"model"`
Tokens TokenUsage `json:"tokens"`
Latency time.Duration `json:"latency"`
ToolCalls []ToolCall `json:"tool_calls,omitempty"`
Timestamp time.Time `json:"timestamp"`
}
TurnTrace 表示单次对话回合.