Spaces:
Sleeping
Sleeping
File size: 1,165 Bytes
1070765 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 | import type { WidgetType } from "@huggingface/tasks";
import type { ApiModelInferenceProviderMappingEntry } from "../types/api/api-model";
/**
* Normalize inferenceProviderMapping to always return an array format.
*
* Little hack to simplify Inference Providers logic and make it backward and forward compatible.
* Right now, API returns a dict on model-info and a list on list-models. Let's harmonize to list.
*/
export function normalizeInferenceProviderMapping(
hfModelId: string,
inferenceProviderMapping?:
| ApiModelInferenceProviderMappingEntry[]
| Record<string, { providerId: string; status: "live" | "staging"; task: WidgetType }>,
): ApiModelInferenceProviderMappingEntry[] {
if (!inferenceProviderMapping) {
return [];
}
// If it's already an array, return it as is
if (Array.isArray(inferenceProviderMapping)) {
return inferenceProviderMapping.map((entry) => ({
...entry,
hfModelId,
}));
}
// Convert mapping to array format
return Object.entries(inferenceProviderMapping).map(([provider, mapping]) => ({
provider,
hfModelId,
providerId: mapping.providerId,
status: mapping.status,
task: mapping.task,
}));
}
|