mirror of
https://github.com/marcogll/TaxHacker_s23.git
synced 2026-01-13 13:25:18 +00:00
feat: filters, settings, backups fix: ts compile errors feat: new dashboard, webp previews and settings feat: use webp for pdfs feat: use webp fix: analyze resets old data fix: switch to corsproxy fix: switch to free cors fix: max upload limit fix: currency conversion feat: transaction export fix: currency conversion feat: refactor settings actions feat: new loader feat: README + LICENSE doc: update readme doc: update readme doc: update readme doc: update screenshots ci: bump prisma
50 lines
1.2 KiB
TypeScript
50 lines
1.2 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(", "))
|
|
|
|
prompt = prompt.replace(
|
|
"{json_structure}",
|
|
"{ " +
|
|
fields
|
|
.filter((field) => field.llm_prompt)
|
|
.map((field) => `${field.code}: ${field.type}`)
|
|
.join(", ") +
|
|
" }"
|
|
)
|
|
|
|
return prompt
|
|
}
|