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.apiModel}
${window.siyuan.languages.apiModelTip}
${window.siyuan.languages.apiKey}
${window.siyuan.languages.apiKeyTip}
`;
/// #endif
return ``;
},
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;
});
});
});
},
};