From 5876a47da6271af9a53317ba091c8ecc4b8e1a11 Mon Sep 17 00:00:00 2001 From: Archer <545436317@qq.com> Date: Tue, 9 Jan 2024 12:09:36 +0800 Subject: [PATCH] Update rearanker code url. Add chat storage ip address (#717) * save chat origin ip * reranker code url --- .../development/custom-models/reranker.md | 2 +- packages/global/core/chat/type.d.ts | 1 + packages/service/core/chat/chatSchema.ts | 20 ------------------- .../app/src/pages/api/v1/chat/completions.ts | 9 +++++++-- .../app/src/service/utils/chat/saveChat.ts | 18 +++++++++++++---- 5 files changed, 23 insertions(+), 27 deletions(-) diff --git a/docSite/content/docs/development/custom-models/reranker.md b/docSite/content/docs/development/custom-models/reranker.md index a10470292dd..910df0600cc 100644 --- a/docSite/content/docs/development/custom-models/reranker.md +++ b/docSite/content/docs/development/custom-models/reranker.md @@ -28,7 +28,7 @@ weight: 910 ### 源码部署 1. 根据上面的环境配置配置好环境,具体教程自行 GPT; -2. 下载 [python 文件](app.py) +2. 下载 [python 文件](https://github.com/labring/FastGPT/tree/main/python/reranker/bge-reranker-base) 3. 在命令行输入命令 `pip install -r requirments.txt`; 4. 按照[https://huggingface.co/BAAI/bge-reranker-base](https://huggingface.co/BAAI/bge-reranker-base)下载模型仓库到app.py同级目录 5. 添加环境变量 `export ACCESS_TOKEN=XXXXXX` 配置 token,这里的 token 只是加一层验证,防止接口被人盗用,默认值为 `ACCESS_TOKEN` ; diff --git a/packages/global/core/chat/type.d.ts b/packages/global/core/chat/type.d.ts index f1469aec84e..8c8cb9c8833 100644 --- a/packages/global/core/chat/type.d.ts +++ b/packages/global/core/chat/type.d.ts @@ -22,6 +22,7 @@ export type ChatSchema = { shareId?: string; outLinkUid?: string; content: ChatItemType[]; + metadata?: Record; }; export type ChatWithAppSchema = Omit & { diff --git a/packages/service/core/chat/chatSchema.ts b/packages/service/core/chat/chatSchema.ts index b94e1ba298a..637e69550ef 100644 --- a/packages/service/core/chat/chatSchema.ts +++ b/packages/service/core/chat/chatSchema.ts @@ -69,26 +69,6 @@ const ChatSchema = new Schema({ //For special storage type: Object, default: {} - }, - content: { - type: [ - { - obj: { - type: String, - required: true, - enum: Object.keys(ChatRoleMap) - }, - value: { - type: String, - default: '' - }, - [ModuleOutputKeyEnum.responseData]: { - type: Array, - default: [] - } - } - ], - default: [] } }); diff --git a/projects/app/src/pages/api/v1/chat/completions.ts b/projects/app/src/pages/api/v1/chat/completions.ts index 27fdd000a1e..2ad3538780b 100644 --- a/projects/app/src/pages/api/v1/chat/completions.ts +++ b/projects/app/src/pages/api/v1/chat/completions.ts @@ -69,6 +69,8 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex } = req.body as Props; try { + const originIp = requestIp.getClientIp(req); + await connectToDatabase(); // body data check if (!messages) { @@ -99,7 +101,7 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex if (shareId && outLinkUid) { const { user, appId, authType, responseDetail, uid } = await authOutLinkChatStart({ shareId, - ip: requestIp.getClientIp(req), + ip: originIp, outLinkUid, question: question.value }); @@ -245,7 +247,10 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex value: answerText, responseData } - ] + ], + metadata: { + originIp + } }); } diff --git a/projects/app/src/service/utils/chat/saveChat.ts b/projects/app/src/service/utils/chat/saveChat.ts index 36b6becf7a3..78ef20da28b 100644 --- a/projects/app/src/service/utils/chat/saveChat.ts +++ b/projects/app/src/service/utils/chat/saveChat.ts @@ -17,6 +17,7 @@ type Props = { shareId?: string; outLinkUid?: string; content: [ChatItemType, ChatItemType]; + metadata?: Record; }; export async function saveChat({ @@ -29,7 +30,8 @@ export async function saveChat({ source, shareId, outLinkUid, - content + content, + metadata = {} }: Props) { try { const chat = await MongoChat.findOne( @@ -39,9 +41,14 @@ export async function saveChat({ tmbId, appId }, - '_id' + '_id metadata' ); + const metadataUpdate = { + ...chat?.metadata, + ...metadata + }; + const promise: any[] = [ MongoChatItem.insertMany( content.map((item) => ({ @@ -53,6 +60,7 @@ export async function saveChat({ })) ) ]; + console.log(metadataUpdate); const title = chatContentReplaceBlock(content[0].value).slice(0, 20) || @@ -65,7 +73,8 @@ export async function saveChat({ { chatId }, { title, - updateTime: new Date() + updateTime: new Date(), + metadata: metadataUpdate } ) ); @@ -80,7 +89,8 @@ export async function saveChat({ title, source, shareId, - outLinkUid + outLinkUid, + metadata: metadataUpdate }) ); }