UNPKG

crewai-ts

Version:

TypeScript port of crewAI for agent-based workflows

85 lines 2.67 kB
/** * HuggingFace Embedder Implementation * * Optimized embedder using HuggingFace's embedding models * with support for both API-based and local inference */ import { BaseEmbedder, BaseEmbedderOptions } from './BaseEmbedder.js'; import { AutoTokenizer, AutoModel } from '@xenova/transformers'; /** * HuggingFace Embedder Options */ export interface HuggingFaceEmbedderOptions extends BaseEmbedderOptions { /** * Model to use for embeddings */ model: string; /** * HuggingFace API token */ apiToken?: string; /** * HuggingFace API URL * @default 'https://api-inference.huggingface.co/models/' */ apiUrl?: string; /** * Whether to use local inference (requires optional dependencies) * @default false */ useLocal?: boolean; /** * Local model path (only used if useLocal is true) * Only relevant when useLocal is true */ localModelPath?: string; /** * Maximum sequence length for the model * @default 512 */ maxLength?: number; /** * Whether to use the average of token embeddings (vs CLS token) * @default true */ useAveragePooling?: boolean; /** * Timeout for API requests in milliseconds * @default 30000 (30 seconds) */ timeout?: number; } /** * Let TypeScript know about optional dependencies */ declare global { interface Window { transformer?: any; } } /** * HuggingFace Embedder Implementation * * Uses HuggingFace's embedding models with optimized performance * Supports both API-based and local inference */ export declare class HuggingFaceEmbedder extends BaseEmbedder<HuggingFaceEmbedderOptions> { protected _model: string; protected _apiToken: string; protected _apiUrl: string; protected client: any; protected _localModel: AutoModel | null; protected _tokenizer: AutoTokenizer | null; protected _isLocal: boolean; constructor(options: HuggingFaceEmbedderOptions); embed(text: string): Promise<Float32Array>; embedBatch(texts: string[]): Promise<Float32Array[]>; protected executeWithRetry<T>(operation: () => Promise<T>, maxRetries?: number, initialBackoff?: number, maxBackoff?: number): Promise<T>; protected executeBatchWithRetry<T>(operation: () => Promise<T>, maxRetries?: number, initialBackoff?: number, maxBackoff?: number): Promise<T>; protected isTransientError(error: Error): boolean; protected embedText(text: string): Promise<Float32Array>; private initializeLocalModel; private getLocalEmbedding; private getApiEmbedding; } //# sourceMappingURL=HuggingFaceEmbedder.d.ts.map