chore: completion payload format
This commit is contained in:
@@ -14,7 +14,7 @@ import {
|
||||
useState
|
||||
} from 'react';
|
||||
import { CHAT_API } from '../apis';
|
||||
import { Roles, formatMessageParams } from '../config';
|
||||
import { Roles, generateMessages } from '../config';
|
||||
import { MessageItem } from '../config/types';
|
||||
import '../style/ground-left.less';
|
||||
import '../style/system-message-wrap.less';
|
||||
@@ -134,52 +134,23 @@ const GroundLeft: React.FC<MessageProps> = forwardRef((props, ref) => {
|
||||
setMessageList((pre) => {
|
||||
return [...pre, ...currentMessageRef.current];
|
||||
});
|
||||
const formatMessages = _.map(
|
||||
[...messageList, ...currentMessageRef.current],
|
||||
(item: MessageItem) => {
|
||||
return {
|
||||
role: item.role,
|
||||
content: [
|
||||
{
|
||||
type: 'text',
|
||||
text: item.content
|
||||
},
|
||||
..._.map(
|
||||
item.imgs,
|
||||
(img: { uid: string | number; dataUrl: string }) => {
|
||||
return {
|
||||
type: 'image_url',
|
||||
image_url: {
|
||||
url: img.dataUrl
|
||||
}
|
||||
};
|
||||
}
|
||||
)
|
||||
]
|
||||
};
|
||||
}
|
||||
);
|
||||
const messageParams = systemMessage
|
||||
? [
|
||||
{
|
||||
role: Roles.System,
|
||||
content: [
|
||||
{
|
||||
type: 'text',
|
||||
text: systemMessage
|
||||
}
|
||||
]
|
||||
},
|
||||
...formatMessages
|
||||
]
|
||||
: [...formatMessages];
|
||||
console.log('messageList:', [
|
||||
...messageList,
|
||||
...currentMessageRef.current
|
||||
]);
|
||||
|
||||
const finalMessageParams = formatMessageParams(messageParams);
|
||||
const messageParams = [
|
||||
{ role: Roles.System, content: systemMessage },
|
||||
...messageList,
|
||||
...currentMessageRef.current
|
||||
];
|
||||
|
||||
setViewCodeMessage(finalMessageParams);
|
||||
const messages = generateMessages(messageParams);
|
||||
|
||||
setViewCodeMessage(messages);
|
||||
|
||||
const chatParams = {
|
||||
messages: finalMessageParams,
|
||||
messages: messages,
|
||||
...parameters,
|
||||
stream: true,
|
||||
stream_options: {
|
||||
|
||||
@@ -340,10 +340,12 @@ const MessageInput: React.FC<MessageInputProps> = ({
|
||||
{intl.formatMessage({ id: `playground.${message.role}` })}
|
||||
</Button>
|
||||
<Divider type="vertical" style={{ margin: 0 }} />
|
||||
<UploadImg
|
||||
handleUpdateImgList={handleUpdateImgList}
|
||||
size="middle"
|
||||
></UploadImg>
|
||||
{message.role === Roles.User && (
|
||||
<UploadImg
|
||||
handleUpdateImgList={handleUpdateImgList}
|
||||
size="middle"
|
||||
></UploadImg>
|
||||
)}
|
||||
</>
|
||||
)}
|
||||
<Tooltip
|
||||
|
||||
@@ -24,7 +24,7 @@ import React, {
|
||||
} from 'react';
|
||||
import 'simplebar-react/dist/simplebar.min.css';
|
||||
import { CHAT_API } from '../../apis';
|
||||
import { Roles, formatMessageParams } from '../../config';
|
||||
import { Roles, generateMessages } from '../../config';
|
||||
import CompareContext from '../../config/compare-context';
|
||||
import { MessageItem, ModelSelectionItem } from '../../config/types';
|
||||
import '../../style/model-item.less';
|
||||
@@ -123,63 +123,22 @@ const ModelItem: React.FC<ModelItemProps> = forwardRef(
|
||||
setMessageList((preList) => {
|
||||
return [...preList, ...currentMessageRef.current];
|
||||
});
|
||||
const messages = _.map(
|
||||
[...messageList, ...currentMessageRef.current],
|
||||
(item: MessageItem) => {
|
||||
return {
|
||||
role: item.role,
|
||||
content: item.content,
|
||||
imgs: item.imgs || []
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
contentRef.current = '';
|
||||
// ====== payload =================
|
||||
const formatMessages = _.map(messages, (item: MessageItem) => {
|
||||
return {
|
||||
role: item.role,
|
||||
content: [
|
||||
{
|
||||
type: 'text',
|
||||
text: item.content
|
||||
},
|
||||
..._.map(
|
||||
item.imgs,
|
||||
(img: { uid: string | number; dataUrl: string }) => {
|
||||
return {
|
||||
type: 'image_url',
|
||||
image_url: {
|
||||
url: img.dataUrl
|
||||
}
|
||||
};
|
||||
}
|
||||
)
|
||||
]
|
||||
};
|
||||
});
|
||||
|
||||
const messageParams = systemMessage
|
||||
? [
|
||||
{
|
||||
role: Roles.System,
|
||||
content: [
|
||||
{
|
||||
type: 'text',
|
||||
text: systemMessage
|
||||
}
|
||||
]
|
||||
},
|
||||
...formatMessages
|
||||
]
|
||||
: [...formatMessages];
|
||||
const messageParams = [
|
||||
{ role: Roles.System, content: systemMessage },
|
||||
...messageList,
|
||||
...currentMessageRef.current
|
||||
];
|
||||
|
||||
const finalMessageParams = formatMessageParams(messageParams);
|
||||
const messages = generateMessages(messageParams);
|
||||
|
||||
setViewCodeMessage(finalMessageParams);
|
||||
setViewCodeMessage(messages);
|
||||
|
||||
const chatParams = {
|
||||
messages: finalMessageParams,
|
||||
messages: messages,
|
||||
...params,
|
||||
stream: true,
|
||||
stream_options: {
|
||||
|
||||
@@ -1,3 +1,6 @@
|
||||
import { map } from 'lodash';
|
||||
import { MessageItem } from './types';
|
||||
|
||||
export const Roles = {
|
||||
User: 'user',
|
||||
Assistant: 'assistant',
|
||||
@@ -40,3 +43,63 @@ export const formatMessageParams = (messageList: any[]) => {
|
||||
});
|
||||
return result;
|
||||
};
|
||||
|
||||
export const generateMessagesByListContent = (messageList: any[]) => {
|
||||
if (!messageList.length) return [];
|
||||
|
||||
return messageList.map((item: MessageItem) => {
|
||||
const content = map(
|
||||
item.imgs,
|
||||
(img: { uid: string | number; dataUrl: string }) => {
|
||||
return {
|
||||
type: 'image_url',
|
||||
image_url: {
|
||||
url: img.dataUrl
|
||||
}
|
||||
};
|
||||
}
|
||||
);
|
||||
|
||||
if (item.content) {
|
||||
content.push({
|
||||
type: 'text',
|
||||
text: item.content
|
||||
});
|
||||
}
|
||||
return {
|
||||
role: item.role,
|
||||
content: content
|
||||
};
|
||||
});
|
||||
};
|
||||
|
||||
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;
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user