(chatHistory: IMessage[] | { content: string; role: string }[] = [])
| 827 | * @returns {string} |
| 828 | */ |
| 829 | export const convertChatHistoryToText = (chatHistory: IMessage[] | { content: string; role: string }[] = []): string => { |
| 830 | return chatHistory |
| 831 | .map((chatMessage) => { |
| 832 | if (!chatMessage) return '' |
| 833 | const messageContent = 'message' in chatMessage ? chatMessage.message : chatMessage.content |
| 834 | if (!messageContent || messageContent.trim() === '') return '' |
| 835 | |
| 836 | const messageType = 'type' in chatMessage ? chatMessage.type : chatMessage.role |
| 837 | if (messageType === 'apiMessage' || messageType === 'assistant') { |
| 838 | return `Assistant: ${messageContent}` |
| 839 | } else if (messageType === 'userMessage' || messageType === 'user') { |
| 840 | return `Human: ${messageContent}` |
| 841 | } else { |
| 842 | return `${messageContent}` |
| 843 | } |
| 844 | }) |
| 845 | .filter((message) => message !== '') // Remove empty messages |
| 846 | .join('\n') |
| 847 | } |
| 848 | |
| 849 | /** |
| 850 | * Serialize array chat history to string |
no outgoing calls
no test coverage detected