mirror of
https://github.com/labring/FastGPT.git
synced 2025-07-23 13:03:50 +00:00
41 lines
1.5 KiB
TypeScript
41 lines
1.5 KiB
TypeScript
import type { ChatItemType } from '../../core/chat/type.d';
|
|
import { ChatRoleEnum } from '../../core/chat/constants';
|
|
import { ChatCompletionRequestMessageRoleEnum } from '../../core/ai/constant';
|
|
import type { ChatMessageItemType } from '../../core/ai/type.d';
|
|
|
|
const chat2Message = {
|
|
[ChatRoleEnum.AI]: ChatCompletionRequestMessageRoleEnum.Assistant,
|
|
[ChatRoleEnum.Human]: ChatCompletionRequestMessageRoleEnum.User,
|
|
[ChatRoleEnum.System]: ChatCompletionRequestMessageRoleEnum.System,
|
|
[ChatRoleEnum.Function]: ChatCompletionRequestMessageRoleEnum.Function,
|
|
[ChatRoleEnum.Tool]: ChatCompletionRequestMessageRoleEnum.Tool
|
|
};
|
|
const message2Chat = {
|
|
[ChatCompletionRequestMessageRoleEnum.System]: ChatRoleEnum.System,
|
|
[ChatCompletionRequestMessageRoleEnum.User]: ChatRoleEnum.Human,
|
|
[ChatCompletionRequestMessageRoleEnum.Assistant]: ChatRoleEnum.AI,
|
|
[ChatCompletionRequestMessageRoleEnum.Function]: ChatRoleEnum.Function,
|
|
[ChatCompletionRequestMessageRoleEnum.Tool]: ChatRoleEnum.Tool
|
|
};
|
|
|
|
export function adaptRole_Chat2Message(role: `${ChatRoleEnum}`) {
|
|
return chat2Message[role];
|
|
}
|
|
export function adaptRole_Message2Chat(role: `${ChatCompletionRequestMessageRoleEnum}`) {
|
|
return message2Chat[role];
|
|
}
|
|
|
|
export const adaptChat2GptMessages = ({
|
|
messages,
|
|
reserveId
|
|
}: {
|
|
messages: ChatItemType[];
|
|
reserveId: boolean;
|
|
}): ChatMessageItemType[] => {
|
|
return messages.map((item) => ({
|
|
...(reserveId && { dataId: item.dataId }),
|
|
role: chat2Message[item.obj],
|
|
content: item.value || ''
|
|
}));
|
|
};
|