-
Notifications
You must be signed in to change notification settings - Fork 2
/
Copy pathgenerateAllEmbeddings.ts
44 lines (36 loc) · 1.35 KB
/
generateAllEmbeddings.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
/**
* Script to generate embeddings for all existing Resource documents
*/
import { getPayload } from 'payload'
import { generateResourceEmbedding } from '../tasks/data/generateResourceEmbedding'
async function generateAllEmbeddings() {
try {
console.log('Starting embedding generation for all Resources...')
const payload = await getPayload({ config: (await import('../payload.config')).default })
const response = await payload.find({
collection: 'resources',
where: {
embedding: { exists: false },
},
limit: 1000,
})
const resources = response.docs
console.log(`Found ${resources.length} Resources without embeddings`)
for (const resource of resources) {
try {
console.log(`Generating embedding for Resource ${resource.id}: ${resource.name || 'Unnamed'}`)
await generateResourceEmbedding(resource.id)
console.log(`✓ Successfully generated embedding for Resource ${resource.id}`)
} catch (error) {
console.error(`Error generating embedding for Resource ${resource.id}:`, error)
}
await new Promise((resolve) => setTimeout(resolve, 100))
}
console.log('Finished generating embeddings for all Resources')
} catch (error) {
console.error('Error generating embeddings:', error)
} finally {
process.exit(0)
}
}
generateAllEmbeddings()