feat: use llm for article optimization

This commit is contained in:
Codex
2026-06-21 23:43:02 +08:00
parent 0c36f4b8a3
commit 9efbe1a354
2 changed files with 82 additions and 0 deletions
+19
View File
@@ -4,6 +4,11 @@ import type {
OptimizedArticle,
} from "../domain/types";
import { optimizedArticleSchema } from "../domain/validation";
import { generateValidatedJson } from "../llm/client";
import {
ARTICLE_OPTIMIZER_SYSTEM_PROMPT,
buildArticleOptimizerPrompt,
} from "../llm/prompts";
export interface OptimizeArticleInput {
input: ArticleInput;
@@ -14,6 +19,20 @@ export async function optimizeArticle({
input,
factCard,
}: OptimizeArticleInput): Promise<OptimizedArticle> {
const llmArticle = await generateValidatedJson({
schema: optimizedArticleSchema,
system: ARTICLE_OPTIMIZER_SYSTEM_PROMPT,
prompt: buildArticleOptimizerPrompt(input, factCard),
temperature: 0.2,
});
return llmArticle ?? optimizeArticleFallback({ input, factCard });
}
function optimizeArticleFallback({
input,
factCard,
}: OptimizeArticleInput): OptimizedArticle {
const unsupported = findUnsupportedInstructionClaims(
input.user_instructions,
factCard,