@huggingface/tasks 0.13.5 → 0.13.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (204) hide show
  1. package/dist/commonjs/hardware.d.ts +12 -0
  2. package/dist/commonjs/hardware.d.ts.map +1 -1
  3. package/dist/commonjs/hardware.js +15 -3
  4. package/dist/commonjs/model-libraries.d.ts +15 -1
  5. package/dist/commonjs/model-libraries.d.ts.map +1 -1
  6. package/dist/commonjs/model-libraries.js +14 -0
  7. package/dist/commonjs/snippets/curl.js +4 -4
  8. package/dist/commonjs/snippets/js.js +5 -5
  9. package/dist/commonjs/tasks/audio-classification/inference.d.ts +1 -3
  10. package/dist/commonjs/tasks/audio-classification/inference.d.ts.map +1 -1
  11. package/dist/commonjs/tasks/automatic-speech-recognition/inference.d.ts +1 -5
  12. package/dist/commonjs/tasks/automatic-speech-recognition/inference.d.ts.map +1 -1
  13. package/dist/commonjs/tasks/chat-completion/inference.d.ts +18 -6
  14. package/dist/commonjs/tasks/chat-completion/inference.d.ts.map +1 -1
  15. package/dist/commonjs/tasks/depth-estimation/inference.d.ts +1 -1
  16. package/dist/commonjs/tasks/document-question-answering/inference.d.ts +1 -3
  17. package/dist/commonjs/tasks/document-question-answering/inference.d.ts.map +1 -1
  18. package/dist/commonjs/tasks/feature-extraction/inference.d.ts +1 -1
  19. package/dist/commonjs/tasks/fill-mask/inference.d.ts +1 -3
  20. package/dist/commonjs/tasks/fill-mask/inference.d.ts.map +1 -1
  21. package/dist/commonjs/tasks/image-classification/inference.d.ts +1 -3
  22. package/dist/commonjs/tasks/image-classification/inference.d.ts.map +1 -1
  23. package/dist/commonjs/tasks/image-segmentation/inference.d.ts +1 -3
  24. package/dist/commonjs/tasks/image-segmentation/inference.d.ts.map +1 -1
  25. package/dist/commonjs/tasks/image-to-image/inference.d.ts +1 -3
  26. package/dist/commonjs/tasks/image-to-image/inference.d.ts.map +1 -1
  27. package/dist/commonjs/tasks/image-to-text/inference.d.ts +1 -5
  28. package/dist/commonjs/tasks/image-to-text/inference.d.ts.map +1 -1
  29. package/dist/commonjs/tasks/object-detection/inference.d.ts +1 -3
  30. package/dist/commonjs/tasks/object-detection/inference.d.ts.map +1 -1
  31. package/dist/commonjs/tasks/question-answering/inference.d.ts +1 -3
  32. package/dist/commonjs/tasks/question-answering/inference.d.ts.map +1 -1
  33. package/dist/commonjs/tasks/sentence-similarity/inference.d.ts +1 -1
  34. package/dist/commonjs/tasks/summarization/inference.d.ts +1 -3
  35. package/dist/commonjs/tasks/summarization/inference.d.ts.map +1 -1
  36. package/dist/commonjs/tasks/table-question-answering/inference.d.ts +1 -1
  37. package/dist/commonjs/tasks/text-classification/inference.d.ts +1 -3
  38. package/dist/commonjs/tasks/text-classification/inference.d.ts.map +1 -1
  39. package/dist/commonjs/tasks/text-to-audio/inference.d.ts +1 -5
  40. package/dist/commonjs/tasks/text-to-audio/inference.d.ts.map +1 -1
  41. package/dist/commonjs/tasks/text-to-image/inference.d.ts +1 -3
  42. package/dist/commonjs/tasks/text-to-image/inference.d.ts.map +1 -1
  43. package/dist/commonjs/tasks/text-to-speech/inference.d.ts +1 -5
  44. package/dist/commonjs/tasks/text-to-speech/inference.d.ts.map +1 -1
  45. package/dist/commonjs/tasks/text2text-generation/inference.d.ts +1 -3
  46. package/dist/commonjs/tasks/text2text-generation/inference.d.ts.map +1 -1
  47. package/dist/commonjs/tasks/token-classification/inference.d.ts +1 -3
  48. package/dist/commonjs/tasks/token-classification/inference.d.ts.map +1 -1
  49. package/dist/commonjs/tasks/translation/inference.d.ts +1 -3
  50. package/dist/commonjs/tasks/translation/inference.d.ts.map +1 -1
  51. package/dist/commonjs/tasks/video-classification/inference.d.ts +1 -3
  52. package/dist/commonjs/tasks/video-classification/inference.d.ts.map +1 -1
  53. package/dist/commonjs/tasks/visual-question-answering/inference.d.ts +1 -3
  54. package/dist/commonjs/tasks/visual-question-answering/inference.d.ts.map +1 -1
  55. package/dist/commonjs/tasks/zero-shot-classification/inference.d.ts +1 -3
  56. package/dist/commonjs/tasks/zero-shot-classification/inference.d.ts.map +1 -1
  57. package/dist/commonjs/tasks/zero-shot-image-classification/inference.d.ts +1 -3
  58. package/dist/commonjs/tasks/zero-shot-image-classification/inference.d.ts.map +1 -1
  59. package/dist/commonjs/tasks/zero-shot-object-detection/inference.d.ts +1 -3
  60. package/dist/commonjs/tasks/zero-shot-object-detection/inference.d.ts.map +1 -1
  61. package/dist/esm/hardware.d.ts +12 -0
  62. package/dist/esm/hardware.d.ts.map +1 -1
  63. package/dist/esm/hardware.js +15 -3
  64. package/dist/esm/model-libraries.d.ts +15 -1
  65. package/dist/esm/model-libraries.d.ts.map +1 -1
  66. package/dist/esm/model-libraries.js +14 -0
  67. package/dist/esm/snippets/curl.js +4 -4
  68. package/dist/esm/snippets/js.js +5 -5
  69. package/dist/esm/tasks/audio-classification/inference.d.ts +1 -3
  70. package/dist/esm/tasks/audio-classification/inference.d.ts.map +1 -1
  71. package/dist/esm/tasks/automatic-speech-recognition/inference.d.ts +1 -5
  72. package/dist/esm/tasks/automatic-speech-recognition/inference.d.ts.map +1 -1
  73. package/dist/esm/tasks/chat-completion/inference.d.ts +18 -6
  74. package/dist/esm/tasks/chat-completion/inference.d.ts.map +1 -1
  75. package/dist/esm/tasks/depth-estimation/inference.d.ts +1 -1
  76. package/dist/esm/tasks/document-question-answering/inference.d.ts +1 -3
  77. package/dist/esm/tasks/document-question-answering/inference.d.ts.map +1 -1
  78. package/dist/esm/tasks/feature-extraction/inference.d.ts +1 -1
  79. package/dist/esm/tasks/fill-mask/inference.d.ts +1 -3
  80. package/dist/esm/tasks/fill-mask/inference.d.ts.map +1 -1
  81. package/dist/esm/tasks/image-classification/inference.d.ts +1 -3
  82. package/dist/esm/tasks/image-classification/inference.d.ts.map +1 -1
  83. package/dist/esm/tasks/image-segmentation/inference.d.ts +1 -3
  84. package/dist/esm/tasks/image-segmentation/inference.d.ts.map +1 -1
  85. package/dist/esm/tasks/image-to-image/inference.d.ts +1 -3
  86. package/dist/esm/tasks/image-to-image/inference.d.ts.map +1 -1
  87. package/dist/esm/tasks/image-to-text/inference.d.ts +1 -5
  88. package/dist/esm/tasks/image-to-text/inference.d.ts.map +1 -1
  89. package/dist/esm/tasks/object-detection/inference.d.ts +1 -3
  90. package/dist/esm/tasks/object-detection/inference.d.ts.map +1 -1
  91. package/dist/esm/tasks/question-answering/inference.d.ts +1 -3
  92. package/dist/esm/tasks/question-answering/inference.d.ts.map +1 -1
  93. package/dist/esm/tasks/sentence-similarity/inference.d.ts +1 -1
  94. package/dist/esm/tasks/summarization/inference.d.ts +1 -3
  95. package/dist/esm/tasks/summarization/inference.d.ts.map +1 -1
  96. package/dist/esm/tasks/table-question-answering/inference.d.ts +1 -1
  97. package/dist/esm/tasks/text-classification/inference.d.ts +1 -3
  98. package/dist/esm/tasks/text-classification/inference.d.ts.map +1 -1
  99. package/dist/esm/tasks/text-to-audio/inference.d.ts +1 -5
  100. package/dist/esm/tasks/text-to-audio/inference.d.ts.map +1 -1
  101. package/dist/esm/tasks/text-to-image/inference.d.ts +1 -3
  102. package/dist/esm/tasks/text-to-image/inference.d.ts.map +1 -1
  103. package/dist/esm/tasks/text-to-speech/inference.d.ts +1 -5
  104. package/dist/esm/tasks/text-to-speech/inference.d.ts.map +1 -1
  105. package/dist/esm/tasks/text2text-generation/inference.d.ts +1 -3
  106. package/dist/esm/tasks/text2text-generation/inference.d.ts.map +1 -1
  107. package/dist/esm/tasks/token-classification/inference.d.ts +1 -3
  108. package/dist/esm/tasks/token-classification/inference.d.ts.map +1 -1
  109. package/dist/esm/tasks/translation/inference.d.ts +1 -3
  110. package/dist/esm/tasks/translation/inference.d.ts.map +1 -1
  111. package/dist/esm/tasks/video-classification/inference.d.ts +1 -3
  112. package/dist/esm/tasks/video-classification/inference.d.ts.map +1 -1
  113. package/dist/esm/tasks/visual-question-answering/inference.d.ts +1 -3
  114. package/dist/esm/tasks/visual-question-answering/inference.d.ts.map +1 -1
  115. package/dist/esm/tasks/zero-shot-classification/inference.d.ts +1 -3
  116. package/dist/esm/tasks/zero-shot-classification/inference.d.ts.map +1 -1
  117. package/dist/esm/tasks/zero-shot-image-classification/inference.d.ts +1 -3
  118. package/dist/esm/tasks/zero-shot-image-classification/inference.d.ts.map +1 -1
  119. package/dist/esm/tasks/zero-shot-object-detection/inference.d.ts +1 -3
  120. package/dist/esm/tasks/zero-shot-object-detection/inference.d.ts.map +1 -1
  121. package/package.json +1 -1
  122. package/src/hardware.ts +15 -3
  123. package/src/model-libraries.ts +14 -0
  124. package/src/snippets/curl.ts +4 -4
  125. package/src/snippets/js.ts +5 -5
  126. package/src/tasks/audio-classification/inference.ts +1 -3
  127. package/src/tasks/audio-classification/spec/input.json +1 -2
  128. package/src/tasks/automatic-speech-recognition/inference.ts +1 -5
  129. package/src/tasks/automatic-speech-recognition/spec/input.json +1 -2
  130. package/src/tasks/chat-completion/inference.ts +19 -6
  131. package/src/tasks/chat-completion/spec/input.json +14 -19
  132. package/src/tasks/common-definitions.json +0 -1
  133. package/src/tasks/depth-estimation/inference.ts +1 -1
  134. package/src/tasks/depth-estimation/spec/input.json +1 -2
  135. package/src/tasks/document-question-answering/inference.ts +1 -3
  136. package/src/tasks/document-question-answering/spec/input.json +1 -2
  137. package/src/tasks/feature-extraction/inference.ts +1 -1
  138. package/src/tasks/feature-extraction/spec/input.json +1 -1
  139. package/src/tasks/fill-mask/inference.ts +1 -3
  140. package/src/tasks/fill-mask/spec/input.json +1 -2
  141. package/src/tasks/image-classification/inference.ts +1 -3
  142. package/src/tasks/image-classification/spec/input.json +1 -2
  143. package/src/tasks/image-segmentation/inference.ts +1 -3
  144. package/src/tasks/image-segmentation/spec/input.json +1 -2
  145. package/src/tasks/image-to-image/inference.ts +1 -3
  146. package/src/tasks/image-to-image/spec/input.json +1 -2
  147. package/src/tasks/image-to-text/inference.ts +1 -5
  148. package/src/tasks/image-to-text/spec/input.json +1 -2
  149. package/src/tasks/object-detection/inference.ts +1 -3
  150. package/src/tasks/object-detection/spec/input.json +1 -2
  151. package/src/tasks/placeholder/spec/input.json +1 -2
  152. package/src/tasks/question-answering/inference.ts +1 -3
  153. package/src/tasks/question-answering/spec/input.json +1 -2
  154. package/src/tasks/sentence-similarity/inference.ts +1 -1
  155. package/src/tasks/sentence-similarity/spec/input.json +1 -2
  156. package/src/tasks/summarization/inference.ts +1 -3
  157. package/src/tasks/summarization/spec/input.json +1 -2
  158. package/src/tasks/table-question-answering/inference.ts +1 -1
  159. package/src/tasks/table-question-answering/spec/input.json +1 -2
  160. package/src/tasks/text-classification/inference.ts +1 -3
  161. package/src/tasks/text-classification/spec/input.json +1 -2
  162. package/src/tasks/text-to-audio/inference.ts +1 -5
  163. package/src/tasks/text-to-audio/spec/input.json +1 -2
  164. package/src/tasks/text-to-image/inference.ts +1 -3
  165. package/src/tasks/text-to-image/spec/input.json +1 -2
  166. package/src/tasks/text-to-speech/inference.ts +1 -5
  167. package/src/tasks/text-to-speech/spec/input.json +1 -2
  168. package/src/tasks/text2text-generation/inference.ts +1 -3
  169. package/src/tasks/text2text-generation/spec/input.json +1 -2
  170. package/src/tasks/token-classification/inference.ts +1 -3
  171. package/src/tasks/token-classification/spec/input.json +1 -2
  172. package/src/tasks/translation/inference.ts +1 -3
  173. package/src/tasks/translation/spec/input.json +1 -2
  174. package/src/tasks/video-classification/inference.ts +1 -3
  175. package/src/tasks/video-classification/spec/input.json +1 -2
  176. package/src/tasks/visual-question-answering/inference.ts +1 -3
  177. package/src/tasks/visual-question-answering/spec/input.json +1 -2
  178. package/src/tasks/zero-shot-classification/inference.ts +1 -3
  179. package/src/tasks/zero-shot-classification/spec/input.json +1 -2
  180. package/src/tasks/zero-shot-image-classification/inference.ts +1 -3
  181. package/src/tasks/zero-shot-image-classification/spec/input.json +1 -2
  182. package/src/tasks/zero-shot-object-detection/inference.ts +1 -3
  183. package/src/tasks/zero-shot-object-detection/spec/input.json +1 -2
  184. package/dist/commonjs/snippets/curl.spec.d.ts +0 -2
  185. package/dist/commonjs/snippets/curl.spec.d.ts.map +0 -1
  186. package/dist/commonjs/snippets/curl.spec.js +0 -89
  187. package/dist/commonjs/snippets/js.spec.d.ts +0 -2
  188. package/dist/commonjs/snippets/js.spec.d.ts.map +0 -1
  189. package/dist/commonjs/snippets/js.spec.js +0 -141
  190. package/dist/commonjs/snippets/python.spec.d.ts +0 -2
  191. package/dist/commonjs/snippets/python.spec.d.ts.map +0 -1
  192. package/dist/commonjs/snippets/python.spec.js +0 -135
  193. package/dist/esm/snippets/curl.spec.d.ts +0 -2
  194. package/dist/esm/snippets/curl.spec.d.ts.map +0 -1
  195. package/dist/esm/snippets/curl.spec.js +0 -87
  196. package/dist/esm/snippets/js.spec.d.ts +0 -2
  197. package/dist/esm/snippets/js.spec.d.ts.map +0 -1
  198. package/dist/esm/snippets/js.spec.js +0 -139
  199. package/dist/esm/snippets/python.spec.d.ts +0 -2
  200. package/dist/esm/snippets/python.spec.d.ts.map +0 -1
  201. package/dist/esm/snippets/python.spec.js +0 -133
  202. package/src/snippets/curl.spec.ts +0 -94
  203. package/src/snippets/js.spec.ts +0 -148
  204. package/src/snippets/python.spec.ts +0 -144
