Spaces:
Running
Running
| 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; | |
| } |