@lobehub/chat
Version:
Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.
36 lines (32 loc) • 892 B
text/typescript
import { LOADING_FLAT } from '@/const/message';
import { ChatMessage } from '@/types/message';
import { FieldType } from './type';
interface JSONParams extends FieldType {
messages: ChatMessage[];
systemRole: string;
}
export const generateMessages = ({
messages,
withSystemRole,
includeTool,
systemRole,
}: JSONParams) => {
const defaultMessages = messages
.filter((m) => m.content !== LOADING_FLAT)
.filter((m) => (!includeTool ? m.role !== 'tool' : true))
.map((m) => ({
content: m.content.trim(),
role: m.role,
tool_call_id: includeTool && m.tool_call_id ? m.tool_call_id : undefined,
tools: includeTool && m.tools ? m.tools : undefined,
}));
return withSystemRole && !!systemRole
? [
{
content: systemRole,
role: 'system',
},
...defaultMessages,
]
: defaultMessages;
};