Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions agent/app/dto/agents.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,7 @@ type ProviderModelInfo struct {
}

type ProviderInfo struct {
Sort uint `json:"-"`
Provider string `json:"provider"`
BaseURL string `json:"baseUrl"`
Models []ProviderModelInfo `json:"models"`
Expand Down
36 changes: 24 additions & 12 deletions agent/app/service/agents.go
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,7 @@ import (
"fmt"
"net/http"
"path"
"sort"
"strconv"
"strings"
"time"
Expand Down Expand Up @@ -205,11 +206,15 @@ func (a AgentService) GetProviders() ([]dto.ProviderInfo, error) {
providers := make([]dto.ProviderInfo, 0, len(definitions))
for key, def := range definitions {
providers = append(providers, dto.ProviderInfo{
Sort: def.Sort,
Provider: key,
BaseURL: def.BaseURL,
Models: def.Models,
})
}
sort.Slice(providers, func(i, j int) bool {
return providers[i].Sort < providers[j].Sort
})
return providers, nil
}

Expand Down Expand Up @@ -673,13 +678,29 @@ func providerEnvKey(provider string) string {
}

type providerDefinition struct {
Sort uint
BaseURL string
Models []dto.ProviderModelInfo
}

func providerDefinitions() map[string]providerDefinition {
return map[string]providerDefinition{
"ollama": {
Sort: 1,
BaseURL: "",
Models: []dto.ProviderModelInfo{},
},
"deepseek": {
Sort: 2,
BaseURL: "https://api.deepseek.com/v1",
Models: []dto.ProviderModelInfo{
{ID: "deepseek/deepseek-chat", Name: "DeepSeek Chat"},
{ID: "deepseek/deepseek-reasoner", Name: "DeepSeek Reasoner"},
{ID: "deepseek/deepseek-r1:1.5b", Name: "DeepSeek R1 1.5B"},
},
},
"openai": {
Sort: 3,
BaseURL: "https://api.openai.com/v1",
Models: []dto.ProviderModelInfo{
{ID: "openai/codex-mini-latest", Name: "Codex Mini"},
Expand All @@ -691,6 +712,7 @@ func providerDefinitions() map[string]providerDefinition {
},
},
"anthropic": {
Sort: 4,
BaseURL: "https://api.anthropic.com",
Models: []dto.ProviderModelInfo{
{ID: "anthropic/claude-3-haiku-20240307", Name: "Claude 3 Haiku"},
Expand All @@ -701,6 +723,7 @@ func providerDefinitions() map[string]providerDefinition {
},
},
"gemini": {
Sort: 5,
BaseURL: "https://generativelanguage.googleapis.com",
Models: []dto.ProviderModelInfo{
{ID: "google/gemini-1.5-flash", Name: "Gemini 1.5 Flash"},
Expand All @@ -712,23 +735,12 @@ func providerDefinitions() map[string]providerDefinition {
},
},
"minimax": {
Sort: 6,
BaseURL: "https://api.minimax.chat/v1",
Models: []dto.ProviderModelInfo{
{ID: "minimax/Minimax-M2.1", Name: "Minimax M2.1"},
},
},
"deepseek": {
BaseURL: "https://api.deepseek.com/v1",
Models: []dto.ProviderModelInfo{
{ID: "deepseek/deepseek-chat", Name: "DeepSeek Chat"},
{ID: "deepseek/deepseek-reasoner", Name: "DeepSeek Reasoner"},
{ID: "deepseek/deepseek-r1:1.5b", Name: "DeepSeek R1 1.5B"},
},
},
"ollama": {
BaseURL: "",
Models: []dto.ProviderModelInfo{},
},
}
}

Expand Down
4 changes: 2 additions & 2 deletions core/init/migration/helper/menu.go
Original file line number Diff line number Diff line change
Expand Up @@ -14,14 +14,14 @@ func LoadMenus() string {
item := []dto.ShowMenu{
{ID: "1", Disabled: true, Title: "menu.home", IsShow: true, Label: "Home-Menu", Path: "/", Sort: 100},
{ID: "2", Disabled: true, Title: "menu.apps", IsShow: true, Label: "App-Menu", Path: "/apps/all", Sort: 200},
{ID: "3", Disabled: false, Title: "menu.aiTools", IsShow: true, Label: "AI-Menu", Path: "/ai/model", Sort: 400,
{ID: "3", Disabled: false, Title: "menu.aiTools", IsShow: true, Label: "AI-Menu", Path: "/ai/model", Sort: 300,
Children: []dto.ShowMenu{
{ID: "44", Disabled: false, Title: "aiTools.agents.agents", IsShow: true, Label: "Agents", Path: "/ai/agents/agent", Sort: 50},
{ID: "41", Disabled: false, Title: "aiTools.model.model", IsShow: true, Label: "OllamaModel", Path: "/ai/model", Sort: 100},
{ID: "42", Disabled: false, Title: "menu.mcp", IsShow: true, Label: "MCPServer", Path: "/ai/mcp", Sort: 200},
{ID: "43", Disabled: false, Title: "aiTools.gpu.gpu", IsShow: true, Label: "GPU", Path: "/ai/gpu", Sort: 300},
}},
{ID: "4", Disabled: false, Title: "menu.website", IsShow: true, Label: "Website-Menu", Path: "/websites", Sort: 300,
{ID: "4", Disabled: false, Title: "menu.website", IsShow: true, Label: "Website-Menu", Path: "/websites", Sort: 400,
Children: []dto.ShowMenu{
{ID: "31", Disabled: false, Title: "menu.website", IsShow: true, Label: "Website", Path: "/websites", Sort: 100},
{ID: "32", Disabled: false, Title: "menu.ssl", IsShow: true, Label: "SSL", Path: "/websites/ssl", Sort: 200},
Expand Down
16 changes: 5 additions & 11 deletions frontend/src/lang/modules/en.ts
Original file line number Diff line number Diff line change
Expand Up @@ -680,25 +680,19 @@ const message = {
agents: 'Agents',
agent: 'Agent',
createAgent: 'Create Agent',
createModel: 'Create Model',
agentList: 'Agent List',
modelList: 'Model List',
account: 'Account',
accountName: 'Account Name',
accountList: 'Account List',
createAccount: 'Create Account',
noAccountHint: 'Choose an existing account or add a new one.',
accountCount: '{0} accounts',
createModelAccount: 'Create model account',
account: 'Model Account',
noAccountHint: 'Choose an existing model account or add a new one.',
accountCount: '{0} model accounts',
syncAgents: 'Sync related agents',
syncAgentsHelper: 'Update openclaw.json for agents using this account',
syncAgentsHelper: 'Update openclaw.json for agents using this model account',
appVersion: 'App Version',
webuiPort: 'WebUI Port',
bridgePort: 'Bridge Port',
provider: 'Provider',
apiKey: 'API Key',
baseUrl: 'Base URL',
token: 'Token',
modelName: 'Model Name',
manualModel: 'Manual input',
verified: 'Verified',
},
Expand Down
40 changes: 17 additions & 23 deletions frontend/src/lang/modules/es-es.ts
Original file line number Diff line number Diff line change
Expand Up @@ -673,30 +673,24 @@ const message = {
},
aiTools: {
agents: {
agents: 'Agents',
agent: 'Agent',
createAgent: 'Create Agent',
createModel: 'Create Model',
agentList: 'Agent List',
modelList: 'Model List',
account: 'Account',
accountName: 'Account Name',
accountList: 'Account List',
createAccount: 'Create Account',
noAccountHint: 'Selecciona una cuenta existente o agrega una nueva.',
accountCount: '{0} cuentas',
syncAgents: 'Sync related agents',
syncAgentsHelper: 'Update openclaw.json for agents using this account',
appVersion: 'App Version',
webuiPort: 'WebUI Port',
bridgePort: 'Bridge Port',
provider: 'Provider',
apiKey: 'API Key',
baseUrl: 'Base URL',
agents: 'Agentes',
agent: 'Agente',
createAgent: 'Crear agente',
createModelAccount: 'Crear cuenta de modelo',
account: 'Cuenta de modelo',
noAccountHint: 'Selecciona una cuenta de modelo existente o agrega una nueva.',
accountCount: '{0} cuentas de modelo',
syncAgents: 'Sincronizar agentes vinculados',
syncAgentsHelper: 'Actualiza openclaw.json para los agentes que usan esta cuenta de modelo',
appVersion: 'Versión de la app',
webuiPort: 'Puerto WebUI',
bridgePort: 'Puerto Bridge',
provider: 'Proveedor de modelos',
apiKey: 'Clave API',
baseUrl: 'URL base',
token: 'Token',
modelName: 'Model Name',
manualModel: 'Manual input',
verified: 'Verified',
manualModel: 'Entrada manual de modelo',
verified: 'Verificado',
},
model: {
model: 'Modelo',
Expand Down
42 changes: 18 additions & 24 deletions frontend/src/lang/modules/ja.ts
Original file line number Diff line number Diff line change
Expand Up @@ -662,30 +662,24 @@ const message = {
},
aiTools: {
agents: {
agents: 'Agents',
agent: 'Agent',
createAgent: 'Create Agent',
createModel: 'Create Model',
agentList: 'Agent List',
modelList: 'Model List',
account: 'Account',
accountName: 'Account Name',
accountList: 'Account List',
createAccount: 'Create Account',
noAccountHint: '既存のアカウントを選択するか、新規に追加してください。',
accountCount: 'アカウント {0} 件',
syncAgents: 'Sync related agents',
syncAgentsHelper: 'Update openclaw.json for agents using this account',
appVersion: 'App Version',
webuiPort: 'WebUI Port',
bridgePort: 'Bridge Port',
provider: 'Provider',
apiKey: 'API Key',
baseUrl: 'Base URL',
token: 'Token',
modelName: 'Model Name',
manualModel: 'Manual input',
verified: 'Verified',
agents: 'エージェント',
agent: 'エージェント',
createAgent: 'エージェントを作成',
createModelAccount: 'モデルアカウントを作成',
account: 'モデルアカウント',
noAccountHint: '既存のモデルアカウントを選択するか、新規に追加してください。',
accountCount: 'モデルアカウント {0} 件',
syncAgents: '関連エージェントを同期',
syncAgentsHelper: 'このモデルアカウントを使用するエージェントの openclaw.json を更新',
appVersion: 'アプリバージョン',
webuiPort: 'WebUI ポート',
bridgePort: 'Bridge ポート',
provider: 'モデルプロバイダー',
apiKey: 'API キー',
baseUrl: 'ベースURL',
token: 'トークン',
manualModel: '手動入力',
verified: '検証済み',
},
model: {
model: 'モデル',
Expand Down
42 changes: 18 additions & 24 deletions frontend/src/lang/modules/ko.ts
Original file line number Diff line number Diff line change
Expand Up @@ -659,30 +659,24 @@ const message = {
},
aiTools: {
agents: {
agents: 'Agents',
agent: 'Agent',
createAgent: 'Create Agent',
createModel: 'Create Model',
agentList: 'Agent List',
modelList: 'Model List',
account: 'Account',
accountName: 'Account Name',
accountList: 'Account List',
createAccount: 'Create Account',
noAccountHint: '기존 계정을 선택하거나 새로 추가하세요.',
accountCount: '계정 {0}개',
syncAgents: 'Sync related agents',
syncAgentsHelper: 'Update openclaw.json for agents using this account',
appVersion: 'App Version',
webuiPort: 'WebUI Port',
bridgePort: 'Bridge Port',
provider: 'Provider',
apiKey: 'API Key',
baseUrl: 'Base URL',
token: 'Token',
modelName: 'Model Name',
manualModel: 'Manual input',
verified: 'Verified',
agents: '에이전트',
agent: '에이전트',
createAgent: '에이전트 생성',
createModelAccount: '모델 계정 생성',
account: '모델 계정',
noAccountHint: '기존 모델 계정을 선택하거나 새로 추가하세요.',
accountCount: '모델 계정 {0}개',
syncAgents: '관련 에이전트 동기화',
syncAgentsHelper: '이 모델 계정을 사용하는 에이전트의 openclaw.json 업데이트',
appVersion: '앱 버전',
webuiPort: 'WebUI 포트',
bridgePort: 'Bridge 포트',
provider: '모델 제공자',
apiKey: 'API 키',
baseUrl: '기본 URL',
token: '토큰',
manualModel: '수동 입력',
verified: '검증됨',
},
model: {
model: '모델',
Expand Down
40 changes: 17 additions & 23 deletions frontend/src/lang/modules/ms.ts
Original file line number Diff line number Diff line change
Expand Up @@ -674,30 +674,24 @@ const message = {
},
aiTools: {
agents: {
agents: 'Agents',
agent: 'Agent',
createAgent: 'Create Agent',
createModel: 'Create Model',
agentList: 'Agent List',
modelList: 'Model List',
account: 'Account',
accountName: 'Account Name',
accountList: 'Account List',
createAccount: 'Create Account',
noAccountHint: 'Pilih akaun sedia ada atau tambah yang baharu.',
accountCount: 'Akaun {0}',
syncAgents: 'Sync related agents',
syncAgentsHelper: 'Update openclaw.json for agents using this account',
appVersion: 'App Version',
webuiPort: 'WebUI Port',
bridgePort: 'Bridge Port',
provider: 'Provider',
apiKey: 'API Key',
baseUrl: 'Base URL',
agents: 'Agen',
agent: 'Agen',
createAgent: 'Cipta agen',
createModelAccount: 'Cipta akaun model',
account: 'Akaun model',
noAccountHint: 'Pilih akaun model sedia ada atau tambah yang baharu.',
accountCount: 'Akaun model {0}',
syncAgents: 'Segerakkan agen berkaitan',
syncAgentsHelper: 'Kemas kini openclaw.json untuk agen yang menggunakan akaun model ini',
appVersion: 'Versi aplikasi',
webuiPort: 'Port WebUI',
bridgePort: 'Port Bridge',
provider: 'Penyedia model',
apiKey: 'Kunci API',
baseUrl: 'URL asas',
token: 'Token',
modelName: 'Model Name',
manualModel: 'Manual input',
verified: 'Verified',
manualModel: 'Input manual',
verified: 'Disahkan',
},
model: {
model: 'Model',
Expand Down
40 changes: 17 additions & 23 deletions frontend/src/lang/modules/pt-br.ts
Original file line number Diff line number Diff line change
Expand Up @@ -671,30 +671,24 @@ const message = {
},
aiTools: {
agents: {
agents: 'Agents',
agent: 'Agent',
createAgent: 'Create Agent',
createModel: 'Create Model',
agentList: 'Agent List',
modelList: 'Model List',
account: 'Account',
accountName: 'Account Name',
accountList: 'Account List',
createAccount: 'Create Account',
noAccountHint: 'Selecione uma conta existente ou adicione uma nova.',
accountCount: '{0} contas',
syncAgents: 'Sync related agents',
syncAgentsHelper: 'Update openclaw.json for agents using this account',
appVersion: 'App Version',
webuiPort: 'WebUI Port',
bridgePort: 'Bridge Port',
provider: 'Provider',
apiKey: 'API Key',
baseUrl: 'Base URL',
agents: 'Agentes',
agent: 'Agente',
createAgent: 'Criar agente',
createModelAccount: 'Criar conta de modelo',
account: 'Conta de modelo',
noAccountHint: 'Selecione uma conta de modelo existente ou adicione uma nova.',
accountCount: '{0} contas de modelo',
syncAgents: 'Sincronizar agentes vinculados',
syncAgentsHelper: 'Atualize o openclaw.json para agentes que usam esta conta de modelo',
appVersion: 'Versão do app',
webuiPort: 'Porta WebUI',
bridgePort: 'Porta Bridge',
provider: 'Provedor de modelos',
apiKey: 'Chave API',
baseUrl: 'URL base',
token: 'Token',
modelName: 'Model Name',
manualModel: 'Manual input',
verified: 'Verified',
manualModel: 'Entrada manual',
verified: 'Verificado',
},
model: {
model: 'Modelo',
Expand Down
Loading
Loading