local.d.ts 1.4 KB

12345678910111213141516171819202122232425262728293031
  1. /**
  2. * local.ts - Local llama.cpp adapter implementing EmbeddingProvider.
  3. *
  4. * Wraps an existing `LlamaCpp` instance so the legacy GGUF path looks like
  5. * any other EmbeddingProvider to upstream callers. Used as the default and
  6. * as the fallback target when `OpenAIEmbeddingsProvider` trips its breaker.
  7. */
  8. import { type LlamaCpp } from "../llm.js";
  9. import type { EmbeddingProvider, ProviderEmbedOptions, ProviderEmbedding, ProviderHealth, ProviderKind } from "./provider.js";
  10. export type LocalLlamaCppProviderConfig = {
  11. /** Pre-built LlamaCpp instance (optional — falls back to global singleton). */
  12. llm?: LlamaCpp;
  13. /**
  14. * Stable model id reported via `getModelId()`. Defaults to "embeddinggemma"
  15. * to match the value in `content_vectors.model` for existing qmd installs.
  16. */
  17. modelId?: string;
  18. };
  19. export declare class LocalLlamaCppProvider implements EmbeddingProvider {
  20. readonly kind: ProviderKind;
  21. private readonly llm;
  22. private readonly modelId;
  23. private dimensions;
  24. constructor(config?: LocalLlamaCppProviderConfig);
  25. getModelId(): string;
  26. getDimensions(): number | undefined;
  27. healthcheck(_signal?: AbortSignal): Promise<ProviderHealth>;
  28. embed(text: string, options?: ProviderEmbedOptions): Promise<ProviderEmbedding | null>;
  29. embedBatch(texts: string[], options?: ProviderEmbedOptions): Promise<(ProviderEmbedding | null)[]>;
  30. dispose(): Promise<void>;
  31. }