Spaces:
Running
on
CPU Upgrade
Running
on
CPU Upgrade
machineuser
commited on
Commit
·
5ee3e16
1
Parent(s):
a2706d6
Sync widgets demo
Browse files
packages/tasks/src/snippets/curl.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
| 1 |
-
import type { ModelData } from "../model-data.js";
|
| 2 |
import type { PipelineType } from "../pipelines.js";
|
| 3 |
import { getModelInputSnippet } from "./inputs.js";
|
|
|
|
| 4 |
|
| 5 |
-
export const snippetBasic = (model:
|
| 6 |
`curl https://api-inference.huggingface.co/models/${model.id} \\
|
| 7 |
-X POST \\
|
| 8 |
-d '{"inputs": ${getModelInputSnippet(model, true)}}' \\
|
|
@@ -10,7 +10,7 @@ export const snippetBasic = (model: ModelData, accessToken: string): string =>
|
|
| 10 |
-H "Authorization: Bearer ${accessToken || `{API_TOKEN}`}"
|
| 11 |
`;
|
| 12 |
|
| 13 |
-
export const snippetZeroShotClassification = (model:
|
| 14 |
`curl https://api-inference.huggingface.co/models/${model.id} \\
|
| 15 |
-X POST \\
|
| 16 |
-d '{"inputs": ${getModelInputSnippet(model, true)}, "parameters": {"candidate_labels": ["refund", "legal", "faq"]}}' \\
|
|
@@ -18,14 +18,14 @@ export const snippetZeroShotClassification = (model: ModelData, accessToken: str
|
|
| 18 |
-H "Authorization: Bearer ${accessToken || `{API_TOKEN}`}"
|
| 19 |
`;
|
| 20 |
|
| 21 |
-
export const snippetFile = (model:
|
| 22 |
`curl https://api-inference.huggingface.co/models/${model.id} \\
|
| 23 |
-X POST \\
|
| 24 |
--data-binary '@${getModelInputSnippet(model, true, true)}' \\
|
| 25 |
-H "Authorization: Bearer ${accessToken || `{API_TOKEN}`}"
|
| 26 |
`;
|
| 27 |
|
| 28 |
-
export const curlSnippets: Partial<Record<PipelineType, (model:
|
| 29 |
// Same order as in js/src/lib/interfaces/Types.ts
|
| 30 |
"text-classification": snippetBasic,
|
| 31 |
"token-classification": snippetBasic,
|
|
@@ -51,12 +51,12 @@ export const curlSnippets: Partial<Record<PipelineType, (model: ModelData, acces
|
|
| 51 |
"image-segmentation": snippetFile,
|
| 52 |
};
|
| 53 |
|
| 54 |
-
export function getCurlInferenceSnippet(model:
|
| 55 |
return model.pipeline_tag && model.pipeline_tag in curlSnippets
|
| 56 |
? curlSnippets[model.pipeline_tag]?.(model, accessToken) ?? ""
|
| 57 |
: "";
|
| 58 |
}
|
| 59 |
|
| 60 |
-
export function hasCurlInferenceSnippet(model:
|
| 61 |
return !!model.pipeline_tag && model.pipeline_tag in curlSnippets;
|
| 62 |
}
|
|
|
|
|
|
|
| 1 |
import type { PipelineType } from "../pipelines.js";
|
| 2 |
import { getModelInputSnippet } from "./inputs.js";
|
| 3 |
+
import type { ModelDataMinimal } from "./types.js";
|
| 4 |
|
| 5 |
+
export const snippetBasic = (model: ModelDataMinimal, accessToken: string): string =>
|
| 6 |
`curl https://api-inference.huggingface.co/models/${model.id} \\
|
| 7 |
-X POST \\
|
| 8 |
-d '{"inputs": ${getModelInputSnippet(model, true)}}' \\
|
|
|
|
| 10 |
-H "Authorization: Bearer ${accessToken || `{API_TOKEN}`}"
|
| 11 |
`;
|
| 12 |
|
| 13 |
+
export const snippetZeroShotClassification = (model: ModelDataMinimal, accessToken: string): string =>
|
| 14 |
`curl https://api-inference.huggingface.co/models/${model.id} \\
|
| 15 |
-X POST \\
|
| 16 |
-d '{"inputs": ${getModelInputSnippet(model, true)}, "parameters": {"candidate_labels": ["refund", "legal", "faq"]}}' \\
|
|
|
|
| 18 |
-H "Authorization: Bearer ${accessToken || `{API_TOKEN}`}"
|
| 19 |
`;
|
| 20 |
|
| 21 |
+
export const snippetFile = (model: ModelDataMinimal, accessToken: string): string =>
|
| 22 |
`curl https://api-inference.huggingface.co/models/${model.id} \\
|
| 23 |
-X POST \\
|
| 24 |
--data-binary '@${getModelInputSnippet(model, true, true)}' \\
|
| 25 |
-H "Authorization: Bearer ${accessToken || `{API_TOKEN}`}"
|
| 26 |
`;
|
| 27 |
|
| 28 |
+
export const curlSnippets: Partial<Record<PipelineType, (model: ModelDataMinimal, accessToken: string) => string>> = {
|
| 29 |
// Same order as in js/src/lib/interfaces/Types.ts
|
| 30 |
"text-classification": snippetBasic,
|
| 31 |
"token-classification": snippetBasic,
|
|
|
|
| 51 |
"image-segmentation": snippetFile,
|
| 52 |
};
|
| 53 |
|
| 54 |
+
export function getCurlInferenceSnippet(model: ModelDataMinimal, accessToken: string): string {
|
| 55 |
return model.pipeline_tag && model.pipeline_tag in curlSnippets
|
| 56 |
? curlSnippets[model.pipeline_tag]?.(model, accessToken) ?? ""
|
| 57 |
: "";
|
| 58 |
}
|
| 59 |
|
| 60 |
+
export function hasCurlInferenceSnippet(model: Pick<ModelDataMinimal, "pipeline_tag">): boolean {
|
| 61 |
return !!model.pipeline_tag && model.pipeline_tag in curlSnippets;
|
| 62 |
}
|
packages/tasks/src/snippets/inputs.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
-
import type { ModelData } from "../model-data";
|
| 2 |
import type { PipelineType } from "../pipelines";
|
|
|
|
| 3 |
|
| 4 |
const inputsZeroShotClassification = () =>
|
| 5 |
`"Hi, I recently bought a device from your company but it is not working as advertised and I would like to get reimbursed!"`;
|
|
@@ -44,7 +44,7 @@ const inputsTextGeneration = () => `"Can you please let us know more details abo
|
|
| 44 |
|
| 45 |
const inputsText2TextGeneration = () => `"The answer to the universe is"`;
|
| 46 |
|
| 47 |
-
const inputsFillMask = (model:
|
| 48 |
|
| 49 |
const inputsSentenceSimilarity = () =>
|
| 50 |
`{
|
|
@@ -84,7 +84,7 @@ const inputsTabularPrediction = () =>
|
|
| 84 |
const inputsZeroShotImageClassification = () => `"cats.jpg"`;
|
| 85 |
|
| 86 |
const modelInputSnippets: {
|
| 87 |
-
[key in PipelineType]?: (model:
|
| 88 |
} = {
|
| 89 |
"audio-to-audio": inputsAudioToAudio,
|
| 90 |
"audio-classification": inputsAudioClassification,
|
|
@@ -116,7 +116,7 @@ const modelInputSnippets: {
|
|
| 116 |
|
| 117 |
// Use noWrap to put the whole snippet on a single line (removing new lines and tabulations)
|
| 118 |
// Use noQuotes to strip quotes from start & end (example: "abc" -> abc)
|
| 119 |
-
export function getModelInputSnippet(model:
|
| 120 |
if (model.pipeline_tag) {
|
| 121 |
const inputs = modelInputSnippets[model.pipeline_tag];
|
| 122 |
if (inputs) {
|
|
|
|
|
|
|
| 1 |
import type { PipelineType } from "../pipelines";
|
| 2 |
+
import type { ModelDataMinimal } from "./types";
|
| 3 |
|
| 4 |
const inputsZeroShotClassification = () =>
|
| 5 |
`"Hi, I recently bought a device from your company but it is not working as advertised and I would like to get reimbursed!"`;
|
|
|
|
| 44 |
|
| 45 |
const inputsText2TextGeneration = () => `"The answer to the universe is"`;
|
| 46 |
|
| 47 |
+
const inputsFillMask = (model: ModelDataMinimal) => `"The answer to the universe is ${model.mask_token}."`;
|
| 48 |
|
| 49 |
const inputsSentenceSimilarity = () =>
|
| 50 |
`{
|
|
|
|
| 84 |
const inputsZeroShotImageClassification = () => `"cats.jpg"`;
|
| 85 |
|
| 86 |
const modelInputSnippets: {
|
| 87 |
+
[key in PipelineType]?: (model: ModelDataMinimal) => string;
|
| 88 |
} = {
|
| 89 |
"audio-to-audio": inputsAudioToAudio,
|
| 90 |
"audio-classification": inputsAudioClassification,
|
|
|
|
| 116 |
|
| 117 |
// Use noWrap to put the whole snippet on a single line (removing new lines and tabulations)
|
| 118 |
// Use noQuotes to strip quotes from start & end (example: "abc" -> abc)
|
| 119 |
+
export function getModelInputSnippet(model: ModelDataMinimal, noWrap = false, noQuotes = false): string {
|
| 120 |
if (model.pipeline_tag) {
|
| 121 |
const inputs = modelInputSnippets[model.pipeline_tag];
|
| 122 |
if (inputs) {
|
packages/tasks/src/snippets/js.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
| 1 |
-
import type { ModelData } from "../model-data.js";
|
| 2 |
import type { PipelineType } from "../pipelines.js";
|
| 3 |
import { getModelInputSnippet } from "./inputs.js";
|
|
|
|
| 4 |
|
| 5 |
-
export const snippetBasic = (model:
|
| 6 |
`async function query(data) {
|
| 7 |
const response = await fetch(
|
| 8 |
"https://api-inference.huggingface.co/models/${model.id}",
|
|
@@ -20,7 +20,7 @@ query({"inputs": ${getModelInputSnippet(model)}}).then((response) => {
|
|
| 20 |
console.log(JSON.stringify(response));
|
| 21 |
});`;
|
| 22 |
|
| 23 |
-
export const snippetZeroShotClassification = (model:
|
| 24 |
`async function query(data) {
|
| 25 |
const response = await fetch(
|
| 26 |
"https://api-inference.huggingface.co/models/${model.id}",
|
|
@@ -40,7 +40,7 @@ query({"inputs": ${getModelInputSnippet(
|
|
| 40 |
console.log(JSON.stringify(response));
|
| 41 |
});`;
|
| 42 |
|
| 43 |
-
export const snippetTextToImage = (model:
|
| 44 |
`async function query(data) {
|
| 45 |
const response = await fetch(
|
| 46 |
"https://api-inference.huggingface.co/models/${model.id}",
|
|
@@ -57,7 +57,7 @@ query({"inputs": ${getModelInputSnippet(model)}}).then((response) => {
|
|
| 57 |
// Use image
|
| 58 |
});`;
|
| 59 |
|
| 60 |
-
export const snippetTextToAudio = (model:
|
| 61 |
const commonSnippet = `async function query(data) {
|
| 62 |
const response = await fetch(
|
| 63 |
"https://api-inference.huggingface.co/models/${model.id}",
|
|
@@ -93,7 +93,7 @@ export const snippetTextToAudio = (model: ModelData, accessToken: string): strin
|
|
| 93 |
}
|
| 94 |
};
|
| 95 |
|
| 96 |
-
export const snippetFile = (model:
|
| 97 |
`async function query(filename) {
|
| 98 |
const data = fs.readFileSync(filename);
|
| 99 |
const response = await fetch(
|
|
@@ -112,7 +112,7 @@ query(${getModelInputSnippet(model)}).then((response) => {
|
|
| 112 |
console.log(JSON.stringify(response));
|
| 113 |
});`;
|
| 114 |
|
| 115 |
-
export const jsSnippets: Partial<Record<PipelineType, (model:
|
| 116 |
// Same order as in js/src/lib/interfaces/Types.ts
|
| 117 |
"text-classification": snippetBasic,
|
| 118 |
"token-classification": snippetBasic,
|
|
@@ -138,12 +138,12 @@ export const jsSnippets: Partial<Record<PipelineType, (model: ModelData, accessT
|
|
| 138 |
"image-segmentation": snippetFile,
|
| 139 |
};
|
| 140 |
|
| 141 |
-
export function getJsInferenceSnippet(model:
|
| 142 |
return model.pipeline_tag && model.pipeline_tag in jsSnippets
|
| 143 |
? jsSnippets[model.pipeline_tag]?.(model, accessToken) ?? ""
|
| 144 |
: "";
|
| 145 |
}
|
| 146 |
|
| 147 |
-
export function hasJsInferenceSnippet(model:
|
| 148 |
return !!model.pipeline_tag && model.pipeline_tag in jsSnippets;
|
| 149 |
}
|
|
|
|
|
|
|
| 1 |
import type { PipelineType } from "../pipelines.js";
|
| 2 |
import { getModelInputSnippet } from "./inputs.js";
|
| 3 |
+
import type { ModelDataMinimal } from "./types.js";
|
| 4 |
|
| 5 |
+
export const snippetBasic = (model: ModelDataMinimal, accessToken: string): string =>
|
| 6 |
`async function query(data) {
|
| 7 |
const response = await fetch(
|
| 8 |
"https://api-inference.huggingface.co/models/${model.id}",
|
|
|
|
| 20 |
console.log(JSON.stringify(response));
|
| 21 |
});`;
|
| 22 |
|
| 23 |
+
export const snippetZeroShotClassification = (model: ModelDataMinimal, accessToken: string): string =>
|
| 24 |
`async function query(data) {
|
| 25 |
const response = await fetch(
|
| 26 |
"https://api-inference.huggingface.co/models/${model.id}",
|
|
|
|
| 40 |
console.log(JSON.stringify(response));
|
| 41 |
});`;
|
| 42 |
|
| 43 |
+
export const snippetTextToImage = (model: ModelDataMinimal, accessToken: string): string =>
|
| 44 |
`async function query(data) {
|
| 45 |
const response = await fetch(
|
| 46 |
"https://api-inference.huggingface.co/models/${model.id}",
|
|
|
|
| 57 |
// Use image
|
| 58 |
});`;
|
| 59 |
|
| 60 |
+
export const snippetTextToAudio = (model: ModelDataMinimal, accessToken: string): string => {
|
| 61 |
const commonSnippet = `async function query(data) {
|
| 62 |
const response = await fetch(
|
| 63 |
"https://api-inference.huggingface.co/models/${model.id}",
|
|
|
|
| 93 |
}
|
| 94 |
};
|
| 95 |
|
| 96 |
+
export const snippetFile = (model: ModelDataMinimal, accessToken: string): string =>
|
| 97 |
`async function query(filename) {
|
| 98 |
const data = fs.readFileSync(filename);
|
| 99 |
const response = await fetch(
|
|
|
|
| 112 |
console.log(JSON.stringify(response));
|
| 113 |
});`;
|
| 114 |
|
| 115 |
+
export const jsSnippets: Partial<Record<PipelineType, (model: ModelDataMinimal, accessToken: string) => string>> = {
|
| 116 |
// Same order as in js/src/lib/interfaces/Types.ts
|
| 117 |
"text-classification": snippetBasic,
|
| 118 |
"token-classification": snippetBasic,
|
|
|
|
| 138 |
"image-segmentation": snippetFile,
|
| 139 |
};
|
| 140 |
|
| 141 |
+
export function getJsInferenceSnippet(model: ModelDataMinimal, accessToken: string): string {
|
| 142 |
return model.pipeline_tag && model.pipeline_tag in jsSnippets
|
| 143 |
? jsSnippets[model.pipeline_tag]?.(model, accessToken) ?? ""
|
| 144 |
: "";
|
| 145 |
}
|
| 146 |
|
| 147 |
+
export function hasJsInferenceSnippet(model: ModelDataMinimal): boolean {
|
| 148 |
return !!model.pipeline_tag && model.pipeline_tag in jsSnippets;
|
| 149 |
}
|
packages/tasks/src/snippets/python.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
| 1 |
-
import type { ModelData } from "../model-data.js";
|
| 2 |
import type { PipelineType } from "../pipelines.js";
|
| 3 |
import { getModelInputSnippet } from "./inputs.js";
|
|
|
|
| 4 |
|
| 5 |
-
export const snippetZeroShotClassification = (model:
|
| 6 |
`def query(payload):
|
| 7 |
response = requests.post(API_URL, headers=headers, json=payload)
|
| 8 |
return response.json()
|
|
@@ -12,7 +12,7 @@ output = query({
|
|
| 12 |
"parameters": {"candidate_labels": ["refund", "legal", "faq"]},
|
| 13 |
})`;
|
| 14 |
|
| 15 |
-
export const snippetZeroShotImageClassification = (model:
|
| 16 |
`def query(data):
|
| 17 |
with open(data["image_path"], "rb") as f:
|
| 18 |
img = f.read()
|
|
@@ -28,7 +28,7 @@ output = query({
|
|
| 28 |
"parameters": {"candidate_labels": ["cat", "dog", "llama"]},
|
| 29 |
})`;
|
| 30 |
|
| 31 |
-
export const snippetBasic = (model:
|
| 32 |
`def query(payload):
|
| 33 |
response = requests.post(API_URL, headers=headers, json=payload)
|
| 34 |
return response.json()
|
|
@@ -37,7 +37,7 @@ output = query({
|
|
| 37 |
"inputs": ${getModelInputSnippet(model)},
|
| 38 |
})`;
|
| 39 |
|
| 40 |
-
export const snippetFile = (model:
|
| 41 |
`def query(filename):
|
| 42 |
with open(filename, "rb") as f:
|
| 43 |
data = f.read()
|
|
@@ -46,7 +46,7 @@ export const snippetFile = (model: ModelData): string =>
|
|
| 46 |
|
| 47 |
output = query(${getModelInputSnippet(model)})`;
|
| 48 |
|
| 49 |
-
export const snippetTextToImage = (model:
|
| 50 |
`def query(payload):
|
| 51 |
response = requests.post(API_URL, headers=headers, json=payload)
|
| 52 |
return response.content
|
|
@@ -58,7 +58,7 @@ import io
|
|
| 58 |
from PIL import Image
|
| 59 |
image = Image.open(io.BytesIO(image_bytes))`;
|
| 60 |
|
| 61 |
-
export const snippetTabular = (model:
|
| 62 |
`def query(payload):
|
| 63 |
response = requests.post(API_URL, headers=headers, json=payload)
|
| 64 |
return response.content
|
|
@@ -66,7 +66,7 @@ response = query({
|
|
| 66 |
"inputs": {"data": ${getModelInputSnippet(model)}},
|
| 67 |
})`;
|
| 68 |
|
| 69 |
-
export const snippetTextToAudio = (model:
|
| 70 |
// Transformers TTS pipeline and api-inference-community (AIC) pipeline outputs are diverged
|
| 71 |
// with the latest update to inference-api (IA).
|
| 72 |
// Transformers IA returns a byte object (wav file), whereas AIC returns wav and sampling_rate.
|
|
@@ -95,7 +95,7 @@ Audio(audio, rate=sampling_rate)`;
|
|
| 95 |
}
|
| 96 |
};
|
| 97 |
|
| 98 |
-
export const snippetDocumentQuestionAnswering = (model:
|
| 99 |
`def query(payload):
|
| 100 |
with open(payload["image"], "rb") as f:
|
| 101 |
img = f.read()
|
|
@@ -107,7 +107,7 @@ output = query({
|
|
| 107 |
"inputs": ${getModelInputSnippet(model)},
|
| 108 |
})`;
|
| 109 |
|
| 110 |
-
export const pythonSnippets: Partial<Record<PipelineType, (model:
|
| 111 |
// Same order as in tasks/src/pipelines.ts
|
| 112 |
"text-classification": snippetBasic,
|
| 113 |
"token-classification": snippetBasic,
|
|
@@ -137,7 +137,7 @@ export const pythonSnippets: Partial<Record<PipelineType, (model: ModelData) =>
|
|
| 137 |
"zero-shot-image-classification": snippetZeroShotImageClassification,
|
| 138 |
};
|
| 139 |
|
| 140 |
-
export function getPythonInferenceSnippet(model:
|
| 141 |
const body =
|
| 142 |
model.pipeline_tag && model.pipeline_tag in pythonSnippets ? pythonSnippets[model.pipeline_tag]?.(model) ?? "" : "";
|
| 143 |
|
|
@@ -149,6 +149,6 @@ headers = {"Authorization": ${accessToken ? `"Bearer ${accessToken}"` : `f"Beare
|
|
| 149 |
${body}`;
|
| 150 |
}
|
| 151 |
|
| 152 |
-
export function hasPythonInferenceSnippet(model:
|
| 153 |
return !!model.pipeline_tag && model.pipeline_tag in pythonSnippets;
|
| 154 |
}
|
|
|
|
|
|
|
| 1 |
import type { PipelineType } from "../pipelines.js";
|
| 2 |
import { getModelInputSnippet } from "./inputs.js";
|
| 3 |
+
import type { ModelDataMinimal } from "./types.js";
|
| 4 |
|
| 5 |
+
export const snippetZeroShotClassification = (model: ModelDataMinimal): string =>
|
| 6 |
`def query(payload):
|
| 7 |
response = requests.post(API_URL, headers=headers, json=payload)
|
| 8 |
return response.json()
|
|
|
|
| 12 |
"parameters": {"candidate_labels": ["refund", "legal", "faq"]},
|
| 13 |
})`;
|
| 14 |
|
| 15 |
+
export const snippetZeroShotImageClassification = (model: ModelDataMinimal): string =>
|
| 16 |
`def query(data):
|
| 17 |
with open(data["image_path"], "rb") as f:
|
| 18 |
img = f.read()
|
|
|
|
| 28 |
"parameters": {"candidate_labels": ["cat", "dog", "llama"]},
|
| 29 |
})`;
|
| 30 |
|
| 31 |
+
export const snippetBasic = (model: ModelDataMinimal): string =>
|
| 32 |
`def query(payload):
|
| 33 |
response = requests.post(API_URL, headers=headers, json=payload)
|
| 34 |
return response.json()
|
|
|
|
| 37 |
"inputs": ${getModelInputSnippet(model)},
|
| 38 |
})`;
|
| 39 |
|
| 40 |
+
export const snippetFile = (model: ModelDataMinimal): string =>
|
| 41 |
`def query(filename):
|
| 42 |
with open(filename, "rb") as f:
|
| 43 |
data = f.read()
|
|
|
|
| 46 |
|
| 47 |
output = query(${getModelInputSnippet(model)})`;
|
| 48 |
|
| 49 |
+
export const snippetTextToImage = (model: ModelDataMinimal): string =>
|
| 50 |
`def query(payload):
|
| 51 |
response = requests.post(API_URL, headers=headers, json=payload)
|
| 52 |
return response.content
|
|
|
|
| 58 |
from PIL import Image
|
| 59 |
image = Image.open(io.BytesIO(image_bytes))`;
|
| 60 |
|
| 61 |
+
export const snippetTabular = (model: ModelDataMinimal): string =>
|
| 62 |
`def query(payload):
|
| 63 |
response = requests.post(API_URL, headers=headers, json=payload)
|
| 64 |
return response.content
|
|
|
|
| 66 |
"inputs": {"data": ${getModelInputSnippet(model)}},
|
| 67 |
})`;
|
| 68 |
|
| 69 |
+
export const snippetTextToAudio = (model: ModelDataMinimal): string => {
|
| 70 |
// Transformers TTS pipeline and api-inference-community (AIC) pipeline outputs are diverged
|
| 71 |
// with the latest update to inference-api (IA).
|
| 72 |
// Transformers IA returns a byte object (wav file), whereas AIC returns wav and sampling_rate.
|
|
|
|
| 95 |
}
|
| 96 |
};
|
| 97 |
|
| 98 |
+
export const snippetDocumentQuestionAnswering = (model: ModelDataMinimal): string =>
|
| 99 |
`def query(payload):
|
| 100 |
with open(payload["image"], "rb") as f:
|
| 101 |
img = f.read()
|
|
|
|
| 107 |
"inputs": ${getModelInputSnippet(model)},
|
| 108 |
})`;
|
| 109 |
|
| 110 |
+
export const pythonSnippets: Partial<Record<PipelineType, (model: ModelDataMinimal) => string>> = {
|
| 111 |
// Same order as in tasks/src/pipelines.ts
|
| 112 |
"text-classification": snippetBasic,
|
| 113 |
"token-classification": snippetBasic,
|
|
|
|
| 137 |
"zero-shot-image-classification": snippetZeroShotImageClassification,
|
| 138 |
};
|
| 139 |
|
| 140 |
+
export function getPythonInferenceSnippet(model: ModelDataMinimal, accessToken: string): string {
|
| 141 |
const body =
|
| 142 |
model.pipeline_tag && model.pipeline_tag in pythonSnippets ? pythonSnippets[model.pipeline_tag]?.(model) ?? "" : "";
|
| 143 |
|
|
|
|
| 149 |
${body}`;
|
| 150 |
}
|
| 151 |
|
| 152 |
+
export function hasPythonInferenceSnippet(model: ModelDataMinimal): boolean {
|
| 153 |
return !!model.pipeline_tag && model.pipeline_tag in pythonSnippets;
|
| 154 |
}
|
packages/tasks/src/snippets/types.ts
ADDED
|
@@ -0,0 +1,8 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
import type { ModelData } from "../model-data";
|
| 2 |
+
|
| 3 |
+
/**
|
| 4 |
+
* Minimal model data required for snippets.
|
| 5 |
+
*
|
| 6 |
+
* Add more fields as needed.
|
| 7 |
+
*/
|
| 8 |
+
export type ModelDataMinimal = Pick<ModelData, "id" | "pipeline_tag" | "mask_token" | "library_name">;
|