local.d.ts 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738
  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. private lastError;
  25. constructor(config?: LocalLlamaCppProviderConfig);
  26. getModelId(): string;
  27. getDimensions(): number | undefined;
  28. /**
  29. * Most recent thrown error from `llm.embed` / `llm.embedBatch`. Returns
  30. * `undefined` after a successful call or before the first call. See
  31. * `EmbeddingProvider.getLastError`.
  32. */
  33. getLastError(): string | undefined;
  34. healthcheck(_signal?: AbortSignal): Promise<ProviderHealth>;
  35. embed(text: string, options?: ProviderEmbedOptions): Promise<ProviderEmbedding | null>;
  36. embedBatch(texts: string[], options?: ProviderEmbedOptions): Promise<(ProviderEmbedding | null)[]>;
  37. dispose(): Promise<void>;
  38. }