接入人味文案案例自动保存

This commit is contained in:
czj
2026-07-08 13:33:45 +08:00
parent 79913ef7f7
commit e867f4f07e
6 changed files with 198 additions and 18 deletions
+43 -6
View File
@@ -187,9 +187,6 @@ export function initializeSchema(db: Database.Database) {
create index if not exists idx_scoring_runs_job_revision
on scoring_runs(job_id, revision);
create index if not exists idx_scoring_runs_result_version
on scoring_runs(result_version_id);
create index if not exists idx_optimization_cases_updated_at
on optimization_cases(updated_at);
@@ -205,10 +202,50 @@ export function initializeSchema(db: Database.Database) {
create index if not exists idx_publication_records_job_revision
on publication_records(job_id, revision);
create index if not exists idx_publication_records_result_version
on publication_records(result_version_id);
create index if not exists idx_performance_snapshots_publication
on performance_snapshots(publication_id);
`);
ensureColumn(db, "article_jobs", "case_id", "text");
ensureColumn(db, "scoring_runs", "result_version_id", "text");
ensureColumn(db, "scoring_runs", "case_type", "text not null default 'article'");
ensureColumn(db, "publication_records", "result_version_id", "text");
ensureColumn(
db,
"publication_records",
"publish_target",
"text not null default ''",
);
const publicationColumns = getTableColumns(db, "publication_records");
if (publicationColumns.includes("platform")) {
db.exec(
"update publication_records set publish_target = platform where publish_target = ''",
);
}
db.exec(`
create index if not exists idx_scoring_runs_result_version
on scoring_runs(result_version_id);
create index if not exists idx_publication_records_result_version
on publication_records(result_version_id);
`);
}
function getTableColumns(db: Database.Database, tableName: string) {
return db
.prepare(`pragma table_info(${tableName})`)
.all()
.map((row) => (row as { name: string }).name);
}
function ensureColumn(
db: Database.Database,
tableName: string,
columnName: string,
definition: string,
) {
if (getTableColumns(db, tableName).includes(columnName)) return;
db.exec(`alter table ${tableName} add column ${columnName} ${definition}`);
}
+3 -1
View File
@@ -3,7 +3,7 @@ import type {
CopyOptimizationResult,
} from "../domain/types";
import { copyOptimizationResultSchema } from "../domain/validation";
import { generateValidatedJson } from "../llm/client";
import { generateValidatedJson, type GenerateInput } from "../llm/client";
import {
RENWEI_COPY_OPTIMIZER_SYSTEM_PROMPT,
buildRenweiCopyOptimizationPrompt,
@@ -11,6 +11,7 @@ import {
export async function optimizeRenweiCopy(
input: CopyOptimizationRequest,
options: { onAuditSummary?: GenerateInput["onAuditSummary"] } = {},
): Promise<CopyOptimizationResult> {
return generateValidatedJson({
schema: copyOptimizationResultSchema,
@@ -18,5 +19,6 @@ export async function optimizeRenweiCopy(
prompt: buildRenweiCopyOptimizationPrompt(input),
temperature: 0.2,
task: "renwei_copy_optimizer",
onAuditSummary: options.onAuditSummary,
});
}