fix: Resolve API inaccessibility in private domains
- Add forced model list refresh after reading configuration - Remove unnecessary modelMenus registration and fetching - Replace modelMenus with config.modelNames for consistency and reliability - Enclose if statement body with braces for better readability - Remove redundant and unused model list fetching code Closes #360
This commit is contained in:
parent
ed4df3ac60
commit
b2268514fa
@ -28,6 +28,7 @@ export default function App() {
|
||||
MessageUtil.registerHandler("readConfig", (data: { value: any }) => {
|
||||
console.log("readConfig registerHandler: ", data);
|
||||
config.setConfig(data.value);
|
||||
config.refreshModelList();
|
||||
});
|
||||
MessageUtil.sendMessage({ command: "readConfig", key: "" });
|
||||
};
|
||||
|
@ -64,8 +64,7 @@ const InputMessage = observer((props: any) => {
|
||||
menuType,
|
||||
currentMenuIndex,
|
||||
contextMenus,
|
||||
commandMenus,
|
||||
modelMenus,
|
||||
commandMenus
|
||||
} = input;
|
||||
const { generating } = chat;
|
||||
const viewport = useRef<HTMLDivElement>(null);
|
||||
@ -357,7 +356,7 @@ const InputMessage = observer((props: any) => {
|
||||
withArrow
|
||||
shadow="md"
|
||||
styles={menuStyles}
|
||||
disabled={modelMenus.length === 0}
|
||||
disabled={config.modelNames.length === 0}
|
||||
>
|
||||
<Menu.Target>
|
||||
<Button
|
||||
@ -373,7 +372,7 @@ const InputMessage = observer((props: any) => {
|
||||
</Menu.Target>
|
||||
<Menu.Dropdown>
|
||||
<ScrollArea.Autosize placeholder="" type="always" mah={240}>
|
||||
{modelMenus.map((modelName) => {
|
||||
{config.modelNames.map((modelName) => {
|
||||
return (
|
||||
<Menu.Item
|
||||
key={modelName}
|
||||
|
@ -74,7 +74,7 @@ const chatPanel = observer(() => {
|
||||
};
|
||||
|
||||
useEffect(() => {
|
||||
if (!router.currentRoute || router.currentRoute !== "chat") return;
|
||||
if (!router.currentRoute || router.currentRoute !== "chat") {return;}
|
||||
// Fetch the command menus, before history records are obtained,
|
||||
// because the display information in the history record requires adjustment
|
||||
messageUtil.sendMessage({ command: "regCommandList" });
|
||||
@ -102,7 +102,6 @@ const chatPanel = observer(() => {
|
||||
});
|
||||
chat.fetchHistoryMessages();
|
||||
input.fetchContextMenus().then();
|
||||
input.fetchModelMenus();
|
||||
getFeatureToggles();
|
||||
}
|
||||
);
|
||||
|
@ -97,7 +97,7 @@ const Config = observer(() => {
|
||||
api_base: (value) =>
|
||||
value.length > 0 ? null : "Please enter api base",
|
||||
cumstom_api_base: (value, values) =>
|
||||
values.providers?.devchat?.api_base === "custom" && value.length <= 0
|
||||
values.providers?.devchat?.api_base === "custom" && value?.length <= 0
|
||||
? "Please enter custom api base"
|
||||
: null,
|
||||
},
|
||||
@ -114,11 +114,9 @@ const Config = observer(() => {
|
||||
MessageUtil.sendMessage({ command: "readConfig" });
|
||||
});
|
||||
if (router.currentRoute !== "config") {return;}
|
||||
const modelName = config.getModelList();
|
||||
|
||||
const modelArray = modelName.map((item) => ({
|
||||
value: item,
|
||||
label: getModelShowName(item),
|
||||
const modelArray = config.modelsTemplate.map((item) => ({
|
||||
value: item.name,
|
||||
label: getModelShowName(item.name),
|
||||
}));
|
||||
setModels(modelArray);
|
||||
setCurrent(modelArray[0].value);
|
||||
|
@ -38,6 +38,7 @@ export const ConfigStore = types
|
||||
.model("Config", {
|
||||
config: types.optional(types.frozen(), {}),
|
||||
modelsTemplate: types.optional(types.array(Model), modelsTemplate),
|
||||
modelNames: types.optional(types.array(types.string),modelsTemplate.map((item)=>item.name)),
|
||||
settle: types.optional(types.boolean, false),
|
||||
defaultModel: types.optional(types.string, ""),
|
||||
devchatApiKey: "DC.xxxxxxx",
|
||||
@ -57,7 +58,9 @@ export const ConfigStore = types
|
||||
};
|
||||
});
|
||||
self.modelsTemplate = models;
|
||||
}
|
||||
self.modelNames = models.map((item)=>item.name);
|
||||
};
|
||||
|
||||
return {
|
||||
setTemplate,
|
||||
updateSettle: (value: boolean) => {
|
||||
@ -158,7 +161,7 @@ export const ConfigStore = types
|
||||
}
|
||||
});
|
||||
|
||||
const modelList = this.getModelList();
|
||||
const modelList = self.modelNames;
|
||||
if (!modelList.includes(newConfig.default_model)) {
|
||||
newConfig.default_model = modelList[0];
|
||||
needUpdate = true;
|
||||
@ -181,12 +184,6 @@ export const ConfigStore = types
|
||||
const { data } = yield fetchLLMs({modelsUrl:self.modelsUrl,devchatApiKey:self.devchatApiKey});
|
||||
setTemplate(data,self.provider);
|
||||
}),
|
||||
getModelList: function () {
|
||||
const modelsArray = self.modelsTemplate.map((item) => {
|
||||
return item.name;
|
||||
});
|
||||
return modelsArray;
|
||||
},
|
||||
writeConfig: function () {
|
||||
const writeConfig = cloneDeep(self.config);
|
||||
if (
|
||||
|
@ -24,37 +24,6 @@ const regContextMenus = async () => {
|
||||
}
|
||||
});
|
||||
};
|
||||
const regModelMenus = async () => {
|
||||
return new Promise<String[]>((resolve, reject) => {
|
||||
try {
|
||||
messageUtil.sendMessage({ command: "regModelList" });
|
||||
messageUtil.registerHandler(
|
||||
"regModelList",
|
||||
(message: { result: String[] }) => {
|
||||
resolve(message.result);
|
||||
}
|
||||
);
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
const regCommandMenus = async () => {
|
||||
return new Promise<Item[]>((resolve, reject) => {
|
||||
try {
|
||||
messageUtil.sendMessage({ command: "regCommandList" });
|
||||
messageUtil.registerHandler(
|
||||
"regCommandList",
|
||||
(message: { result: Item[] }) => {
|
||||
resolve(message.result);
|
||||
}
|
||||
);
|
||||
} catch (e) {
|
||||
reject(e);
|
||||
}
|
||||
});
|
||||
};
|
||||
|
||||
export const ChatContext = types.model({
|
||||
file: types.maybe(types.string),
|
||||
@ -86,8 +55,7 @@ export const InputStore = types
|
||||
menuOpend: false,
|
||||
currentMenuIndex: 0,
|
||||
commandMenus: types.array(MenuItem),
|
||||
contextMenus: types.array(ContextMenuItem),
|
||||
modelMenus: types.array(types.string),
|
||||
contextMenus: types.array(ContextMenuItem)
|
||||
})
|
||||
.actions((self) => ({
|
||||
setValue(value: string) {
|
||||
@ -125,11 +93,6 @@ export const InputStore = types
|
||||
self.contextMenus.push(...items);
|
||||
} catch (error) {}
|
||||
}),
|
||||
fetchModelMenus() {
|
||||
const rootStore = getParent<RootInstance>(self);
|
||||
const models = rootStore.config.getModelList();
|
||||
self.modelMenus.push(...models);
|
||||
},
|
||||
fetchCommandMenus: (items: Item[]) => {
|
||||
self.commandMenus.clear();
|
||||
self.commandMenus.push(...items);
|
||||
|
Loading…
x
Reference in New Issue
Block a user