fix: chat request payload error, #2163

main
jialin 7 months ago
parent be92f92991
commit 1924c45358

@ -101,9 +101,15 @@ const GroundLeft: React.FC<MessageProps> = forwardRef((props, ref) => {
});
}, [messageList, systemMessage, parameters]);
const generateValidMessage = (message: Omit<MessageItem, 'uid'>) => {
if (!message.content && !message.imgs?.length && !message.audio?.length) {
return undefined;
}
return message;
};
const handleSendMessage = (message: Omit<MessageItem, 'uid'>) => {
const currentMessage =
message.content || message.imgs?.length ? message : undefined;
const currentMessage = generateValidMessage(message);
submitMessage({
system: systemMessage
? { role: Roles.System, content: systemMessage }

@ -240,15 +240,16 @@ const GroundReranker: React.FC<MessageProps> = 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<MessageProps> = 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],

@ -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<MessageItem, 'uid'>[]) => {
if (!messageList.length) return [];
const result: any[] = [];
messageList.forEach((item: Omit<MessageItem, 'uid'>) => {
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',

@ -41,7 +41,7 @@
}
.hover-hidden {
display: none;
opacity: 0;
}
}

Loading…
Cancel
Save