fix: chat request payload error, #2163
This commit is contained in:
@@ -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
|
||||
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
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
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
|
||||
}
|
||||
};
|
||||
});
|
||||
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user