增加api、token获取链接
This commit is contained in:
7
.idea/workspace.xml
generated
7
.idea/workspace.xml
generated
@@ -6,9 +6,8 @@
|
||||
<component name="ChangeListManager">
|
||||
<list default="true" id="6b18b44a-df57-4212-a857-9e291ebe5dd2" name="更改" comment="">
|
||||
<change beforePath="$PROJECT_DIR$/.idea/workspace.xml" beforeDir="false" afterPath="$PROJECT_DIR$/.idea/workspace.xml" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docutranslate/agents/agent.py" beforeDir="false" afterPath="$PROJECT_DIR$/docutranslate/agents/agent.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docutranslate/static/index.html" beforeDir="false" afterPath="$PROJECT_DIR$/docutranslate/static/index.html" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/docutranslate/utils/markdown_splitter.py" beforeDir="false" afterPath="$PROJECT_DIR$/docutranslate/utils/markdown_splitter.py" afterDir="false" />
|
||||
<change beforePath="$PROJECT_DIR$/pyproject.toml" beforeDir="false" afterPath="$PROJECT_DIR$/pyproject.toml" afterDir="false" />
|
||||
</list>
|
||||
<option name="SHOW_DIALOG" value="false" />
|
||||
<option name="HIGHLIGHT_CONFLICTS" value="true" />
|
||||
@@ -603,7 +602,7 @@
|
||||
<workItem from="1747739438735" duration="826000" />
|
||||
<workItem from="1747740341909" duration="145000" />
|
||||
<workItem from="1747752718385" duration="81000" />
|
||||
<workItem from="1747754618316" duration="12015000" />
|
||||
<workItem from="1747754618316" duration="14549000" />
|
||||
</task>
|
||||
<servers />
|
||||
</component>
|
||||
@@ -622,7 +621,7 @@
|
||||
</option>
|
||||
</component>
|
||||
<component name="com.intellij.coverage.CoverageDataManagerImpl">
|
||||
<SUITE FILE_PATH="coverage/filetranslate$app_test__1_.coverage" NAME="app_test (1) 覆盖结果" MODIFIED="1747796284047" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests" />
|
||||
<SUITE FILE_PATH="coverage/filetranslate$app_test__1_.coverage" NAME="app_test (1) 覆盖结果" MODIFIED="1747798850500" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests" />
|
||||
<SUITE FILE_PATH="coverage/filetranslate$test.coverage" NAME="test 覆盖结果" MODIFIED="1747472297913" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/tests" />
|
||||
<SUITE FILE_PATH="coverage/filetranslate$convert.coverage" NAME="convert 覆盖结果" MODIFIED="1746963490689" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/docutranslate/utils" />
|
||||
<SUITE FILE_PATH="coverage/PDFtranslate$PDFtranslater__1_.coverage" NAME="PDFtranslater (1) 覆盖结果" MODIFIED="1746633258205" SOURCE_PROVIDER="com.intellij.coverage.DefaultCoverageFileProvider" RUNNER="coverage.py" COVERAGE_BY_TEST_ENABLED="false" COVERAGE_TRACING_ENABLED="false" WORKING_DIRECTORY="$PROJECT_DIR$/pdftranslate_packages" />
|
||||
|
||||
@@ -35,6 +35,11 @@
|
||||
color: #2e7d32; /* Pico valid color */
|
||||
}
|
||||
|
||||
a.no-style {
|
||||
text-decoration: none;
|
||||
color: inherit;
|
||||
}
|
||||
|
||||
.form-group {
|
||||
margin-bottom: 1rem;
|
||||
}
|
||||
@@ -176,7 +181,7 @@
|
||||
<body>
|
||||
<main class="container">
|
||||
<h1>
|
||||
<a href="https://github.com/xunbu/docutranslate" target="_blank">DocuTranslate</a>
|
||||
<a href="https://github.com/xunbu/docutranslate" target="_blank">DocuTranslate🔗</a>
|
||||
</h1>
|
||||
<form id="translateForm">
|
||||
|
||||
@@ -229,7 +234,9 @@
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group hidden" id="mineruTokenGroup">
|
||||
<label for="mineru_token">Mineru Token</label>
|
||||
<label for="mineru_token">Mineru Token<a class="no-style" href="https://mineru.net/apiManage/token"
|
||||
target="_blank"
|
||||
title="获取令牌">🔗</a></label>
|
||||
<input type="password" id="mineru_token" name="mineru_token" placeholder="使用 Mineru 引擎时必须填写">
|
||||
</div>
|
||||
</details>
|
||||
@@ -239,7 +246,9 @@
|
||||
<summary>翻译API配置</summary>
|
||||
<div class="form-grid">
|
||||
<div class="form-group">
|
||||
<label for="platform_select">AI 平台</label>
|
||||
<label for="platform_select">AI 平台 <a id="api_href" class="no-style" href="/"
|
||||
target="_blank"
|
||||
title="获取API-KEY">🔗</a></label>
|
||||
<select id="platform_select" name="platform_select_ui">
|
||||
<option value="custom">自定义接口</option>
|
||||
<option value="https://api.openai.com/v1">OpenAI</option>
|
||||
@@ -296,6 +305,7 @@
|
||||
<iframe id="printFrame" style="display:none;"></iframe>
|
||||
<script>
|
||||
const platformSelect = document.getElementById('platform_select');
|
||||
const apiHref = document.getElementById('api_href')
|
||||
const baseUrlGroup = document.getElementById('baseUrlGroup');
|
||||
const baseUrlInput = document.getElementById('base_url');
|
||||
const apikeyInput = document.getElementById('apikey');
|
||||
@@ -306,7 +316,6 @@
|
||||
const refineCheckbox = document.getElementById('refine_markdown');
|
||||
|
||||
const convertEnginSelect = document.getElementById('convert_engin');
|
||||
const doclingOption = document.getElementById('docling')
|
||||
const mineruTokenGroup = document.getElementById('mineruTokenGroup');
|
||||
const mineruTokenInput = document.getElementById('mineru_token');
|
||||
|
||||
@@ -351,6 +360,17 @@
|
||||
return defaultValue;
|
||||
}
|
||||
}
|
||||
//api访问地址到获取地址的映射
|
||||
const apiHrefMap = {
|
||||
"https://openrouter.ai/api/v1": "https://openrouter.ai/settings/keys",
|
||||
"https://api.openai.com/v1": "https://platform.openai.com/api-keys",
|
||||
"https://api.deepseek.com/v1": "https://platform.deepseek.com/api_keys",
|
||||
"https://open.bigmodel.cn/api/paas/v4": "https://open.bigmodel.cn/usercenter/apikeys",
|
||||
"https://dashscope.aliyuncs.com/compatible-mode/v1": "https://bailian.console.aliyun.com/?tab=model#/api-key",
|
||||
"https://ark.cn-beijing.volces.com/api/v3": "https://console.volcengine.com/ark/region:ark+cn-beijing/apiKey?apikey=%7B%7D",
|
||||
"https://api.siliconflow.cn/v1": "https://cloud.siliconflow.cn/account/ak",
|
||||
"https://www.dmxapi.cn/v1": "https://www.dmxapi.cn/token"
|
||||
}
|
||||
|
||||
function updatePlatformUI() {
|
||||
const selectedPlatformValue = platformSelect.value;
|
||||
@@ -360,11 +380,15 @@
|
||||
baseUrlGroup.classList.remove('hidden');
|
||||
baseUrlInput.required = true;
|
||||
baseUrlInput.value = getFromStorage('translator_platform_custom_base_url');
|
||||
apiHref.classList.add('hidden')
|
||||
} else {
|
||||
baseUrlGroup.classList.add('hidden');
|
||||
baseUrlInput.required = false;
|
||||
baseUrlInput.value = selectedPlatformValue;
|
||||
apiHref.classList.remove('hidden')
|
||||
apiHref.href = apiHrefMap[baseUrlInput.value]
|
||||
}
|
||||
|
||||
saveToStorage('translator_last_platform', selectedPlatformValue);
|
||||
}
|
||||
|
||||
@@ -491,16 +515,16 @@
|
||||
}
|
||||
const status = await response.json();
|
||||
statusMsg.textContent = '正在初始化';
|
||||
if (!status.includes("docling")) {
|
||||
// docling不存在时禁用docling
|
||||
doclingOption.disabled = true;
|
||||
doclingOption.textContent = "docling(未检测到)"
|
||||
if (convertEnginSelect.value === "docling") {
|
||||
status.forEach((engin) => {
|
||||
let option = convertEnginSelect.querySelector(`option[value="${engin}"]`);
|
||||
option.disabled = true;
|
||||
option.textContent += "(不可用)"
|
||||
})
|
||||
if (status.includes(convertEnginSelect.value)) {
|
||||
convertEnginSelect.value = "mineru";
|
||||
updateConvertEnginUI()
|
||||
statusMsg.textContent = '初始化完成';
|
||||
}
|
||||
}
|
||||
} catch (error) {
|
||||
console.warn("Error get engin-list", error);
|
||||
}
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
[project]
|
||||
name = "docutranslate"
|
||||
version = "0.2.21"
|
||||
version = "0.2.22"
|
||||
description = "文件翻译工具"
|
||||
readme = "README.md"
|
||||
requires-python = ">=3.10"
|
||||
|
||||
Reference in New Issue
Block a user