api-server/test/mocks/qdrant.mock.ts
WangDL 5fd737967f
Some checks failed
Deploy API Server / build-and-deploy (push) Failing after 23s
feat: M1-01~03 — AI Gateway deepening, Vector module, Task Queue deepening
M1-01 AI Gateway:
- DB-driven ModelRoute/ProviderConfig/FallbackEvent tables
- ModelRouter rewrite with loadFromDb() hot-reload
- Fallback event recording + AIUsageRecorded event publishing
- Admin AAPI: routes CRUD, provider enable/disable, fallback events log

M1-02 Vector & Retrieval:
- VectorService with Qdrant client (upsert/delete/search/rerank)
- Admin AAPI: collection status, vector count, reindex trigger

M1-03 Task Queue:
- 16 task types with default retry/timeout configs
- Task stats dashboard, worker status panel, batch retry endpoint

M0 audit fixes:
- ApiMetric retention policy (30-day cleanup)
- Content Safety integration in Files module
- Queue registration centralized (domain-events)
- SECRET_MASTER_KEY production validation

E2E tests:
- M0: 28 smoke tests covering all 14 M0 issues
- M1: 16 tests covering M1-01/02/03
- Mock infrastructure: prisma, ioredis, jose, bullmq, qdrant

Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
2026-05-24 10:18:07 +08:00

41 lines
968 B
TypeScript

export class QdrantClient {
constructor(_opts?: any) {}
getCollection(_name: string) {
return Promise.resolve({
config: { params: { vectors: { size: 1024, distance: 'Cosine' } } },
status: 'green',
})
}
createCollection(_name: string, _opts?: any) {
return Promise.resolve(true)
}
createPayloadIndex(_name: string, _field: string, _opts?: any) {
return Promise.resolve({})
}
upsert(_name: string, _opts?: any) {
return Promise.resolve({ status: 'completed' })
}
delete(_name: string, _opts?: any) {
return Promise.resolve({ status: 'completed' })
}
search(_name: string, opts?: any) {
return Promise.resolve(
Array.from({ length: opts?.limit || 10 }, (_, i) => ({
id: `vec-${i}`,
score: 0.9 - i * 0.05,
payload: { text: `Chunk ${i}`, userId: 'u1', knowledgeBaseId: 'kb1' },
})),
)
}
count(_name: string) {
return Promise.resolve({ count: 0 })
}
}