diff --git a/src/pages/playground/components/ground-left.tsx b/src/pages/playground/components/ground-left.tsx index 180e7984..994b8b0f 100644 --- a/src/pages/playground/components/ground-left.tsx +++ b/src/pages/playground/components/ground-left.tsx @@ -101,9 +101,15 @@ const GroundLeft: React.FC = forwardRef((props, ref) => { }); }, [messageList, systemMessage, parameters]); + const generateValidMessage = (message: Omit) => { + if (!message.content && !message.imgs?.length && !message.audio?.length) { + return undefined; + } + return message; + }; + const handleSendMessage = (message: Omit) => { - const currentMessage = - message.content || message.imgs?.length ? message : undefined; + const currentMessage = generateValidMessage(message); submitMessage({ system: systemMessage ? { role: Roles.System, content: systemMessage } diff --git a/src/pages/playground/components/ground-reranker.tsx b/src/pages/playground/components/ground-reranker.tsx index 973427b6..96297842 100644 --- a/src/pages/playground/components/ground-reranker.tsx +++ b/src/pages/playground/components/ground-reranker.tsx @@ -240,15 +240,16 @@ const GroundReranker: React.FC = forwardRef((props, ref) => { requestToken.current?.cancel?.(); requestToken.current = requestSource(); + const filledList = textList.filter((item) => item.text); + + setTextList(filledList); + const result: any = await rerankerQuery( { model: parameters.model, top_n: parameters.top_n, query: query, - documents: [ - ...textList.map((item) => item.text), - ...fileList.map((item) => item.text) - ] + documents: filledList.map((item) => item.text) }, { token: requestToken.current.token @@ -266,15 +267,13 @@ const GroundReranker: React.FC = forwardRef((props, ref) => { const minValue = sortList[0].relevance_score; // reset state - let newTextList = textList.map((item) => { + let newTextList = filledList.map((item) => { item.percent = undefined; item.score = undefined; item.rank = undefined; return item; }); - let sortMap: number[] = []; - result.results?.forEach((item: any, sIndex: number) => { newTextList[item.index] = { ...newTextList[item.index], diff --git a/src/pages/playground/config/index.ts b/src/pages/playground/config/index.ts index ca9e8c56..76d1c6ba 100644 --- a/src/pages/playground/config/index.ts +++ b/src/pages/playground/config/index.ts @@ -1,4 +1,4 @@ -import _, { map } from 'lodash'; +import _ from 'lodash'; import { CREAT_IMAGE_API } from '../apis'; import { AudioData, MessageItem } from './types'; @@ -51,44 +51,31 @@ export const formatMessageParams = (messageList: any[]) => { export const generateMessagesByListContent = (messageList: any[]) => { if (!messageList.length) return []; return messageList.map((item: MessageItem) => { - if (item.imgs?.length) { - const content = map( - item.imgs, - (img: { uid: string | number; dataUrl: string }) => { - return { - type: 'image_url', - image_url: { - url: img.dataUrl - } - }; - } - ); - - if (item.content) { + if (item.imgs?.length || item.audio?.length) { + const content: any[] = []; + // image + _.each(item.imgs, (img: { uid: string | number; dataUrl: string }) => { content.push({ - type: 'text', - text: item.content - }); - } - - return { - role: item.role, - content: content - }; - } - - // audio - if (item.audio?.length) { - const content = map(item.audio, (item: AudioData) => { - return { - type: 'input_audio', - input_audio: { - data: item.base64, - format: item.format + type: 'image_url', + image_url: { + url: img.dataUrl } - }; + }); }); + // audio + if (item.audio?.length) { + _.each(item.audio, (item: AudioData) => { + content.push({ + type: 'input_audio', + input_audio: { + data: item.base64, + format: item.format + } + }); + }); + } + if (item.content) { content.push({ type: 'text', @@ -106,37 +93,6 @@ export const generateMessagesByListContent = (messageList: any[]) => { }); }; -export const generateMessages = (messageList: Omit[]) => { - if (!messageList.length) return []; - - const result: any[] = []; - - messageList.forEach((item: Omit) => { - if (item.imgs?.length) { - const imgList = item.imgs.map((img) => { - return { - type: 'image_url', - image_url: { - url: img.dataUrl - } - }; - }); - result.push({ - role: item.role, - content: imgList - }); - } - if (item.content) { - result.push({ - role: item.role, - content: item.content - }); - } - }); - - return result; -}; - export const OpenAIViewCode = { chat: { api: 'chat/completions', diff --git a/src/pages/playground/style/input-list.less b/src/pages/playground/style/input-list.less index f063923c..3598f7a4 100644 --- a/src/pages/playground/style/input-list.less +++ b/src/pages/playground/style/input-list.less @@ -41,7 +41,7 @@ } .hover-hidden { - display: none; + opacity: 0; } }