MCPcopy Create free account
hub / github.com/astercloud/aster / main

Function main

examples/model-fallback/main.go:14–188  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

12)
13
14func main() {
15 fmt.Println("=== Model Fallback 示例 ===")
16 fmt.Println()
17
18 // 创建 Provider Factory
19 factory := provider.NewMultiProviderFactory()
20
21 // 创建 Dependencies
22 deps := &agent.Dependencies{
23 ProviderFactory: factory,
24 }
25
26 // 配置模型降级策略
27 fallbacks := []*agent.ModelFallback{
28 {
29 Config: &types.ModelConfig{
30 Provider: "anthropic",
31 Model: "claude-sonnet-4-5",
32 APIKey: "your-anthropic-api-key",
33 },
34 MaxRetries: 2,
35 Enabled: true,
36 Priority: 1, // 最高优先级
37 },
38 {
39 Config: &types.ModelConfig{
40 Provider: "openai",
41 Model: "gpt-4o",
42 APIKey: "your-openai-api-key",
43 },
44 MaxRetries: 1,
45 Enabled: true,
46 Priority: 2, // 备用模型
47 },
48 {
49 Config: &types.ModelConfig{
50 Provider: "deepseek",
51 Model: "deepseek-chat",
52 APIKey: "your-deepseek-api-key",
53 },
54 MaxRetries: 0,
55 Enabled: true,
56 Priority: 3, // 最后的备用
57 },
58 }
59
60 // 创建 Model Fallback Manager
61 manager, err := agent.NewModelFallbackManager(fallbacks, deps)
62 if err != nil {
63 log.Fatalf("Failed to create manager: %v", err)
64 }
65
66 // 示例 1: 非流式请求
67 fmt.Println("示例 1: 非流式请求")
68 fmt.Println("---")
69
70 ctx := context.Background()
71 messages := []types.Message{

Callers

nothing calls this directly

Calls 9

CompleteMethod · 0.95
StreamMethod · 0.95
GetStatsMethod · 0.95
ListModelsMethod · 0.95
DisableModelMethod · 0.95
EnableModelMethod · 0.95
NewMultiProviderFactoryFunction · 0.92
NewModelFallbackManagerFunction · 0.92
PrintfMethod · 0.80

Tested by

no test coverage detected