/** * Local Sentence-BERT Embeddings * * Runs embeddings locally using a Python service * Faster and free (after setup), but requires Python */ import type { Embedder } from '../embeddingPipeline.js'; export interface LocalEmbedderConfig { serviceUrl?: string; timeout?: number; } /** * Local embedder that calls a Python/FastAPI service * * Setup instructions: * 1. Install: pip install sentence-transformers fastapi uvicorn * 2. Run server: python embedding-server.py * 3. Use this embedder */ export declare class LocalEmbedder implements Embedder { private serviceUrl; private timeout; constructor(config?: LocalEmbedderConfig); embedText(text: string): Promise; embedDiff(diff: string): Promise; private getEmbedding; } /** * Python server code (save as embedding-server.py): * * ```python * from fastapi import FastAPI * from sentence_transformers import SentenceTransformer * from pydantic import BaseModel * import uvicorn * * app = FastAPI() * model = SentenceTransformer('all-MiniLM-L6-v2') # 384 dimensions, fast * * class EmbedRequest(BaseModel): * text: str * type: str = "text" * * @app.post("/embed") * async def embed(request: EmbedRequest): * embedding = model.encode(request.text) * return {"embedding": embedding.tolist()} * * if __name__ == "__main__": * uvicorn.run(app, host="0.0.0.0", port=8000) * ``` * * Run with: python embedding-server.py */ //# sourceMappingURL=local.d.ts.map