Skip to content

Commit

Permalink
better ?
Browse files Browse the repository at this point in the history
  • Loading branch information
Wauplin committed Feb 5, 2025
1 parent a4e83d9 commit 8994771
Showing 1 changed file with 26 additions and 26 deletions.
52 changes: 26 additions & 26 deletions packages/inference/src/lib/makeRequestOptions.ts
Original file line number Diff line number Diff line change
Expand Up @@ -172,36 +172,36 @@ async function mapModel(params: {
const task: WidgetType =
params.taskHint === "text-generation" && params.chatCompletion ? "conversational" : params.taskHint;

// If provider not listed => check the hard-coded mapping
if (!(params.provider in info.inferenceProviderMapping)) {
const modelFromMapping = (() => {
switch (params.provider) {
case "fal-ai":
return FAL_AI_SUPPORTED_MODEL_IDS[task]?.[params.model];
case "replicate":
return REPLICATE_SUPPORTED_MODEL_IDS[task]?.[params.model];
case "sambanova":
return SAMBANOVA_SUPPORTED_MODEL_IDS[task]?.[params.model];
case "together":
return TOGETHER_SUPPORTED_MODEL_IDS[task]?.[params.model];
}
})();
if (!modelFromMapping) {
throw new Error(`Model ${params.model} is not supported for task ${task} and provider ${params.provider}.`);
// If provider listed => takes precedence over hard-coded mapping
if (params.provider in info.inferenceProviderMapping) {
const inferenceProviderMapping = info.inferenceProviderMapping[params.provider];
if (inferenceProviderMapping.task !== task) {
throw new Error(
`Model ${params.model} is not supported for task ${task} and provider ${params.provider}. Supported task: ${inferenceProviderMapping.task}.`
);
}
return modelFromMapping;
// TODO: how is it handled server-side if model has multiple tasks (e.g. `text-generation` + `conversational`)?
// TODO: do something with info.inferenceProviderMapping.status? ("prod"/"staging")
return inferenceProviderMapping.providerId;
}

const inferenceProviderMapping = info.inferenceProviderMapping[params.provider];
if (inferenceProviderMapping.task !== task) {
throw new Error(
`Model ${params.model} is not supported for task ${task} and provider ${params.provider}. Supported task: ${inferenceProviderMapping.task}.`
);
// Otherwise, default to hard-coded mapping
const modelFromMapping = (() => {
switch (params.provider) {
case "fal-ai":
return FAL_AI_SUPPORTED_MODEL_IDS[task]?.[params.model];
case "replicate":
return REPLICATE_SUPPORTED_MODEL_IDS[task]?.[params.model];
case "sambanova":
return SAMBANOVA_SUPPORTED_MODEL_IDS[task]?.[params.model];
case "together":
return TOGETHER_SUPPORTED_MODEL_IDS[task]?.[params.model];
}
})();
if (!modelFromMapping) {
throw new Error(`Model ${params.model} is not supported for task ${task} and provider ${params.provider}.`);
}

// TODO: how is it handled server-side if model has multiple tasks (e.g. `text-generation` + `conversational`)?
// TODO: do something with info.inferenceProviderMapping.status? ("prod"/"staging")
return inferenceProviderMapping.providerId;
return modelFromMapping;
}

function makeUrl(params: {
Expand Down

0 comments on commit 8994771

Please sign in to comment.