ComposerReader
ComposerReader 用于读取 Composer 会话和统计数据。
方法
ListComposers
获取所有 Composer 会话列表。
go
func (r *ComposerReader) ListComposers() ([]Composer, error)返回值:
[]Composer- Composer 会话列表error- 错误信息
示例:
go
composers, err := client.Composers().ListComposers()
if err != nil {
log.Fatal(err)
}
for _, composer := range composers {
fmt.Printf("Composer ID: %s\n", composer.ID)
}GetComposer
根据 ID 获取单个 Composer 会话。
go
func (r *ComposerReader) GetComposer(id string) (*Composer, error)参数:
id- Composer ID
返回值:
*Composer- Composer 对象error- 错误信息
示例:
go
composer, err := client.Composers().GetComposer("composer-id")
if err != nil {
log.Fatal(err)
}GetComposerStats
获取 Composer 统计信息。
go
func (r *ComposerReader) GetComposerStats() (*ComposerStats, error)返回值:
*ComposerStats- 统计信息error- 错误信息
示例:
go
stats, err := client.Composers().GetComposerStats()
if err != nil {
log.Fatal(err)
}
fmt.Printf("Total composers: %d\n", stats.TotalCount)
fmt.Printf("Acceptance rate: %.2f%%\n", stats.AcceptanceRate*100)数据结构
Composer
go
type Composer struct {
ID string // Composer ID
CreatedAt time.Time // 创建时间
UpdatedAt time.Time // 更新时间
Prompt string // 用户提示
Response string // AI 响应
Accepted bool // 是否被接受
WorkspaceID string // 工作区 ID
}ComposerStats
go
type ComposerStats struct {
TotalCount int // 总数
AcceptedCount int // 接受数量
RejectedCount int // 拒绝数量
AcceptanceRate float64 // 接受率
}完整示例
go
package main
import (
"fmt"
"log"
cursor "github.com/vibe-coding-labs/go-cursor-sdk"
)
func main() {
client, err := cursor.NewCursorClient(nil)
if err != nil {
log.Fatal(err)
}
defer client.Close()
// 获取所有 Composer 会话
composers, err := client.Composers().ListComposers()
if err != nil {
log.Fatal(err)
}
// 统计接受率
accepted := 0
for _, composer := range composers {
if composer.Accepted {
accepted++
}
}
rate := float64(accepted) / float64(len(composers)) * 100
fmt.Printf("Acceptance rate: %.2f%%\n", rate)
// 获取统计信息
stats, err := client.Composers().GetComposerStats()
if err != nil {
log.Fatal(err)
}
fmt.Printf("Stats: %+v\n", stats)
}相关文档
- Composer 模型 - Composer 数据结构详解
- 分析 AI 统计 - 实际使用示例