From fcd2b3c8904a278d888a0f69024e0426fb5185b6 Mon Sep 17 00:00:00 2001 From: repi Date: Mon, 1 Jan 2001 00:00:00 +0000 Subject: [PATCH] feat: add docs generation job --- apps/worker/src/jobs/generate.ts | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 apps/worker/src/jobs/generate.ts diff --git a/apps/worker/src/jobs/generate.ts b/apps/worker/src/jobs/generate.ts new file mode 100644 index 0000000..bc447f0 --- /dev/null +++ b/apps/worker/src/jobs/generate.ts @@ -0,0 +1,26 @@ +import type { CodeStructure, GeneratedDocs } from "@codeboard/shared"; +import { createProvider, generateDocumentation } from "@codeboard/llm"; + +export async function generateDocs( + codeStructure: CodeStructure, + onProgress?: (stage: string, progress: number) => void +): Promise { + const apiKey = + process.env.OPENAI_API_KEY ?? process.env.ANTHROPIC_API_KEY ?? ""; + + if (!apiKey) { + throw new Error( + "No LLM API key configured. Set OPENAI_API_KEY or ANTHROPIC_API_KEY." + ); + } + + const providerType = process.env.OPENAI_API_KEY ? "openai" : "anthropic"; + const provider = createProvider({ + provider: providerType, + apiKey, + model: process.env.LLM_MODEL, + baseUrl: process.env.LLM_BASE_URL, + }); + + return generateDocumentation(codeStructure, provider, onProgress); +}