mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2026-10-09 16:00:29 +00:00
Compare commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
4c396d68ca | ||
|
|
ab0fe4286a |
@@ -42,6 +42,7 @@ frontend/components.d.ts
|
||||
frontend/src/xpack
|
||||
frontend/src/xpack-ee
|
||||
agent/xpack
|
||||
agent/xpack-ee
|
||||
core/xpack
|
||||
core/xpack-ee
|
||||
|
||||
|
||||
@@ -77,11 +77,15 @@ func writeHermesConfig(confDir string, account *model.AgentAccount, modelName st
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
cfg["model"] = map[string]interface{}{
|
||||
model := map[string]interface{}{
|
||||
"default": resolveHermesModel(account.Provider, provider, modelName),
|
||||
"provider": provider,
|
||||
"base_url": account.BaseURL,
|
||||
}
|
||||
if provider == "custom" && account.APIKey != "" {
|
||||
model["api_key"] = "${CUSTOM_API_KEY}"
|
||||
}
|
||||
cfg["model"] = model
|
||||
cfg["terminal"] = map[string]interface{}{
|
||||
"backend": "local",
|
||||
"cwd": hermesWorkspaceDir,
|
||||
@@ -94,7 +98,7 @@ func writeHermesConfig(confDir string, account *model.AgentAccount, modelName st
|
||||
if err := writeHermesConfigMap(configPath, cfg); err != nil {
|
||||
return err
|
||||
}
|
||||
return writeHermesEnv(path.Join(confDir, ".env"), resolveHermesEnvEntries(account))
|
||||
return writeHermesModelEnv(path.Join(confDir, ".env"), account)
|
||||
}
|
||||
|
||||
func prepareHermesInstallFiles(appInstall *model.AppInstall, account *model.AgentAccount, modelName string) error {
|
||||
@@ -458,6 +462,14 @@ func resolveHermesEnvEntries(account *model.AgentAccount) []hermesEnvEntry {
|
||||
if account == nil {
|
||||
return nil
|
||||
}
|
||||
if resolveHermesProvider(account.Provider) == "custom" {
|
||||
if account.APIKey == "" {
|
||||
return nil
|
||||
}
|
||||
return []hermesEnvEntry{
|
||||
{Key: "CUSTOM_API_KEY", Value: account.APIKey},
|
||||
}
|
||||
}
|
||||
apiKey := account.APIKey
|
||||
baseURL := account.BaseURL
|
||||
entries := make([]hermesEnvEntry, 0, 4)
|
||||
@@ -519,6 +531,73 @@ func resolveHermesEnvEntries(account *model.AgentAccount) []hermesEnvEntry {
|
||||
return entries
|
||||
}
|
||||
|
||||
func writeHermesModelEnv(envPath string, account *model.AgentAccount) error {
|
||||
envMap, err := readHermesEnvMap(envPath)
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
for _, key := range hermesManagedModelEnvKeys() {
|
||||
delete(envMap, key)
|
||||
}
|
||||
entries := resolveHermesEnvEntries(account)
|
||||
order := make([]string, 0, len(entries))
|
||||
for _, entry := range entries {
|
||||
if entry.Key == "" || entry.Value == "" {
|
||||
continue
|
||||
}
|
||||
envMap[entry.Key] = entry.Value
|
||||
order = append(order, entry.Key)
|
||||
}
|
||||
return writeHermesEnvMap(envPath, envMap, order)
|
||||
}
|
||||
|
||||
func hermesManagedModelEnvKeys() []string {
|
||||
keys := []string{
|
||||
"OPENROUTER_API_KEY",
|
||||
"OPENROUTER_BASE_URL",
|
||||
"ANTHROPIC_API_KEY",
|
||||
"GOOGLE_API_KEY",
|
||||
"GEMINI_API_KEY",
|
||||
"GEMINI_BASE_URL",
|
||||
"GLM_API_KEY",
|
||||
"ZAI_API_KEY",
|
||||
"Z_AI_API_KEY",
|
||||
"GLM_BASE_URL",
|
||||
"KIMI_API_KEY",
|
||||
"KIMI_CN_API_KEY",
|
||||
"KIMI_BASE_URL",
|
||||
"MINIMAX_CN_API_KEY",
|
||||
"MINIMAX_CN_BASE_URL",
|
||||
"XIAOMI_API_KEY",
|
||||
"XIAOMI_BASE_URL",
|
||||
"DEEPSEEK_API_KEY",
|
||||
"DEEPSEEK_BASE_URL",
|
||||
"DASHSCOPE_API_KEY",
|
||||
"DASHSCOPE_BASE_URL",
|
||||
"OPENAI_API_KEY",
|
||||
"OPENAI_BASE_URL",
|
||||
}
|
||||
seen := make(map[string]struct{}, len(keys))
|
||||
result := make([]string, 0, len(keys))
|
||||
appendKey := func(key string) {
|
||||
if key == "" {
|
||||
return
|
||||
}
|
||||
if _, ok := seen[key]; ok {
|
||||
return
|
||||
}
|
||||
seen[key] = struct{}{}
|
||||
result = append(result, key)
|
||||
}
|
||||
for _, key := range keys {
|
||||
appendKey(key)
|
||||
}
|
||||
for _, meta := range providercatalog.All() {
|
||||
appendKey(meta.EnvKey)
|
||||
}
|
||||
return result
|
||||
}
|
||||
|
||||
func writeHermesEnv(envPath string, entries []hermesEnvEntry) error {
|
||||
envMap, err := readHermesEnvMap(envPath)
|
||||
if err != nil {
|
||||
|
||||
@@ -4025,12 +4025,12 @@ const message = {
|
||||
setDefaultHelper: 'All panel settings will be restored to default. Continue?',
|
||||
logoGroup: 'Logo',
|
||||
imageGroup: 'Image',
|
||||
loginImage: 'Login Page Image',
|
||||
loginImage: 'Image',
|
||||
loginImageHelper: 'Displayed on the login page (recommended image size: 500*416px)',
|
||||
loginBgType: 'Login Page Background Type',
|
||||
loginBgImage: 'Login Page Background Image',
|
||||
loginBgType: 'Background Type',
|
||||
loginBgImage: 'Background Image',
|
||||
loginBgImageHelper: 'Displayed as background image on the login page (recommended image size: 1920*1080px)',
|
||||
loginBgColor: 'Login Page Background Color',
|
||||
loginBgColor: 'Background Color',
|
||||
loginBgColorHelper: 'Displayed as background color on the login page',
|
||||
image: 'Image',
|
||||
bgColor: 'Background Color',
|
||||
|
||||
@@ -4056,12 +4056,12 @@ const message = {
|
||||
setDefaultHelper: 'Todas las configuraciones se restaurarán a valores por defecto. ¿Continuar?',
|
||||
logoGroup: 'Logo',
|
||||
imageGroup: 'Imagen',
|
||||
loginImage: 'Imagen de login',
|
||||
loginImage: 'Imagen',
|
||||
loginImageHelper: 'Se muestra en la página de login (tamaño recomendado: 500*416px)',
|
||||
loginBgType: 'Tipo de fondo de login',
|
||||
loginBgImage: 'Imagen de fondo de login',
|
||||
loginBgType: 'Tipo de fondo',
|
||||
loginBgImage: 'Imagen de fondo',
|
||||
loginBgImageHelper: 'Se muestra como fondo de la página de login (tamaño recomendado: 1920*1080px)',
|
||||
loginBgColor: 'Color de fondo de login',
|
||||
loginBgColor: 'Color de fondo',
|
||||
loginBgColorHelper: 'Se muestra como color de fondo en la página de login',
|
||||
image: 'Imagen',
|
||||
bgColor: 'Color de fondo',
|
||||
|
||||
@@ -4046,12 +4046,12 @@ const message = {
|
||||
setDefaultHelper: 'すべてのパネル設定がデフォルトに戻されます。続けますか?',
|
||||
logoGroup: 'ロゴ',
|
||||
imageGroup: '画像',
|
||||
loginImage: 'ログインページの画像',
|
||||
loginImage: '画像',
|
||||
loginImageHelper: 'ログインページに表示されます(推奨画像サイズ:500×416px)',
|
||||
loginBgType: 'ログインページ背景タイプ',
|
||||
loginBgImage: 'ログインページ背景画像',
|
||||
loginBgType: '背景タイプ',
|
||||
loginBgImage: '背景画像',
|
||||
loginBgImageHelper: 'ログインページの背景画像として表示されます(推奨画像サイズ:1920×1080px)',
|
||||
loginBgColor: 'ログインページ背景色',
|
||||
loginBgColor: '背景色',
|
||||
loginBgColorHelper: 'ログインページの背景色として表示されます',
|
||||
image: '画像',
|
||||
bgColor: '背景色',
|
||||
|
||||
@@ -3957,12 +3957,12 @@ const message = {
|
||||
setDefaultHelper: '모든 패널 설정이 기본값으로 복원됩니다. 계속하시겠습니까?',
|
||||
logoGroup: '로고',
|
||||
imageGroup: '이미지',
|
||||
loginImage: '로그인 페이지 이미지',
|
||||
loginImage: '이미지',
|
||||
loginImageHelper: '로그인 페이지에 표시됩니다 (권장 크기: 500*416px)',
|
||||
loginBgType: '로그인 배경 유형',
|
||||
loginBgImage: '로그인 배경 이미지',
|
||||
loginBgType: '배경 유형',
|
||||
loginBgImage: '배경 이미지',
|
||||
loginBgImageHelper: '로그인 페이지의 배경 이미지로 표시됩니다 (권장 크기: 1920*1080px)',
|
||||
loginBgColor: '로그인 배경 색상',
|
||||
loginBgColor: '배경 색상',
|
||||
loginBgColorHelper: '로그인 페이지의 배경 색상으로 표시됩니다',
|
||||
image: '이미지',
|
||||
bgColor: '배경 색상',
|
||||
|
||||
@@ -4106,13 +4106,13 @@ const message = {
|
||||
setDefaultHelper: 'Semua tetapan panel akan dikembalikan ke asal. Adakah anda ingin meneruskan?',
|
||||
logoGroup: 'Logo',
|
||||
imageGroup: 'Imej',
|
||||
loginImage: 'Imej Halaman Log Masuk',
|
||||
loginImage: 'Imej',
|
||||
loginImageHelper: 'Akan dipaparkan di halaman log masuk (Saiz disyorkan: 500*416px)',
|
||||
loginBgType: 'Jenis Latar Halaman Log Masuk',
|
||||
loginBgImage: 'Imej Latar Halaman Log Masuk',
|
||||
loginBgType: 'Jenis Latar',
|
||||
loginBgImage: 'Imej Latar',
|
||||
loginBgImageHelper:
|
||||
'Akan dipaparkan sebagai latar belakang halaman log masuk (Saiz disyorkan: 1920*1080px)',
|
||||
loginBgColor: 'Warna Latar Halaman Log Masuk',
|
||||
loginBgColor: 'Warna Latar',
|
||||
loginBgColorHelper: 'Akan dipaparkan sebagai warna latar belakang halaman log masuk',
|
||||
image: 'Imej',
|
||||
bgColor: 'Warna Latar',
|
||||
|
||||
@@ -4250,13 +4250,13 @@ const message = {
|
||||
setDefaultHelper: 'Todas as configurações do painel serão restauradas para o padrão. Deseja continuar?',
|
||||
logoGroup: 'Logo',
|
||||
imageGroup: 'Imagem',
|
||||
loginImage: 'Imagem da Página de Login',
|
||||
loginImage: 'Imagem',
|
||||
loginImageHelper: 'Será exibida na página de login (Tamanho recomendado: 500x416px)',
|
||||
loginBgType: 'Tipo de Fundo da Página de Login',
|
||||
loginBgImage: 'Imagem de Fundo da Página de Login',
|
||||
loginBgType: 'Tipo de Fundo',
|
||||
loginBgImage: 'Imagem de Fundo',
|
||||
loginBgImageHelper:
|
||||
'Será exibida como imagem de fundo na página de login (Tamanho recomendado: 1920x1080px)',
|
||||
loginBgColor: 'Cor de Fundo da Página de Login',
|
||||
loginBgColor: 'Cor de Fundo',
|
||||
loginBgColorHelper: 'Será exibida como cor de fundo na página de login',
|
||||
image: 'Imagem',
|
||||
bgColor: 'Cor de Fundo',
|
||||
|
||||
@@ -4100,12 +4100,12 @@ const message = {
|
||||
setDefaultHelper: 'Все настройки панели будут восстановлены по умолчанию. Вы хотите продолжить?',
|
||||
logoGroup: 'Логотип',
|
||||
imageGroup: 'Изображение',
|
||||
loginImage: 'Изображение страницы входа',
|
||||
loginImage: 'Изображение',
|
||||
loginImageHelper: 'Будет отображаться на странице входа (Рекомендуемый размер: 500x416px)',
|
||||
loginBgType: 'Тип фона страницы входа',
|
||||
loginBgImage: 'Фоновое изображение страницы входа',
|
||||
loginBgType: 'Тип фона',
|
||||
loginBgImage: 'Фоновое изображение',
|
||||
loginBgImageHelper: 'Будет отображаться как фон страницы входа (Рекомендуемый размер: 1920x1080px)',
|
||||
loginBgColor: 'Цвет фона страницы входа',
|
||||
loginBgColor: 'Цвет фона',
|
||||
loginBgColorHelper: 'Будет отображаться как цвет фона страницы входа',
|
||||
image: 'Изображение',
|
||||
bgColor: 'Цвет фона',
|
||||
|
||||
@@ -4098,13 +4098,13 @@ const message = {
|
||||
setDefaultHelper: 'Tüm panel ayarları varsayılana geri yüklenecek. Devam etmek istiyor musunuz?',
|
||||
logoGroup: 'Logo',
|
||||
imageGroup: 'Görüntü',
|
||||
loginImage: 'Giriş Sayfası Görüntüsü',
|
||||
loginImage: 'Görüntü',
|
||||
loginImageHelper: 'Giriş sayfasında gösterilir (önerilen görüntü boyutu: 500*416px)',
|
||||
loginBgType: 'Giriş Sayfası Arka Plan Türü',
|
||||
loginBgImage: 'Giriş Sayfası Arka Plan Görüntüsü',
|
||||
loginBgType: 'Arka Plan Türü',
|
||||
loginBgImage: 'Arka Plan Görüntüsü',
|
||||
loginBgImageHelper:
|
||||
'Giriş sayfasında arka plan görüntüsü olarak gösterilir (önerilen görüntü boyutu: 1920*1080px)',
|
||||
loginBgColor: 'Giriş Sayfası Arka Plan Rengi',
|
||||
loginBgColor: 'Arka Plan Rengi',
|
||||
loginBgColorHelper: 'Giriş sayfasında arka plan rengi olarak gösterilir',
|
||||
image: 'Görüntü',
|
||||
bgColor: 'Arka Plan Rengi',
|
||||
|
||||
@@ -3723,12 +3723,12 @@ const message = {
|
||||
setDefaultHelper: '即將復原所有介面設定到初始狀態,是否繼續?',
|
||||
logoGroup: 'Logo',
|
||||
imageGroup: '圖片',
|
||||
loginImage: '登入頁圖片',
|
||||
loginImage: '圖片',
|
||||
loginImageHelper: '將會顯示在登入頁面(建議圖片大小為:500*416px)',
|
||||
loginBgType: '登入頁背景類型',
|
||||
loginBgImage: '登入頁背景圖片',
|
||||
loginBgType: '背景類型',
|
||||
loginBgImage: '背景圖片',
|
||||
loginBgImageHelper: '將會顯示在登入頁面背景圖片(建議圖片大小為:1920*1080px)',
|
||||
loginBgColor: '登入頁背景顏色',
|
||||
loginBgColor: '背景顏色',
|
||||
loginBgColorHelper: '將會顯示在登入頁面背景顏色',
|
||||
image: '圖片',
|
||||
bgColor: '背景色',
|
||||
|
||||
@@ -3710,12 +3710,12 @@ const message = {
|
||||
setHelper: '即将保存当前界面设置内容,是否继续?',
|
||||
setDefaultHelper: '即将恢复所有界面设置到初始状态,是否继续?',
|
||||
logoGroup: 'Logo',
|
||||
loginImage: '登录页图片',
|
||||
loginImage: '图片',
|
||||
loginImageHelper: '将会显示在登录页面(建议图片大小为: 500*416px)',
|
||||
loginBgType: '登录页背景类型',
|
||||
loginBgImage: '登录页背景图片',
|
||||
loginBgType: '背景类型',
|
||||
loginBgImage: '背景图片',
|
||||
loginBgImageHelper: '将会显示在登录页面背景图片(建议图片大小为: 1920*1080px)',
|
||||
loginBgColor: '登录页背景颜色',
|
||||
loginBgColor: '背景颜色',
|
||||
image: '图片',
|
||||
bgColor: '背景色',
|
||||
loginGroup: '登录页',
|
||||
|
||||
@@ -109,7 +109,7 @@
|
||||
</div>
|
||||
</div>
|
||||
</el-col>
|
||||
<el-col :span="1" class="h-app-side-col">
|
||||
<el-col :span="3" class="h-app-side-col">
|
||||
<el-button
|
||||
class="h-app-button"
|
||||
type="primary"
|
||||
@@ -293,8 +293,7 @@ defineExpose({
|
||||
.h-app-side-col {
|
||||
align-items: center;
|
||||
min-height: 58px;
|
||||
justify-content: flex-start;
|
||||
margin-left: -2px;
|
||||
justify-content: flex-end;
|
||||
}
|
||||
|
||||
.h-app-main-col {
|
||||
|
||||
Reference in New Issue
Block a user