muxi feng commited on
Commit
95af8b5
·
1 Parent(s): 94bef03

增加消息记录功能

Browse files
app/api/common.ts CHANGED
@@ -1,4 +1,5 @@
1
  import { NextRequest } from "next/server";
 
2
 
3
  const OPENAI_URL = "api.openai.com";
4
  const DEFAULT_PROTOCOL = "https";
 
1
  import { NextRequest } from "next/server";
2
+ import { getIP } from "./auth";
3
 
4
  const OPENAI_URL = "api.openai.com";
5
  const DEFAULT_PROTOCOL = "https";
app/api/user/chatmessage/route.ts ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import { NextRequest, NextResponse } from "next/server";
2
+ import { auth, getIP } from "../../auth";
3
+
4
+ export async function POST(req: NextRequest) {
5
+ try {
6
+ const authResult = auth(req);
7
+ if (authResult.error) {
8
+ return NextResponse.json(authResult, {
9
+ status: 401,
10
+ });
11
+ }
12
+ const token=req.headers.get("auth") ?? ""
13
+ let res=await fetch("https://eladmin.dwzynj.top/api/chatMessage/addChatMessage", {
14
+ method: "POST",
15
+ headers:{
16
+ "Content-Type":'application/json;charset=utf-8',
17
+ "Authorization":token,
18
+ "UserIp": String(getIP(req))
19
+ },
20
+ body:JSON.stringify(await req.json())
21
+ })
22
+ if(res.status==401){
23
+ let msg={
24
+ flag:false,
25
+ msg:"未登录!"
26
+ }
27
+ // console.log(res.status)
28
+ return new Response(JSON.stringify(msg))
29
+ }
30
+ let msg=await res.json()
31
+ // console.log(msg)
32
+ return new Response(JSON.stringify(msg))
33
+ } catch (e) {
34
+ console.error("[eladmin] ", e);
35
+ return new Response(JSON.stringify(e));
36
+ }
37
+ }
app/masks/cn.ts CHANGED
@@ -18,7 +18,7 @@ export const CN_MASKS: BuiltinMask[] = [
18
  },
19
  ],
20
  modelConfig: {
21
- model: "gpt-4",
22
  temperature: 0.5,
23
  max_tokens: 2000,
24
  presence_penalty: 0,
 
18
  },
19
  ],
