106 lines
4.2 KiB
JavaScript
106 lines
4.2 KiB
JavaScript
const defaultConfig = {
|
|
tokenExpireHours: 24,
|
|
llmTokenExpireHours: 24,
|
|
llmWorkspaceName: "部门知识库",
|
|
apiConfig: {
|
|
materialPublicUrl: {
|
|
name: "材料公开地址",
|
|
url: "http://share.wisdompulse.cn/public",
|
|
requestParams: [],
|
|
responseParams: []
|
|
},
|
|
esSearch: {
|
|
name: "ES 搜索接口",
|
|
url: "http://app.wisdompulse.cn/api/v1/doc/search",
|
|
requestParams: [
|
|
{ label: "关键词组", field: "keywordGroups" },
|
|
{ label: "页码", field: "page" },
|
|
{ label: "分页大小", field: "size" }
|
|
],
|
|
responseParams: [
|
|
{ label: "结果字段", field: "results" },
|
|
{ label: "总条数字段", field: "total" },
|
|
{ label: "分页大小字段", field: "size" }
|
|
]
|
|
},
|
|
login: {
|
|
name: "登录接口",
|
|
url: "http://app.wisdompulse.cn/api/v1/user/login",
|
|
requestParams: [
|
|
{ label: "用户名字段", field: "username" },
|
|
{ label: "密码字段", field: "password" }
|
|
],
|
|
responseParams: [
|
|
{ label: "Token 字段", field: "token" },
|
|
{ label: "用户名字段", field: "username" }
|
|
]
|
|
},
|
|
logout: {
|
|
name: "登出接口",
|
|
url: "http://app.wisdompulse.cn/api/v1/user/logout",
|
|
requestParams: [],
|
|
responseParams: []
|
|
},
|
|
filePath: {
|
|
name: "获取文件路径接口(批量)",
|
|
url: "http://app.wisdompulse.cn/api/v1/doc/file-path",
|
|
requestParams: [
|
|
{ label: "文件名数组字段", field: "fileNames" }
|
|
],
|
|
responseParams: [
|
|
{ label: "路径映射字段", field: "filePaths" }
|
|
]
|
|
},
|
|
llmToken: {
|
|
name: "获取 AnythingLLM Token 接口",
|
|
url: "http://app-test.wisdompulse.cn/api/v1/llm/token",
|
|
requestParams: [
|
|
{ label: "密码字段", field: "password" }
|
|
],
|
|
responseParams: [
|
|
{ label: "Token 字段", field: "token" }
|
|
]
|
|
},
|
|
llmChat: {
|
|
name: "指定工作区对话接口",
|
|
url: "http://app-test.wisdompulse.cn/api/v1/llm/ask",
|
|
requestParams: [
|
|
{ label: "问题字段", field: "question" },
|
|
{ label: "历史字段", field: "attachments" }
|
|
],
|
|
responseParams: []
|
|
}
|
|
}
|
|
};
|
|
|
|
|
|
function loadMergedConfig() {
|
|
return new Promise((resolve) => {
|
|
chrome.storage.local.get(["customConfig"], (res) => {
|
|
const merged = JSON.parse(JSON.stringify(defaultConfig));
|
|
if (res.customConfig && typeof res.customConfig === "object") {
|
|
merged.tokenExpireHours =
|
|
res.customConfig.tokenExpireHours != null ? res.customConfig.tokenExpireHours : merged.tokenExpireHours;
|
|
merged.llmTokenExpireHours =
|
|
res.customConfig.llmTokenExpireHours != null ? res.customConfig.llmTokenExpireHours : merged.llmTokenExpireHours;
|
|
merged.llmWorkspaceName =
|
|
res.customConfig.llmWorkspaceName != null ? res.customConfig.llmWorkspaceName : merged.llmWorkspaceName;
|
|
for (const key in merged.apiConfig) {
|
|
const override = res.customConfig.apiConfig?.[key];
|
|
if (override) {
|
|
merged.apiConfig[key].url = override.url || merged.apiConfig[key].url;
|
|
merged.apiConfig[key].requestParams.forEach((param, i) => {
|
|
if (override.requestParams?.[i]?.field) param.field = override.requestParams[i].field;
|
|
});
|
|
merged.apiConfig[key].responseParams.forEach((param, i) => {
|
|
if (override.responseParams?.[i]?.field) param.field = override.responseParams[i].field;
|
|
});
|
|
}
|
|
}
|
|
}
|
|
resolve(merged);
|
|
});
|
|
});
|
|
}
|
|
|