inference-server
Version:
Libraries and server to build AI applications. Adapters to various native bindings allowing local inference. Integrate it with your application, or use as a microservice.
31 lines (30 loc) • 905 B
text/typescript
import { ChatMessage as GPT4AllChatMessage } from 'gpt4all'
import { ChatMessage } from '#package/types/index.js'
import { flattenMessageTextContent } from '#package/lib/flattenMessageTextContent.js'
export function createChatMessageArray(
messages: ChatMessage[],
): GPT4AllChatMessage[] {
const chatMessages: GPT4AllChatMessage[] = []
let systemPrompt: string | undefined
for (const message of messages) {
if (message.role === 'user' || message.role === 'assistant') {
chatMessages.push({
role: message.role,
content: flattenMessageTextContent(message.content),
})
} else if (message.role === 'system') {
if (systemPrompt) {
systemPrompt += '\n\n' + message.content
} else {
systemPrompt = flattenMessageTextContent(message.content)
}
}
}
if (systemPrompt) {
chatMessages.unshift({
role: 'system',
content: systemPrompt,
})
}
return chatMessages
}