diff --git a/src/constants/model.ts b/src/constants/model.ts index 2e8c8ae9d..157fba163 100644 --- a/src/constants/model.ts +++ b/src/constants/model.ts @@ -13,6 +13,7 @@ export type ModelConstantsData = { trainName: string; // 空字符串代表不能训练 maxToken: number; maxTemperature: number; + trainedMaxToken: number; // 训练后最大多少tokens price: number; // 多少钱 / 1token,单位: 0.00001元 }; @@ -23,6 +24,7 @@ export const modelList: ModelConstantsData[] = [ model: ChatModelNameEnum.GPT35, trainName: '', maxToken: 4000, + trainedMaxToken: 2000, maxTemperature: 2, price: 3 }, @@ -32,6 +34,7 @@ export const modelList: ModelConstantsData[] = [ model: ChatModelNameEnum.GPT3, trainName: 'davinci', maxToken: 4000, + trainedMaxToken: 2000, maxTemperature: 2, price: 30 } diff --git a/src/hooks/usePaging.ts b/src/hooks/usePaging.ts index a0bf464d2..2f8b88c85 100644 --- a/src/hooks/usePaging.ts +++ b/src/hooks/usePaging.ts @@ -59,7 +59,10 @@ export const usePaging = ({ [api, isLoadAll, pageSize, params, requesting, toast] ); - const nextPage = useCallback(() => getData(pageNum + 1), [getData, pageNum]); + const nextPage = useCallback(() => { + if (requesting || isLoadAll) return; + getData(pageNum + 1); + }, [getData, isLoadAll, pageNum, requesting]); useQuery(['init'], () => getData(1, true)); diff --git a/src/pages/api/chat/gpt3.ts b/src/pages/api/chat/gpt3.ts index 03786f4a8..7dd0c001f 100644 --- a/src/pages/api/chat/gpt3.ts +++ b/src/pages/api/chat/gpt3.ts @@ -69,7 +69,17 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) // 获取 chatAPI const chatAPI = getOpenAIApi(userApiKey || systemKey); let startTime = Date.now(); - + // console.log({ + // model: model.service.chatModel, + // temperature: temperature, + // prompt: promptText, + // stream: true, + // max_tokens: + // model.trainingTimes > 0 ? modelConstantsData.trainedMaxToken : modelConstantsData.maxToken, + // presence_penalty: -0.5, // 越大,越容易出现新内容 + // frequency_penalty: 0.5, // 越大,重复内容越少 + // stop: [``, '。!?.!.'] + // }); // 发出请求 const chatResponse = await chatAPI.createCompletion( { @@ -77,9 +87,12 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) temperature: temperature, prompt: promptText, stream: true, - max_tokens: modelConstantsData.maxToken, - presence_penalty: 0, // 越大,越容易出现新内容 - frequency_penalty: 0, // 越大,重复内容越少 + max_tokens: + model.trainingTimes > 0 + ? modelConstantsData.trainedMaxToken + : modelConstantsData.maxToken, + presence_penalty: -0.5, // 越大,越容易出现新内容 + frequency_penalty: 0.5, // 越大,重复内容越少 stop: [``, '。!?.!.'] }, { @@ -108,7 +121,7 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) try { const json = JSON.parse(data); const content: string = json?.choices?.[0].text || ''; - console.log('content:', content); + // console.log('content:', content); if (!content || (responseContent === '' && content === '\n')) return; responseContent += content; diff --git a/src/pages/api/model/train.ts b/src/pages/api/model/train.ts index 8bebb65c9..b63dd85a3 100644 --- a/src/pages/api/model/train.ts +++ b/src/pages/api/model/train.ts @@ -83,7 +83,8 @@ export default async function handler(req: NextApiRequest, res: NextApiResponse) { training_file: uploadFileId, model: trainingType, - suffix: model.name + suffix: model.name, + n_epochs: 2 }, { httpsAgent } );