in packages/inference/src/lib/getProviderHelper.ts [254:303]
export function getProviderHelper(
provider: InferenceProviderOrPolicy,
task: "tabular-regression"
): TabularRegressionTaskHelper & TaskProviderHelper;
export function getProviderHelper(
provider: InferenceProviderOrPolicy,
task: "token-classification"
): TokenClassificationTaskHelper & TaskProviderHelper;
export function getProviderHelper(
provider: InferenceProviderOrPolicy,
task: "translation"
): TranslationTaskHelper & TaskProviderHelper;
export function getProviderHelper(
provider: InferenceProviderOrPolicy,
task: "summarization"
): SummarizationTaskHelper & TaskProviderHelper;
export function getProviderHelper(
provider: InferenceProviderOrPolicy,
task: "visual-question-answering"
): VisualQuestionAnsweringTaskHelper & TaskProviderHelper;
export function getProviderHelper(
provider: InferenceProviderOrPolicy,
task: InferenceTask | undefined
): TaskProviderHelper;
export function getProviderHelper(
provider: InferenceProviderOrPolicy,
task: InferenceTask | undefined
): TaskProviderHelper {
if ((provider === "hf-inference" && !task) || provider === "auto") {
return new HFInference.HFInferenceTask();
}
if (!task) {
throw new InferenceClientInputError(
"you need to provide a task name when using an external provider, e.g. 'text-to-image'"
);
}
if (!(provider in PROVIDERS)) {
throw new InferenceClientInputError(
`Provider '${provider}' not supported. Available providers: ${Object.keys(PROVIDERS)}`
);
}
const providerTasks = PROVIDERS[provider];
if (!providerTasks || !(task in providerTasks)) {
throw new InferenceClientInputError(
`Task '${task}' not supported for provider '${provider}'. Available tasks: ${Object.keys(providerTasks ?? {})}`
);
}
return providerTasks[task] as TaskProviderHelper;
}