Commit 39a13350 by hometown

feat: axios time out

parent 9b76c374
{
// Visuals
"workbench.colorTheme": "Vitesse Light",
"workbench.colorTheme": "Vitesse Dark",
"workbench.editor.tabCloseButton": "left",
"workbench.fontAliasing": "antialiased",
"workbench.iconTheme": "file-icons",
......
FROM node:latest
# 设置时区
ENV TZ=Asia/Shanghai \
DEBIAN_FRONTEND=noninteractive
RUN ln -fs /usr/share/zoneinfo/${TZ} /etc/localtime && echo ${TZ} > /etc/timezone && dpkg-reconfigure --frontend noninteractive tzdata && rm -rf /var/lib/apt/lists/*
RUN mkdir -p /app
WORKDIR /app
COPY package.json pnpm-lock.yaml /app/
RUN npm install -g pnpm
RUN pnpm install
COPY . /app/
EXPOSE 3000
CMD ["pnpm", "start:prod"]
version: "3.0"
services:
app:
build: # 根据Dockerfile构建镜像
context: .
dockerfile: Dockerfile
ports:
- 3333:3333
......@@ -65,6 +65,8 @@
"@types/supertest": "^2.0.10",
"@typescript-eslint/eslint-plugin": "^4.9.1",
"@typescript-eslint/parser": "^4.9.1",
"axios-retry": "^4.0.0",
"body-parser": "^1.20.2",
"eslint": "^7.15.0",
"eslint-config-prettier": "^7.0.0",
"eslint-plugin-import": "^2.22.1",
......@@ -75,7 +77,7 @@
"ts-loader": "^8.0.11",
"ts-node": "^9.1.1",
"tsconfig-paths": "^3.9.0",
"typescript": "^4.1.2"
"typescript": "^5.3.3"
},
"jest": {
"moduleFileExtensions": [
......
......@@ -14,7 +14,7 @@ const bodyParser = require('body-parser');
require('body-parser-xml')(bodyParser);
const PORT = 3333;
const PREFIX = 'api'
const PREFIX = 'chh-api'
const SWAGGER_V1 = `${PREFIX}/v1/swagger`
async function bootstrap() {
......@@ -43,7 +43,7 @@ async function bootstrap() {
);
app.use(bodyParser.xml({
limit: '1MB', // 拒绝大于1 MB的有效负载
limit: '1000MB', // 拒绝大于1 MB的有效负载
xmlParseOptions: {
normalize: true, // 在文本节点内修剪空格
normalizeTags: true, // 将标签转换为小写
......
import { Injectable, Logger } from '@nestjs/common';
import axios from 'axios';
import retry from 'axios-retry'
import type { ErnieBotAccessToken, ErnieBotChatResponse } from './types';
import { ChatQueryDto } from './dto/chatQuery.dto';
const axiosTimeOut = 1000 * 60 * 5
retry(axios, {
retries: 3,
retryDelay: retry.exponentialDelay
})
@Injectable()
export class ChatService {
async query(body: ChatQueryDto) {
......@@ -17,14 +25,17 @@ export class ChatService {
verbose: true,
history,
})
const res = await axios<ErnieBotChatResponse>(url, { method: 'post', headers: { 'Content-Type': 'application/json' }, data })
const res = await axios<ErnieBotChatResponse>(url, { method: 'post', timeout: axiosTimeOut, headers: { 'Content-Type': 'application/json' }, data })
return res.data.result || res.data.error_msg
}
private async getAccessToken() {
const AK = 'mXQIDW260qBbNgQRF0p1YFgn'
const SK = 'hzriOtzGiDkd1S0wFwiyr7WlarfufTdi'
const res = await axios.post<ErnieBotAccessToken>(`https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=${AK}&client_secret=${SK}`)
const res = await axios<ErnieBotAccessToken>(`https://aip.baidubce.com/oauth/2.0/token?grant_type=client_credentials&client_id=${AK}&client_secret=${SK}`, {
method: 'post',
timeout: axiosTimeOut
})
return res.data.access_token
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment