mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2026-09-22 16:00:51 +00:00
chore: Modify model account prompt information (#11815)
This commit is contained in:
@@ -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"`
|
||||
|
||||
+24
-12
@@ -8,6 +8,7 @@ import (
|
||||
"fmt"
|
||||
"net/http"
|
||||
"path"
|
||||
"sort"
|
||||
"strconv"
|
||||
"strings"
|
||||
"time"
|
||||
@@ -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
|
||||
}
|
||||
|
||||
@@ -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"},
|
||||
@@ -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"},
|
||||
@@ -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"},
|
||||
@@ -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{},
|
||||
},
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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},
|
||||
|
||||
@@ -680,17 +680,12 @@ 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',
|
||||
@@ -698,7 +693,6 @@ const message = {
|
||||
apiKey: 'API Key',
|
||||
baseUrl: 'Base URL',
|
||||
token: 'Token',
|
||||
modelName: 'Model Name',
|
||||
manualModel: 'Manual input',
|
||||
verified: 'Verified',
|
||||
},
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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: 'モデル',
|
||||
|
||||
@@ -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: '모델',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -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',
|
||||
|
||||
@@ -667,30 +667,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: 'Модель',
|
||||
|
||||
@@ -681,30 +681,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: 'Mevcut bir hesabı seçin veya yeni bir tane ekleyin.',
|
||||
accountCount: '{0} hesap',
|
||||
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: 'Ajanlar',
|
||||
agent: 'Ajan',
|
||||
createAgent: 'Ajan oluştur',
|
||||
createModelAccount: 'Model hesabı oluştur',
|
||||
account: 'Model hesabı',
|
||||
noAccountHint: 'Mevcut bir model hesabını seçin veya yeni bir tane ekleyin.',
|
||||
accountCount: '{0} model hesabı',
|
||||
syncAgents: 'İlişkili ajanları senkronize et',
|
||||
syncAgentsHelper: 'Bu model hesabını kullanan ajanlar için openclaw.json dosyasını güncelleyin',
|
||||
appVersion: 'Uygulama sürümü',
|
||||
webuiPort: 'WebUI portu',
|
||||
bridgePort: 'Bridge portu',
|
||||
provider: 'Model sağlayıcı',
|
||||
apiKey: 'API anahtarı',
|
||||
baseUrl: 'Temel URL',
|
||||
token: 'Token',
|
||||
modelName: 'Model Name',
|
||||
manualModel: 'Manual input',
|
||||
verified: 'Verified',
|
||||
manualModel: 'Manuel giriş',
|
||||
verified: 'Doğrulandı',
|
||||
},
|
||||
model: {
|
||||
model: 'Model',
|
||||
|
||||
@@ -649,30 +649,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',
|
||||
agents: '智能體',
|
||||
agent: '智能體',
|
||||
createAgent: '建立智能體',
|
||||
createModelAccount: '建立模型帳號',
|
||||
account: '模型帳號',
|
||||
noAccountHint: '選擇已有模型帳號,或直接建立',
|
||||
accountCount: '模型帳號 {0} 個',
|
||||
syncAgents: '同步關聯智能體',
|
||||
syncAgentsHelper: '更新使用該模型帳號的智能體 openclaw.json',
|
||||
appVersion: '應用版本',
|
||||
webuiPort: 'WebUI 埠',
|
||||
bridgePort: 'Bridge 埠',
|
||||
provider: '模型供應商',
|
||||
apiKey: 'API Key',
|
||||
baseUrl: 'Base URL',
|
||||
token: 'Token',
|
||||
modelName: 'Model Name',
|
||||
manualModel: 'Manual input',
|
||||
verified: 'Verified',
|
||||
manualModel: '手動輸入模型',
|
||||
verified: '驗證狀態',
|
||||
},
|
||||
model: {
|
||||
model: '模型',
|
||||
|
||||
@@ -654,16 +654,12 @@ const message = {
|
||||
agents: '智能体',
|
||||
agent: '智能体',
|
||||
createAgent: '创建智能体',
|
||||
createModel: '创建模型',
|
||||
agentList: '智能体列表',
|
||||
modelList: '模型列表',
|
||||
account: '账号',
|
||||
accountName: '账号名称',
|
||||
accountList: '账号列表',
|
||||
noAccountHint: '选择已有账号,或者直接添加。',
|
||||
accountCount: '账号 {0} 个',
|
||||
createModelAccount: '创建模型账号',
|
||||
account: '模型账号',
|
||||
noAccountHint: '选择已有模型账号,或者直接创建',
|
||||
accountCount: '模型账号 {0} 个',
|
||||
syncAgents: '同步关联智能体',
|
||||
syncAgentsHelper: '更新使用该账号的智能体 openclaw.json',
|
||||
syncAgentsHelper: '更新使用该模型账号的智能体 openclaw.json',
|
||||
appVersion: '应用版本',
|
||||
webuiPort: 'WebUI 端口',
|
||||
bridgePort: 'Bridge 端口',
|
||||
@@ -671,7 +667,6 @@ const message = {
|
||||
apiKey: 'API Key',
|
||||
baseUrl: 'Base URL',
|
||||
token: 'Token',
|
||||
modelName: '模型名称',
|
||||
manualModel: '手动输入模型',
|
||||
verified: '验证状态',
|
||||
},
|
||||
|
||||
@@ -52,17 +52,17 @@
|
||||
<el-select v-model="form.accountId" @change="handleAccountChange">
|
||||
<el-option v-for="item in accountOptions" :key="item.id" :label="item.name" :value="item.id" />
|
||||
</el-select>
|
||||
<span v-if="accountOptions.length === 0" class="input-help">
|
||||
<span class="input-help">
|
||||
{{ $t('aiTools.agents.noAccountHint') }}
|
||||
<el-button type="primary" link class="inline-link" @click="openAccountCreate">
|
||||
{{ $t('commons.button.add') }}
|
||||
{{ $t('aiTools.agents.createModelAccount') }}
|
||||
</el-button>
|
||||
</span>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('aiTools.agents.apiKey')" prop="apiKey">
|
||||
<el-form-item :label="$t('aiTools.agents.apiKey')" v-if="form.accountId" prop="apiKey">
|
||||
<el-input v-model="form.apiKey" type="password" show-password readonly />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('aiTools.agents.baseUrl')" prop="baseURL">
|
||||
<el-form-item :label="$t('aiTools.agents.baseUrl')" v-if="form.accountId" prop="baseURL">
|
||||
<el-input v-model="form.baseURL" readonly />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('aiTools.agents.token')">
|
||||
@@ -117,7 +117,7 @@ const form = reactive({
|
||||
appVersion: '',
|
||||
webUIPort: 18789,
|
||||
bridgePort: 18790,
|
||||
provider: 'deepseek',
|
||||
provider: 'ollama',
|
||||
accountId: undefined as unknown as number,
|
||||
model: '',
|
||||
apiKey: '',
|
||||
|
||||
@@ -2,12 +2,7 @@
|
||||
<div>
|
||||
<RouterMenu />
|
||||
<DockerStatus v-model:isActive="isActive" v-model:isExist="isExist" />
|
||||
<LayoutContent
|
||||
v-loading="loading"
|
||||
v-if="isExist"
|
||||
:class="{ mask: !isActive }"
|
||||
:title="$t('aiTools.agents.agentList')"
|
||||
>
|
||||
<LayoutContent v-loading="loading" v-if="isExist" :class="{ mask: !isActive }">
|
||||
<template #leftToolBar>
|
||||
<el-button type="primary" @click="openCreate">{{ $t('aiTools.agents.createAgent') }}</el-button>
|
||||
</template>
|
||||
|
||||
@@ -14,12 +14,12 @@
|
||||
/>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('aiTools.agents.baseUrl')" prop="baseURL">
|
||||
<el-input v-model="form.baseURL" :disabled="form.provider !== 'ollama'" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('aiTools.agents.apiKey')" prop="apiKey">
|
||||
<el-input v-model="form.apiKey" type="password" show-password />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('aiTools.agents.baseUrl')" prop="baseURL">
|
||||
<el-input v-model="form.baseURL" :disabled="form.provider !== 'ollama'" />
|
||||
</el-form-item>
|
||||
<el-form-item :label="$t('website.remark')" prop="remark">
|
||||
<el-input v-model="form.remark" />
|
||||
</el-form-item>
|
||||
@@ -78,7 +78,7 @@ const form = reactive({
|
||||
});
|
||||
|
||||
const headerTitle = computed(() =>
|
||||
form.id ? i18n.global.t('commons.button.edit') : i18n.global.t('commons.button.add'),
|
||||
form.id ? i18n.global.t('commons.button.edit') : i18n.global.t('aiTools.agents.createModelAccount'),
|
||||
);
|
||||
|
||||
const rules = reactive({
|
||||
|
||||
@@ -1,9 +1,9 @@
|
||||
<template>
|
||||
<div>
|
||||
<RouterMenu />
|
||||
<LayoutContent :title="$t('aiTools.agents.accountList')">
|
||||
<LayoutContent>
|
||||
<template #leftToolBar>
|
||||
<el-button type="primary" @click="openCreate">{{ $t('commons.button.add') }}</el-button>
|
||||
<el-button type="primary" @click="openCreate">{{ $t('aiTools.agents.createModelAccount') }}</el-button>
|
||||
</template>
|
||||
<template #rightToolBar>
|
||||
<TableSearch v-model:searchName="searchName" @search="search" />
|
||||
|
||||
Reference in New Issue
Block a user