mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-02-26 17:04:07 +01:00
🎨 Allow GPT Model selection in UI https://github.com/siyuan-note/siyuan/issues/8142
This commit is contained in:
parent
f6f3ebbcb2
commit
7daafcb3af
13 changed files with 63 additions and 19 deletions
|
|
@ -35,6 +35,8 @@
|
|||
"apiTimeoutTip": "The timeout period for initiating a request, unit: second",
|
||||
"apiProxy": "Network Proxy",
|
||||
"apiProxyTip": "The network proxy that initiates the request, such as <code class='fn__code'>socks://127.0.0.1:1080</code>",
|
||||
"apiModel": "Model",
|
||||
"apiModelTip": "The <code class='fn__code'>model</code> parameter passed in when requesting the API is used to control the style of the generated text",
|
||||
"apiMaxTokens": "Maximum number of Tokens",
|
||||
"apiMaxTokensTip": "The <code class='fn__code'>max_tokens</code> parameter passed in when requesting the API is used to control the length of the generated text",
|
||||
"apiBaseURL": "API Base URL",
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@
|
|||
"apiTimeoutTip": "El tiempo de espera para iniciar una solicitud, unidad: segundo",
|
||||
"apiProxy": "Proxy web",
|
||||
"apiProxyTip": "El proxy de red que inicia la solicitud, como <code class='fn__code'>socks://127.0.0.1:1080</code>",
|
||||
"apiModel": "Modelo",
|
||||
"apiModelTip": "El parámetro <code class='fn__code'>model</code> pasado al solicitar la API se usa para controlar el estilo del texto generado",
|
||||
"apiMaxTokens": "Número máximo de tokens",
|
||||
"apiMaxTokensTip": "El parámetro <code class='fn__code'>max_tokens</code> que se pasa al solicitar la API se usa para controlar la longitud del texto generado",
|
||||
"apiBaseURL": "URL base de la API",
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@
|
|||
"apiTimeoutTip": "Le délai d'attente pour lancer une requête, unité : seconde",
|
||||
"apiProxy": "Proxy Web",
|
||||
"apiProxyTip": "Le proxy réseau qui lance la requête, tel que <code class='fn__code'>socks://127.0.0.1:1080</code>",
|
||||
"apiModel": "Modelo",
|
||||
"apiModelTip": "El parámetro <code class='fn__code'>model</code> pasado al solicitar la API se usa para controlar el estilo del texto generado",
|
||||
"apiMaxTokens": "Nombre maximum de jetons",
|
||||
"apiMaxTokensTip": "Le paramètre <code class='fn__code'>max_tokens</code> transmis lors de la demande de l'API est utilisé pour contrôler la longueur du texte généré",
|
||||
"apiBaseURL": "URL de base de l'API",
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@
|
|||
"apiTimeoutTip": "發起請求的超時時間,單位:秒",
|
||||
"apiProxy": "網絡代理",
|
||||
"apiProxyTip": "發起請求的網絡代理,如 <code class='fn__code'>socks://127.0.0.1:1080</code>",
|
||||
"apiModel": "模型",
|
||||
"apiModelTip": "請求 API 時傳入的 <code class='fn__code'>model</code> 參數,用於控制生成的文本風格",
|
||||
"apiMaxTokens": "最大 Token 數",
|
||||
"apiMaxTokensTip": "請求 API 時傳入的 <code class='fn__code'>max_tokens</code> 參數,用於控制生成的文本長度",
|
||||
"apiBaseURL": "API 基礎地址",
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@
|
|||
"apiTimeoutTip": "发起请求的超时时间,单位:秒",
|
||||
"apiProxy": "网络代理",
|
||||
"apiProxyTip": "发起请求的网络代理,如 <code class='fn__code'>socks://127.0.0.1:1080</code>",
|
||||
"apiModel": "模型",
|
||||
"apiModelTip": "请求 API 时传入的 <code class='fn__code'>model</code> 参数,用于控制生成的文本风格",
|
||||
"apiMaxTokens": "最大 Token 数",
|
||||
"apiMaxTokensTip": "请求 API 时传入的 <code class='fn__code'>max_tokens</code> 参数,用于控制生成的文本长度",
|
||||
"apiBaseURL": "API 基础地址",
|
||||
|
|
|
|||
|
|
@ -11,6 +11,19 @@ export const ai = {
|
|||
<input class="b3-text-field fn__flex-center fn__block" type="number" step="1" min="5" max="600" id="apiTimeout" value="${window.siyuan.config.ai.openAI.apiTimeout}"/>
|
||||
<div class="b3-label__text">${window.siyuan.languages.apiTimeoutTip}</div>
|
||||
</div>
|
||||
<div class="b3-label">
|
||||
${window.siyuan.languages.apiModel}
|
||||
<div class="b3-label__text">
|
||||
${window.siyuan.languages.apiModelTip}
|
||||
</div>
|
||||
<div class="b3-label__text fn__flex config__item" style="padding: 4px 0 4px 4px;">
|
||||
<select id="apiModel" class="b3-select">
|
||||
<option value="gpt-4" ${window.siyuan.config.ai.openAI.apiModel === "gpt-4" ? "selected" : ""}>gpt-4</option>
|
||||
<option value="gpt-4-32k" ${window.siyuan.config.ai.openAI.apiModel === "gpt-4-32k" ? "selected" : ""}>gpt-4-32k</option>
|
||||
<option value="gpt-3.5-turbo" ${window.siyuan.config.ai.openAI.apiModel === "gpt-3.5-turbo" ? "selected" : ""}>gpt-3.5-turbo</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="b3-label">
|
||||
${window.siyuan.languages.apiMaxTokens}
|
||||
<div class="fn__hr"></div>
|
||||
|
|
@ -44,6 +57,18 @@ export const ai = {
|
|||
<span class="fn__space"></span>
|
||||
<input class="b3-text-field fn__flex-center fn__size200" type="number" step="1" min="5" max="600" id="apiTimeout" value="${window.siyuan.config.ai.openAI.apiTimeout}"/>
|
||||
</label>
|
||||
<label class="fn__flex b3-label config__item">
|
||||
<div class="fn__flex-1">
|
||||
${window.siyuan.languages.apiModel}
|
||||
<div class="b3-label__text">${window.siyuan.languages.apiModelTip}</div>
|
||||
</div>
|
||||
<span class="fn__space"></span>
|
||||
<select id="apiModel" class="b3-select fn__flex-center fn__size200">
|
||||
<option value="gpt-4" ${window.siyuan.config.ai.openAI.apiModel === "gpt-4" ? "selected" : ""}>gpt-4</option>
|
||||
<option value="gpt-4-32k" ${window.siyuan.config.ai.openAI.apiModel === "gpt-4-32k" ? "selected" : ""}>gpt-4-32k</option>
|
||||
<option value="gpt-3.5-turbo" ${window.siyuan.config.ai.openAI.apiModel === "gpt-3.5-turbo" ? "selected" : ""}>gpt-3.5-turbo</option>
|
||||
</select>
|
||||
</label>
|
||||
<label class="fn__flex b3-label">
|
||||
<div class="fn__flex-1">
|
||||
${window.siyuan.languages.apiMaxTokens}
|
||||
|
|
@ -89,12 +114,13 @@ export const ai = {
|
|||
</div>`;
|
||||
},
|
||||
bindEvent: () => {
|
||||
ai.element.querySelectorAll("input").forEach((item) => {
|
||||
ai.element.querySelectorAll("input,select").forEach((item) => {
|
||||
item.addEventListener("change", () => {
|
||||
fetchPost("/api/setting/setAI", {
|
||||
openAI: {
|
||||
apiBaseURL: (ai.element.querySelector("#apiBaseURL") as HTMLInputElement).value,
|
||||
apiKey: (ai.element.querySelector("#apiKey") as HTMLInputElement).value,
|
||||
apiModel: (ai.element.querySelector("#apiModel") as HTMLSelectElement).value,
|
||||
apiMaxTokens: parseInt((ai.element.querySelector("#apiMaxTokens") as HTMLInputElement).value),
|
||||
apiProxy: (ai.element.querySelector("#apiProxy") as HTMLInputElement).value,
|
||||
apiTimeout: parseInt((ai.element.querySelector("#apiTimeout") as HTMLInputElement).value),
|
||||
|
|
|
|||
1
app/src/types/index.d.ts
vendored
1
app/src/types/index.d.ts
vendored
|
|
@ -424,6 +424,7 @@ declare interface IConfig {
|
|||
openAI: {
|
||||
apiBaseURL: string
|
||||
apiKey: string
|
||||
apiModel: string
|
||||
apiMaxTokens: number
|
||||
apiProxy: string
|
||||
apiTimeout: number
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue