feat: use llm for article optimization
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user