Repair multimodal vision parsing and rerun fallback history
这个提交包含在:
52
server/db.ts
52
server/db.ts
@@ -1,4 +1,4 @@
|
||||
import { eq, desc, and, asc, lte, gte, sql } from "drizzle-orm";
|
||||
import { eq, desc, and, asc, lte, gte, or, sql } from "drizzle-orm";
|
||||
import { drizzle } from "drizzle-orm/mysql2";
|
||||
import {
|
||||
InsertUser, users,
|
||||
@@ -1280,6 +1280,56 @@ export async function listVisionTestRuns(userId?: number, limit = 50) {
|
||||
.limit(limit);
|
||||
}
|
||||
|
||||
export async function getVisionTestRunById(runId: number) {
|
||||
const db = await getDb();
|
||||
if (!db) return null;
|
||||
|
||||
const [row] = await db.select({
|
||||
id: visionTestRuns.id,
|
||||
taskId: visionTestRuns.taskId,
|
||||
userId: visionTestRuns.userId,
|
||||
status: visionTestRuns.status,
|
||||
visionStatus: visionTestRuns.visionStatus,
|
||||
title: visionTestRuns.title,
|
||||
}).from(visionTestRuns)
|
||||
.where(eq(visionTestRuns.id, runId))
|
||||
.limit(1);
|
||||
|
||||
return row || null;
|
||||
}
|
||||
|
||||
export async function listRepairableVisionTestRuns(limit = 50) {
|
||||
const db = await getDb();
|
||||
if (!db) return [];
|
||||
|
||||
return db.select({
|
||||
id: visionTestRuns.id,
|
||||
taskId: visionTestRuns.taskId,
|
||||
userId: visionTestRuns.userId,
|
||||
title: visionTestRuns.title,
|
||||
status: visionTestRuns.status,
|
||||
visionStatus: visionTestRuns.visionStatus,
|
||||
}).from(visionTestRuns)
|
||||
.where(or(eq(visionTestRuns.visionStatus, "fallback"), eq(visionTestRuns.status, "failed")))
|
||||
.orderBy(desc(visionTestRuns.createdAt))
|
||||
.limit(limit);
|
||||
}
|
||||
|
||||
export async function resetVisionTestRun(taskId: string) {
|
||||
const db = await getDb();
|
||||
if (!db) return;
|
||||
|
||||
await db.update(visionTestRuns).set({
|
||||
status: "queued",
|
||||
visionStatus: "pending",
|
||||
summary: null,
|
||||
corrections: null,
|
||||
report: null,
|
||||
warning: null,
|
||||
error: null,
|
||||
}).where(eq(visionTestRuns.taskId, taskId));
|
||||
}
|
||||
|
||||
export async function completeVisionTestRun(taskId: string, data: {
|
||||
visionStatus: "ok" | "fallback";
|
||||
summary?: string | null;
|
||||
|
||||
在新工单中引用
屏蔽一个用户