20
  modelConfig: {
21
+ model: "gpt-3.5-turbo",
22
  temperature: 0.5,
23
  max_tokens: 2000,
24
  presence_penalty: 0,
app/requests.ts CHANGED
@@ -201,6 +201,21 @@ async function isVip() {
201
  return response
202
  }
203
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
204
 
205
  export async function requestChatStream(
206
  messages: Message[],
@@ -233,7 +248,8 @@ export async function requestChatStream(
233
  }
234
  if (Bot == "Lemur"){
235
  const req = makeRevChatRequestParam(messages);
236
-
 
237
  console.log("[Request] ", req);
238
 
239
  const controller = new AbortController();
@@ -256,6 +272,7 @@ export async function requestChatStream(
256
  const finish = () => {
257
  options?.onMessage(responseText, true);
258
  controller.abort();
 
259
  };
260
 
261
  if (res.ok) {
@@ -302,6 +319,7 @@ export async function requestChatStream(
302
  overrideModel: options?.overrideModel,
303
  });
304
 
 
305
  console.log("[Request] ", req);
306
 
307
  const controller = new AbortController();
@@ -326,6 +344,7 @@ export async function requestChatStream(
326
  const finish = () => {
327
  options?.onMessage(responseText, true);
328
  controller.abort();
 
329
  };
330
 
331
  if (res.ok) {
@@ -368,6 +387,7 @@ export async function requestChatStream(
368
  } else if (Bot == "OpenAI绘画 (VIP)") {
369
  console.log("[Request] ", messages[messages.length - 1].content);
370
  const req = makeImageRequestParam(messages);
 
371
  const controller = new AbortController();
372
  const reqTimeoutId = setTimeout(() => controller.abort(), TIME_OUT_MS);
373
  try {
@@ -391,6 +411,7 @@ export async function requestChatStream(
391
  true,
392
  );
393
  controller.abort();
 
394
  }else if(res.status === 401){
395
  console.error("Unauthorized");
396
  options?.onError(new Error("Unauthorized"), res.status);
@@ -401,6 +422,7 @@ export async function requestChatStream(
401
  }
402
  } else if (Bot == "必应 (VIP)") {
403
  console.log("[Request] ", messages[messages.length - 1].content);
 
404
  const controller = new AbortController();
405
  const reqTimeoutId = setTimeout(() => controller.abort(), TIME_OUT_MS);
406
  try {
@@ -426,6 +448,7 @@ export async function requestChatStream(
426
  // }
427
  options?.onMessage(message, true);
428
  controller.abort();
 
429
  }else if(res.status === 401){
430
  console.error("Unauthorized");
431
  options?.onError(new Error("Unauthorized"), res.status);
@@ -436,6 +459,7 @@ export async function requestChatStream(
436
  }
437
  } else if (Bot == "万卷 (VIP)") {
438
  console.log("[Request] ", messages[messages.length - 1].content);
 
439
  const controller = new AbortController();
440
  const reqTimeoutId = setTimeout(() => controller.abort(), TIME_OUT_MS);
441
  try {
@@ -450,8 +474,10 @@ export async function requestChatStream(
450
 
451
  clearTimeout(reqTimeoutId);
452
  if(res.ok){
453
- options?.onMessage(await res.text(), true);
 
454
  controller.abort();
 
455
  }else if(res.status === 401){
456
  console.error("Unauthorized");
457
  options?.onError(new Error("Unauthorized"), res.status);
@@ -463,6 +489,7 @@ export async function requestChatStream(
463
  } else if (Bot == "必应绘画") {
464
  console.log("[Request] ", messages[messages.length - 1].content);
465
  const req = makeImageRequestParam(messages);
 
466
  const controller = new AbortController();
467
  const reqTimeoutId = setTimeout(() => controller.abort(), TIME_OUT_MS);
468
  try {
@@ -483,6 +510,7 @@ export async function requestChatStream(
483
  true,
484
  );
485
  controller.abort();
 
486
  } catch (err) {
487
  console.error("NetWork Error", err);
488
  options?.onMessage("请换一个问题试试吧", true);
@@ -491,6 +519,7 @@ export async function requestChatStream(
491
  const req = makeRevChatRequestParam(messages);
492
 
493
  console.log("[Request] ", req);
 
494
 
495
  const controller = new AbortController();
496
  const reqTimeoutId = setTimeout(() => controller.abort(), TIME_OUT_MS);
@@ -512,6 +541,7 @@ export async function requestChatStream(
512
  const finish = () => {
513
  options?.onMessage(responseText, true);
514
  controller.abort();
 
515
  };
516
 
517
  if (res.ok) {
 
201
  return response
202
  }
203
 
204
+ function chatMessage(message:string,messageType:string,messageSource:string) {
205
+ let body={
206
+ messageType:messageType,
207
+ messageText:message,
208
+ messageSource:messageSource
209
+ }
210
+ fetch("/api/user/chatmessage",{
211
+ method:"POST",
212
+ headers:{
213
+ "Content-Type": "application/json",
214
+ ...getHeaders()
215
+ },
216
+ body:JSON.stringify(body)
217
+ })
218
+ }
219
 
220
  export async function requestChatStream(
221
  messages: Message[],
 
248
  }
249
  if (Bot == "Lemur"){
250
  const req = makeRevChatRequestParam(messages);
251
+
252
+ chatMessage(req.messages,"文字","user")
253
  console.log("[Request] ", req);
254
 
255
  const controller = new AbortController();
 
272
  const finish = () => {
273
  options?.onMessage(responseText, true);
274
  controller.abort();
275
+ chatMessage(responseText,"文字","system")
276
  };
277
 
278
  if (res.ok) {
 
319
  overrideModel: options?.overrideModel,
320
  });
321
 
322
+ chatMessage(JSON.stringify(req.messages),"文字","user")
323
  console.log("[Request] ", req);
324
 
325
  const controller = new AbortController();
 
344
  const finish = () => {
345
  options?.onMessage(responseText, true);
346
  controller.abort();
347
+ chatMessage(responseText,"文字","system")
348
  };
349
 
350
  if (res.ok) {
 
387
  } else if (Bot == "OpenAI绘画 (VIP)") {
388
  console.log("[Request] ", messages[messages.length - 1].content);
389
  const req = makeImageRequestParam(messages);
390
+ chatMessage(req.prompt,"文字","user")
391
  const controller = new AbortController();
392
  const reqTimeoutId = setTimeout(() => controller.abort(), TIME_OUT_MS);
393
  try {
 
411
  true,
412
  );
413
  controller.abort();
414
+ chatMessage(JSON.stringify(response.data[0].url).replace(reg, "$1"),"文字","system")
415
  }else if(res.status === 401){
416
  console.error("Unauthorized");
417
  options?.onError(new Error("Unauthorized"), res.status);
 
422
  }
423
  } else if (Bot == "必应 (VIP)") {
424
  console.log("[Request] ", messages[messages.length - 1].content);
425
+ chatMessage(messages[messages.length - 1].content,"文字","user")
426
  const controller = new AbortController();
427
  const reqTimeoutId = setTimeout(() => controller.abort(), TIME_OUT_MS);
428
  try {
 
448
  // }
449
  options?.onMessage(message, true);
450
  controller.abort();
451
+ chatMessage(message,"文字","system")
452
  }else if(res.status === 401){
453
  console.error("Unauthorized");
454
  options?.onError(new Error("Unauthorized"), res.status);
 
459
  }
460
  } else if (Bot == "万卷 (VIP)") {
461
  console.log("[Request] ", messages[messages.length - 1].content);
462
+ chatMessage(messages[messages.length - 1].content,"文字","user")
463
  const controller = new AbortController();
464
  const reqTimeoutId = setTimeout(() => controller.abort(), TIME_OUT_MS);
465
  try {
 
474
 
475
  clearTimeout(reqTimeoutId);
476
  if(res.ok){
477
+ let message=await res.text()
478
+ options?.onMessage(message, true);
479
  controller.abort();
480
+ chatMessage(message,"文字","system")
481
  }else if(res.status === 401){
482
  console.error("Unauthorized");
483
  options?.onError(new Error("Unauthorized"), res.status);
 
489
  } else if (Bot == "必应绘画") {
490
  console.log("[Request] ", messages[messages.length - 1].content);
491
  const req = makeImageRequestParam(messages);
492
+ chatMessage(messages[messages.length - 1].content,"文字","user")
493
  const controller = new AbortController();
494
  const reqTimeoutId = setTimeout(() => controller.abort(), TIME_OUT_MS);
495
  try {
 
510
  true,
511
  );
512
  controller.abort();
513
+ chatMessage(JSON.stringify(response.data[0].url).replace(reg, "$1"),"图片","system")
514
  } catch (err) {
515
  console.error("NetWork Error", err);
516
  options?.onMessage("请换一个问题试试吧", true);
 
519
  const req = makeRevChatRequestParam(messages);
520
 
521
  console.log("[Request] ", req);
522
+ chatMessage(req.messages,"文字","user")
523
 
524
  const controller = new AbortController();
525
  const reqTimeoutId = setTimeout(() => controller.abort(), TIME_OUT_MS);
 
541
  const finish = () => {
542
  options?.onMessage(responseText, true);
543
  controller.abort();
544
+ chatMessage(responseText,"文字","system")
545
  };
546
 
547
  if (res.ok) {
app/store/config.ts CHANGED
@@ -108,17 +108,17 @@ export const ALL_BOT = [
108
  name: "OpenAI绘画 (VIP)",
109
  available: true,
110
  },
111
- // {
112
- // name: "必应 (VIP)",
113
- // available: true,
114
- // },
115
- // {
116
- // name: "必应绘画",
117
- // available: true,
118
- // },
119
  {
120
  name: "万卷 (VIP)",
121
- available: true,
122
  },
123
  {
124
  name: "Lemur",
 
108
  name: "OpenAI绘画 (VIP)",
109
  available: true,
110
  },
111
+ {
112
+ name: "必应 (VIP)",
113
+ available: false,
114
+ },
115
+ {
116
+ name: "必应绘画",
117
+ available: false,
118
+ },
119
  {
120
  name: "万卷 (VIP)",
121
+ available: false,
122
  },
123
  {
124
  name: "Lemur",