高级功能(Go)
除核心聊天功能外,ai-lib-go 还提供多项高级能力。
Embeddings
Section titled “Embeddings”生成并处理向量 embedding:
import "github.com/ailib-official/ai-lib-go/embeddings"
// 创建 embedding 客户端client, err := embeddings.NewEmbeddingClient(ctx, "openai/text-embedding-3-small", nil)if err != nil { panic(err)}
// 生成 embeddingsresults, err := client.Embed(ctx, []string{ "Go 编程语言", "Python 编程语言", "食谱",})if err != nil { panic(err)}
// 计算相似度sim := embeddings.CosineSimilarity(results[0], results[1])fmt.Printf("Go vs Python 相似度: %.3f\n", sim)向量操作包括余弦相似度、欧几里得距离和点积。
缓存响应以降低成本和延迟:
import "github.com/ailib-official/ai-lib-go/cache"
// 配置缓存管理器mgr := cache.NewCacheManager(cache.NewMemoryCache(), 3600 * time.Second)
// 应用到客户端aiClient, _ := client.NewAiClient(ctx, "openai", &client.Options{ Cache: mgr,})
// 第一次调用请求提供商resp1, _ := aiClient.Chat().Model("gpt-4o").User("2+2 等于几?").Execute(ctx)
// 第二次相同的调用返回缓存的响应resp2, _ := aiClient.Chat().Model("gpt-4o").User("2+2 等于几?").Execute(ctx)高效执行多个请求:
import "github.com/ailib-official/ai-lib-go/batch"
executor := batch.NewBatchExecutor(5, 30 * time.Second)
requests := []client.ChatRequest{ aiClient.Chat().User("问题 1"), aiClient.Chat().User("问题 2"), aiClient.Chat().User("问题 3"),}
results := executor.Execute(ctx, requests)for _, res := range results { if res.Error != nil { fmt.Printf("错误: %v\n", res.Error) continue } fmt.Println(res.Response.Content)}Token 计数
Section titled “Token 计数”估算 token 使用量与成本:
import "github.com/ailib-official/ai-lib-go/tokens"
counter := tokens.GetCounterForModel("gpt-4o")count := counter.Count("你好,最近怎么样?")fmt.Printf("Tokens: %d\n", count)
pricing := tokens.GetPricingForModel("openai/gpt-4o")cost := pricing.Estimate(promptTokens, completionTokens)fmt.Printf("估算成本: $%.4f\n", cost)使用自定义插件扩展客户端:
import "github.com/ailib-official/ai-lib-go/plugins"
type LoggingPlugin struct{}
func (p *LoggingPlugin) OnRequest(req *plugins.Request) { fmt.Printf("正在向 %s 发送请求\n", req.Model)}
func (p *LoggingPlugin) OnResponse(res *plugins.Response) { fmt.Printf("获得 %d 个 token\n", res.Usage.TotalTokens)}
aiClient.RegisterPlugin(&LoggingPlugin{})Guardrails
Section titled “Guardrails”内容过滤与安全:
import "github.com/ailib-official/ai-lib-go/guardrails"
config := guardrails.NewConfig(). AddFilter(guardrails.NewKeywordFilter([]string{"不安全词汇"})). EnablePiiDetection()
aiClient.SetGuardrails(config)功能门控:Routing
Section titled “功能门控:Routing”智能模型路由:
import "github.com/ailib-official/ai-lib-go/routing"
manager := routing.NewModelManager(). AddModel("openai/gpt-4o", 0.7). AddModel("anthropic/claude-3-5-sonnet", 0.3). SetStrategy(routing.StrategyWeighted)功能门控:Interceptors
Section titled “功能门控:Interceptors”请求/响应拦截:
import "github.com/ailib-official/ai-lib-go/interceptors"
pipeline := interceptors.NewPipeline(). Add(&LoggingInterceptor{}). Add(&MetricsInterceptor{}). Add(&AuditInterceptor{})