Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
| import type { PipelineType } from "../pipelines.js"; | |
| import { getModelInputSnippet } from "./inputs.js"; | |
| import type { ModelDataMinimal } from "./types.js"; | |
| export const snippetBasic = (model: ModelDataMinimal, accessToken: string): string => | |
| `curl https://api-inference.huggingface.co/models/${model.id} \\ | |
| -X POST \\ | |
| -d '{"inputs": ${getModelInputSnippet(model, true)}}' \\ | |
| -H 'Content-Type: application/json' \\ | |
| -H "Authorization: Bearer ${accessToken || `{API_TOKEN}`}" | |
| `; | |
| export const snippetZeroShotClassification = (model: ModelDataMinimal, accessToken: string): string => | |
| `curl https://api-inference.huggingface.co/models/${model.id} \\ | |
| -X POST \\ | |
| -d '{"inputs": ${getModelInputSnippet(model, true)}, "parameters": {"candidate_labels": ["refund", "legal", "faq"]}}' \\ | |
| -H 'Content-Type: application/json' \\ | |
| -H "Authorization: Bearer ${accessToken || `{API_TOKEN}`}" | |
| `; | |
| export const snippetFile = (model: ModelDataMinimal, accessToken: string): string => | |
| `curl https://api-inference.huggingface.co/models/${model.id} \\ | |
| -X POST \\ | |
| --data-binary '@${getModelInputSnippet(model, true, true)}' \\ | |
| -H "Authorization: Bearer ${accessToken || `{API_TOKEN}`}" | |
| `; | |
| export const curlSnippets: Partial<Record<PipelineType, (model: ModelDataMinimal, accessToken: string) => string>> = { | |
| // Same order as in js/src/lib/interfaces/Types.ts | |
| "text-classification": snippetBasic, | |
| "token-classification": snippetBasic, | |
| "table-question-answering": snippetBasic, | |
| "question-answering": snippetBasic, | |
| "zero-shot-classification": snippetZeroShotClassification, | |
| translation: snippetBasic, | |
| summarization: snippetBasic, | |
| "feature-extraction": snippetBasic, | |
| "text-generation": snippetBasic, | |
| "text2text-generation": snippetBasic, | |
| "fill-mask": snippetBasic, | |
| "sentence-similarity": snippetBasic, | |
| "automatic-speech-recognition": snippetFile, | |
| "text-to-image": snippetBasic, | |
| "text-to-speech": snippetBasic, | |
| "text-to-audio": snippetBasic, | |
| "audio-to-audio": snippetFile, | |
| "audio-classification": snippetFile, | |
| "image-classification": snippetFile, | |
| "image-to-text": snippetFile, | |
| "object-detection": snippetFile, | |
| "image-segmentation": snippetFile, | |
| }; | |
| export function getCurlInferenceSnippet(model: ModelDataMinimal, accessToken: string): string { | |
| return model.pipeline_tag && model.pipeline_tag in curlSnippets | |
| ? curlSnippets[model.pipeline_tag]?.(model, accessToken) ?? "" | |
| : ""; | |
| } | |
| export function hasCurlInferenceSnippet(model: Pick<ModelDataMinimal, "pipeline_tag">): boolean { | |
| return !!model.pipeline_tag && model.pipeline_tag in curlSnippets; | |
| } | |