11import { name as packageName , version as packageVersion } from "../../package.json" ;
22import { HF_HEADER_X_BILL_TO , HF_HUB_URL } from "../config" ;
33import type { InferenceTask , Options , RequestArgs } from "../types" ;
4- import { getProviderHelper } from "./getProviderHelper" ;
4+ import type { getProviderHelper } from "./getProviderHelper" ;
55import { getProviderModelId } from "./getProviderModelId" ;
66import { isUrl } from "./isUrl" ;
77
@@ -20,6 +20,7 @@ export async function makeRequestOptions(
2020 data ?: Blob | ArrayBuffer ;
2121 stream ?: boolean ;
2222 } ,
23+ providerHelper : ReturnType < typeof getProviderHelper > ,
2324 options ?: Options & {
2425 /** In most cases (unless we pass a endpointUrl) we know the task */
2526 task ?: InferenceTask ;
@@ -28,6 +29,7 @@ export async function makeRequestOptions(
2829 const { provider : maybeProvider , model : maybeModel } = args ;
2930 const provider = maybeProvider ?? "hf-inference" ;
3031 const { task } = options ?? { } ;
32+
3133 // Validate inputs
3234 if ( args . endpointUrl && provider !== "hf-inference" ) {
3335 throw new Error ( `Cannot use endpointUrl with a third-party provider.` ) ;
@@ -38,7 +40,7 @@ export async function makeRequestOptions(
3840
3941 if ( args . endpointUrl ) {
4042 // No need to have maybeModel, or to load default model for a task
41- return makeRequestOptionsFromResolvedModel ( maybeModel ?? args . endpointUrl , args , options ) ;
43+ return makeRequestOptionsFromResolvedModel ( maybeModel ?? args . endpointUrl , providerHelper , args , options ) ;
4244 }
4345
4446 if ( ! maybeModel && ! task ) {
@@ -47,7 +49,6 @@ export async function makeRequestOptions(
4749
4850 // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
4951 const hfModel = maybeModel ?? ( await loadDefaultModel ( task ! ) ) ;
50- const providerHelper = getProviderHelper ( provider , task ) ;
5152
5253 if ( providerHelper . clientSideRoutingOnly && ! maybeModel ) {
5354 throw new Error ( `Provider ${ provider } requires a model ID to be passed directly.` ) ;
@@ -62,7 +63,7 @@ export async function makeRequestOptions(
6263 } ) ;
6364
6465 // Use the sync version with the resolved model
65- return makeRequestOptionsFromResolvedModel ( resolvedModel , args , options ) ;
66+ return makeRequestOptionsFromResolvedModel ( resolvedModel , providerHelper , args , options ) ;
6667}
6768
6869/**
@@ -71,6 +72,7 @@ export async function makeRequestOptions(
7172 */
7273export function makeRequestOptionsFromResolvedModel (
7374 resolvedModel : string ,
75+ providerHelper : ReturnType < typeof getProviderHelper > ,
7476 args : RequestArgs & {
7577 data ?: Blob | ArrayBuffer ;
7678 stream ?: boolean ;
@@ -85,7 +87,6 @@ export function makeRequestOptionsFromResolvedModel(
8587 const provider = maybeProvider ?? "hf-inference" ;
8688
8789 const { includeCredentials, task, signal, billTo } = options ?? { } ;
88- const providerHelper = getProviderHelper ( provider , task ) ;
8990 const authMethod = ( ( ) => {
9091 if ( providerHelper . clientSideRoutingOnly ) {
9192 // Closed-source providers require an accessToken (cannot be routed).
0 commit comments