mirror of
https://github.com/marcogll/TaxHacker_s23.git
synced 2026-01-13 21:35:19 +00:00
40 lines
1.0 KiB
TypeScript
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
|
|
}
|