Files
TaxHacker_s23/ai/prompt.ts
2025-04-03 13:07:54 +02:00

40 lines
1.0 KiB
TypeScript

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
}