88 "fmt"
99 "net/http"
1010 "path"
11+ "sort"
1112 "strconv"
1213 "strings"
1314 "time"
@@ -205,11 +206,15 @@ func (a AgentService) GetProviders() ([]dto.ProviderInfo, error) {
205206 providers := make ([]dto.ProviderInfo , 0 , len (definitions ))
206207 for key , def := range definitions {
207208 providers = append (providers , dto.ProviderInfo {
209+ Sort : def .Sort ,
208210 Provider : key ,
209211 BaseURL : def .BaseURL ,
210212 Models : def .Models ,
211213 })
212214 }
215+ sort .Slice (providers , func (i , j int ) bool {
216+ return providers [i ].Sort < providers [j ].Sort
217+ })
213218 return providers , nil
214219}
215220
@@ -673,13 +678,29 @@ func providerEnvKey(provider string) string {
673678}
674679
675680type providerDefinition struct {
681+ Sort uint
676682 BaseURL string
677683 Models []dto.ProviderModelInfo
678684}
679685
680686func providerDefinitions () map [string ]providerDefinition {
681687 return map [string ]providerDefinition {
688+ "ollama" : {
689+ Sort : 1 ,
690+ BaseURL : "" ,
691+ Models : []dto.ProviderModelInfo {},
692+ },
693+ "deepseek" : {
694+ Sort : 2 ,
695+ BaseURL : "https://api.deepseek.com/v1" ,
696+ Models : []dto.ProviderModelInfo {
697+ {ID : "deepseek/deepseek-chat" , Name : "DeepSeek Chat" },
698+ {ID : "deepseek/deepseek-reasoner" , Name : "DeepSeek Reasoner" },
699+ {ID : "deepseek/deepseek-r1:1.5b" , Name : "DeepSeek R1 1.5B" },
700+ },
701+ },
682702 "openai" : {
703+ Sort : 3 ,
683704 BaseURL : "https://api.openai.com/v1" ,
684705 Models : []dto.ProviderModelInfo {
685706 {ID : "openai/codex-mini-latest" , Name : "Codex Mini" },
@@ -691,6 +712,7 @@ func providerDefinitions() map[string]providerDefinition {
691712 },
692713 },
693714 "anthropic" : {
715+ Sort : 4 ,
694716 BaseURL : "https://api.anthropic.com" ,
695717 Models : []dto.ProviderModelInfo {
696718 {ID : "anthropic/claude-3-haiku-20240307" , Name : "Claude 3 Haiku" },
@@ -701,6 +723,7 @@ func providerDefinitions() map[string]providerDefinition {
701723 },
702724 },
703725 "gemini" : {
726+ Sort : 5 ,
704727 BaseURL : "https://generativelanguage.googleapis.com" ,
705728 Models : []dto.ProviderModelInfo {
706729 {ID : "google/gemini-1.5-flash" , Name : "Gemini 1.5 Flash" },
@@ -712,23 +735,12 @@ func providerDefinitions() map[string]providerDefinition {
712735 },
713736 },
714737 "minimax" : {
738+ Sort : 6 ,
715739 BaseURL : "https://api.minimax.chat/v1" ,
716740 Models : []dto.ProviderModelInfo {
717741 {ID : "minimax/Minimax-M2.1" , Name : "Minimax M2.1" },
718742 },
719743 },
720- "deepseek" : {
721- BaseURL : "https://api.deepseek.com/v1" ,
722- Models : []dto.ProviderModelInfo {
723- {ID : "deepseek/deepseek-chat" , Name : "DeepSeek Chat" },
724- {ID : "deepseek/deepseek-reasoner" , Name : "DeepSeek Reasoner" },
725- {ID : "deepseek/deepseek-r1:1.5b" , Name : "DeepSeek R1 1.5B" },
726- },
727- },
728- "ollama" : {
729- BaseURL : "" ,
730- Models : []dto.ProviderModelInfo {},
731- },
732744 }
733745}
734746
0 commit comments