feat: add docs generation job
This commit is contained in:
26
apps/worker/src/jobs/generate.ts
Normal file
26
apps/worker/src/jobs/generate.ts
Normal file
@@ -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<GeneratedDocs> {
|
||||||
|
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);
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user