82 lines
2.2 KiB
TypeScript
82 lines
2.2 KiB
TypeScript
/**
|
|
* Script to check a specific document and its embeddings
|
|
* Run: pnpm with-env npx tsx packages/api/tests/check-document.ts
|
|
*/
|
|
import { sql } from "@turbostarter/db";
|
|
import { db } from "@turbostarter/db/server";
|
|
|
|
const DOC_ID = "JnOv9Z7JK2ZWU92OrFFFuuCY1TSksaWv";
|
|
|
|
async function check() {
|
|
console.log(`\n=== Checking document: ${DOC_ID} ===\n`);
|
|
|
|
// 1. Check if document exists in pdf.document
|
|
const docResult = await db.execute<{
|
|
id: string;
|
|
path: string;
|
|
name: string | null;
|
|
chat_id: string;
|
|
created_at: Date;
|
|
}>(sql`
|
|
SELECT id, path, name, chat_id, created_at
|
|
FROM pdf.document
|
|
WHERE id = ${DOC_ID}
|
|
`);
|
|
|
|
console.log("Document record:", docResult);
|
|
|
|
if (!Array.isArray(docResult) || docResult.length === 0) {
|
|
console.log("❌ Document NOT FOUND in pdf.document table!");
|
|
|
|
// Check if it might be in a different table or with different ID
|
|
const allDocs = await db.execute<{
|
|
id: string;
|
|
path: string;
|
|
chat_id: string;
|
|
}>(sql`SELECT id, path, chat_id FROM pdf.document ORDER BY created_at DESC LIMIT 10`);
|
|
|
|
console.log("\nRecent documents in pdf.document:");
|
|
for (const doc of allDocs as { id: string; path: string }[]) {
|
|
console.log(` - ${doc.id} | ${doc.path}`);
|
|
}
|
|
|
|
process.exit(0);
|
|
}
|
|
|
|
const doc = docResult[0]!;
|
|
console.log(`✅ Document found: ${doc.name ?? doc.path}`);
|
|
|
|
// 2. Count embeddings for this document
|
|
const embeddingCount = await db.execute<{ count: number }>(sql`
|
|
SELECT COUNT(*)::int as count
|
|
FROM pdf.embedding
|
|
WHERE document_id = ${DOC_ID}
|
|
`);
|
|
|
|
const count = (embeddingCount as { count: number }[])[0]?.count ?? 0;
|
|
console.log(`📊 Embedding count: ${count}`);
|
|
|
|
if (count === 0) {
|
|
console.log("❌ Document has 0 embeddings - needs regeneration!");
|
|
console.log(` Path: ${doc.path}`);
|
|
} else {
|
|
console.log("✅ Document has embeddings");
|
|
|
|
// Show sample embeddings
|
|
const samples = await db.execute(sql`
|
|
SELECT id, LEFT(content, 80) as preview, page_number
|
|
FROM pdf.embedding
|
|
WHERE document_id = ${DOC_ID}
|
|
LIMIT 3
|
|
`);
|
|
console.log("\nSample embeddings:", samples);
|
|
}
|
|
|
|
process.exit(0);
|
|
}
|
|
|
|
check().catch((e) => {
|
|
console.error("Error:", e);
|
|
process.exit(1);
|
|
});
|