|
import type { BackendModel } from "./server/models"; |
|
import type { Message } from "./types/Message"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
export function buildPrompt( |
|
messages: Pick<Message, "from" | "content">[], |
|
model: BackendModel |
|
): string { |
|
const prompt = |
|
messages |
|
.map( |
|
(m) => |
|
(m.from === "user" |
|
? model.userMessageToken + m.content |
|
: model.assistantMessageToken + m.content) + |
|
(model.parameters.stop |
|
? m.content.endsWith(model.parameters.stop[0]) |
|
? "" |
|
: model.parameters.stop[0] |
|
: "") |
|
) |
|
.join("") + model.assistantMessageToken; |
|
|
|
|
|
return model.preprompt + prompt.split(" ").slice(-model.parameters.truncate).join(" "); |
|
} |
|
|