crewai-ts
Version:
TypeScript port of crewAI for agent-based workflows
85 lines • 2.67 kB
TypeScript
/**
* 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