From e384893ae038bbda3f94cdf959675b53843d2695 Mon Sep 17 00:00:00 2001 From: archer <545436317@qq.com> Date: Wed, 3 May 2023 15:50:31 +0800 Subject: [PATCH] feat: select chat model --- src/constants/model.ts | 13 +++++++++++++ src/pages/model/detail/components/ModelEditForm.tsx | 12 +++++++++--- src/utils/user.ts | 2 +- 3 files changed, 23 insertions(+), 4 deletions(-) diff --git a/src/constants/model.ts b/src/constants/model.ts index c89072b79..53055e020 100644 --- a/src/constants/model.ts +++ b/src/constants/model.ts @@ -11,20 +11,31 @@ export enum OpenAiChatEnum { export type ChatModelType = `${OpenAiChatEnum}`; +export type ChatModelItemType = { + chatModel: ChatModelType; + name: string; + contextMaxToken: number; + maxTemperature: number; + price: number; +}; + export const ChatModelMap = { [OpenAiChatEnum.GPT35]: { + chatModel: OpenAiChatEnum.GPT35, name: 'ChatGpt', contextMaxToken: 4096, maxTemperature: 1.5, price: 3 }, [OpenAiChatEnum.GPT4]: { + chatModel: OpenAiChatEnum.GPT4, name: 'Gpt4', contextMaxToken: 8000, maxTemperature: 1.5, price: 30 }, [OpenAiChatEnum.GPT432k]: { + chatModel: OpenAiChatEnum.GPT432k, name: 'Gpt4-32k', contextMaxToken: 32000, maxTemperature: 1.5, @@ -32,6 +43,8 @@ export const ChatModelMap = { } }; +export const chatModelList: ChatModelItemType[] = [ChatModelMap[OpenAiChatEnum.GPT35]]; + export enum ModelStatusEnum { running = 'running', training = 'training', diff --git a/src/pages/model/detail/components/ModelEditForm.tsx b/src/pages/model/detail/components/ModelEditForm.tsx index 72a397cd2..d694fa7e9 100644 --- a/src/pages/model/detail/components/ModelEditForm.tsx +++ b/src/pages/model/detail/components/ModelEditForm.tsx @@ -21,7 +21,7 @@ import { import { QuestionOutlineIcon } from '@chakra-ui/icons'; import type { ModelSchema } from '@/types/mongoSchema'; import { UseFormReturn } from 'react-hook-form'; -import { ChatModelMap, ModelVectorSearchModeMap } from '@/constants/model'; +import { ChatModelMap, ModelVectorSearchModeMap, chatModelList } from '@/constants/model'; import { formatPrice } from '@/utils/user'; import { useConfirm } from '@/hooks/useConfirm'; import { useSelectFile } from '@/hooks/useSelectFile'; @@ -110,14 +110,20 @@ const ModelEditForm = ({ 对话模型: - {ChatModelMap[getValues('chat.chatModel')].name} + 价格: - {formatPrice(ChatModelMap[getValues('chat.chatModel')].price, 1000)} + {formatPrice(ChatModelMap[getValues('chat.chatModel')]?.price, 1000)} 元/1K tokens(包括上下文和回答) diff --git a/src/utils/user.ts b/src/utils/user.ts index 074cd60b7..5ed9eeb3b 100644 --- a/src/utils/user.ts +++ b/src/utils/user.ts @@ -14,6 +14,6 @@ export const clearToken = () => { /** * 把数据库读取到的price,转化成元 */ -export const formatPrice = (val: number, multiple = 1) => { +export const formatPrice = (val = 0, multiple = 1) => { return Number(((val / PRICE_SCALE) * multiple).toFixed(10)); };