Aiproxy (#3649)
* model config * feat: model config ui * perf: rename variable * feat: custom request url * perf: model buffer * perf: init model * feat: json model config * auto login * fix: ts * update packages * package * fix: dockerfile
This commit is contained in:
77
projects/app/src/pages/api/admin/initv4820.ts
Normal file
77
projects/app/src/pages/api/admin/initv4820.ts
Normal file
@@ -0,0 +1,77 @@
|
||||
import { readConfigData } from '@/service/common/system';
|
||||
import { NextAPI } from '@/service/middleware/entry';
|
||||
import {
|
||||
getFastGPTConfigFromDB,
|
||||
updateFastGPTConfigBuffer
|
||||
} from '@fastgpt/service/common/system/config/controller';
|
||||
import { authCert } from '@fastgpt/service/support/permission/auth/common';
|
||||
import { NextApiRequest, NextApiResponse } from 'next';
|
||||
import json5 from 'json5';
|
||||
import { FastGPTConfigFileType } from '@fastgpt/global/common/system/types';
|
||||
import { MongoSystemModel } from '@fastgpt/service/core/ai/config/schema';
|
||||
import { loadSystemModels } from '@fastgpt/service/core/ai/config/utils';
|
||||
import { ModelTypeEnum } from '@fastgpt/global/core/ai/model';
|
||||
|
||||
/*
|
||||
简单版迁移:直接升级到最新镜像,会去除 MongoDatasetData 里的索引。直接执行这个脚本。
|
||||
无缝迁移:
|
||||
1. 移动 User 表中的 avatar 字段到 TeamMember 表中。
|
||||
*/
|
||||
async function handler(req: NextApiRequest, res: NextApiResponse) {
|
||||
await authCert({ req, authRoot: true });
|
||||
|
||||
// load config
|
||||
const [{ config: dbConfig }, fileConfig] = await Promise.all([
|
||||
getFastGPTConfigFromDB(),
|
||||
readConfigData('config.json')
|
||||
]);
|
||||
const fileRes = json5.parse(fileConfig) as FastGPTConfigFileType;
|
||||
|
||||
const llmModels = dbConfig.llmModels || fileRes.llmModels || [];
|
||||
const vectorModels = dbConfig.vectorModels || fileRes.vectorModels || [];
|
||||
const reRankModels = dbConfig.reRankModels || fileRes.reRankModels || [];
|
||||
const audioSpeechModels = dbConfig.audioSpeechModels || fileRes.audioSpeechModels || [];
|
||||
const whisperModel = dbConfig.whisperModel || fileRes.whisperModel;
|
||||
|
||||
const list = [
|
||||
...llmModels.map((item) => ({
|
||||
...item,
|
||||
type: ModelTypeEnum.llm
|
||||
})),
|
||||
...vectorModels.map((item) => ({
|
||||
...item,
|
||||
type: ModelTypeEnum.embedding
|
||||
})),
|
||||
...reRankModels.map((item) => ({
|
||||
...item,
|
||||
type: ModelTypeEnum.rerank
|
||||
})),
|
||||
...audioSpeechModels.map((item) => ({
|
||||
...item,
|
||||
type: ModelTypeEnum.tts
|
||||
})),
|
||||
{
|
||||
...whisperModel,
|
||||
type: ModelTypeEnum.stt
|
||||
}
|
||||
];
|
||||
|
||||
for await (const item of list) {
|
||||
try {
|
||||
await MongoSystemModel.updateOne(
|
||||
{ model: item.model },
|
||||
{ $set: { model: item.model, metadata: { ...item, isActive: true } } },
|
||||
{ upsert: true }
|
||||
);
|
||||
} catch (error) {
|
||||
console.log(error);
|
||||
}
|
||||
}
|
||||
|
||||
await loadSystemModels(true);
|
||||
await updateFastGPTConfigBuffer();
|
||||
|
||||
return { success: true };
|
||||
}
|
||||
|
||||
export default NextAPI(handler);
|
||||
Reference in New Issue
Block a user