Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
File size: 2,819 Bytes
b2ecf7d 9d298eb b2ecf7d |
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 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
import type {
WidgetExample,
WidgetExampleAssetAndPromptInput,
WidgetExampleAssetAndTextInput,
WidgetExampleAssetAndZeroShotInput,
WidgetExampleAssetInput,
WidgetExampleSentenceSimilarityInput,
WidgetExampleStructuredDataInput,
WidgetExampleTableDataInput,
WidgetExampleTextAndContextInput,
WidgetExampleTextAndTableInput,
WidgetExampleTextInput,
WidgetExampleZeroShotTextInput,
} from "@huggingface/tasks";
export function isTextInput<TOutput>(sample: WidgetExample<TOutput>): sample is WidgetExampleTextInput<TOutput> {
return "text" in sample;
}
export function isTextAndContextInput<TOutput>(
sample: WidgetExample<TOutput>
): sample is WidgetExampleTextAndContextInput<TOutput> {
return isTextInput(sample) && "context" in sample;
}
export function isAssetInput<TOutput>(sample: WidgetExample<TOutput>): sample is WidgetExampleAssetInput<TOutput> {
return "src" in sample;
}
export function isAssetAndPromptInput<TOutput>(
sample: WidgetExample<TOutput>
): sample is WidgetExampleAssetAndPromptInput<TOutput> {
return isAssetInput(sample) && "prompt" in sample && typeof sample.prompt === "string";
}
export function isAssetAndTextInput<TOutput>(
sample: WidgetExample<TOutput>
): sample is WidgetExampleAssetAndTextInput<TOutput> {
return isAssetInput(sample) && isTextInput(sample);
}
export function isStructuredDataInput<TOutput>(
sample: WidgetExample<TOutput>
): sample is WidgetExampleStructuredDataInput<TOutput> {
return "structured_data" in sample;
}
export function isTableDataInput<TOutput>(
sample: WidgetExample<TOutput>
): sample is WidgetExampleTableDataInput<TOutput> {
return "table" in sample;
}
function _isZeroShotTextInput<TOutput>(
sample: WidgetExample<TOutput>
): sample is Exclude<WidgetExampleZeroShotTextInput<TOutput>, "text"> {
return "candidate_labels" in sample && "multi_class" in sample;
}
export function isZeroShotTextInput<TOutput>(
sample: WidgetExample<TOutput>
): sample is WidgetExampleZeroShotTextInput<TOutput> {
return isTextInput(sample) && _isZeroShotTextInput(sample);
}
export function isSentenceSimilarityInput<TOutput>(
sample: WidgetExample<TOutput>
): sample is WidgetExampleSentenceSimilarityInput<TOutput> {
return "source_sentence" in sample && "sentences" in sample;
}
export function isTextAndTableInput<TOutput>(
sample: WidgetExample<TOutput>
): sample is WidgetExampleTextAndTableInput<TOutput> {
return (
isTextInput(sample) &&
"table" in sample &&
Array.isArray(sample.table) &&
sample.table.every((r) => Array.isArray(r) && r.every((c) => typeof c === "string" || typeof c === "number"))
);
}
export function isAssetAndZeroShotInput<TOutput>(
sample: WidgetExample<TOutput>
): sample is WidgetExampleAssetAndZeroShotInput<TOutput> {
return isAssetInput(sample) && _isZeroShotTextInput(sample);
}
|