Skip to content

Commit 5349f1f

Browse files
committed
Add axios request to fetch models template
1 parent a1c8a88 commit 5349f1f

2 files changed

Lines changed: 32 additions & 4 deletions

File tree

src/views/App.tsx

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@ import { useMst } from "./stores/RootStore";
88
import MessageUtil from "@/util/MessageUtil";
99
import "./App.css";
1010
import "./i18n";
11+
import axios from "axios";
1112

1213
export default function App() {
1314
const [ready, setReady] = useState(false);
@@ -25,11 +26,17 @@ export default function App() {
2526
};
2627

2728
const getConfig = () => {
28-
MessageUtil.sendMessage({ command: "readConfig", key: "" });
2929
MessageUtil.registerHandler("readConfig", (data: { value: any }) => {
3030
config.setConfig(data.value);
3131
setReady(true);
3232
});
33+
// 获取 models 模版列表
34+
axios.get("https://api-test.devchat.ai/v1/models").then((res) => {
35+
if (res?.data?.data && Array.isArray(res?.data?.data)) {
36+
config.setTemplate(res.data.data);
37+
MessageUtil.sendMessage({ command: "readConfig", key: "" });
38+
}
39+
});
3340
};
3441

3542
useEffect(() => {

src/views/stores/ConfigStore.ts

Lines changed: 24 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,17 +4,32 @@ import modelsTemplate from "@/models";
44
import cloneDeep from "lodash.clonedeep";
55

66
const defaultAPIBase = [
7-
"https://api.devchat.ai",
7+
"https://api.devchat.ai/v1",
88
"https://api.devchat-ai.cn/v1",
99
];
1010

1111
export const ConfigStore = types
1212
.model("Config", {
1313
config: types.optional(types.frozen(), {}),
14+
modelsTemplate: types.optional(types.frozen(), {}),
1415
settle: types.optional(types.boolean, false),
1516
defaultModel: types.optional(types.string, ""),
1617
})
1718
.actions((self) => ({
19+
setTemplate: (value: any) => {
20+
const models = value
21+
.filter((item) => item.category === "chat")
22+
.map((item) => {
23+
return {
24+
name: item.model,
25+
max_input_tokens: item.max_input_tokens,
26+
provider: "devchat",
27+
stream: true,
28+
};
29+
});
30+
console.log("models: ", models);
31+
self.modelsTemplate = models;
32+
},
1833
updateSettle: (value: boolean) => {
1934
self.settle = value;
2035
},
@@ -36,6 +51,12 @@ export const ConfigStore = types
3651
},
3752
getAPIBase: () => {
3853
if (self.config?.providers?.devchat?.api_base) {
54+
if (
55+
self.config.providers.devchat.api_base === "custom" &&
56+
self.config.providers.devchat.cumstom_api_base
57+
) {
58+
return self.config.providers.devchat.cumstom_api_base;
59+
}
3960
return self.config.providers.devchat.api_base;
4061
}
4162
if (self.config?.providers?.openai?.api_base) {
@@ -49,7 +70,7 @@ export const ConfigStore = types
4970
if (!data.models) {
5071
newConfig.models = {};
5172
}
52-
modelsTemplate.forEach((item) => {
73+
self.modelsTemplate.forEach((item) => {
5374
const currentModel: any = {
5475
...item,
5576
};
@@ -96,7 +117,7 @@ export const ConfigStore = types
96117
self.defaultModel = newConfig.default_model;
97118
},
98119
getModelList: () => {
99-
const modelsArray = modelsTemplate.map((item) => {
120+
const modelsArray = self.modelsTemplate.map((item) => {
100121
return item.name;
101122
});
102123
return modelsArray;

0 commit comments

Comments
 (0)