Spaces:
Running
Running
File size: 793 Bytes
fc69895 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
import type { EndpointParameters } from "./server/endpoints/endpoints";
import type { BackendModel } from "./server/models";
type buildPromptOptions = Pick<EndpointParameters, "messages" | "preprompt"> & {
model: BackendModel;
};
export async function buildPrompt({
messages,
model,
preprompt,
}: buildPromptOptions): Promise<string> {
const filteredMessages = messages;
if (filteredMessages[0].from === "system" && preprompt) {
filteredMessages[0].content = preprompt;
}
const prompt = model
.chatPromptRender({
messages: filteredMessages.map((m) => ({
...m,
role: m.from,
})),
preprompt,
})
// Not super precise, but it's truncated in the model's backend anyway
.split(" ")
.slice(-(model.parameters?.truncate ?? 0))
.join(" ");
return prompt;
}
|