Add detailed logging for AI tagging progress
Build and Push Docker Image / build (push) Successful in 9m41s
Details
Build and Push Docker Image / build (push) Successful in 9m41s
Details
- Log each project being processed with timing - Log progress every 10 projects with time estimates - Log final completion stats Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
parent
e37154d812
commit
0b86dc6477
|
|
@ -503,22 +503,43 @@ export async function batchTagProjects(
|
||||||
let failed = 0
|
let failed = 0
|
||||||
const errors: string[] = []
|
const errors: string[] = []
|
||||||
|
|
||||||
|
console.log(`[AI Tagging] Starting batch processing of ${untaggedProjects.length} projects in round...`)
|
||||||
|
const startTime = Date.now()
|
||||||
|
|
||||||
for (let i = 0; i < untaggedProjects.length; i++) {
|
for (let i = 0; i < untaggedProjects.length; i++) {
|
||||||
const project = untaggedProjects[i]
|
const project = untaggedProjects[i]
|
||||||
|
const projectStartTime = Date.now()
|
||||||
|
console.log(`[AI Tagging] Processing project ${i + 1}/${untaggedProjects.length}: "${project.title.substring(0, 50)}..."`)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await tagProject(project.id, userId)
|
const result = await tagProject(project.id, userId)
|
||||||
results.push(result)
|
results.push(result)
|
||||||
processed++
|
processed++
|
||||||
|
const elapsed = ((Date.now() - projectStartTime) / 1000).toFixed(1)
|
||||||
|
console.log(`[AI Tagging] ✓ Tagged "${project.title.substring(0, 30)}..." with ${result.applied.length} tags (${elapsed}s)`)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
failed++
|
failed++
|
||||||
errors.push(`${project.title}: ${error instanceof Error ? error.message : 'Unknown error'}`)
|
const errorMsg = error instanceof Error ? error.message : 'Unknown error'
|
||||||
|
errors.push(`${project.title}: ${errorMsg}`)
|
||||||
|
console.error(`[AI Tagging] ✗ Failed "${project.title.substring(0, 30)}...": ${errorMsg}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Report progress
|
// Report progress
|
||||||
if (onProgress) {
|
if (onProgress) {
|
||||||
onProgress(i + 1, untaggedProjects.length)
|
onProgress(i + 1, untaggedProjects.length)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Log progress every 10 projects
|
||||||
|
if ((i + 1) % 10 === 0) {
|
||||||
|
const elapsed = ((Date.now() - startTime) / 1000).toFixed(0)
|
||||||
|
const avgTime = (Date.now() - startTime) / (i + 1) / 1000
|
||||||
|
const remaining = avgTime * (untaggedProjects.length - i - 1)
|
||||||
|
console.log(`[AI Tagging] Progress: ${i + 1}/${untaggedProjects.length} (${elapsed}s elapsed, ~${remaining.toFixed(0)}s remaining)`)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const totalTime = ((Date.now() - startTime) / 1000).toFixed(1)
|
||||||
|
console.log(`[AI Tagging] Batch complete: ${processed} tagged, ${failed} failed, ${alreadyTaggedCount} skipped in ${totalTime}s`)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
processed,
|
processed,
|
||||||
|
|
@ -586,22 +607,43 @@ export async function batchTagProgramProjects(
|
||||||
let failed = 0
|
let failed = 0
|
||||||
const errors: string[] = []
|
const errors: string[] = []
|
||||||
|
|
||||||
|
console.log(`[AI Tagging] Starting batch processing of ${untaggedProjects.length} projects...`)
|
||||||
|
const startTime = Date.now()
|
||||||
|
|
||||||
for (let i = 0; i < untaggedProjects.length; i++) {
|
for (let i = 0; i < untaggedProjects.length; i++) {
|
||||||
const project = untaggedProjects[i]
|
const project = untaggedProjects[i]
|
||||||
|
const projectStartTime = Date.now()
|
||||||
|
console.log(`[AI Tagging] Processing project ${i + 1}/${untaggedProjects.length}: "${project.title.substring(0, 50)}..."`)
|
||||||
|
|
||||||
try {
|
try {
|
||||||
const result = await tagProject(project.id, userId)
|
const result = await tagProject(project.id, userId)
|
||||||
results.push(result)
|
results.push(result)
|
||||||
processed++
|
processed++
|
||||||
|
const elapsed = ((Date.now() - projectStartTime) / 1000).toFixed(1)
|
||||||
|
console.log(`[AI Tagging] ✓ Tagged "${project.title.substring(0, 30)}..." with ${result.applied.length} tags (${elapsed}s)`)
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
failed++
|
failed++
|
||||||
errors.push(`${project.title}: ${error instanceof Error ? error.message : 'Unknown error'}`)
|
const errorMsg = error instanceof Error ? error.message : 'Unknown error'
|
||||||
|
errors.push(`${project.title}: ${errorMsg}`)
|
||||||
|
console.error(`[AI Tagging] ✗ Failed "${project.title.substring(0, 30)}...": ${errorMsg}`)
|
||||||
}
|
}
|
||||||
|
|
||||||
// Report progress
|
// Report progress
|
||||||
if (onProgress) {
|
if (onProgress) {
|
||||||
onProgress(i + 1, untaggedProjects.length)
|
onProgress(i + 1, untaggedProjects.length)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Log progress every 10 projects
|
||||||
|
if ((i + 1) % 10 === 0) {
|
||||||
|
const elapsed = ((Date.now() - startTime) / 1000).toFixed(0)
|
||||||
|
const avgTime = (Date.now() - startTime) / (i + 1) / 1000
|
||||||
|
const remaining = avgTime * (untaggedProjects.length - i - 1)
|
||||||
|
console.log(`[AI Tagging] Progress: ${i + 1}/${untaggedProjects.length} (${elapsed}s elapsed, ~${remaining.toFixed(0)}s remaining)`)
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
const totalTime = ((Date.now() - startTime) / 1000).toFixed(1)
|
||||||
|
console.log(`[AI Tagging] Batch complete: ${processed} tagged, ${failed} failed, ${alreadyTaggedCount} skipped in ${totalTime}s`)
|
||||||
|
|
||||||
return {
|
return {
|
||||||
processed,
|
processed,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue