generateEmbeddings() — supabase Function Reference
Architecture documentation for the generateEmbeddings() function in generate-embeddings.ts from the supabase codebase.
Entity Profile
Dependency Diagram
graph TD b280bae5_b0f6_6775_91cb_d0697bd4d074["generateEmbeddings()"] ab45c7b7_d84b_8f76_aec3_3032205eab36["main()"] ab45c7b7_d84b_8f76_aec3_3032205eab36 -->|calls| b280bae5_b0f6_6775_91cb_d0697bd4d074 9abc3daa_c7f3_bf98_164b_45dfa1200571["isNimbusMode()"] b280bae5_b0f6_6775_91cb_d0697bd4d074 -->|calls| 9abc3daa_c7f3_bf98_164b_45dfa1200571 0a6abd12_e69b_4275_ee07_8e2eb2d77ce1["requireEnvOrThrow()"] b280bae5_b0f6_6775_91cb_d0697bd4d074 -->|calls| 0a6abd12_e69b_4275_ee07_8e2eb2d77ce1 d2692d52_2f21_bf06_d2a1_f017222af67c["initSupabase()"] b280bae5_b0f6_6775_91cb_d0697bd4d074 -->|calls| d2692d52_2f21_bf06_d2a1_f017222af67c 66cf8c36_3d33_be18_f16b_1d94adf481eb["getPageTables()"] b280bae5_b0f6_6775_91cb_d0697bd4d074 -->|calls| 66cf8c36_3d33_be18_f16b_1d94adf481eb e3264b04_c226_7750_2974_b29b0dc6cd3a["prepareSections()"] b280bae5_b0f6_6775_91cb_d0697bd4d074 -->|calls| e3264b04_c226_7750_2974_b29b0dc6cd3a e004e86e_d6b3_597d_5a6c_1a898d503de3["processAndInsertEmbeddings()"] b280bae5_b0f6_6775_91cb_d0697bd4d074 -->|calls| e004e86e_d6b3_597d_5a6c_1a898d503de3 b25b1a95_6c17_3fe0_4b09_200b434c8c1e["updateSuccessfulChecksums()"] b280bae5_b0f6_6775_91cb_d0697bd4d074 -->|calls| b25b1a95_6c17_3fe0_4b09_200b434c8c1e 019b3eb5_7e03_6716_ae9b_866d040bb8ee["logFailedPages()"] b280bae5_b0f6_6775_91cb_d0697bd4d074 -->|calls| 019b3eb5_7e03_6716_ae9b_866d040bb8ee bbb7258c_2e63_dc75_3f7f_ea1f0e42eb17["purgeOldPages()"] b280bae5_b0f6_6775_91cb_d0697bd4d074 -->|calls| bbb7258c_2e63_dc75_3f7f_ea1f0e42eb17 style b280bae5_b0f6_6775_91cb_d0697bd4d074 fill:#6366f1,stroke:#818cf8,color:#fff
Relationship Graph
Source Code
apps/docs/scripts/search/generate-embeddings.ts lines 439–521
async function generateEmbeddings() {
const shouldRefresh = Boolean(args.values.refresh)
const debug = Boolean(args.values.debug)
const nimbus = isNimbusMode()
if (nimbus) {
console.log('Running in Nimbus mode - will filter content based on disabled feature flags')
}
requireEnvOrThrow([
'DOCS_GITHUB_APP_ID',
'DOCS_GITHUB_APP_INSTALLATION_ID',
'DOCS_GITHUB_APP_PRIVATE_KEY',
'NEXT_PUBLIC_MISC_ANON_KEY',
'NEXT_PUBLIC_MISC_URL',
'NEXT_PUBLIC_SUPABASE_URL',
'OPENAI_API_KEY',
'SUPABASE_SECRET_KEY',
])
const supabaseClient = initSupabase()
const refreshVersion = uuidv4()
const refreshDate = new Date()
const { pageTable, pageSectionTable } = getPageTables()
const openai = new OpenAI({ apiKey: process.env.OPENAI_API_KEY })
console.log(
shouldRefresh
? 'Refresh flag set, re-generating all pages'
: 'Checking which pages are new or have changed'
)
const { allSectionsToProcess, pageInfoMap } = await prepareSections(
supabaseClient,
pageTable,
pageSectionTable,
shouldRefresh,
refreshVersion,
refreshDate,
!nimbus,
debug
)
let processingResult: ProcessingResult
try {
processingResult = await processAndInsertEmbeddings(
openai,
supabaseClient,
pageSectionTable,
allSectionsToProcess,
pageInfoMap
)
console.log(
`Processing complete: ${processingResult.totalSectionsInserted}/${processingResult.totalSectionsProcessed} sections inserted successfully`
)
console.log(
`Page summary: ${processingResult.successfulPages.size} successful, ${processingResult.failedPages.size} failed`
)
} catch (error) {
console.error('Critical error during embedding processing:', error)
console.log('Exiting due to complete processing failure')
return
}
console.log(`\nUpdating checksums for ${processingResult.successfulPages.size} successful pages`)
const successfulChecksumUpdates = await updateSuccessfulChecksums(
supabaseClient,
pageTable,
pageInfoMap,
processingResult
)
console.log(
`Successfully updated checksums for ${successfulChecksumUpdates}/${processingResult.successfulPages.size} successful pages`
)
logFailedPages(pageInfoMap, processingResult)
await purgeOldPages(supabaseClient, pageTable, refreshVersion)
console.log('Embedding generation complete')
}
Domain
Subdomains
Calls
Called By
Source
Frequently Asked Questions
What does generateEmbeddings() do?
generateEmbeddings() is a function in the supabase codebase.
What does generateEmbeddings() call?
generateEmbeddings() calls 9 function(s): getPageTables, initSupabase, isNimbusMode, logFailedPages, prepareSections, processAndInsertEmbeddings, purgeOldPages, requireEnvOrThrow, and 1 more.
What calls generateEmbeddings()?
generateEmbeddings() is called by 1 function(s): main.
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free