This commit is contained in:
archer
2023-07-04 15:39:57 +08:00
parent 9bdd5f522d
commit 6e1ef89d65
44 changed files with 213 additions and 1216 deletions

View File

@@ -3,7 +3,7 @@ import type { NextApiRequest, NextApiResponse } from 'next';
import { jsonRes } from '@/service/response';
import { connectToDatabase } from '@/service/mongo';
import { authUser } from '@/service/utils/auth';
import { Model } from '@/service/models/model';
import { App } from '@/service/models/model';
export default async function handler(req: NextApiRequest, res: NextApiResponse<any>) {
try {
@@ -21,7 +21,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
await connectToDatabase();
// 上限校验
const authCount = await Model.countDocuments({
const authCount = await App.countDocuments({
userId
});
if (authCount >= 50) {
@@ -29,7 +29,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
}
// 创建模型
const response = await Model.create({
const response = await App.create({
name,
userId
});

View File

@@ -1,6 +1,6 @@
import type { NextApiRequest, NextApiResponse } from 'next';
import { jsonRes } from '@/service/response';
import { Chat, Model, connectToDatabase, Collection, ShareChat } from '@/service/mongo';
import { Chat, App, connectToDatabase, Collection, ShareChat } from '@/service/mongo';
import { authUser } from '@/service/utils/auth';
import { authApp } from '@/service/utils/auth';
@@ -40,7 +40,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
});
// 删除模型
await Model.deleteOne({
await App.deleteOne({
_id: modelId,
userId
});

View File

@@ -1,8 +1,8 @@
import type { NextApiRequest, NextApiResponse } from 'next';
import { jsonRes } from '@/service/response';
import { connectToDatabase, Collection, Model } from '@/service/mongo';
import { connectToDatabase, Collection, App } from '@/service/mongo';
import { authUser } from '@/service/utils/auth';
import type { ModelListResponse } from '@/api/response/model';
import type { AppListResponse } from '@/api/response/app';
/* 获取模型列表 */
export default async function handler(req: NextApiRequest, res: NextApiResponse<any>) {
@@ -14,7 +14,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
// 根据 userId 获取模型信息
const [myApps, myCollections] = await Promise.all([
Model.find(
App.find(
{
userId
},
@@ -31,7 +31,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
.then((res) => res.filter((item) => item.modelId))
]);
jsonRes<ModelListResponse>(res, {
jsonRes<AppListResponse>(res, {
data: {
myApps: myApps.map((item) => ({
_id: item._id,

View File

@@ -1,6 +1,6 @@
import type { NextApiRequest, NextApiResponse } from 'next';
import { jsonRes } from '@/service/response';
import { connectToDatabase, Collection, Model } from '@/service/mongo';
import { connectToDatabase, Collection, App } from '@/service/mongo';
import { authUser } from '@/service/utils/auth';
/* 模型收藏切换 */
@@ -30,7 +30,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
});
}
await Model.findByIdAndUpdate(modelId, {
await App.findByIdAndUpdate(modelId, {
'share.collection': await Collection.countDocuments({ modelId })
});

View File

@@ -1,8 +1,8 @@
import type { NextApiRequest, NextApiResponse } from 'next';
import { jsonRes } from '@/service/response';
import { connectToDatabase, Model } from '@/service/mongo';
import { connectToDatabase, App } from '@/service/mongo';
import type { PagingData } from '@/types';
import type { ShareModelItem } from '@/types/model';
import type { ShareAppItem } from '@/types/app';
import { parseCookie } from '@/service/utils/auth';
import { Types } from 'mongoose';
@@ -91,11 +91,11 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
// 获取被分享的模型
const [models, total] = await Promise.all([
// @ts-ignore
Model.aggregate(pipeline),
Model.countDocuments(where)
App.aggregate(pipeline),
App.countDocuments(where)
]);
jsonRes<PagingData<ShareModelItem>>(res, {
jsonRes<PagingData<ShareAppItem>>(res, {
data: {
pageNum,
pageSize,

View File

@@ -2,14 +2,14 @@ import type { NextApiRequest, NextApiResponse } from 'next';
import { jsonRes } from '@/service/response';
import { connectToDatabase } from '@/service/mongo';
import { authUser } from '@/service/utils/auth';
import { Model } from '@/service/models/model';
import type { ModelUpdateParams } from '@/types/model';
import { App } from '@/service/models/model';
import type { AppUpdateParams } from '@/types/app';
import { authApp } from '@/service/utils/auth';
/* 获取我的模型 */
export default async function handler(req: NextApiRequest, res: NextApiResponse<any>) {
try {
const { name, avatar, chat, share, intro, modules } = req.body as ModelUpdateParams;
const { name, avatar, chat, share, intro, modules } = req.body as AppUpdateParams;
const { appId } = req.query as { appId: string };
if (!appId) {
@@ -27,7 +27,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
});
// 更新模型
await Model.updateOne(
await App.updateOne(
{
_id: appId,
userId

View File

@@ -1,6 +1,6 @@
import type { NextApiRequest, NextApiResponse } from 'next';
import { jsonRes } from '@/service/response';
import { connectToDatabase, Chat, Model } from '@/service/mongo';
import { connectToDatabase, Chat, App } from '@/service/mongo';
import type { InitChatResponse } from '@/api/response/chat';
import { authUser } from '@/service/utils/auth';
import { ChatItemType } from '@/types/chat';
@@ -23,13 +23,13 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse)
// 没有 modelId 时直接获取用户的第一个id
const app = await (async () => {
if (!modelId) {
const myModel = await Model.findOne({ userId });
const myModel = await App.findOne({ userId });
if (!myModel) {
const { _id } = await Model.create({
const { _id } = await App.create({
name: '应用1',
userId
});
return (await Model.findById(_id)) as AppSchema;
return (await App.findById(_id)) as AppSchema;
} else {
return myModel;
}

View File

@@ -1,7 +1,7 @@
import type { NextApiRequest, NextApiResponse } from 'next';
import { jsonRes } from '@/service/response';
import { ChatItemType } from '@/types/chat';
import { connectToDatabase, Chat, Model } from '@/service/mongo';
import { connectToDatabase, Chat, App } from '@/service/mongo';
import { authApp } from '@/service/utils/auth';
import { authUser } from '@/service/utils/auth';
import { Types } from 'mongoose';
@@ -60,7 +60,7 @@ export async function saveChat({
}));
if (String(app.userId) === userId) {
await Model.findByIdAndUpdate(modelId, {
await App.findByIdAndUpdate(modelId, {
updateTime: new Date()
});
}
@@ -96,7 +96,7 @@ export async function saveChat({
// update app
...(String(app.userId) === userId
? [
Model.findByIdAndUpdate(modelId, {
App.findByIdAndUpdate(modelId, {
updateTime: new Date()
})
]

View File

@@ -2,7 +2,7 @@ import type { NextApiRequest, NextApiResponse } from 'next';
import { jsonRes } from '@/service/response';
import { connectToDatabase, ShareChat } from '@/service/mongo';
import { authApp, authUser } from '@/service/utils/auth';
import type { ShareChatEditType } from '@/types/model';
import type { ShareChatEditType } from '@/types/app';
/* create a shareChat */
export default async function handler(req: NextApiRequest, res: NextApiResponse) {

View File

@@ -117,6 +117,7 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
},
stream
});
console.log(responseData, answerText);
// save chat
if (typeof chatId === 'string') {
@@ -282,14 +283,17 @@ async function dispatchModules({
if (res.closed) return Promise.resolve();
console.log('run=========', module.type, module.url);
// direct answer
if (module.type === AppModuleItemTypeEnum.answer) {
const text =
module.inputs.find((item) => item.key === SpecificInputEnum.answerText)?.value || '';
pushStore({
answer: module.inputs.find((item) => item.key === SpecificInputEnum.answerText)?.value || ''
answer: text
});
return StreamAnswer({
res,
stream,
text: module.inputs.find((item) => item.key === SpecificInputEnum.answerText)?.value
text: text
});
}
@@ -365,9 +369,9 @@ function StreamAnswer({
}: {
res: NextApiResponse;
stream?: boolean;
text?: '';
text?: string;
}) {
if (stream) {
if (stream && text) {
return sseResponse({
res,
event: sseResponseEventEnum.answer,

View File

@@ -1,6 +1,6 @@
import type { NextApiRequest, NextApiResponse } from 'next';
import { jsonRes } from '@/service/response';
import { connectToDatabase, KB, Model, TrainingData } from '@/service/mongo';
import { connectToDatabase, KB, App, TrainingData } from '@/service/mongo';
import { authUser } from '@/service/utils/auth';
import { PgClient } from '@/service/pg';
import { Types } from 'mongoose';
@@ -32,7 +32,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse<
});
// delete related model
await Model.updateMany(
await App.updateMany(
{
userId
},