import { Category, Field, Project } from "@prisma/client" export function buildLLMPrompt( promptTemplate: string, fields: Field[], categories: Category[] = [], projects: Project[] = [] ) { let prompt = promptTemplate prompt = prompt.replace( "{fields}", fields .filter((field) => field.llm_prompt) .map((field) => `- ${field.code}: ${field.llm_prompt}`) .join("\n") ) prompt = prompt.replace( "{categories}", categories .filter((category) => category.llm_prompt) .map((category) => `- ${category.code}: for ${category.llm_prompt}`) .join("\n") ) prompt = prompt.replace( "{projects}", projects .filter((project) => project.llm_prompt) .map((project) => `- ${project.code}: for ${project.llm_prompt}`) .join("\n") ) prompt = prompt.replace("{categories.code}", categories.map((category) => `${category.code}`).join(", ")) prompt = prompt.replace("{projects.code}", projects.map((project) => `${project.code}`).join(", ")) return prompt }