fix: 调整gemini-api BaseApi后缀以适配更多端点

This commit is contained in:
shaw
2025-11-29 21:30:28 +08:00
parent 876b126ce0
commit dfee7be944
3 changed files with 121 additions and 21 deletions

View File

@@ -1524,24 +1524,32 @@
<input
v-model="form.baseUrl"
class="form-input w-full border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-200 dark:placeholder-gray-400"
placeholder="https://generativelanguage.googleapis.com"
:class="{ 'border-red-500 dark:border-red-400': errors.baseUrl }"
placeholder="https://generativelanguage.googleapis.com/v1beta/models"
required
type="url"
/>
<p v-if="errors.baseUrl" class="mt-1 text-xs text-red-500 dark:text-red-400">
{{ errors.baseUrl }}
</p>
<p class="mt-1 text-xs text-gray-500 dark:text-gray-400">
填写 API 基础地址(可包含路径前缀),系统会自动拼接
填写 API 基础地址,必须以
<code class="rounded bg-gray-100 px-1 dark:bg-gray-600">/models</code>
结尾。系统会自动拼接
<code class="rounded bg-gray-100 px-1 dark:bg-gray-600"
>/v1beta/models/{model}:generateContent</code
>/{model}:generateContent</code
>
</p>
<p class="mt-0.5 text-xs text-gray-400 dark:text-gray-500">
官方:
<code class="rounded bg-gray-100 px-1 dark:bg-gray-600"
>https://generativelanguage.googleapis.com</code
>https://generativelanguage.googleapis.com/v1beta/models</code
>
| 上游为 CRS:
</p>
<p class="mt-0.5 text-xs text-gray-400 dark:text-gray-500">
上游为 CRS:
<code class="rounded bg-gray-100 px-1 dark:bg-gray-600"
>https://your-crs.com/gemini</code
>https://your-crs.com/gemini/v1beta/models</code
>
</p>
</div>
@@ -3025,23 +3033,31 @@
<input
v-model="form.baseUrl"
class="form-input w-full border-gray-300 dark:border-gray-600 dark:bg-gray-700 dark:text-gray-200"
placeholder="https://generativelanguage.googleapis.com"
:class="{ 'border-red-500 dark:border-red-400': errors.baseUrl }"
placeholder="https://generativelanguage.googleapis.com/v1beta/models"
type="url"
/>
<p v-if="errors.baseUrl" class="mt-1 text-xs text-red-500 dark:text-red-400">
{{ errors.baseUrl }}
</p>
<p class="mt-1 text-xs text-gray-500 dark:text-gray-400">
填写 API 基础地址(可包含路径前缀),系统会自动拼接
填写 API 基础地址,必须以
<code class="rounded bg-gray-100 px-1 dark:bg-gray-600">/models</code>
结尾。系统会自动拼接
<code class="rounded bg-gray-100 px-1 dark:bg-gray-600"
>/v1beta/models/{model}:generateContent</code
>/{model}:generateContent</code
>
</p>
<p class="mt-0.5 text-xs text-gray-400 dark:text-gray-500">
官方:
<code class="rounded bg-gray-100 px-1 dark:bg-gray-600"
>https://generativelanguage.googleapis.com</code
>https://generativelanguage.googleapis.com/v1beta/models</code
>
| 上游为 CRS:
</p>
<p class="mt-0.5 text-xs text-gray-400 dark:text-gray-500">
上游为 CRS:
<code class="rounded bg-gray-100 px-1 dark:bg-gray-600"
>https://your-crs.com/gemini</code
>https://your-crs.com/gemini/v1beta/models</code
>
</p>
</div>
@@ -4485,6 +4501,14 @@ const createAccount = async () => {
errors.value.apiKey = '请填写 API Key'
hasError = true
}
// 验证 baseUrl 必须以 /models 结尾
if (!form.value.baseUrl || form.value.baseUrl.trim() === '') {
errors.value.baseUrl = '请填写 API 基础地址'
hasError = true
} else if (!form.value.baseUrl.trim().endsWith('/models')) {
errors.value.baseUrl = 'API 基础地址必须以 /models 结尾'
hasError = true
}
} else {
// 其他平台(如 Droid使用多 API Key 输入
const apiKeys = parseApiKeysInput(form.value.apiKeysInput)
@@ -4748,6 +4772,7 @@ const updateAccount = async () => {
// 清除之前的错误
errors.value.name = ''
errors.value.apiKeys = ''
errors.value.baseUrl = ''
// 验证账户名称
if (!form.value.name || form.value.name.trim() === '') {
@@ -4755,6 +4780,19 @@ const updateAccount = async () => {
return
}
// Gemini API 的 baseUrl 验证(必须以 /models 结尾)
if (form.value.platform === 'gemini-api') {
const baseUrl = form.value.baseUrl?.trim() || ''
if (!baseUrl) {
errors.value.baseUrl = '请填写 API 基础地址'
return
}
if (!baseUrl.endsWith('/models')) {
errors.value.baseUrl = 'API 基础地址必须以 /models 结尾'
return
}
}
// 分组类型验证 - 更新账户流程修复
if (
form.value.accountType === 'group' &&