mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-22 20:37:48 +00:00
perf: logger (#186)
* feat: finish response * perf: logger * docs * perf: log * docs
This commit is contained in:
@@ -17,10 +17,5 @@ OPENAI_BASE_URL=https://api.openai.com/v1
|
|||||||
# 此处逻辑:优先走 ONEAPI_URL,如果填写了 ONEAPI_URL,key 也需要是 ONEAPI 的 key
|
# 此处逻辑:优先走 ONEAPI_URL,如果填写了 ONEAPI_URL,key 也需要是 ONEAPI 的 key
|
||||||
CHAT_API_KEY=sk-xxxx
|
CHAT_API_KEY=sk-xxxx
|
||||||
# db
|
# db
|
||||||
MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
|
MONGODB_URI=mongodb://username:password@0.0.0.0:27017/fastgpt
|
||||||
MONGODB_NAME=fastgpt
|
PG_URL=postgresql://username:password@host:port/postgres
|
||||||
PG_HOST=0.0.0.0
|
|
||||||
PG_PORT=8100
|
|
||||||
PG_USER=root
|
|
||||||
PG_PASSWORD=psw
|
|
||||||
PG_DB_NAME=dbname
|
|
@@ -58,6 +58,8 @@
|
|||||||
"request-ip": "^3.3.0",
|
"request-ip": "^3.3.0",
|
||||||
"sass": "^1.58.3",
|
"sass": "^1.58.3",
|
||||||
"tunnel": "^0.0.6",
|
"tunnel": "^0.0.6",
|
||||||
|
"winston": "^3.10.0",
|
||||||
|
"winston-mongodb": "^5.1.1",
|
||||||
"zustand": "^4.3.5"
|
"zustand": "^4.3.5"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
|
285
client/pnpm-lock.yaml
generated
285
client/pnpm-lock.yaml
generated
@@ -152,6 +152,12 @@ dependencies:
|
|||||||
tunnel:
|
tunnel:
|
||||||
specifier: ^0.0.6
|
specifier: ^0.0.6
|
||||||
version: registry.npmmirror.com/tunnel@0.0.6
|
version: registry.npmmirror.com/tunnel@0.0.6
|
||||||
|
winston:
|
||||||
|
specifier: ^3.10.0
|
||||||
|
version: registry.npmmirror.com/winston@3.10.0
|
||||||
|
winston-mongodb:
|
||||||
|
specifier: ^5.1.1
|
||||||
|
version: registry.npmmirror.com/winston-mongodb@5.1.1(winston@3.10.0)
|
||||||
zustand:
|
zustand:
|
||||||
specifier: ^4.3.5
|
specifier: ^4.3.5
|
||||||
version: registry.npmmirror.com/zustand@4.3.5(immer@9.0.19)(react@18.2.0)
|
version: registry.npmmirror.com/zustand@4.3.5(immer@9.0.19)(react@18.2.0)
|
||||||
@@ -4155,6 +4161,23 @@ packages:
|
|||||||
react: registry.npmmirror.com/react@18.2.0
|
react: registry.npmmirror.com/react@18.2.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/@colors/colors@1.5.0:
|
||||||
|
resolution: {integrity: sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@colors/colors/-/colors-1.5.0.tgz}
|
||||||
|
name: '@colors/colors'
|
||||||
|
version: 1.5.0
|
||||||
|
engines: {node: '>=0.1.90'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/@dabh/diagnostics@2.0.3:
|
||||||
|
resolution: {integrity: sha512-hrlQOIi7hAfzsMqlGSFyVucrx38O+j6wiGOf//H2ecvIEqYN4ADBSS2iLMh5UFyDunCNniUIPk/q3riFv45xRA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@dabh/diagnostics/-/diagnostics-2.0.3.tgz}
|
||||||
|
name: '@dabh/diagnostics'
|
||||||
|
version: 2.0.3
|
||||||
|
dependencies:
|
||||||
|
colorspace: registry.npmmirror.com/colorspace@1.1.4
|
||||||
|
enabled: registry.npmmirror.com/enabled@2.0.0
|
||||||
|
kuler: registry.npmmirror.com/kuler@2.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/@dqbd/tiktoken@1.0.7:
|
registry.npmmirror.com/@dqbd/tiktoken@1.0.7:
|
||||||
resolution: {integrity: sha512-bhR5k5W+8GLzysjk8zTMVygQZsgvf7W1F0IlL4ZQ5ugjo5rCyiwGM5d8DYriXspytfu98tv59niang3/T+FoDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@dqbd/tiktoken/-/tiktoken-1.0.7.tgz}
|
resolution: {integrity: sha512-bhR5k5W+8GLzysjk8zTMVygQZsgvf7W1F0IlL4ZQ5ugjo5rCyiwGM5d8DYriXspytfu98tv59niang3/T+FoDw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@dqbd/tiktoken/-/tiktoken-1.0.7.tgz}
|
||||||
name: '@dqbd/tiktoken'
|
name: '@dqbd/tiktoken'
|
||||||
@@ -5484,6 +5507,12 @@ packages:
|
|||||||
name: '@types/scheduler'
|
name: '@types/scheduler'
|
||||||
version: 0.16.3
|
version: 0.16.3
|
||||||
|
|
||||||
|
registry.npmmirror.com/@types/triple-beam@1.3.2:
|
||||||
|
resolution: {integrity: sha512-txGIh+0eDFzKGC25zORnswy+br1Ha7hj5cMVwKIU7+s0U2AxxJru/jZSMU6OC9MJWP6+pc/hc6ZjyZShpsyY2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/triple-beam/-/triple-beam-1.3.2.tgz}
|
||||||
|
name: '@types/triple-beam'
|
||||||
|
version: 1.3.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/@types/tunnel@0.0.3:
|
registry.npmmirror.com/@types/tunnel@0.0.3:
|
||||||
resolution: {integrity: sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/tunnel/-/tunnel-0.0.3.tgz}
|
resolution: {integrity: sha512-sOUTGn6h1SfQ+gbgqC364jLFBw2lnFqkgF3q0WovEHRLMrVD1sd5aufqi/aJObLekJO+Aq5z646U4Oxy6shXMA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/@types/tunnel/-/tunnel-0.0.3.tgz}
|
||||||
name: '@types/tunnel'
|
name: '@types/tunnel'
|
||||||
@@ -5771,6 +5800,12 @@ packages:
|
|||||||
version: 0.0.7
|
version: 0.0.7
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
registry.npmmirror.com/async@3.2.4:
|
||||||
|
resolution: {integrity: sha512-iAB+JbDEGXhyIUavoDl9WP/Jj106Kz9DEn1DPgYw5ruDn0e3Wgi3sKFm55sASdGBNOQB8F59d9qQ7deqrHA8wQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/async/-/async-3.2.4.tgz}
|
||||||
|
name: async
|
||||||
|
version: 3.2.4
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/asynckit@0.4.0:
|
registry.npmmirror.com/asynckit@0.4.0:
|
||||||
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz}
|
resolution: {integrity: sha512-Oei9OH4tRh0YqU3GxhX79dM/mwVgvbZJaSNaRk+bshkj0S5cfHcgYakreBjrHwatXKbz+IoIdYLxrKim2MjW0Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/asynckit/-/asynckit-0.4.0.tgz}
|
||||||
name: asynckit
|
name: asynckit
|
||||||
@@ -5909,6 +5944,15 @@ packages:
|
|||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/bl@2.2.1:
|
||||||
|
resolution: {integrity: sha512-6Pesp1w0DEX1N550i/uGV/TqucVL4AM/pgThFSN/Qq9si1/DF9aIHs1BxD8V/QU0HoeHO6cQRTAuYnLPKq1e4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bl/-/bl-2.2.1.tgz}
|
||||||
|
name: bl
|
||||||
|
version: 2.2.1
|
||||||
|
dependencies:
|
||||||
|
readable-stream: registry.npmmirror.com/readable-stream@2.3.8
|
||||||
|
safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/bluebird@3.4.7:
|
registry.npmmirror.com/bluebird@3.4.7:
|
||||||
resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz}
|
resolution: {integrity: sha512-iD3898SR7sWVRHbiQv+sHUtHnMvC1o3nW5rAcqnq3uOn07DSAppZYUkIGslDz6gXC7HfunPe7YVBgoEJASPcHA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bluebird/-/bluebird-3.4.7.tgz}
|
||||||
name: bluebird
|
name: bluebird
|
||||||
@@ -5966,6 +6010,13 @@ packages:
|
|||||||
node-releases: registry.npmmirror.com/node-releases@2.0.12
|
node-releases: registry.npmmirror.com/node-releases@2.0.12
|
||||||
update-browserslist-db: registry.npmmirror.com/update-browserslist-db@1.0.11(browserslist@4.21.7)
|
update-browserslist-db: registry.npmmirror.com/update-browserslist-db@1.0.11(browserslist@4.21.7)
|
||||||
|
|
||||||
|
registry.npmmirror.com/bson@1.1.6:
|
||||||
|
resolution: {integrity: sha512-EvVNVeGo4tHxwi8L6bPj3y3itEvStdwvvlojVxxbyYfoaxJ6keLgrTuKdyfEAszFK+H3olzBuafE0yoh0D1gdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bson/-/bson-1.1.6.tgz}
|
||||||
|
name: bson
|
||||||
|
version: 1.1.6
|
||||||
|
engines: {node: '>=0.6.19'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/bson@4.7.2:
|
registry.npmmirror.com/bson@4.7.2:
|
||||||
resolution: {integrity: sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bson/-/bson-4.7.2.tgz}
|
resolution: {integrity: sha512-Ry9wCtIZ5kGqkJoi6aD8KjxFZEx78guTQDnpXWiNthsxzrxAK/i8E6pCHAIZTbaEFWcOCvbecMukfK7XUvyLpQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/bson/-/bson-4.7.2.tgz}
|
||||||
name: bson
|
name: bson
|
||||||
@@ -6136,7 +6187,15 @@ packages:
|
|||||||
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz}
|
resolution: {integrity: sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-name/-/color-name-1.1.4.tgz}
|
||||||
name: color-name
|
name: color-name
|
||||||
version: 1.1.4
|
version: 1.1.4
|
||||||
dev: true
|
|
||||||
|
registry.npmmirror.com/color-string@1.9.1:
|
||||||
|
resolution: {integrity: sha512-shrVawQFojnZv6xM40anx4CkoDP+fZsw/ZerEMsW/pyzsRbElpsL/DBVW7q3ExxwusdNXI3lXpuhEZkzs8p5Eg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color-string/-/color-string-1.9.1.tgz}
|
||||||
|
name: color-string
|
||||||
|
version: 1.9.1
|
||||||
|
dependencies:
|
||||||
|
color-name: registry.npmmirror.com/color-name@1.1.4
|
||||||
|
simple-swizzle: registry.npmmirror.com/simple-swizzle@0.2.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/color2k@2.0.2:
|
registry.npmmirror.com/color2k@2.0.2:
|
||||||
resolution: {integrity: sha512-kJhwH5nAwb34tmyuqq/lgjEKzlFXn1U99NlnB6Ws4qVaERcRUYeYP1cBw6BJ4vxaWStAUEef4WMr7WjOCnBt8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color2k/-/color2k-2.0.2.tgz}
|
resolution: {integrity: sha512-kJhwH5nAwb34tmyuqq/lgjEKzlFXn1U99NlnB6Ws4qVaERcRUYeYP1cBw6BJ4vxaWStAUEef4WMr7WjOCnBt8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color2k/-/color2k-2.0.2.tgz}
|
||||||
@@ -6144,6 +6203,24 @@ packages:
|
|||||||
version: 2.0.2
|
version: 2.0.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/color@3.2.1:
|
||||||
|
resolution: {integrity: sha512-aBl7dZI9ENN6fUGC7mWpMTPNHmWUSNan9tuWN6ahh5ZLNk9baLJOnSMlrQkHcrfFgz2/RigjUVAjdx36VcemKA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/color/-/color-3.2.1.tgz}
|
||||||
|
name: color
|
||||||
|
version: 3.2.1
|
||||||
|
dependencies:
|
||||||
|
color-convert: registry.npmmirror.com/color-convert@1.9.3
|
||||||
|
color-string: registry.npmmirror.com/color-string@1.9.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/colorspace@1.1.4:
|
||||||
|
resolution: {integrity: sha512-BgvKJiuVu1igBUF2kEjRCZXol6wiiGbY5ipL/oVPwm0BL9sIpMIzM8IK7vwuxIIzOXMV3Ey5w+vxhm0rR/TN8w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/colorspace/-/colorspace-1.1.4.tgz}
|
||||||
|
name: colorspace
|
||||||
|
version: 1.1.4
|
||||||
|
dependencies:
|
||||||
|
color: registry.npmmirror.com/color@3.2.1
|
||||||
|
text-hex: registry.npmmirror.com/text-hex@1.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/combined-stream@1.0.8:
|
registry.npmmirror.com/combined-stream@1.0.8:
|
||||||
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz}
|
resolution: {integrity: sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/combined-stream/-/combined-stream-1.0.8.tgz}
|
||||||
name: combined-stream
|
name: combined-stream
|
||||||
@@ -6839,6 +6916,13 @@ packages:
|
|||||||
engines: {node: '>=0.4.0'}
|
engines: {node: '>=0.4.0'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/denque@1.5.1:
|
||||||
|
resolution: {integrity: sha512-XwE+iZ4D6ZUB7mfYRMb5wByE8L74HCn30FBN7sWnXksWc1LO1bPDl67pBR9o/kC4z/xSNAwkMYcGgqDV3BE3Hw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/denque/-/denque-1.5.1.tgz}
|
||||||
|
name: denque
|
||||||
|
version: 1.5.1
|
||||||
|
engines: {node: '>=0.10'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/dequal@2.0.3:
|
registry.npmmirror.com/dequal@2.0.3:
|
||||||
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz}
|
resolution: {integrity: sha512-0je+qPKHEMohvfRTCEo3CrPG6cAzAYgmzKyxRiYSSDkS6eGJdyVJm7WaYA5ECaAD9wLB2T4EEeymA5aFVcYXCA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/dequal/-/dequal-2.0.3.tgz}
|
||||||
name: dequal
|
name: dequal
|
||||||
@@ -6984,6 +7068,12 @@ packages:
|
|||||||
version: 9.2.2
|
version: 9.2.2
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
registry.npmmirror.com/enabled@2.0.0:
|
||||||
|
resolution: {integrity: sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/enabled/-/enabled-2.0.0.tgz}
|
||||||
|
name: enabled
|
||||||
|
version: 2.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/enhanced-resolve@5.14.1:
|
registry.npmmirror.com/enhanced-resolve@5.14.1:
|
||||||
resolution: {integrity: sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz}
|
resolution: {integrity: sha512-Vklwq2vDKtl0y/vtwjSesgJ5MYS7Etuk5txS8VdKL4AOS1aUlD96zqIfsOSLQsdv3xgMRbtkWM8eG9XDfKUPow==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/enhanced-resolve/-/enhanced-resolve-5.14.1.tgz}
|
||||||
name: enhanced-resolve
|
name: enhanced-resolve
|
||||||
@@ -7557,6 +7647,12 @@ packages:
|
|||||||
format: registry.npmmirror.com/format@0.2.2
|
format: registry.npmmirror.com/format@0.2.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/fecha@4.2.3:
|
||||||
|
resolution: {integrity: sha512-OP2IUU6HeYKJi3i0z4A19kHMQoLVs4Hc+DPqqxI2h/DPZHTm/vjsfC6P0b4jCMy14XizLBqvndQ+UilD7707Jw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fecha/-/fecha-4.2.3.tgz}
|
||||||
|
name: fecha
|
||||||
|
version: 4.2.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/file-entry-cache@6.0.1:
|
registry.npmmirror.com/file-entry-cache@6.0.1:
|
||||||
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz}
|
resolution: {integrity: sha512-7Gps/XWymbLk2QLYK4NzpMOrYjMhdIxXuIvy2QBsLE6ljuodKvdkWs/cpyJJ3CVIVpH0Oi1Hvg1ovbMzLdFBBg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz}
|
||||||
name: file-entry-cache
|
name: file-entry-cache
|
||||||
@@ -7606,6 +7702,12 @@ packages:
|
|||||||
version: 3.2.7
|
version: 3.2.7
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
registry.npmmirror.com/fn.name@1.1.0:
|
||||||
|
resolution: {integrity: sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/fn.name/-/fn.name-1.1.0.tgz}
|
||||||
|
name: fn.name
|
||||||
|
version: 1.1.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/focus-lock@0.11.6:
|
registry.npmmirror.com/focus-lock@0.11.6:
|
||||||
resolution: {integrity: sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/focus-lock/-/focus-lock-0.11.6.tgz}
|
resolution: {integrity: sha512-KSuV3ur4gf2KqMNoZx3nXNVhqCkn42GuTYCX4tXPEwf0MjpFQmNMiN6m7dXaUXgIoivL6/65agoUMg4RLS0Vbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/focus-lock/-/focus-lock-0.11.6.tgz}
|
||||||
name: focus-lock
|
name: focus-lock
|
||||||
@@ -8249,6 +8351,12 @@ packages:
|
|||||||
name: is-arrayish
|
name: is-arrayish
|
||||||
version: 0.2.1
|
version: 0.2.1
|
||||||
|
|
||||||
|
registry.npmmirror.com/is-arrayish@0.3.2:
|
||||||
|
resolution: {integrity: sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-arrayish/-/is-arrayish-0.3.2.tgz}
|
||||||
|
name: is-arrayish
|
||||||
|
version: 0.3.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/is-bigint@1.0.4:
|
registry.npmmirror.com/is-bigint@1.0.4:
|
||||||
resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz}
|
resolution: {integrity: sha512-zB9CruMamjym81i2JZ3UMn54PKGsQzsJeo6xvN3HJJ4CAsQNB6iRutp2To77OfCNuoxspsIhzaPoO1zyCEhFOg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-bigint/-/is-bigint-1.0.4.tgz}
|
||||||
name: is-bigint
|
name: is-bigint
|
||||||
@@ -8429,7 +8537,6 @@ packages:
|
|||||||
name: is-stream
|
name: is-stream
|
||||||
version: 2.0.1
|
version: 2.0.1
|
||||||
engines: {node: '>=8'}
|
engines: {node: '>=8'}
|
||||||
dev: true
|
|
||||||
|
|
||||||
registry.npmmirror.com/is-stream@3.0.0:
|
registry.npmmirror.com/is-stream@3.0.0:
|
||||||
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz}
|
resolution: {integrity: sha512-LnQR4bZ9IADDRSkvpqMGvt/tEJWclzklNgSw48V5EAaAeDd6qGvN8ei6k5p0tvxSR171VmGyHuTiAOfxAbr8kA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/is-stream/-/is-stream-3.0.0.tgz}
|
||||||
@@ -8683,6 +8790,12 @@ packages:
|
|||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/kuler@2.0.0:
|
||||||
|
resolution: {integrity: sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/kuler/-/kuler-2.0.0.tgz}
|
||||||
|
name: kuler
|
||||||
|
version: 2.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/language-subtag-registry@0.3.22:
|
registry.npmmirror.com/language-subtag-registry@0.3.22:
|
||||||
resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz}
|
resolution: {integrity: sha512-tN0MCzyWnoz/4nHS6uxdlFWoUZT7ABptwKPQ52Ea7URk6vll88bWBVhodtnlfEuCcKWNGoc+uGbw1cwa9IKh/w==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/language-subtag-registry/-/language-subtag-registry-0.3.22.tgz}
|
||||||
name: language-subtag-registry
|
name: language-subtag-registry
|
||||||
@@ -8771,6 +8884,19 @@ packages:
|
|||||||
version: 4.17.21
|
version: 4.17.21
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/logform@2.5.1:
|
||||||
|
resolution: {integrity: sha512-9FyqAm9o9NKKfiAKfZoYo9bGXXuwMkxQiQttkT4YjjVtQVIQtK6LmVtlxmCaFswo6N4AfEkHqZTV0taDtPotNg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/logform/-/logform-2.5.1.tgz}
|
||||||
|
name: logform
|
||||||
|
version: 2.5.1
|
||||||
|
dependencies:
|
||||||
|
'@colors/colors': registry.npmmirror.com/@colors/colors@1.5.0
|
||||||
|
'@types/triple-beam': registry.npmmirror.com/@types/triple-beam@1.3.2
|
||||||
|
fecha: registry.npmmirror.com/fecha@4.2.3
|
||||||
|
ms: registry.npmmirror.com/ms@2.1.3
|
||||||
|
safe-stable-stringify: registry.npmmirror.com/safe-stable-stringify@2.4.3
|
||||||
|
triple-beam: registry.npmmirror.com/triple-beam@1.4.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/longest-streak@3.1.0:
|
registry.npmmirror.com/longest-streak@3.1.0:
|
||||||
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/longest-streak/-/longest-streak-3.1.0.tgz}
|
resolution: {integrity: sha512-9Ri+o0JYgehTaVBBDoMqIl8GXtbWg711O3srftcHhZ0dqnETqLaoIK0x17fUw9rFSlK/0NlsKe0Ahhyl5pXE2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/longest-streak/-/longest-streak-3.1.0.tgz}
|
||||||
name: longest-streak
|
name: longest-streak
|
||||||
@@ -9450,6 +9576,41 @@ packages:
|
|||||||
whatwg-url: registry.npmmirror.com/whatwg-url@11.0.0
|
whatwg-url: registry.npmmirror.com/whatwg-url@11.0.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/mongodb@3.7.4:
|
||||||
|
resolution: {integrity: sha512-K5q8aBqEXMwWdVNh94UQTwZ6BejVbFhh1uB6c5FKtPE9eUMZPUO3sRZdgIEcHSrAWmxzpG/FeODDKL388sqRmw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mongodb/-/mongodb-3.7.4.tgz}
|
||||||
|
name: mongodb
|
||||||
|
version: 3.7.4
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
peerDependencies:
|
||||||
|
aws4: '*'
|
||||||
|
bson-ext: '*'
|
||||||
|
kerberos: '*'
|
||||||
|
mongodb-client-encryption: '*'
|
||||||
|
mongodb-extjson: '*'
|
||||||
|
snappy: '*'
|
||||||
|
peerDependenciesMeta:
|
||||||
|
aws4:
|
||||||
|
optional: true
|
||||||
|
bson-ext:
|
||||||
|
optional: true
|
||||||
|
kerberos:
|
||||||
|
optional: true
|
||||||
|
mongodb-client-encryption:
|
||||||
|
optional: true
|
||||||
|
mongodb-extjson:
|
||||||
|
optional: true
|
||||||
|
snappy:
|
||||||
|
optional: true
|
||||||
|
dependencies:
|
||||||
|
bl: registry.npmmirror.com/bl@2.2.1
|
||||||
|
bson: registry.npmmirror.com/bson@1.1.6
|
||||||
|
denque: registry.npmmirror.com/denque@1.5.1
|
||||||
|
optional-require: registry.npmmirror.com/optional-require@1.1.8
|
||||||
|
safe-buffer: registry.npmmirror.com/safe-buffer@5.2.1
|
||||||
|
optionalDependencies:
|
||||||
|
saslprep: registry.npmmirror.com/saslprep@1.0.3
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/mongodb@4.14.0:
|
registry.npmmirror.com/mongodb@4.14.0:
|
||||||
resolution: {integrity: sha512-coGKkWXIBczZPr284tYKFLg+KbGPPLlSbdgfKAb6QqCFt5bo5VFZ50O3FFzsw4rnkqjwT6D8Qcoo9nshYKM7Mg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mongodb/-/mongodb-4.14.0.tgz}
|
resolution: {integrity: sha512-coGKkWXIBczZPr284tYKFLg+KbGPPLlSbdgfKAb6QqCFt5bo5VFZ50O3FFzsw4rnkqjwT6D8Qcoo9nshYKM7Mg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/mongodb/-/mongodb-4.14.0.tgz}
|
||||||
name: mongodb
|
name: mongodb
|
||||||
@@ -9763,6 +9924,14 @@ packages:
|
|||||||
dependencies:
|
dependencies:
|
||||||
wrappy: registry.npmmirror.com/wrappy@1.0.2
|
wrappy: registry.npmmirror.com/wrappy@1.0.2
|
||||||
|
|
||||||
|
registry.npmmirror.com/one-time@1.0.0:
|
||||||
|
resolution: {integrity: sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/one-time/-/one-time-1.0.0.tgz}
|
||||||
|
name: one-time
|
||||||
|
version: 1.0.0
|
||||||
|
dependencies:
|
||||||
|
fn.name: registry.npmmirror.com/fn.name@1.1.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/onetime@5.1.2:
|
registry.npmmirror.com/onetime@5.1.2:
|
||||||
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz}
|
resolution: {integrity: sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/onetime/-/onetime-5.1.2.tgz}
|
||||||
name: onetime
|
name: onetime
|
||||||
@@ -9810,6 +9979,15 @@ packages:
|
|||||||
version: 0.2.4
|
version: 0.2.4
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/optional-require@1.1.8:
|
||||||
|
resolution: {integrity: sha512-jq83qaUb0wNg9Krv1c5OQ+58EK+vHde6aBPzLvPPqJm89UQWsvSuFy9X/OSNJnFeSOKo7btE0n8Nl2+nE+z5nA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/optional-require/-/optional-require-1.1.8.tgz}
|
||||||
|
name: optional-require
|
||||||
|
version: 1.1.8
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
dependencies:
|
||||||
|
require-at: registry.npmmirror.com/require-at@1.0.6
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/optionator@0.9.1:
|
registry.npmmirror.com/optionator@0.9.1:
|
||||||
resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz}
|
resolution: {integrity: sha512-74RlY5FCnhq4jRxVUPKDaRwrVNXMqsGsiW6AJw4XK8hmtm10wC0ypZBLw5IIp85NZMr91+qd1RvvENwg7jjRFw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/optionator/-/optionator-0.9.1.tgz}
|
||||||
name: optionator
|
name: optionator
|
||||||
@@ -10392,6 +10570,17 @@ packages:
|
|||||||
util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2
|
util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/readable-stream@3.6.2:
|
||||||
|
resolution: {integrity: sha512-9u/sniCrY3D5WdsERHzHE4G2YCXqoG5FTHUiCC4SIbr6XcLZBY05ya9EKjYek9O5xOAwjGq+1JdGBAS7Q9ScoA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readable-stream/-/readable-stream-3.6.2.tgz}
|
||||||
|
name: readable-stream
|
||||||
|
version: 3.6.2
|
||||||
|
engines: {node: '>= 6'}
|
||||||
|
dependencies:
|
||||||
|
inherits: registry.npmmirror.com/inherits@2.0.4
|
||||||
|
string_decoder: registry.npmmirror.com/string_decoder@1.1.1
|
||||||
|
util-deprecate: registry.npmmirror.com/util-deprecate@1.0.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/readdirp@3.6.0:
|
registry.npmmirror.com/readdirp@3.6.0:
|
||||||
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz}
|
resolution: {integrity: sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/readdirp/-/readdirp-3.6.0.tgz}
|
||||||
name: readdirp
|
name: readdirp
|
||||||
@@ -10569,6 +10758,13 @@ packages:
|
|||||||
version: 3.3.0
|
version: 3.3.0
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/require-at@1.0.6:
|
||||||
|
resolution: {integrity: sha512-7i1auJbMUrXEAZCOQ0VNJgmcT2VOKPRl2YGJwgpHpC9CE91Mv4/4UYIUm4chGJaI381ZDq1JUicFii64Hapd8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/require-at/-/require-at-1.0.6.tgz}
|
||||||
|
name: require-at
|
||||||
|
version: 1.0.6
|
||||||
|
engines: {node: '>=4'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/resolve-from@4.0.0:
|
registry.npmmirror.com/resolve-from@4.0.0:
|
||||||
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz}
|
resolution: {integrity: sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/resolve-from/-/resolve-from-4.0.0.tgz}
|
||||||
name: resolve-from
|
name: resolve-from
|
||||||
@@ -10678,6 +10874,13 @@ packages:
|
|||||||
is-regex: registry.npmmirror.com/is-regex@1.1.4
|
is-regex: registry.npmmirror.com/is-regex@1.1.4
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
registry.npmmirror.com/safe-stable-stringify@2.4.3:
|
||||||
|
resolution: {integrity: sha512-e2bDA2WJT0wxseVd4lsDP4+3ONX6HpMXQa1ZhFQ7SU+GjvORCmShbCMltrtIDfkYhVHrOcPtj+KhmDBdPdZD1g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safe-stable-stringify/-/safe-stable-stringify-2.4.3.tgz}
|
||||||
|
name: safe-stable-stringify
|
||||||
|
version: 2.4.3
|
||||||
|
engines: {node: '>=10'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/safer-buffer@2.1.2:
|
registry.npmmirror.com/safer-buffer@2.1.2:
|
||||||
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz}
|
resolution: {integrity: sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/safer-buffer/-/safer-buffer-2.1.2.tgz}
|
||||||
name: safer-buffer
|
name: safer-buffer
|
||||||
@@ -10779,6 +10982,14 @@ packages:
|
|||||||
version: 3.0.7
|
version: 3.0.7
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
registry.npmmirror.com/simple-swizzle@0.2.2:
|
||||||
|
resolution: {integrity: sha512-JA//kQgZtbuY83m+xT+tXJkmJncGMTFT+C+g2h2R9uxkYIrE2yy9sgmcLhCnw57/WSD+Eh3J97FPEDFnbXnDUg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/simple-swizzle/-/simple-swizzle-0.2.2.tgz}
|
||||||
|
name: simple-swizzle
|
||||||
|
version: 0.2.2
|
||||||
|
dependencies:
|
||||||
|
is-arrayish: registry.npmmirror.com/is-arrayish@0.3.2
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/slash@3.0.0:
|
registry.npmmirror.com/slash@3.0.0:
|
||||||
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz}
|
resolution: {integrity: sha512-g9Q1haeby36OSStwb4ntCGGGaKsaVSjQ68fBxoQcutl5fS1vuY18H3wSt3jFyFtrkx+Kz0V1G85A4MyAdDMi2Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/slash/-/slash-3.0.0.tgz}
|
||||||
name: slash
|
name: slash
|
||||||
@@ -10873,6 +11084,12 @@ packages:
|
|||||||
deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
|
deprecated: 'Modern JS already guarantees Array#sort() is a stable sort, so this library is deprecated. See the compatibility table on MDN: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Array/sort#browser_compatibility'
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
registry.npmmirror.com/stack-trace@0.0.10:
|
||||||
|
resolution: {integrity: sha512-KGzahc7puUKkzyMt+IqAep+TVNbKP+k2Lmwhub39m1AsTSkaDutx56aDCo+HLDzf/D26BIHTJWNiTG1KAJiQCg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stack-trace/-/stack-trace-0.0.10.tgz}
|
||||||
|
name: stack-trace
|
||||||
|
version: 0.0.10
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/stop-iteration-iterator@1.0.0:
|
registry.npmmirror.com/stop-iteration-iterator@1.0.0:
|
||||||
resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz}
|
resolution: {integrity: sha512-iCGQj+0l0HOdZ2AEeBADlsRC+vsnDsZsbdSiH1yNSjcfKM7fdpCMfqAL/dwF5BLiw/XhRft/Wax6zQbhq2BcjQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/stop-iteration-iterator/-/stop-iteration-iterator-1.0.0.tgz}
|
||||||
name: stop-iteration-iterator
|
name: stop-iteration-iterator
|
||||||
@@ -11077,6 +11294,12 @@ packages:
|
|||||||
engines: {node: '>=6'}
|
engines: {node: '>=6'}
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
registry.npmmirror.com/text-hex@1.0.0:
|
||||||
|
resolution: {integrity: sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/text-hex/-/text-hex-1.0.0.tgz}
|
||||||
|
name: text-hex
|
||||||
|
version: 1.0.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/text-table@0.2.0:
|
registry.npmmirror.com/text-table@0.2.0:
|
||||||
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz}
|
resolution: {integrity: sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/text-table/-/text-table-0.2.0.tgz}
|
||||||
name: text-table
|
name: text-table
|
||||||
@@ -11131,6 +11354,13 @@ packages:
|
|||||||
version: 3.0.1
|
version: 3.0.1
|
||||||
dev: false
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/triple-beam@1.4.1:
|
||||||
|
resolution: {integrity: sha512-aZbgViZrg1QNcG+LULa7nhZpJTZSLm/mXnHXnbAbjmN5aSa0y7V+wvv6+4WaBtpISJzThKy+PIPxc1Nq1EJ9mg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/triple-beam/-/triple-beam-1.4.1.tgz}
|
||||||
|
name: triple-beam
|
||||||
|
version: 1.4.1
|
||||||
|
engines: {node: '>= 14.0.0'}
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/trough@2.1.0:
|
registry.npmmirror.com/trough@2.1.0:
|
||||||
resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trough/-/trough-2.1.0.tgz}
|
resolution: {integrity: sha512-AqTiAOLcj85xS7vQ8QkAV41hPDIJ71XJB4RCUrzo/1GM2CQwhkJGaf9Hgr7BOugMRpgGUrqRg/DrBDl4H40+8g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/trough/-/trough-2.1.0.tgz}
|
||||||
name: trough
|
name: trough
|
||||||
@@ -11589,6 +11819,57 @@ packages:
|
|||||||
isexe: registry.npmmirror.com/isexe@2.0.0
|
isexe: registry.npmmirror.com/isexe@2.0.0
|
||||||
dev: true
|
dev: true
|
||||||
|
|
||||||
|
registry.npmmirror.com/winston-mongodb@5.1.1(winston@3.10.0):
|
||||||
|
resolution: {integrity: sha512-tlDksYDCsSka6vLzB/cg19B+kRbVH/y9JQdXVXc5r4TSLEgX1Ivj/vHyedYlYzNMAZkSSfexwI/dSDn3f9/Qkg==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/winston-mongodb/-/winston-mongodb-5.1.1.tgz}
|
||||||
|
id: registry.npmmirror.com/winston-mongodb/5.1.1
|
||||||
|
name: winston-mongodb
|
||||||
|
version: 5.1.1
|
||||||
|
engines: {node: '>=6.8.1'}
|
||||||
|
peerDependencies:
|
||||||
|
winston: ^3.0.0
|
||||||
|
dependencies:
|
||||||
|
mongodb: registry.npmmirror.com/mongodb@3.7.4
|
||||||
|
winston: registry.npmmirror.com/winston@3.10.0
|
||||||
|
winston-transport: registry.npmmirror.com/winston-transport@4.5.0
|
||||||
|
transitivePeerDependencies:
|
||||||
|
- aws4
|
||||||
|
- bson-ext
|
||||||
|
- kerberos
|
||||||
|
- mongodb-client-encryption
|
||||||
|
- mongodb-extjson
|
||||||
|
- snappy
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/winston-transport@4.5.0:
|
||||||
|
resolution: {integrity: sha512-YpZzcUzBedhlTAfJg6vJDlyEai/IFMIVcaEZZyl3UXIl4gmqRpU7AE89AHLkbzLUsv0NVmw7ts+iztqKxxPW1Q==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/winston-transport/-/winston-transport-4.5.0.tgz}
|
||||||
|
name: winston-transport
|
||||||
|
version: 4.5.0
|
||||||
|
engines: {node: '>= 6.4.0'}
|
||||||
|
dependencies:
|
||||||
|
logform: registry.npmmirror.com/logform@2.5.1
|
||||||
|
readable-stream: registry.npmmirror.com/readable-stream@3.6.2
|
||||||
|
triple-beam: registry.npmmirror.com/triple-beam@1.4.1
|
||||||
|
dev: false
|
||||||
|
|
||||||
|
registry.npmmirror.com/winston@3.10.0:
|
||||||
|
resolution: {integrity: sha512-nT6SIDaE9B7ZRO0u3UvdrimG0HkB7dSTAgInQnNR2SOPJ4bvq5q79+pXLftKmP52lJGW15+H5MCK0nM9D3KB/g==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/winston/-/winston-3.10.0.tgz}
|
||||||
|
name: winston
|
||||||
|
version: 3.10.0
|
||||||
|
engines: {node: '>= 12.0.0'}
|
||||||
|
dependencies:
|
||||||
|
'@colors/colors': registry.npmmirror.com/@colors/colors@1.5.0
|
||||||
|
'@dabh/diagnostics': registry.npmmirror.com/@dabh/diagnostics@2.0.3
|
||||||
|
async: registry.npmmirror.com/async@3.2.4
|
||||||
|
is-stream: registry.npmmirror.com/is-stream@2.0.1
|
||||||
|
logform: registry.npmmirror.com/logform@2.5.1
|
||||||
|
one-time: registry.npmmirror.com/one-time@1.0.0
|
||||||
|
readable-stream: registry.npmmirror.com/readable-stream@3.6.2
|
||||||
|
safe-stable-stringify: registry.npmmirror.com/safe-stable-stringify@2.4.3
|
||||||
|
stack-trace: registry.npmmirror.com/stack-trace@0.0.10
|
||||||
|
triple-beam: registry.npmmirror.com/triple-beam@1.4.1
|
||||||
|
winston-transport: registry.npmmirror.com/winston-transport@4.5.0
|
||||||
|
dev: false
|
||||||
|
|
||||||
registry.npmmirror.com/word-wrap@1.2.3:
|
registry.npmmirror.com/word-wrap@1.2.3:
|
||||||
resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz}
|
resolution: {integrity: sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==, registry: https://registry.npm.taobao.org/, tarball: https://registry.npmmirror.com/word-wrap/-/word-wrap-1.2.3.tgz}
|
||||||
name: word-wrap
|
name: word-wrap
|
||||||
|
@@ -182,8 +182,9 @@ export const ChatModule: FlowModuleTemplateType = {
|
|||||||
{
|
{
|
||||||
key: TaskResponseKeyEnum.answerText,
|
key: TaskResponseKeyEnum.answerText,
|
||||||
label: '模型回复',
|
label: '模型回复',
|
||||||
description: '直接响应,无需配置',
|
description: '如果外接了内容,会在回复结束时自动添加\n\n',
|
||||||
type: FlowOutputItemTypeEnum.hidden,
|
valueType: FlowValueTypeEnum.string,
|
||||||
|
type: FlowOutputItemTypeEnum.source,
|
||||||
targets: []
|
targets: []
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
@@ -285,7 +286,16 @@ export const AnswerModule: FlowModuleTemplateType = {
|
|||||||
'可以使用 \\n 来实现换行。也可以通过外部模块输入实现回复,外部模块输入时会覆盖当前填写的内容'
|
'可以使用 \\n 来实现换行。也可以通过外部模块输入实现回复,外部模块输入时会覆盖当前填写的内容'
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
outputs: []
|
outputs: [
|
||||||
|
{
|
||||||
|
key: 'finish',
|
||||||
|
label: '回复结束',
|
||||||
|
description: '回复完成后触发',
|
||||||
|
valueType: FlowValueTypeEnum.boolean,
|
||||||
|
type: FlowOutputItemTypeEnum.source,
|
||||||
|
targets: []
|
||||||
|
}
|
||||||
|
]
|
||||||
};
|
};
|
||||||
export const TFSwitchModule: FlowModuleTemplateType = {
|
export const TFSwitchModule: FlowModuleTemplateType = {
|
||||||
logo: '',
|
logo: '',
|
||||||
|
@@ -2,7 +2,7 @@ import type { NextApiRequest, NextApiResponse } from 'next';
|
|||||||
import { connectToDatabase } from '@/service/mongo';
|
import { connectToDatabase } from '@/service/mongo';
|
||||||
import { authUser, authApp, authShareChat, AuthUserTypeEnum } from '@/service/utils/auth';
|
import { authUser, authApp, authShareChat, AuthUserTypeEnum } from '@/service/utils/auth';
|
||||||
import { sseErrRes, jsonRes } from '@/service/response';
|
import { sseErrRes, jsonRes } from '@/service/response';
|
||||||
import { withNextCors } from '@/service/utils/tools';
|
import { addLog, withNextCors } from '@/service/utils/tools';
|
||||||
import { ChatRoleEnum, ChatSourceEnum, sseResponseEventEnum } from '@/constants/chat';
|
import { ChatRoleEnum, ChatSourceEnum, sseResponseEventEnum } from '@/constants/chat';
|
||||||
import {
|
import {
|
||||||
dispatchHistory,
|
dispatchHistory,
|
||||||
@@ -181,7 +181,7 @@ export default withNextCors(async function handler(req: NextApiRequest, res: Nex
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
console.log(`finish time: ${(Date.now() - startTime) / 1000}s`);
|
addLog.info(`completions running time: ${(Date.now() - startTime) / 1000}s`);
|
||||||
|
|
||||||
if (stream) {
|
if (stream) {
|
||||||
sseResponse({
|
sseResponse({
|
||||||
@@ -351,6 +351,7 @@ export async function dispatchModules({
|
|||||||
res,
|
res,
|
||||||
stream,
|
stream,
|
||||||
detail,
|
detail,
|
||||||
|
outputs: module.outputs,
|
||||||
userOpenaiAccount: user?.openaiAccount,
|
userOpenaiAccount: user?.openaiAccount,
|
||||||
...params
|
...params
|
||||||
};
|
};
|
||||||
|
@@ -4,6 +4,7 @@ import NodeCard from '../modules/NodeCard';
|
|||||||
import { FlowModuleItemType } from '@/types/flow';
|
import { FlowModuleItemType } from '@/types/flow';
|
||||||
import Container from '../modules/Container';
|
import Container from '../modules/Container';
|
||||||
import RenderInput from '../render/RenderInput';
|
import RenderInput from '../render/RenderInput';
|
||||||
|
import RenderOutput from '../render/RenderOutput';
|
||||||
|
|
||||||
const NodeAnswer = ({ data }: NodeProps<FlowModuleItemType>) => {
|
const NodeAnswer = ({ data }: NodeProps<FlowModuleItemType>) => {
|
||||||
const { moduleId, inputs, outputs, onChangeNode } = data;
|
const { moduleId, inputs, outputs, onChangeNode } = data;
|
||||||
@@ -11,6 +12,7 @@ const NodeAnswer = ({ data }: NodeProps<FlowModuleItemType>) => {
|
|||||||
<NodeCard minW={'400px'} {...data}>
|
<NodeCard minW={'400px'} {...data}>
|
||||||
<Container borderTop={'2px solid'} borderTopColor={'myGray.200'}>
|
<Container borderTop={'2px solid'} borderTopColor={'myGray.200'}>
|
||||||
<RenderInput moduleId={moduleId} onChangeNode={onChangeNode} flowInputList={inputs} />
|
<RenderInput moduleId={moduleId} onChangeNode={onChangeNode} flowInputList={inputs} />
|
||||||
|
<RenderOutput onChangeNode={onChangeNode} moduleId={moduleId} flowOutputList={outputs} />
|
||||||
</Container>
|
</Container>
|
||||||
</NodeCard>
|
</NodeCard>
|
||||||
);
|
);
|
||||||
|
@@ -43,7 +43,7 @@ export async function generateQA(): Promise<any> {
|
|||||||
// task preemption
|
// task preemption
|
||||||
if (!data) {
|
if (!data) {
|
||||||
reduceQueue();
|
reduceQueue();
|
||||||
global.qaQueueLen <= 0 && console.log(`没有需要【QA】的数据, ${global.qaQueueLen}`);
|
global.qaQueueLen <= 0 && console.log(`【QA】任务完成`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -44,7 +44,7 @@ export async function generateVector(): Promise<any> {
|
|||||||
// task preemption
|
// task preemption
|
||||||
if (!data) {
|
if (!data) {
|
||||||
reduceQueue();
|
reduceQueue();
|
||||||
global.vectorQueueLen <= 0 && console.log(`没有需要【索引】的数据, ${global.vectorQueueLen}`);
|
global.vectorQueueLen <= 0 && console.log(`【索引】任务完成`);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -3,6 +3,7 @@ import { BillSourceEnum } from '@/constants/user';
|
|||||||
import { getModel } from '../utils/data';
|
import { getModel } from '../utils/data';
|
||||||
import { ChatHistoryItemResType } from '@/types/chat';
|
import { ChatHistoryItemResType } from '@/types/chat';
|
||||||
import { formatPrice } from '@/utils/user';
|
import { formatPrice } from '@/utils/user';
|
||||||
|
import { addLog } from '../utils/tools';
|
||||||
|
|
||||||
export const pushTaskBill = async ({
|
export const pushTaskBill = async ({
|
||||||
appName,
|
appName,
|
||||||
@@ -48,7 +49,11 @@ export const pushTaskBill = async ({
|
|||||||
: [])
|
: [])
|
||||||
]);
|
]);
|
||||||
|
|
||||||
console.log('finish bill:', formatPrice(total));
|
addLog.info(`finish completions`, {
|
||||||
|
source,
|
||||||
|
userId,
|
||||||
|
price: formatPrice(total)
|
||||||
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
export const updateShareChatBill = async ({
|
export const updateShareChatBill = async ({
|
||||||
@@ -66,8 +71,8 @@ export const updateShareChatBill = async ({
|
|||||||
lastTime: new Date()
|
lastTime: new Date()
|
||||||
}
|
}
|
||||||
);
|
);
|
||||||
} catch (error) {
|
} catch (err) {
|
||||||
console.log('update shareChat error', error);
|
addLog.error('update shareChat error', { err });
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -82,7 +87,7 @@ export const pushSplitDataBill = async ({
|
|||||||
totalTokens: number;
|
totalTokens: number;
|
||||||
appName: string;
|
appName: string;
|
||||||
}) => {
|
}) => {
|
||||||
console.log(`splitData generate success. token len: ${totalTokens}.`);
|
addLog.info('splitData generate success', { totalTokens });
|
||||||
|
|
||||||
let billId;
|
let billId;
|
||||||
|
|
||||||
@@ -107,8 +112,8 @@ export const pushSplitDataBill = async ({
|
|||||||
await User.findByIdAndUpdate(userId, {
|
await User.findByIdAndUpdate(userId, {
|
||||||
$inc: { balance: -total }
|
$inc: { balance: -total }
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (err) {
|
||||||
console.log('创建账单失败:', error);
|
addLog.error('Create completions bill error', { err });
|
||||||
billId && Bill.findByIdAndDelete(billId);
|
billId && Bill.findByIdAndDelete(billId);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -156,8 +161,8 @@ export const pushGenerateVectorBill = async ({
|
|||||||
await User.findByIdAndUpdate(userId, {
|
await User.findByIdAndUpdate(userId, {
|
||||||
$inc: { balance: -total }
|
$inc: { balance: -total }
|
||||||
});
|
});
|
||||||
} catch (error) {
|
} catch (err) {
|
||||||
console.log('创建账单失败:', error);
|
addLog.error('Create generateVector bill error', { err });
|
||||||
billId && Bill.findByIdAndDelete(billId);
|
billId && Bill.findByIdAndDelete(billId);
|
||||||
}
|
}
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
|
@@ -17,6 +17,7 @@ import { ChatModelItemType } from '@/types/model';
|
|||||||
import { UserModelSchema } from '@/types/mongoSchema';
|
import { UserModelSchema } from '@/types/mongoSchema';
|
||||||
import { textCensor } from '@/service/api/plugins';
|
import { textCensor } from '@/service/api/plugins';
|
||||||
import { ChatCompletionRequestMessageRoleEnum } from 'openai';
|
import { ChatCompletionRequestMessageRoleEnum } from 'openai';
|
||||||
|
import { AppModuleItemType } from '@/types/app';
|
||||||
|
|
||||||
export type ChatProps = {
|
export type ChatProps = {
|
||||||
res: NextApiResponse;
|
res: NextApiResponse;
|
||||||
@@ -31,6 +32,7 @@ export type ChatProps = {
|
|||||||
systemPrompt?: string;
|
systemPrompt?: string;
|
||||||
limitPrompt?: string;
|
limitPrompt?: string;
|
||||||
userOpenaiAccount: UserModelSchema['openaiAccount'];
|
userOpenaiAccount: UserModelSchema['openaiAccount'];
|
||||||
|
outputs: AppModuleItemType['outputs'];
|
||||||
};
|
};
|
||||||
export type ChatResponse = {
|
export type ChatResponse = {
|
||||||
[TaskResponseKeyEnum.answerText]: string;
|
[TaskResponseKeyEnum.answerText]: string;
|
||||||
@@ -52,8 +54,12 @@ export const dispatchChatCompletion = async (props: Record<string, any>): Promis
|
|||||||
userChatInput,
|
userChatInput,
|
||||||
systemPrompt = '',
|
systemPrompt = '',
|
||||||
limitPrompt = '',
|
limitPrompt = '',
|
||||||
userOpenaiAccount
|
userOpenaiAccount,
|
||||||
|
outputs
|
||||||
} = props as ChatProps;
|
} = props as ChatProps;
|
||||||
|
if (!userChatInput) {
|
||||||
|
return Promise.reject('Question is empty');
|
||||||
|
}
|
||||||
|
|
||||||
// temperature adapt
|
// temperature adapt
|
||||||
const modelConstantsData = getChatModel(model);
|
const modelConstantsData = getChatModel(model);
|
||||||
@@ -142,6 +148,8 @@ export const dispatchChatCompletion = async (props: Record<string, any>): Promis
|
|||||||
messages: completeMessages
|
messages: completeMessages
|
||||||
});
|
});
|
||||||
|
|
||||||
|
targetResponse({ res, detail, outputs });
|
||||||
|
|
||||||
return {
|
return {
|
||||||
answerText: answer,
|
answerText: answer,
|
||||||
totalTokens,
|
totalTokens,
|
||||||
@@ -304,6 +312,28 @@ function getMaxTokens({
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function targetResponse({
|
||||||
|
res,
|
||||||
|
outputs,
|
||||||
|
detail
|
||||||
|
}: {
|
||||||
|
res: NextApiResponse;
|
||||||
|
outputs: AppModuleItemType['outputs'];
|
||||||
|
detail: boolean;
|
||||||
|
}) {
|
||||||
|
const targets =
|
||||||
|
outputs.find((output) => output.key === TaskResponseKeyEnum.answerText)?.targets || [];
|
||||||
|
|
||||||
|
if (targets.length === 0) return;
|
||||||
|
sseResponse({
|
||||||
|
res,
|
||||||
|
event: detail ? sseResponseEventEnum.answer : undefined,
|
||||||
|
data: textAdaptGptResponse({
|
||||||
|
text: '\n'
|
||||||
|
})
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
async function streamResponse({
|
async function streamResponse({
|
||||||
res,
|
res,
|
||||||
detail,
|
detail,
|
||||||
|
@@ -11,6 +11,7 @@ export type AnswerProps = {
|
|||||||
};
|
};
|
||||||
export type AnswerResponse = {
|
export type AnswerResponse = {
|
||||||
[TaskResponseKeyEnum.answerText]: string;
|
[TaskResponseKeyEnum.answerText]: string;
|
||||||
|
finish: boolean;
|
||||||
};
|
};
|
||||||
|
|
||||||
export const dispatchAnswer = (props: Record<string, any>): AnswerResponse => {
|
export const dispatchAnswer = (props: Record<string, any>): AnswerResponse => {
|
||||||
@@ -27,6 +28,7 @@ export const dispatchAnswer = (props: Record<string, any>): AnswerResponse => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
return {
|
return {
|
||||||
[TaskResponseKeyEnum.answerText]: text
|
[TaskResponseKeyEnum.answerText]: text,
|
||||||
|
finish: true
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
@@ -7,6 +7,8 @@ import { PRICE_SCALE } from '@/constants/common';
|
|||||||
import { connectPg, PgClient } from './pg';
|
import { connectPg, PgClient } from './pg';
|
||||||
import { createHashPassword } from '@/utils/tools';
|
import { createHashPassword } from '@/utils/tools';
|
||||||
import { PgTrainingTableName } from '@/constants/plugin';
|
import { PgTrainingTableName } from '@/constants/plugin';
|
||||||
|
import { createLogger, format, transports } from 'winston';
|
||||||
|
import 'winston-mongodb';
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* connect MongoDB and init data
|
* connect MongoDB and init data
|
||||||
@@ -32,6 +34,9 @@ export async function connectToDatabase(): Promise<void> {
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// logger
|
||||||
|
initLogger();
|
||||||
|
|
||||||
// init function
|
// init function
|
||||||
getInitConfig();
|
getInitConfig();
|
||||||
|
|
||||||
@@ -39,7 +44,6 @@ export async function connectToDatabase(): Promise<void> {
|
|||||||
mongoose.set('strictQuery', true);
|
mongoose.set('strictQuery', true);
|
||||||
global.mongodb = await mongoose.connect(process.env.MONGODB_URI as string, {
|
global.mongodb = await mongoose.connect(process.env.MONGODB_URI as string, {
|
||||||
bufferCommands: true,
|
bufferCommands: true,
|
||||||
dbName: process.env.MONGODB_NAME,
|
|
||||||
maxConnecting: Number(process.env.DB_MAX_LINK || 5),
|
maxConnecting: Number(process.env.DB_MAX_LINK || 5),
|
||||||
maxPoolSize: Number(process.env.DB_MAX_LINK || 5),
|
maxPoolSize: Number(process.env.DB_MAX_LINK || 5),
|
||||||
minPoolSize: 2
|
minPoolSize: 2
|
||||||
@@ -57,6 +61,37 @@ export async function connectToDatabase(): Promise<void> {
|
|||||||
startQueue();
|
startQueue();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function initLogger() {
|
||||||
|
global.logger = createLogger({
|
||||||
|
transports: [
|
||||||
|
new transports.MongoDB({
|
||||||
|
db: process.env.MONGODB_URI as string,
|
||||||
|
collection: 'server_logs',
|
||||||
|
options: {
|
||||||
|
useUnifiedTopology: true
|
||||||
|
},
|
||||||
|
cappedSize: 500000000,
|
||||||
|
tryReconnect: true,
|
||||||
|
metaKey: 'meta',
|
||||||
|
format: format.combine(format.timestamp(), format.json())
|
||||||
|
}),
|
||||||
|
new transports.Console({
|
||||||
|
format: format.combine(
|
||||||
|
format.timestamp({ format: 'YYYY-MM-DD HH:mm:ss' }),
|
||||||
|
format.printf((info) => {
|
||||||
|
if (info.level === 'error') {
|
||||||
|
console.log(info.meta);
|
||||||
|
return `${info.level}: ${[info.timestamp]}: ${info.message}`;
|
||||||
|
}
|
||||||
|
return `${info.level}: ${[info.timestamp]}: ${info.message}${
|
||||||
|
info.meta ? `: ${JSON.stringify(info.meta)}` : ''
|
||||||
|
}`;
|
||||||
|
})
|
||||||
|
)
|
||||||
|
})
|
||||||
|
]
|
||||||
|
});
|
||||||
|
}
|
||||||
async function initRootUser() {
|
async function initRootUser() {
|
||||||
try {
|
try {
|
||||||
const rootUser = await User.findOne({
|
const rootUser = await User.findOne({
|
||||||
|
@@ -8,13 +8,9 @@ export const connectPg = async () => {
|
|||||||
}
|
}
|
||||||
|
|
||||||
global.pgClient = new Pool({
|
global.pgClient = new Pool({
|
||||||
host: process.env.PG_HOST,
|
connectionString: process.env.PG_URL,
|
||||||
port: process.env.PG_PORT ? +process.env.PG_PORT : 5432,
|
|
||||||
user: process.env.PG_USER,
|
|
||||||
password: process.env.PG_PASSWORD,
|
|
||||||
database: process.env.PG_DB_NAME,
|
|
||||||
max: Number(process.env.DB_MAX_LINK || 5),
|
max: Number(process.env.DB_MAX_LINK || 5),
|
||||||
idleTimeoutMillis: 30000,
|
keepAlive: true,
|
||||||
connectionTimeoutMillis: 5000
|
connectionTimeoutMillis: 5000
|
||||||
});
|
});
|
||||||
|
|
||||||
|
@@ -7,7 +7,7 @@ import {
|
|||||||
ERROR_RESPONSE,
|
ERROR_RESPONSE,
|
||||||
ERROR_ENUM
|
ERROR_ENUM
|
||||||
} from './errorCode';
|
} from './errorCode';
|
||||||
import { clearCookie, sseResponse } from './utils/tools';
|
import { clearCookie, sseResponse, addLog } from './utils/tools';
|
||||||
|
|
||||||
export interface ResponseType<T = any> {
|
export interface ResponseType<T = any> {
|
||||||
code: number;
|
code: number;
|
||||||
@@ -52,7 +52,24 @@ export const jsonRes = <T = any>(
|
|||||||
} else if (openaiError[error?.response?.statusText]) {
|
} else if (openaiError[error?.response?.statusText]) {
|
||||||
msg = openaiError[error.response.statusText];
|
msg = openaiError[error.response.statusText];
|
||||||
}
|
}
|
||||||
console.log(error);
|
|
||||||
|
addLog.error(msg, {
|
||||||
|
message: error.message,
|
||||||
|
stack: error.stack,
|
||||||
|
...(error.config && {
|
||||||
|
config: {
|
||||||
|
headers: error.config.headers,
|
||||||
|
url: error.config.url,
|
||||||
|
data: error.config.data
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
...(error.response && {
|
||||||
|
response: {
|
||||||
|
status: error.response.status,
|
||||||
|
statusText: error.response.statusText
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
res.status(code).json({
|
res.status(code).json({
|
||||||
@@ -92,7 +109,24 @@ export const sseErrRes = (res: NextApiResponse, error: any) => {
|
|||||||
} else if (openaiError[error?.response?.statusText]) {
|
} else if (openaiError[error?.response?.statusText]) {
|
||||||
msg = openaiError[error.response.statusText];
|
msg = openaiError[error.response.statusText];
|
||||||
}
|
}
|
||||||
console.log('sse error => ', error);
|
|
||||||
|
addLog.error(`sse error: ${msg}`, {
|
||||||
|
message: error.message,
|
||||||
|
stack: error.stack,
|
||||||
|
...(error.config && {
|
||||||
|
config: {
|
||||||
|
headers: error.config.headers,
|
||||||
|
url: error.config.url,
|
||||||
|
data: error.config.data
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
...(error.response && {
|
||||||
|
response: {
|
||||||
|
status: error.response.status,
|
||||||
|
statusText: error.response.statusText
|
||||||
|
}
|
||||||
|
})
|
||||||
|
});
|
||||||
|
|
||||||
sseResponse({
|
sseResponse({
|
||||||
res,
|
res,
|
||||||
|
@@ -65,6 +65,7 @@ export function withNextCors(handler: NextApiHandler): NextApiHandler {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/* start task */
|
||||||
export const startQueue = () => {
|
export const startQueue = () => {
|
||||||
for (let i = 0; i < global.systemEnv.qaMaxProcess; i++) {
|
for (let i = 0; i < global.systemEnv.qaMaxProcess; i++) {
|
||||||
generateQA();
|
generateQA();
|
||||||
@@ -87,3 +88,13 @@ export const sseResponse = ({
|
|||||||
event && res.write(`event: ${event}\n`);
|
event && res.write(`event: ${event}\n`);
|
||||||
res.write(`data: ${data}\n\n`);
|
res.write(`data: ${data}\n\n`);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* add logger */
|
||||||
|
export const addLog = {
|
||||||
|
info: (msg: string, obj?: Record<string, any>) => {
|
||||||
|
global.logger.info(msg, { meta: obj });
|
||||||
|
},
|
||||||
|
error: (msg: string, obj?: Record<string, any>) => {
|
||||||
|
global.logger.error(msg, { meta: obj });
|
||||||
|
}
|
||||||
|
};
|
||||||
|
4
client/src/types/index.d.ts
vendored
4
client/src/types/index.d.ts
vendored
@@ -2,6 +2,7 @@ import type { Mongoose } from 'mongoose';
|
|||||||
import type { Agent } from 'http';
|
import type { Agent } from 'http';
|
||||||
import type { Pool } from 'pg';
|
import type { Pool } from 'pg';
|
||||||
import type { Tiktoken } from '@dqbd/tiktoken';
|
import type { Tiktoken } from '@dqbd/tiktoken';
|
||||||
|
import type { Logger } from 'winston';
|
||||||
import { ChatModelItemType, QAModelItemType, VectorModelItemType } from './model';
|
import { ChatModelItemType, QAModelItemType, VectorModelItemType } from './model';
|
||||||
|
|
||||||
export type PagingData<T> = {
|
export type PagingData<T> = {
|
||||||
@@ -55,6 +56,9 @@ declare global {
|
|||||||
var qaQueueLen: number;
|
var qaQueueLen: number;
|
||||||
var vectorQueueLen: number;
|
var vectorQueueLen: number;
|
||||||
var OpenAiEncMap: Tiktoken;
|
var OpenAiEncMap: Tiktoken;
|
||||||
|
|
||||||
|
var logger: Logger;
|
||||||
|
|
||||||
var sendInformQueue: (() => Promise<void>)[];
|
var sendInformQueue: (() => Promise<void>)[];
|
||||||
var sendInformQueueLen: number;
|
var sendInformQueueLen: number;
|
||||||
|
|
||||||
|
@@ -89,15 +89,9 @@ services:
|
|||||||
- TOKEN_KEY=any
|
- TOKEN_KEY=any
|
||||||
- ROOT_KEY=root_key
|
- ROOT_KEY=root_key
|
||||||
# mongo 配置,不需要改
|
# mongo 配置,不需要改
|
||||||
- MONGODB_URI=mongodb://username:password@mongo:27017
|
- MONGODB_URI=mongodb://username:password@mongo:27017/fastgpt
|
||||||
# - MONGODB_URI=mongodb://username:password@mongo:27017/?authSource=admin
|
# pg配置. 不需要改
|
||||||
- MONGODB_NAME=fastgpt
|
- PG_URL=postgresql://username:password@pg:5432/postgres
|
||||||
# pg配置.
|
|
||||||
- PG_HOST=pg
|
|
||||||
- PG_PORT=5432
|
|
||||||
- PG_USER=username
|
|
||||||
- PG_PASSWORD=password
|
|
||||||
- PG_DB_NAME=postgres
|
|
||||||
networks:
|
networks:
|
||||||
fastgpt:
|
fastgpt:
|
||||||
```
|
```
|
||||||
@@ -149,15 +143,9 @@ services:
|
|||||||
# root key, 最高权限,可以内部接口互相调用
|
# root key, 最高权限,可以内部接口互相调用
|
||||||
- ROOT_KEY=root_key
|
- ROOT_KEY=root_key
|
||||||
# mongo 配置,不需要改
|
# mongo 配置,不需要改
|
||||||
- MONGODB_URI=mongodb://username:password@0.0.0.0:27017
|
- MONGODB_URI=mongodb://username:password@0.0.0.0:27017/fastgpt
|
||||||
# - MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
|
# pg配置. 不需要改
|
||||||
- MONGODB_NAME=fastgpt
|
- PG_URL=postgresql://username:password@0.0.0.0:5432/postgres
|
||||||
# pg 配置
|
|
||||||
- PG_HOST=0.0.0.0
|
|
||||||
- PG_PORT=5432
|
|
||||||
- PG_USER=username
|
|
||||||
- PG_PASSWORD=password
|
|
||||||
- PG_DB_NAME=postgres
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 四、运行 docker-compose
|
## 四、运行 docker-compose
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
# V4 版本初始化
|
# V4.0 版本初始化
|
||||||
|
|
||||||
新版 mongo 表进行了不少的变更,需要执行一些初始化脚本。
|
新版 mongo 表进行了不少的变更,需要执行一些初始化脚本。
|
||||||
|
|
@@ -2,6 +2,15 @@
|
|||||||
|
|
||||||
新版重新设置了对话存储结构,需要初始化原来的存储内容
|
新版重新设置了对话存储结构,需要初始化原来的存储内容
|
||||||
|
|
||||||
|
## 更新环境变量
|
||||||
|
|
||||||
|
优化了 PG 和 Mongo 的连接变量,只需要 1 个 url 即可。
|
||||||
|
|
||||||
|
```
|
||||||
|
MONGODB_URI=mongodb://username:password@0.0.0.0:27017/fastgpt
|
||||||
|
PG_URL=postgresql://username:password@0.0.0.0:5432/postgres
|
||||||
|
```
|
||||||
|
|
||||||
## 执行初始化 API
|
## 执行初始化 API
|
||||||
|
|
||||||
部署新版项目,并发起 3 个 HTTP 请求(记得携带 headers.rootkey,这个值是环境变量里的)
|
部署新版项目,并发起 3 个 HTTP 请求(记得携带 headers.rootkey,这个值是环境变量里的)
|
@@ -28,8 +28,7 @@ const config = {
|
|||||||
({
|
({
|
||||||
docs: {
|
docs: {
|
||||||
sidebarPath: require.resolve('./sidebars.js'),
|
sidebarPath: require.resolve('./sidebars.js'),
|
||||||
editUrl:
|
editUrl: 'https://github.com/labring/FastGPT/blob/main/docSite/'
|
||||||
'https://github.com/facebook/docusaurus/tree/main/packages/create-docusaurus/templates/shared/'
|
|
||||||
},
|
},
|
||||||
theme: {
|
theme: {
|
||||||
customCss: require.resolve('./src/css/custom.css')
|
customCss: require.resolve('./src/css/custom.css')
|
||||||
|
@@ -14,6 +14,9 @@
|
|||||||
"sidebar.docSidebar.category.Deploy": {
|
"sidebar.docSidebar.category.Deploy": {
|
||||||
"message": "部署"
|
"message": "部署"
|
||||||
},
|
},
|
||||||
|
"sidebar.docSidebar.category.Version Updating": {
|
||||||
|
"message": "版本更新"
|
||||||
|
},
|
||||||
"sidebar.docSidebar.category.Datasets": {
|
"sidebar.docSidebar.category.Datasets": {
|
||||||
"message": "知识库实践"
|
"message": "知识库实践"
|
||||||
},
|
},
|
||||||
|
@@ -89,15 +89,9 @@ services:
|
|||||||
- TOKEN_KEY=any
|
- TOKEN_KEY=any
|
||||||
- ROOT_KEY=root_key
|
- ROOT_KEY=root_key
|
||||||
# mongo 配置,不需要改
|
# mongo 配置,不需要改
|
||||||
- MONGODB_URI=mongodb://username:password@mongo:27017 # 如果这个连不上,尝试下面的
|
- MONGODB_URI=mongodb://username:password@mongo:27017/fastgpt
|
||||||
# - MONGODB_URI=mongodb://username:password@mongo:27017/?authSource=admin
|
# pg配置. 不需要改
|
||||||
- MONGODB_NAME=fastgpt
|
- PG_URL=postgresql://username:password@pg:5432/postgres
|
||||||
# pg配置.
|
|
||||||
- PG_HOST=pg
|
|
||||||
- PG_PORT=5432
|
|
||||||
- PG_USER=username
|
|
||||||
- PG_PASSWORD=password
|
|
||||||
- PG_DB_NAME=postgres
|
|
||||||
networks:
|
networks:
|
||||||
fastgpt:
|
fastgpt:
|
||||||
```
|
```
|
||||||
@@ -153,15 +147,9 @@ environment:
|
|||||||
# root key, 最高权限,可以内部接口互相调用
|
# root key, 最高权限,可以内部接口互相调用
|
||||||
- ROOT_KEY=root_key
|
- ROOT_KEY=root_key
|
||||||
# mongo 配置,不需要改
|
# mongo 配置,不需要改
|
||||||
- MONGODB_URI=mongodb://username:password@0.0.0.0:27017
|
- MONGODB_URI=mongodb://username:password@0.0.0.0:27017/fastgpt
|
||||||
# - MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
|
# pg配置. 不需要改
|
||||||
- MONGODB_NAME=fastgpt
|
- PG_URL=postgresql://username:password@0.0.0.0:5432/postgres
|
||||||
# pg 配置
|
|
||||||
- PG_HOST=0.0.0.0
|
|
||||||
- PG_PORT=5432
|
|
||||||
- PG_USER=username
|
|
||||||
- PG_PASSWORD=password
|
|
||||||
- PG_DB_NAME=postgres
|
|
||||||
```
|
```
|
||||||
|
|
||||||
## 四、运行 docker-compose
|
## 四、运行 docker-compose
|
||||||
|
@@ -1,4 +1,4 @@
|
|||||||
# V4 版本初始化
|
# V4.0 版本初始化
|
||||||
|
|
||||||
新版 mongo 表进行了不少的变更,需要执行一些初始化脚本。
|
新版 mongo 表进行了不少的变更,需要执行一些初始化脚本。
|
||||||
|
|
@@ -2,6 +2,15 @@
|
|||||||
|
|
||||||
新版重新设置了对话存储结构,需要初始化原来的存储内容
|
新版重新设置了对话存储结构,需要初始化原来的存储内容
|
||||||
|
|
||||||
|
## 更新环境变量
|
||||||
|
|
||||||
|
优化了 PG 和 Mongo 的连接变量,只需要 1 个 url 即可。
|
||||||
|
|
||||||
|
```
|
||||||
|
MONGODB_URI=mongodb://username:password@0.0.0.0:27017/fastgpt
|
||||||
|
PG_URL=postgresql://username:password@0.0.0.0:5432/postgres
|
||||||
|
```
|
||||||
|
|
||||||
## 执行初始化 API
|
## 执行初始化 API
|
||||||
|
|
||||||
部署新版项目,并发起 3 个 HTTP 请求(记得携带 headers.rootkey,这个值是环境变量里的)
|
部署新版项目,并发起 3 个 HTTP 请求(记得携带 headers.rootkey,这个值是环境变量里的)
|
@@ -53,7 +53,20 @@ const sidebars = {
|
|||||||
}
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
'develop/oneapi'
|
'develop/oneapi',
|
||||||
|
{
|
||||||
|
type: 'category',
|
||||||
|
label: 'Version Updating',
|
||||||
|
link: {
|
||||||
|
type: 'generated-index'
|
||||||
|
},
|
||||||
|
items: [
|
||||||
|
{
|
||||||
|
type: 'autogenerated',
|
||||||
|
dirName: 'develop/update'
|
||||||
|
}
|
||||||
|
]
|
||||||
|
}
|
||||||
]
|
]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
|
@@ -54,14 +54,9 @@ services:
|
|||||||
- TOKEN_KEY=any
|
- TOKEN_KEY=any
|
||||||
- ROOT_KEY=root_key
|
- ROOT_KEY=root_key
|
||||||
# mongo 配置,不需要改
|
# mongo 配置,不需要改
|
||||||
- MONGODB_URI=mongodb://username:password@mongo:27017/?authSource=admin
|
- MONGODB_URI=mongodb://username:password@mongo:27017/fastgpt
|
||||||
- MONGODB_NAME=fastgpt
|
# pg配置. 不需要改
|
||||||
# pg配置.
|
- PG_URL=postgresql://username:password@pg:5432/postgres
|
||||||
- PG_HOST=pg
|
|
||||||
- PG_PORT=5432
|
|
||||||
- PG_USER=username
|
|
||||||
- PG_PASSWORD=password
|
|
||||||
- PG_DB_NAME=postgres
|
|
||||||
volumes:
|
volumes:
|
||||||
- ./config.json:/app/data/config.json
|
- ./config.json:/app/data/config.json
|
||||||
networks:
|
networks:
|
||||||
@@ -116,11 +111,6 @@ networks:
|
|||||||
# # root key, 最高权限,可以内部接口互相调用
|
# # root key, 最高权限,可以内部接口互相调用
|
||||||
# - ROOT_KEY=root_key
|
# - ROOT_KEY=root_key
|
||||||
# # mongo 配置,不需要改
|
# # mongo 配置,不需要改
|
||||||
# - MONGODB_URI=mongodb://username:password@0.0.0.0:27017/?authSource=admin
|
# - MONGODB_URI=mongodb://username:password@0.0.0.0:27017/fastgpt
|
||||||
# - MONGODB_NAME=fastgpt
|
# # pg配置. 不需要改
|
||||||
# # pg 配置
|
# - PG_URL=postgresql://username:password@0.0.0.0:5432/postgres
|
||||||
# - PG_HOST=0.0.0.0
|
|
||||||
# - PG_PORT=5432
|
|
||||||
# - PG_USER=username
|
|
||||||
# - PG_PASSWORD=password
|
|
||||||
# - PG_DB_NAME=postgres
|
|
||||||
|
Reference in New Issue
Block a user