chore: completion payload format
This commit is contained in:
@@ -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