@@ -1,133 +0,0 @@
1
- import { describe, expect, it } from "vitest";
2
- import { getPythonInferenceSnippet } from "./python.js";
3
- describe("inference API snippets", () => {
4
- it("conversational llm", async () => {
5
- const model = {
6
- id: "meta-llama/Llama-3.1-8B-Instruct",
7
- pipeline_tag: "text-generation",
8
- tags: ["conversational"],
9
- inference: "",
10
- };
11
- const snippet = getPythonInferenceSnippet(model, "api_token");
12
- expect(snippet[0].content).toEqual(`from huggingface_hub import InferenceClient
13
-
14
- client = InferenceClient(api_key="api_token")
15
-
16
- messages = [
17
- {
18
- "role": "user",
19
- "content": "What is the capital of France?"
20
- }
21
- ]
22
-
23
- stream = client.chat.completions.create(
24
- model="meta-llama/Llama-3.1-8B-Instruct",
25
- messages=messages,
26
- max_tokens=500,
27
- stream=True
28
- )
29
-
30
- for chunk in stream:
31
- print(chunk.choices[0].delta.content, end="")`);
32
- });
33
- it("conversational llm non-streaming", async () => {
34
- const model = {
35
- id: "meta-llama/Llama-3.1-8B-Instruct",
36
- pipeline_tag: "text-generation",
37
- tags: ["conversational"],
38
- inference: "",
39
- };
40
- const snippet = getPythonInferenceSnippet(model, "api_token", { streaming: false });
41
- expect(snippet[0].content).toEqual(`from huggingface_hub import InferenceClient
42
-
43
- client = InferenceClient(api_key="api_token")
44
-
45
- messages = [
46
- {
47
- "role": "user",
48
- "content": "What is the capital of France?"
49
- }
50
- ]
51
-
52
- completion = client.chat.completions.create(
53
- model="meta-llama/Llama-3.1-8B-Instruct",
54
- messages=messages,
55
- max_tokens=500
56
- )
57
-
58
- print(completion.choices[0].message)`);
59
- });
60
- it("conversational vlm", async () => {
61
- const model = {
62
- id: "meta-llama/Llama-3.2-11B-Vision-Instruct",
63
- pipeline_tag: "image-text-to-text",
64
- tags: ["conversational"],
65
- inference: "",
66
- };
67
- const snippet = getPythonInferenceSnippet(model, "api_token");
68
- expect(snippet[0].content).toEqual(`from huggingface_hub import InferenceClient
69
-
70
- client = InferenceClient(api_key="api_token")
71
-
72
- messages = [
73
- {
74
- "role": "user",
75
- "content": [
76
- {
77
- "type": "text",
78
- "text": "Describe this image in one sentence."
79
- },
80
- {
81
- "type": "image_url",
82
- "image_url": {
83
- "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg"
84
- }
85
- }
86
- ]
87
- }
88
- ]
89
-
90
- stream = client.chat.completions.create(
91
- model="meta-llama/Llama-3.2-11B-Vision-Instruct",
92
- messages=messages,
93
- max_tokens=500,
94
- stream=True
95
- )
96
-
97
- for chunk in stream:
98
- print(chunk.choices[0].delta.content, end="")`);
99
- });
100
- it("text-to-image", async () => {
101
- const model = {
102
- id: "black-forest-labs/FLUX.1-schnell",
103
- pipeline_tag: "text-to-image",
104
- tags: [],
105
- inference: "",
106
- };
107
- const snippets = getPythonInferenceSnippet(model, "api_token");
108
- expect(snippets.length).toEqual(2);
109
- expect(snippets[0].client).toEqual("huggingface_hub");
110
- expect(snippets[0].content).toEqual(`from huggingface_hub import InferenceClient
111
- client = InferenceClient("black-forest-labs/FLUX.1-schnell", token="api_token")
112
-
113
- # output is a PIL.Image object
114
- image = client.text_to_image("Astronaut riding a horse")`);
115
- expect(snippets[1].client).toEqual("requests");
116
- expect(snippets[1].content).toEqual(`import requests
117
-
118
- API_URL = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-schnell"
119
- headers = {"Authorization": "Bearer api_token"}
120
-
121
- def query(payload):
122
- response = requests.post(API_URL, headers=headers, json=payload)
123
- return response.content
124
- image_bytes = query({
125
- "inputs": "Astronaut riding a horse",
126
- })
127
-
128
- # You can access the image with PIL.Image for example
129
- import io
130
- from PIL import Image
131
- image = Image.open(io.BytesIO(image_bytes))`);
132
- });
133
- });
@@ -1,94 +0,0 @@
1
- import type { ModelDataMinimal } from "./types.js";
2
- import { describe, expect, it } from "vitest";
3
- import { getCurlInferenceSnippet } from "./curl.js";
4
-
5
- describe("inference API snippets", () => {
6
- it("conversational llm", async () => {
7
- const model: ModelDataMinimal = {
8
- id: "meta-llama/Llama-3.1-8B-Instruct",
9
- pipeline_tag: "text-generation",
10
- tags: ["conversational"],
11
- inference: "",
12
- };
13
- const snippet = getCurlInferenceSnippet(model, "api_token");
14
-
15
- expect(snippet.content)
16
- .toEqual(`curl 'https://api-inference.huggingface.co/models/meta-llama/Llama-3.1-8B-Instruct/v1/chat/completions' \\
17
- -H "Authorization: Bearer api_token" \\
18
- -H 'Content-Type: application/json' \\
19
- --data '{
20
- "model": "meta-llama/Llama-3.1-8B-Instruct",
21
- "messages": [
22
- {
23
- "role": "user",
24
- "content": "What is the capital of France?"
25
- }
26
- ],
27
- "max_tokens": 500,
28
- "stream": true
29
- }'`);
30
- });
31
-
32
- it("conversational llm non-streaming", async () => {
33
- const model: ModelDataMinimal = {
34
- id: "meta-llama/Llama-3.1-8B-Instruct",
35
- pipeline_tag: "text-generation",
36
- tags: ["conversational"],
37
- inference: "",
38
- };
39
- const snippet = getCurlInferenceSnippet(model, "api_token", { streaming: false });
40
-
41
- expect(snippet.content)
42
- .toEqual(`curl 'https://api-inference.huggingface.co/models/meta-llama/Llama-3.1-8B-Instruct/v1/chat/completions' \\
43
- -H "Authorization: Bearer api_token" \\
44
- -H 'Content-Type: application/json' \\
45
- --data '{
46
- "model": "meta-llama/Llama-3.1-8B-Instruct",
47
- "messages": [
48
- {
49
- "role": "user",
50
- "content": "What is the capital of France?"
51
- }
52
- ],
53
- "max_tokens": 500,
54
- "stream": false
55
- }'`);
56
- });
57
-
58
- it("conversational vlm", async () => {
59
- const model: ModelDataMinimal = {
60
- id: "meta-llama/Llama-3.2-11B-Vision-Instruct",
61
- pipeline_tag: "image-text-to-text",
62
- tags: ["conversational"],
63
- inference: "",
64
- };
65
- const snippet = getCurlInferenceSnippet(model, "api_token");
66
-
67
- expect(snippet.content)
68
- .toEqual(`curl 'https://api-inference.huggingface.co/models/meta-llama/Llama-3.2-11B-Vision-Instruct/v1/chat/completions' \\
69
- -H "Authorization: Bearer api_token" \\
70
- -H 'Content-Type: application/json' \\
71
- --data '{
72
- "model": "meta-llama/Llama-3.2-11B-Vision-Instruct",
73
- "messages": [
74
- {
75
- "role": "user",
76
- "content": [
77
- {
78
- "type": "text",
79
- "text": "Describe this image in one sentence."
80
- },
81
- {
82
- "type": "image_url",
83
- "image_url": {
84
- "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg"
85
- }
86
- }
87
- ]
88
- }
89
- ],
90
- "max_tokens": 500,
91
- "stream": true
92
- }'`);
93
- });
94
- });
@@ -1,148 +0,0 @@
1
- import type { InferenceSnippet, ModelDataMinimal } from "./types.js";
2
- import { describe, expect, it } from "vitest";
3
- import { getJsInferenceSnippet } from "./js.js";
4
-
5
- describe("inference API snippets", () => {
6
- it("conversational llm", async () => {
7
- const model: ModelDataMinimal = {
8
- id: "meta-llama/Llama-3.1-8B-Instruct",
9
- pipeline_tag: "text-generation",
10
- tags: ["conversational"],
11
- inference: "",
12
- };
13
- const snippet = getJsInferenceSnippet(model, "api_token") as InferenceSnippet[];
14
-
15
- expect(snippet[0].content).toEqual(`import { HfInference } from "@huggingface/inference";
16
-
17
- const client = new HfInference("api_token");
18
-
19
- let out = "";
20
-
21
- const stream = client.chatCompletionStream({
22
- model: "meta-llama/Llama-3.1-8B-Instruct",
23
- messages: [
24
- {
25
- role: "user",
26
- content: "What is the capital of France?"
27
- }
28
- ],
29
- max_tokens: 500
30
- });
31
-
32
- for await (const chunk of stream) {
33
- if (chunk.choices && chunk.choices.length > 0) {
34
- const newContent = chunk.choices[0].delta.content;
35
- out += newContent;
36
- console.log(newContent);
37
- }
38
- }`);
39
- });
40
-
41
- it("conversational llm non-streaming", async () => {
42
- const model: ModelDataMinimal = {
43
- id: "meta-llama/Llama-3.1-8B-Instruct",
44
- pipeline_tag: "text-generation",
45
- tags: ["conversational"],
46
- inference: "",
47
- };
48
- const snippet = getJsInferenceSnippet(model, "api_token", { streaming: false }) as InferenceSnippet[];
49
-
50
- expect(snippet[0].content).toEqual(`import { HfInference } from "@huggingface/inference";
51
-
52
- const client = new HfInference("api_token");
53
-
54
- const chatCompletion = await client.chatCompletion({
55
- model: "meta-llama/Llama-3.1-8B-Instruct",
56
- messages: [
57
- {
58
- role: "user",
59
- content: "What is the capital of France?"
60
- }
61
- ],
62
- max_tokens: 500
63
- });
64
-
65
- console.log(chatCompletion.choices[0].message);`);
66
- });
67
-
68
- it("conversational vlm", async () => {
69
- const model: ModelDataMinimal = {
70
- id: "meta-llama/Llama-3.2-11B-Vision-Instruct",
71
- pipeline_tag: "image-text-to-text",
72
- tags: ["conversational"],
73
- inference: "",
74
- };
75
- const snippet = getJsInferenceSnippet(model, "api_token") as InferenceSnippet[];
76
-
77
- expect(snippet[0].content).toEqual(`import { HfInference } from "@huggingface/inference";
78
-
79
- const client = new HfInference("api_token");
80
-
81
- let out = "";
82
-
83
- const stream = client.chatCompletionStream({
84
- model: "meta-llama/Llama-3.2-11B-Vision-Instruct",
85
- messages: [
86
- {
87
- role: "user",
88
- content: [
89
- {
90
- type: "text",
91
- text: "Describe this image in one sentence."
92
- },
93
- {
94
- type: "image_url",
95
- image_url: {
96
- url: "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg"
97
- }
98
- }
99
- ]
100
- }
101
- ],
102
- max_tokens: 500
103
- });
104
-
105
- for await (const chunk of stream) {
106
- if (chunk.choices && chunk.choices.length > 0) {
107
- const newContent = chunk.choices[0].delta.content;
108
- out += newContent;
109
- console.log(newContent);
110
- }
111
- }`);
112
- });
113
-
114
- it("conversational llm", async () => {
115
- const model: ModelDataMinimal = {
116
- id: "meta-llama/Llama-3.1-8B-Instruct",
117
- pipeline_tag: "text-generation",
118
- tags: ["conversational"],
119
- inference: "",
120
- };
121
- const snippet = getJsInferenceSnippet(model, "api_token") as InferenceSnippet[];
122
-
123
- expect(snippet[0].content).toEqual(`import { HfInference } from "@huggingface/inference";
124
-
125
- const client = new HfInference("api_token");
126
-
127
- let out = "";
128
-
129
- const stream = client.chatCompletionStream({
130
- model: "meta-llama/Llama-3.1-8B-Instruct",
131
- messages: [
132
- {
133
- role: "user",
134
- content: "What is the capital of France?"
135
- }
136
- ],
137
- max_tokens: 500
138
- });
139
-
140
- for await (const chunk of stream) {
141
- if (chunk.choices && chunk.choices.length > 0) {
142
- const newContent = chunk.choices[0].delta.content;
143
- out += newContent;
144
- console.log(newContent);
145
- }
146
- }`);
147
- });
148
- });
@@ -1,144 +0,0 @@
1
- import type { InferenceSnippet, ModelDataMinimal } from "./types.js";
2
- import { describe, expect, it } from "vitest";
3
- import { getPythonInferenceSnippet } from "./python.js";
4
-
5
- describe("inference API snippets", () => {
6
- it("conversational llm", async () => {
7
- const model: ModelDataMinimal = {
8
- id: "meta-llama/Llama-3.1-8B-Instruct",
9
- pipeline_tag: "text-generation",
10
- tags: ["conversational"],
11
- inference: "",
12
- };
13
- const snippet = getPythonInferenceSnippet(model, "api_token") as InferenceSnippet[];
14
-
15
- expect(snippet[0].content).toEqual(`from huggingface_hub import InferenceClient
16
-
17
- client = InferenceClient(api_key="api_token")
18
-
19
- messages = [
20
- {
21
- "role": "user",
22
- "content": "What is the capital of France?"
23
- }
24
- ]
25
-
26
- stream = client.chat.completions.create(
27
- model="meta-llama/Llama-3.1-8B-Instruct",
28
- messages=messages,
29
- max_tokens=500,
30
- stream=True
31
- )
32
-
33
- for chunk in stream:
34
- print(chunk.choices[0].delta.content, end="")`);
35
- });
36
-
37
- it("conversational llm non-streaming", async () => {
38
- const model: ModelDataMinimal = {
39
- id: "meta-llama/Llama-3.1-8B-Instruct",
40
- pipeline_tag: "text-generation",
41
- tags: ["conversational"],
42
- inference: "",
43
- };
44
- const snippet = getPythonInferenceSnippet(model, "api_token", { streaming: false }) as InferenceSnippet[];
45
-
46
- expect(snippet[0].content).toEqual(`from huggingface_hub import InferenceClient
47
-
48
- client = InferenceClient(api_key="api_token")
49
-
50
- messages = [
51
- {
52
- "role": "user",
53
- "content": "What is the capital of France?"
54
- }
55
- ]
56
-
57
- completion = client.chat.completions.create(
58
- model="meta-llama/Llama-3.1-8B-Instruct",
59
- messages=messages,
60
- max_tokens=500
61
- )
62
-
63
- print(completion.choices[0].message)`);
64
- });
65
-
66
- it("conversational vlm", async () => {
67
- const model: ModelDataMinimal = {
68
- id: "meta-llama/Llama-3.2-11B-Vision-Instruct",
69
- pipeline_tag: "image-text-to-text",
70
- tags: ["conversational"],
71
- inference: "",
72
- };
73
- const snippet = getPythonInferenceSnippet(model, "api_token") as InferenceSnippet[];
74
-
75
- expect(snippet[0].content).toEqual(`from huggingface_hub import InferenceClient
76
-
77
- client = InferenceClient(api_key="api_token")
78
-
79
- messages = [
80
- {
81
- "role": "user",
82
- "content": [
83
- {
84
- "type": "text",
85
- "text": "Describe this image in one sentence."
86
- },
87
- {
88
- "type": "image_url",
89
- "image_url": {
90
- "url": "https://cdn.britannica.com/61/93061-050-99147DCE/Statue-of-Liberty-Island-New-York-Bay.jpg"
91
- }
92
- }
93
- ]
94
- }
95
- ]
96
-
97
- stream = client.chat.completions.create(
98
- model="meta-llama/Llama-3.2-11B-Vision-Instruct",
99
- messages=messages,
100
- max_tokens=500,
101
- stream=True
102
- )
103
-
104
- for chunk in stream:
105
- print(chunk.choices[0].delta.content, end="")`);
106
- });
107
-
108
- it("text-to-image", async () => {
109
- const model: ModelDataMinimal = {
110
- id: "black-forest-labs/FLUX.1-schnell",
111
- pipeline_tag: "text-to-image",
112
- tags: [],
113
- inference: "",
114
- };
115
- const snippets = getPythonInferenceSnippet(model, "api_token") as InferenceSnippet[];
116
-
117
- expect(snippets.length).toEqual(2);
118
-
119
- expect(snippets[0].client).toEqual("huggingface_hub");
120
- expect(snippets[0].content).toEqual(`from huggingface_hub import InferenceClient
121
- client = InferenceClient("black-forest-labs/FLUX.1-schnell", token="api_token")
122
-
123
- # output is a PIL.Image object
124
- image = client.text_to_image("Astronaut riding a horse")`);
125
-
126
- expect(snippets[1].client).toEqual("requests");
127
- expect(snippets[1].content).toEqual(`import requests
128
-
129
- API_URL = "https://api-inference.huggingface.co/models/black-forest-labs/FLUX.1-schnell"
130
- headers = {"Authorization": "Bearer api_token"}
131
-
132
- def query(payload):
133
- response = requests.post(API_URL, headers=headers, json=payload)
134
- return response.content
135
- image_bytes = query({
136
- "inputs": "Astronaut riding a horse",
137
- })
138
-
139
- # You can access the image with PIL.Image for example
140
- import io
141
- from PIL import Image
142
- image = Image.open(io.BytesIO(image_bytes))`);
143
- });
144
- });