diff --git a/packages/tasks-gen/package.json b/packages/tasks-gen/package.json index 23ad43cfc8..81f836b6f0 100644 --- a/packages/tasks-gen/package.json +++ b/packages/tasks-gen/package.json @@ -26,6 +26,7 @@ "type-fest": "^3.13.1" }, "dependencies": { - "@huggingface/tasks": "workspace:^" + "@huggingface/tasks": "workspace:^", + "@huggingface/inference": "workspace:^" } } diff --git a/packages/tasks-gen/pnpm-lock.yaml b/packages/tasks-gen/pnpm-lock.yaml index f754b702eb..bedd30656e 100644 --- a/packages/tasks-gen/pnpm-lock.yaml +++ b/packages/tasks-gen/pnpm-lock.yaml @@ -5,6 +5,9 @@ settings: excludeLinksFromLockfile: false dependencies: + '@huggingface/inference': + specifier: workspace:^ + version: link:../inference '@huggingface/tasks': specifier: workspace:^ version: link:../tasks diff --git a/packages/tasks-gen/scripts/generate-snippets-fixtures.ts b/packages/tasks-gen/scripts/generate-snippets-fixtures.ts index 1107d78a50..0a8d9f8ed6 100644 --- a/packages/tasks-gen/scripts/generate-snippets-fixtures.ts +++ b/packages/tasks-gen/scripts/generate-snippets-fixtures.ts @@ -19,7 +19,7 @@ import { existsSync as pathExists } from "node:fs"; import * as fs from "node:fs/promises"; import * as path from "node:path/posix"; -import type { InferenceSnippet } from "@huggingface/tasks"; +import type { InferenceProvider, InferenceSnippet } from "@huggingface/tasks"; import { snippets } from "@huggingface/tasks"; type LANGUAGE = "sh" | "js" | "py"; @@ -28,6 +28,7 @@ const TEST_CASES: { testName: string; model: snippets.ModelDataMinimal; languages: LANGUAGE[]; + providers: InferenceProvider[]; opts?: Record; }[] = [ { @@ -39,6 +40,7 @@ const TEST_CASES: { inference: "", }, languages: ["sh", "js", "py"], + providers: ["hf-inference", "together"], opts: { streaming: false }, }, { @@ -50,6 +52,7 @@ const TEST_CASES: { inference: "", }, languages: ["sh", "js", "py"], + providers: ["hf-inference"], opts: { streaming: true }, }, { @@ -61,6 +64,7 @@ const TEST_CASES: { inference: "", }, languages: ["sh", "js", "py"], + providers: ["hf-inference"], opts: { streaming: false }, }, { @@ -72,6 +76,7 @@ const TEST_CASES: { inference: "", }, languages: ["sh", "js", "py"], + providers: ["hf-inference"], opts: { streaming: true }, }, { @@ -82,6 +87,7 @@ const TEST_CASES: { tags: [], inference: "", }, + providers: ["hf-inference"], languages: ["sh", "js", "py"], }, ] as const; @@ -113,31 +119,41 @@ function getFixtureFolder(testName: string): string { function generateInferenceSnippet( model: snippets.ModelDataMinimal, language: LANGUAGE, + provider: InferenceProvider, opts?: Record ): InferenceSnippet[] { - const generatedSnippets = GET_SNIPPET_FN[language](model, "api_token", opts); + const generatedSnippets = GET_SNIPPET_FN[language](model, "api_token", provider, opts); return Array.isArray(generatedSnippets) ? generatedSnippets : [generatedSnippets]; } -async function getExpectedInferenceSnippet(testName: string, language: LANGUAGE): Promise { +async function getExpectedInferenceSnippet( + testName: string, + language: LANGUAGE, + provider: InferenceProvider +): Promise { const fixtureFolder = getFixtureFolder(testName); const files = await fs.readdir(fixtureFolder); const expectedSnippets: InferenceSnippet[] = []; - for (const file of files.filter((file) => file.endsWith("." + language)).sort()) { - const client = path.basename(file).split(".").slice(1, -1).join("."); // e.g. '0.huggingface.js.js' => "huggingface.js" + for (const file of files.filter((file) => file.endsWith("." + language) && file.includes(`.${provider}.`)).sort()) { + const client = path.basename(file).split(".").slice(1, -2).join("."); // e.g. '0.huggingface.js.replicate.js' => "huggingface.js" const content = await fs.readFile(path.join(fixtureFolder, file), { encoding: "utf-8" }); expectedSnippets.push(client === "default" ? { content } : { client, content }); } return expectedSnippets; } -async function saveExpectedInferenceSnippet(testName: string, language: LANGUAGE, snippets: InferenceSnippet[]) { +async function saveExpectedInferenceSnippet( + testName: string, + language: LANGUAGE, + provider: InferenceProvider, + snippets: InferenceSnippet[] +) { const fixtureFolder = getFixtureFolder(testName); await fs.mkdir(fixtureFolder, { recursive: true }); for (const [index, snippet] of snippets.entries()) { - const file = path.join(fixtureFolder, `${index}.${snippet.client ?? "default"}.${language}`); + const file = path.join(fixtureFolder, `${index}.${snippet.client ?? "default"}.${provider}.${language}`); await fs.writeFile(file, snippet.content); } } @@ -147,13 +163,15 @@ if (import.meta.vitest) { const { describe, expect, it } = import.meta.vitest; describe("inference API snippets", () => { - TEST_CASES.forEach(({ testName, model, languages, opts }) => { + TEST_CASES.forEach(({ testName, model, languages, providers, opts }) => { describe(testName, () => { languages.forEach((language) => { - it(language, async () => { - const generatedSnippets = generateInferenceSnippet(model, language, opts); - const expectedSnippets = await getExpectedInferenceSnippet(testName, language); - expect(generatedSnippets).toEqual(expectedSnippets); + providers.forEach((provider) => { + it(language, async () => { + const generatedSnippets = generateInferenceSnippet(model, language, provider, opts); + const expectedSnippets = await getExpectedInferenceSnippet(testName, language, provider); + expect(generatedSnippets).toEqual(expectedSnippets); + }); }); }); }); @@ -166,11 +184,13 @@ if (import.meta.vitest) { await fs.rm(path.join(rootDirFinder(), "snippets-fixtures"), { recursive: true, force: true }); console.debug(" 🏭 Generating new fixtures..."); - TEST_CASES.forEach(({ testName, model, languages, opts }) => { - console.debug(` ${testName} (${languages.join(", ")})`); + TEST_CASES.forEach(({ testName, model, languages, providers, opts }) => { + console.debug(` ${testName} (${languages.join(", ")}) (${providers.join(", ")})`); languages.forEach(async (language) => { - const generatedSnippets = generateInferenceSnippet(model, language, opts); - await saveExpectedInferenceSnippet(testName, language, generatedSnippets); + providers.forEach(async (provider) => { + const generatedSnippets = generateInferenceSnippet(model, language, provider, opts); + await saveExpectedInferenceSnippet(testName, language, provider, generatedSnippets); + }); }); }); console.log("✅ All done!"); diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.default.sh b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.curl.hf-inference.sh similarity index 100% rename from packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.default.sh rename to packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.curl.hf-inference.sh diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.curl.together.sh b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.curl.together.sh new file mode 100644 index 0000000000..4fc849c059 --- /dev/null +++ b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.curl.together.sh @@ -0,0 +1,14 @@ +curl 'https://huggingface.co/api/inference-proxy/together/v1/chat/completions' \ +-H 'Authorization: Bearer api_token' \ +-H 'Content-Type: application/json' \ +--data '{ + "model": "meta-llama/Llama-3.1-8B-Instruct", + "messages": [ + { + "role": "user", + "content": "What is the capital of France?" + } + ], + "max_tokens": 500, + "stream": false +}' \ No newline at end of file diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface.js.hf-inference.js b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface.js.hf-inference.js new file mode 100644 index 0000000000..0bb99c2c8c --- /dev/null +++ b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface.js.hf-inference.js @@ -0,0 +1,17 @@ +import { HfInference } from "@huggingface/inference"; + +const client = new HfInference("api_token"); + +const chatCompletion = await client.chatCompletion({ + model: "meta-llama/Llama-3.1-8B-Instruct", + messages: [ + { + role: "user", + content: "What is the capital of France?" + } + ], + provider: "hf-inference", + max_tokens: 500 +}); + +console.log(chatCompletion.choices[0].message); \ No newline at end of file diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface.js.js b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface.js.together.js similarity index 93% rename from packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface.js.js rename to packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface.js.together.js index c9243e1792..fb00ca5d8d 100644 --- a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface.js.js +++ b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface.js.together.js @@ -10,6 +10,7 @@ const chatCompletion = await client.chatCompletion({ content: "What is the capital of France?" } ], + provider: "together", max_tokens: 500 }); diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface_hub.hf-inference.py b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface_hub.hf-inference.py new file mode 100644 index 0000000000..a4e9d17d69 --- /dev/null +++ b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface_hub.hf-inference.py @@ -0,0 +1,21 @@ +from huggingface_hub import InferenceClient + +client = InferenceClient( + provider="hf-inference", + api_key="api_token" +) + +messages = [ + { + "role": "user", + "content": "What is the capital of France?" + } +] + +completion = client.chat.completions.create( + model="meta-llama/Llama-3.1-8B-Instruct", + messages=messages, + max_tokens=500 +) + +print(completion.choices[0].message) \ No newline at end of file diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface_hub.py b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface_hub.together.py similarity index 80% rename from packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface_hub.py rename to packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface_hub.together.py index e60e63114c..7464a8b221 100644 --- a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface_hub.py +++ b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/0.huggingface_hub.together.py @@ -1,6 +1,9 @@ from huggingface_hub import InferenceClient -client = InferenceClient(api_key="api_token") +client = InferenceClient( + provider="together", + api_key="api_token" +) messages = [ { diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.js b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.hf-inference.js similarity index 80% rename from packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.js rename to packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.hf-inference.js index ddccf8d502..63721ce2d5 100644 --- a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.js +++ b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.hf-inference.js @@ -1,8 +1,8 @@ import { OpenAI } from "openai"; const client = new OpenAI({ - baseURL: "https://api-inference.huggingface.co/v1/", - apiKey: "api_token" + baseURL: "https://api-inference.huggingface.co/v1/", + apiKey: "api_token" }); const chatCompletion = await client.chat.completions.create({ diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.py b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.hf-inference.py similarity index 100% rename from packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.py rename to packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.hf-inference.py diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.together.js b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.together.js new file mode 100644 index 0000000000..9dc9b1f2bf --- /dev/null +++ b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.together.js @@ -0,0 +1,19 @@ +import { OpenAI } from "openai"; + +const client = new OpenAI({ + baseURL: "https://huggingface.co/api/inference-proxy/together", + apiKey: "api_token" +}); + +const chatCompletion = await client.chat.completions.create({ + model: "meta-llama/Llama-3.1-8B-Instruct", + messages: [ + { + role: "user", + content: "What is the capital of France?" + } + ], + max_tokens: 500 +}); + +console.log(chatCompletion.choices[0].message); \ No newline at end of file diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.together.py b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.together.py new file mode 100644 index 0000000000..ee179ef368 --- /dev/null +++ b/packages/tasks-gen/snippets-fixtures/conversational-llm-non-stream/1.openai.together.py @@ -0,0 +1,21 @@ +from openai import OpenAI + +client = OpenAI( + base_url="https://huggingface.co/api/inference-proxy/together", + api_key="api_token" +) + +messages = [ + { + "role": "user", + "content": "What is the capital of France?" + } +] + +completion = client.chat.completions.create( + model="meta-llama/Llama-3.1-8B-Instruct", + messages=messages, + max_tokens=500 +) + +print(completion.choices[0].message) \ No newline at end of file diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.default.sh b/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.curl.hf-inference.sh similarity index 100% rename from packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.default.sh rename to packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.curl.hf-inference.sh diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.huggingface.js.js b/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.huggingface.js.hf-inference.js similarity index 94% rename from packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.huggingface.js.js rename to packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.huggingface.js.hf-inference.js index 581e0a3e8a..86a6456704 100644 --- a/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.huggingface.js.js +++ b/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.huggingface.js.hf-inference.js @@ -12,6 +12,7 @@ const stream = client.chatCompletionStream({ content: "What is the capital of France?" } ], + provider: "hf-inference", max_tokens: 500 }); diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.huggingface_hub.py b/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.huggingface_hub.hf-inference.py similarity index 82% rename from packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.huggingface_hub.py rename to packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.huggingface_hub.hf-inference.py index 38a5efcd6e..a9f9567d0c 100644 --- a/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.huggingface_hub.py +++ b/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/0.huggingface_hub.hf-inference.py @@ -1,6 +1,9 @@ from huggingface_hub import InferenceClient -client = InferenceClient(api_key="api_token") +client = InferenceClient( + provider="hf-inference", + api_key="api_token" +) messages = [ { diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/1.openai.js b/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/1.openai.hf-inference.js similarity index 95% rename from packages/tasks-gen/snippets-fixtures/conversational-llm-stream/1.openai.js rename to packages/tasks-gen/snippets-fixtures/conversational-llm-stream/1.openai.hf-inference.js index ccb3cb15b1..6bc97ab95d 100644 --- a/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/1.openai.js +++ b/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/1.openai.hf-inference.js @@ -2,7 +2,7 @@ import { OpenAI } from "openai"; const client = new OpenAI({ baseURL: "https://api-inference.huggingface.co/v1/", - apiKey: "api_token" + apiKey: "api_token" }); let out = ""; diff --git a/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/1.openai.py b/packages/tasks-gen/snippets-fixtures/conversational-llm-stream/1.openai.hf-inference.py similarity index 100% rename from packages/tasks-gen/snippets-fixtures/conversational-llm-stream/1.openai.py rename to packages/tasks-gen/snippets-fixtures/conversational-llm-stream/1.openai.hf-inference.py diff --git a/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.default.sh b/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.curl.hf-inference.sh similarity index 100% rename from packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.default.sh rename to packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.curl.hf-inference.sh diff --git a/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.huggingface.js.js b/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.huggingface.js.hf-inference.js similarity index 95% rename from packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.huggingface.js.js rename to packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.huggingface.js.hf-inference.js index b7e54db67c..5c7c693350 100644 --- a/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.huggingface.js.js +++ b/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.huggingface.js.hf-inference.js @@ -21,6 +21,7 @@ const chatCompletion = await client.chatCompletion({ ] } ], + provider: "hf-inference", max_tokens: 500 }); diff --git a/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.huggingface_hub.py b/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.huggingface_hub.hf-inference.py similarity index 87% rename from packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.huggingface_hub.py rename to packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.huggingface_hub.hf-inference.py index 82c2389972..5dc7d45c94 100644 --- a/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.huggingface_hub.py +++ b/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/0.huggingface_hub.hf-inference.py @@ -1,6 +1,9 @@ from huggingface_hub import InferenceClient -client = InferenceClient(api_key="api_token") +client = InferenceClient( + provider="hf-inference", + api_key="api_token" +) messages = [ { diff --git a/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/1.openai.js b/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/1.openai.hf-inference.js similarity index 87% rename from packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/1.openai.js rename to packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/1.openai.hf-inference.js index 6badefd525..cbfddb53a6 100644 --- a/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/1.openai.js +++ b/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/1.openai.hf-inference.js @@ -1,8 +1,8 @@ import { OpenAI } from "openai"; const client = new OpenAI({ - baseURL: "https://api-inference.huggingface.co/v1/", - apiKey: "api_token" + baseURL: "https://api-inference.huggingface.co/v1/", + apiKey: "api_token" }); const chatCompletion = await client.chat.completions.create({ diff --git a/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/1.openai.py b/packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/1.openai.hf-inference.py similarity index 100% rename from packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/1.openai.py rename to packages/tasks-gen/snippets-fixtures/conversational-vlm-non-stream/1.openai.hf-inference.py diff --git a/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.default.sh b/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.curl.hf-inference.sh similarity index 100% rename from packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.default.sh rename to packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.curl.hf-inference.sh diff --git a/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.huggingface.js.js b/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.huggingface.js.hf-inference.js similarity index 96% rename from packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.huggingface.js.js rename to packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.huggingface.js.hf-inference.js index e91f14d81c..bcab793db8 100644 --- a/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.huggingface.js.js +++ b/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.huggingface.js.hf-inference.js @@ -23,6 +23,7 @@ const stream = client.chatCompletionStream({ ] } ], + provider: "hf-inference", max_tokens: 500 }); diff --git a/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.huggingface_hub.py b/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.huggingface_hub.hf-inference.py similarity index 88% rename from packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.huggingface_hub.py rename to packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.huggingface_hub.hf-inference.py index 9eaf7a1677..d154c80902 100644 --- a/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.huggingface_hub.py +++ b/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/0.huggingface_hub.hf-inference.py @@ -1,6 +1,9 @@ from huggingface_hub import InferenceClient -client = InferenceClient(api_key="api_token") +client = InferenceClient( + provider="hf-inference", + api_key="api_token" +) messages = [ { diff --git a/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/1.openai.js b/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/1.openai.hf-inference.js similarity index 97% rename from packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/1.openai.js rename to packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/1.openai.hf-inference.js index 59447faa05..c947342b3e 100644 --- a/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/1.openai.js +++ b/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/1.openai.hf-inference.js @@ -2,7 +2,7 @@ import { OpenAI } from "openai"; const client = new OpenAI({ baseURL: "https://api-inference.huggingface.co/v1/", - apiKey: "api_token" + apiKey: "api_token" }); let out = ""; diff --git a/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/1.openai.py b/packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/1.openai.hf-inference.py similarity index 100% rename from packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/1.openai.py rename to packages/tasks-gen/snippets-fixtures/conversational-vlm-stream/1.openai.hf-inference.py diff --git a/packages/tasks-gen/snippets-fixtures/text-to-image/0.default.sh b/packages/tasks-gen/snippets-fixtures/text-to-image/0.curl.hf-inference.sh similarity index 100% rename from packages/tasks-gen/snippets-fixtures/text-to-image/0.default.sh rename to packages/tasks-gen/snippets-fixtures/text-to-image/0.curl.hf-inference.sh diff --git a/packages/tasks-gen/snippets-fixtures/text-to-image/0.huggingface.js.hf-inference.js b/packages/tasks-gen/snippets-fixtures/text-to-image/0.huggingface.js.hf-inference.js new file mode 100644 index 0000000000..f506de747a --- /dev/null +++ b/packages/tasks-gen/snippets-fixtures/text-to-image/0.huggingface.js.hf-inference.js @@ -0,0 +1,11 @@ +import { HfInference } from "@huggingface/inference"; + +const client = new HfInference("api_token"); + +const image = await client.textToImage({ + model: "black-forest-labs/FLUX.1-schnell", + inputs: "Astronaut riding a horse", + parameters: { num_inference_steps: 5 }, + provider: "hf-inference", +}); +/// Use the generated image (it's a Blob) diff --git a/packages/tasks-gen/snippets-fixtures/text-to-image/0.huggingface_hub.hf-inference.py b/packages/tasks-gen/snippets-fixtures/text-to-image/0.huggingface_hub.hf-inference.py new file mode 100644 index 0000000000..2a488324f8 --- /dev/null +++ b/packages/tasks-gen/snippets-fixtures/text-to-image/0.huggingface_hub.hf-inference.py @@ -0,0 +1,12 @@ +from huggingface_hub import InferenceClient + +client = InferenceClient( + provider="hf-inference", + api_key="api_token" +) + +# output is a PIL.Image object +image = client.text_to_image( + "Astronaut riding a horse", + model="black-forest-labs/FLUX.1-schnell" +) \ No newline at end of file diff --git a/packages/tasks-gen/snippets-fixtures/text-to-image/0.huggingface_hub.py b/packages/tasks-gen/snippets-fixtures/text-to-image/0.huggingface_hub.py deleted file mode 100644 index a0914bc5e8..0000000000 --- a/packages/tasks-gen/snippets-fixtures/text-to-image/0.huggingface_hub.py +++ /dev/null @@ -1,5 +0,0 @@ -from huggingface_hub import InferenceClient -client = InferenceClient("black-forest-labs/FLUX.1-schnell", token="api_token") - -# output is a PIL.Image object -image = client.text_to_image("Astronaut riding a horse") \ No newline at end of file diff --git a/packages/tasks-gen/snippets-fixtures/text-to-image/0.default.js b/packages/tasks-gen/snippets-fixtures/text-to-image/1.fetch.hf-inference.js similarity index 100% rename from packages/tasks-gen/snippets-fixtures/text-to-image/0.default.js rename to packages/tasks-gen/snippets-fixtures/text-to-image/1.fetch.hf-inference.js diff --git a/packages/tasks-gen/snippets-fixtures/text-to-image/1.requests.py b/packages/tasks-gen/snippets-fixtures/text-to-image/1.requests.hf-inference.py similarity index 99% rename from packages/tasks-gen/snippets-fixtures/text-to-image/1.requests.py rename to packages/tasks-gen/snippets-fixtures/text-to-image/1.requests.hf-inference.py index e71ec19361..40367b2123 100644 --- a/packages/tasks-gen/snippets-fixtures/text-to-image/1.requests.py +++ b/packages/tasks-gen/snippets-fixtures/text-to-image/1.requests.hf-inference.py @@ -6,6 +6,7 @@ def query(payload): response = requests.post(API_URL, headers=headers, json=payload) return response.content + image_bytes = query({ "inputs": "Astronaut riding a horse", })