large-models-interface
Version:
A comprehensive, unified interface for all types of AI models - natural language, vision, audio, and video. Supports 51 providers with dynamic model discovery and multi-modal capabilities.
42 lines (34 loc) • 1.04 kB
JavaScript
/**
* @file src/interfaces/huggingface.js
* @class HuggingFace
* @description Wrapper class for the Hugging Face API.
* @param {string} apiKey - The API key for the Hugging Face API.
*/
const BaseInterface = require('./baseInterface.js');
const { huggingfaceApiKey } = require('../utils/loadApiKeysFromEnv.js');
const {
getModelByAlias,
getEmbeddingsModelByAlias,
} = require('../utils/config.js');
const { getConfig, loadProviderConfig } = require('../utils/configManager.js');
const interfaceName = 'huggingface';
loadProviderConfig(interfaceName);
const config = getConfig();
class HuggingFace extends BaseInterface {
constructor(apiKey) {
super(
interfaceName,
apiKey || huggingfaceApiKey,
config[interfaceName].url,
);
}
getRequestUrl(model) {
model = getModelByAlias(interfaceName, model);
return `${model}/v1/chat/completions`;
}
getEmbedRequestUrl(model) {
model = getEmbeddingsModelByAlias(interfaceName, model);
return `${model}`;
}
}
module.exports = HuggingFace;