feat: embedding dimension validation + migration system
- Add /api/admin/embeddings/dimension (GET column dim, POST test model dim) - Add /api/admin/embeddings/migrate (alter column, clear, re-index) - Admin form warns on dimension mismatch after save, offers migrate button - Remove hardcoded 1536 from validate endpoint and embedding service - Add validateDimension() utility to EmbeddingService - Fix health route: import prisma correctly, use router instead of missing registry - i18n keys for dimension warning (EN/FR)
This commit is contained in:
@@ -1,5 +1,5 @@
|
||||
import { NextResponse } from 'next/server'
|
||||
import { getPrisma } from '@/lib/prisma'
|
||||
import { prisma } from '@/lib/prisma'
|
||||
import { redis } from '@/lib/redis'
|
||||
|
||||
export const dynamic = 'force-dynamic'
|
||||
@@ -11,7 +11,6 @@ export async function GET() {
|
||||
// Database check
|
||||
try {
|
||||
const dbStart = Date.now()
|
||||
const prisma = getPrisma()
|
||||
const [noteCount, notebookCount, userCount] = await Promise.all([
|
||||
prisma.note.count(),
|
||||
prisma.notebook.count(),
|
||||
@@ -47,13 +46,15 @@ export async function GET() {
|
||||
|
||||
// AI providers check
|
||||
try {
|
||||
const { getAIProvider, getChatProvider } = await import('@/lib/ai/providers/registry')
|
||||
const embeddingProvider = getAIProvider()
|
||||
const chatProvider = getChatProvider()
|
||||
const { getSystemConfig } = await import('@/lib/config')
|
||||
const config = await getSystemConfig()
|
||||
const { resolveAiRoute } = await import('@/lib/ai/router')
|
||||
const tagsRoute = resolveAiRoute('tags', config)
|
||||
const chatRoute = resolveAiRoute('chat', config)
|
||||
checks.ai = {
|
||||
status: 'configured',
|
||||
embedding: { provider: embeddingProvider },
|
||||
chat: { provider: chatProvider },
|
||||
embedding: { provider: tagsRoute.providerType, model: tagsRoute.modelName },
|
||||
chat: { provider: chatRoute.providerType, model: chatRoute.modelName },
|
||||
}
|
||||
} catch (e) {
|
||||
checks.ai = { status: 'unhealthy', error: e instanceof Error ? e.message : 'Unknown error' }
|
||||
|
||||
Reference in New Issue
Block a user