import {fetchPost} from "../util/fetch"; export const ai = { element: undefined as Element, genHTML: () => { let responsiveHTML = ""; /// #if MOBILE responsiveHTML = `
${window.siyuan.languages.apiProvider}
${window.siyuan.languages.apiProviderTip}
${window.siyuan.languages.apiTimeout}
${window.siyuan.languages.apiTimeoutTip}
${window.siyuan.languages.apiMaxTokens}
${window.siyuan.languages.apiMaxTokensTip}
${window.siyuan.languages.apiModel}
${window.siyuan.languages.apiModelTip}
${window.siyuan.languages.apiKey}
${window.siyuan.languages.apiKeyTip}
${window.siyuan.languages.apiProxy}
${window.siyuan.languages.apiProxyTip}
${window.siyuan.languages.apiBaseURL}
${window.siyuan.languages.apiBaseURLTip}
User-Agent
${window.siyuan.languages.apiUserAgentTip}
`; /// #else responsiveHTML = `
${window.siyuan.languages.apiProvider}
${window.siyuan.languages.apiProviderTip}
${window.siyuan.languages.apiTimeout}
${window.siyuan.languages.apiTimeoutTip}
${window.siyuan.languages.apiMaxTokens}
${window.siyuan.languages.apiMaxTokensTip}
${window.siyuan.languages.apiModel}
${window.siyuan.languages.apiModelTip}
${window.siyuan.languages.apiKey}
${window.siyuan.languages.apiKeyTip}
${window.siyuan.languages.apiProxy}
${window.siyuan.languages.apiProxyTip}
${window.siyuan.languages.apiBaseURL}
${window.siyuan.languages.apiBaseURLTip}
User-Agent
${window.siyuan.languages.apiUserAgentTip}
`; /// #endif return `
OpenAI
${responsiveHTML}
`; }, bindEvent: () => { ai.element.querySelectorAll("input,select").forEach((item) => { item.addEventListener("change", () => { fetchPost("/api/setting/setAI", { openAI: { apiUserAgent: (ai.element.querySelector("#apiUserAgent") as HTMLInputElement).value, 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), apiProvider: (ai.element.querySelector("#apiProvider") as HTMLSelectElement).value, } }, response => { window.siyuan.config.ai = response.data; }); }); }); }, };