deepsite / lib /rewrite-prompt.ts
enzostvs's picture
enzostvs HF Staff
initial
c10f8f8
raw
history blame
1.87 kB
import { EnhancedSettings } from "@/types";
import { InferenceClient } from "@huggingface/inference";
import { PROMPT_FOR_REWRITE_PROMPT, PROMPT_FOR_REWRITE_PROMPT_END } from "./prompts";
export async function rewritePrompt(prompt: string, enhancedSettings: EnhancedSettings, options: { token: string, billTo: string | null }, model: string, provider: string) {
const { token, billTo } = options;
const client = new InferenceClient(token);
const response = await client.chatCompletion(
{
model,
provider: provider as any,
messages: [
{
role: "system",
content: `You will be given a prompt and a set of enhanced settings. You will need to rewrite the prompt to include the enhanced settings.
IMPORTANT: ALWAYS KEEP THE ORIGINAL IDEA OF THE USER'S PROMPT. DO NOT CHANGE THE ORIGINAL IDEA OF THE USER'S PROMPT.
Make sure to add a lot of details to the prompt, and make it more specific, to create the best prompt possible.
REQUIRED: If in the original prompt, the user asks for multiple pages, make sure to keep the multiple pages in the rewritten prompt.
ALWAYS RETURN THE REWRITTEN PROMPT, DO NOT ADD ANYTHING ELSE.`,
},
{
role: "user",
content: `Here is my prompt: ${prompt}. IMPORTANT: ALWAYS KEEP THE ORIGINAL IDEA OF MY PROMPT. Here are the enhanced settings:
1. I want to use the following primary color: ${enhancedSettings.primaryColor} (eg: bg-${enhancedSettings.primaryColor}-500).
2. I want to use the following secondary color: ${enhancedSettings.secondaryColor} (eg: bg-${enhancedSettings.secondaryColor}-500).
3. I want to use the following theme: ${enhancedSettings.theme} mode.
Make sure to include the enhanced settings in the rewritten prompt.`,
},
],
},
billTo ? { billTo } : {}
);
return response.choices[0]?.message?.content;
}