/** * BGE Embedder — persistent Python child process for embedding. * * Spawns bge-embed.py once, communicates via stdin/stdout JSON lines. * Model loads once at startup; all subsequent embed calls reuse the same process. * Uses BAAI/bge-small-zh-v1.5 (512 dimensions). * * Implements EmbeddingProvider interface for seamless integration. */ import type { EmbeddingProvider } from '../embedding/embedding-provider.js'; export declare class BgeEmbedder implements EmbeddingProvider { private readonly pythonScript; private proc; private rl; private ready; private pendingResolve; private pendingReject; private closed; constructor(customScriptPath?: string); /** * Start the Python process and wait for the "ready" signal. * Idempotent — only spawns once. */ private ensureStarted; /** Handle a response line from the Python process */ private onLine; /** Send a request and wait for the response (with 30s timeout) */ private request; embed(text: string): Promise; embedBatch(texts: string[]): Promise; dimensions(): number; modelId(): string; /** Gracefully shut down the Python process */ close(): Promise; /** Check if Python + sentence-transformers are available */ static isAvailable(): boolean; } //# sourceMappingURL=bge-embedder.d.ts.map