@huggingface/inference 3.7.0 → 3.8.0

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 (141) hide show
  1. package/dist/index.cjs +1369 -941
  2. package/dist/index.js +1371 -943
  3. package/dist/src/lib/getInferenceProviderMapping.d.ts +21 -0
  4. package/dist/src/lib/getInferenceProviderMapping.d.ts.map +1 -0
  5. package/dist/src/lib/getProviderHelper.d.ts +37 -0
  6. package/dist/src/lib/getProviderHelper.d.ts.map +1 -0
  7. package/dist/src/lib/makeRequestOptions.d.ts +5 -5
  8. package/dist/src/lib/makeRequestOptions.d.ts.map +1 -1
  9. package/dist/src/providers/black-forest-labs.d.ts +14 -18
  10. package/dist/src/providers/black-forest-labs.d.ts.map +1 -1
  11. package/dist/src/providers/cerebras.d.ts +4 -2
  12. package/dist/src/providers/cerebras.d.ts.map +1 -1
  13. package/dist/src/providers/cohere.d.ts +5 -2
  14. package/dist/src/providers/cohere.d.ts.map +1 -1
  15. package/dist/src/providers/consts.d.ts +2 -3
  16. package/dist/src/providers/consts.d.ts.map +1 -1
  17. package/dist/src/providers/fal-ai.d.ts +50 -3
  18. package/dist/src/providers/fal-ai.d.ts.map +1 -1
  19. package/dist/src/providers/fireworks-ai.d.ts +5 -2
  20. package/dist/src/providers/fireworks-ai.d.ts.map +1 -1
  21. package/dist/src/providers/hf-inference.d.ts +126 -2
  22. package/dist/src/providers/hf-inference.d.ts.map +1 -1
  23. package/dist/src/providers/hyperbolic.d.ts +31 -2
  24. package/dist/src/providers/hyperbolic.d.ts.map +1 -1
  25. package/dist/src/providers/nebius.d.ts +20 -18
  26. package/dist/src/providers/nebius.d.ts.map +1 -1
  27. package/dist/src/providers/novita.d.ts +21 -18
  28. package/dist/src/providers/novita.d.ts.map +1 -1
  29. package/dist/src/providers/openai.d.ts +4 -2
  30. package/dist/src/providers/openai.d.ts.map +1 -1
  31. package/dist/src/providers/providerHelper.d.ts +182 -0
  32. package/dist/src/providers/providerHelper.d.ts.map +1 -0
  33. package/dist/src/providers/replicate.d.ts +23 -19
  34. package/dist/src/providers/replicate.d.ts.map +1 -1
  35. package/dist/src/providers/sambanova.d.ts +4 -2
  36. package/dist/src/providers/sambanova.d.ts.map +1 -1
  37. package/dist/src/providers/together.d.ts +32 -2
  38. package/dist/src/providers/together.d.ts.map +1 -1
  39. package/dist/src/snippets/getInferenceSnippets.d.ts +2 -1
  40. package/dist/src/snippets/getInferenceSnippets.d.ts.map +1 -1
  41. package/dist/src/tasks/audio/audioClassification.d.ts.map +1 -1
  42. package/dist/src/tasks/audio/automaticSpeechRecognition.d.ts.map +1 -1
  43. package/dist/src/tasks/audio/textToSpeech.d.ts.map +1 -1
  44. package/dist/src/tasks/audio/utils.d.ts +2 -1
  45. package/dist/src/tasks/audio/utils.d.ts.map +1 -1
  46. package/dist/src/tasks/custom/request.d.ts +0 -2
  47. package/dist/src/tasks/custom/request.d.ts.map +1 -1
  48. package/dist/src/tasks/custom/streamingRequest.d.ts +0 -2
  49. package/dist/src/tasks/custom/streamingRequest.d.ts.map +1 -1
  50. package/dist/src/tasks/cv/imageClassification.d.ts.map +1 -1
  51. package/dist/src/tasks/cv/imageSegmentation.d.ts.map +1 -1
  52. package/dist/src/tasks/cv/imageToImage.d.ts.map +1 -1
  53. package/dist/src/tasks/cv/imageToText.d.ts.map +1 -1
  54. package/dist/src/tasks/cv/objectDetection.d.ts.map +1 -1
  55. package/dist/src/tasks/cv/textToImage.d.ts.map +1 -1
  56. package/dist/src/tasks/cv/textToVideo.d.ts.map +1 -1
  57. package/dist/src/tasks/cv/zeroShotImageClassification.d.ts.map +1 -1
  58. package/dist/src/tasks/index.d.ts +6 -6
  59. package/dist/src/tasks/index.d.ts.map +1 -1
  60. package/dist/src/tasks/multimodal/documentQuestionAnswering.d.ts.map +1 -1
  61. package/dist/src/tasks/multimodal/visualQuestionAnswering.d.ts.map +1 -1
  62. package/dist/src/tasks/nlp/chatCompletion.d.ts.map +1 -1
  63. package/dist/src/tasks/nlp/chatCompletionStream.d.ts.map +1 -1
  64. package/dist/src/tasks/nlp/featureExtraction.d.ts.map +1 -1
  65. package/dist/src/tasks/nlp/fillMask.d.ts.map +1 -1
  66. package/dist/src/tasks/nlp/questionAnswering.d.ts.map +1 -1
  67. package/dist/src/tasks/nlp/sentenceSimilarity.d.ts.map +1 -1
  68. package/dist/src/tasks/nlp/summarization.d.ts.map +1 -1
  69. package/dist/src/tasks/nlp/tableQuestionAnswering.d.ts.map +1 -1
  70. package/dist/src/tasks/nlp/textClassification.d.ts.map +1 -1
  71. package/dist/src/tasks/nlp/textGeneration.d.ts.map +1 -1
  72. package/dist/src/tasks/nlp/textGenerationStream.d.ts.map +1 -1
  73. package/dist/src/tasks/nlp/tokenClassification.d.ts.map +1 -1
  74. package/dist/src/tasks/nlp/translation.d.ts.map +1 -1
  75. package/dist/src/tasks/nlp/zeroShotClassification.d.ts.map +1 -1
  76. package/dist/src/tasks/tabular/tabularClassification.d.ts.map +1 -1
  77. package/dist/src/tasks/tabular/tabularRegression.d.ts.map +1 -1
  78. package/dist/src/types.d.ts +5 -13
  79. package/dist/src/types.d.ts.map +1 -1
  80. package/dist/src/utils/request.d.ts +3 -2
  81. package/dist/src/utils/request.d.ts.map +1 -1
  82. package/package.json +3 -3
  83. package/src/lib/getInferenceProviderMapping.ts +96 -0
  84. package/src/lib/getProviderHelper.ts +270 -0
  85. package/src/lib/makeRequestOptions.ts +78 -97
  86. package/src/providers/black-forest-labs.ts +73 -22
  87. package/src/providers/cerebras.ts +6 -27
  88. package/src/providers/cohere.ts +9 -28
  89. package/src/providers/consts.ts +5 -2
  90. package/src/providers/fal-ai.ts +224 -77
  91. package/src/providers/fireworks-ai.ts +8 -29
  92. package/src/providers/hf-inference.ts +557 -34
  93. package/src/providers/hyperbolic.ts +107 -29
  94. package/src/providers/nebius.ts +65 -29
  95. package/src/providers/novita.ts +68 -32
  96. package/src/providers/openai.ts +6 -32
  97. package/src/providers/providerHelper.ts +354 -0
  98. package/src/providers/replicate.ts +124 -34
  99. package/src/providers/sambanova.ts +5 -30
  100. package/src/providers/together.ts +92 -28
  101. package/src/snippets/getInferenceSnippets.ts +39 -14
  102. package/src/snippets/templates.exported.ts +25 -25
  103. package/src/tasks/audio/audioClassification.ts +5 -8
  104. package/src/tasks/audio/audioToAudio.ts +4 -27
  105. package/src/tasks/audio/automaticSpeechRecognition.ts +5 -4
  106. package/src/tasks/audio/textToSpeech.ts +5 -29
  107. package/src/tasks/audio/utils.ts +2 -1
  108. package/src/tasks/custom/request.ts +3 -3
  109. package/src/tasks/custom/streamingRequest.ts +4 -3
  110. package/src/tasks/cv/imageClassification.ts +4 -8
  111. package/src/tasks/cv/imageSegmentation.ts +4 -9
  112. package/src/tasks/cv/imageToImage.ts +4 -7
  113. package/src/tasks/cv/imageToText.ts +4 -7
  114. package/src/tasks/cv/objectDetection.ts +4 -19
  115. package/src/tasks/cv/textToImage.ts +9 -137
  116. package/src/tasks/cv/textToVideo.ts +17 -64
  117. package/src/tasks/cv/zeroShotImageClassification.ts +4 -8
  118. package/src/tasks/index.ts +6 -6
  119. package/src/tasks/multimodal/documentQuestionAnswering.ts +4 -19
  120. package/src/tasks/multimodal/visualQuestionAnswering.ts +4 -12
  121. package/src/tasks/nlp/chatCompletion.ts +5 -20
  122. package/src/tasks/nlp/chatCompletionStream.ts +4 -3
  123. package/src/tasks/nlp/featureExtraction.ts +4 -19
  124. package/src/tasks/nlp/fillMask.ts +4 -17
  125. package/src/tasks/nlp/questionAnswering.ts +11 -26
  126. package/src/tasks/nlp/sentenceSimilarity.ts +4 -8
  127. package/src/tasks/nlp/summarization.ts +4 -7
  128. package/src/tasks/nlp/tableQuestionAnswering.ts +10 -30
  129. package/src/tasks/nlp/textClassification.ts +4 -9
  130. package/src/tasks/nlp/textGeneration.ts +11 -79
  131. package/src/tasks/nlp/textGenerationStream.ts +3 -1
  132. package/src/tasks/nlp/tokenClassification.ts +11 -23
  133. package/src/tasks/nlp/translation.ts +4 -7
  134. package/src/tasks/nlp/zeroShotClassification.ts +11 -21
  135. package/src/tasks/tabular/tabularClassification.ts +4 -7
  136. package/src/tasks/tabular/tabularRegression.ts +4 -7
  137. package/src/types.ts +5 -14
  138. package/src/utils/request.ts +7 -4
  139. package/dist/src/lib/getProviderModelId.d.ts +0 -10
  140. package/dist/src/lib/getProviderModelId.d.ts.map +0 -1
  141. package/src/lib/getProviderModelId.ts +0 -74
@@ -1 +1 @@
1
- {"version":3,"file":"textGenerationStream.d.ts","sourceRoot":"","sources":["../../../../src/tasks/nlp/textGenerationStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,WAAW,yBAAyB;IACzC,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc;IACd,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gCAAgC;IAChD,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kCAAkC;IAClD,qBAAqB;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,aAAa,EAAE,gCAAgC,CAAC;IAChD,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,EAAE,gCAAgC,EAAE,CAAC;IAC5C,uBAAuB;IACvB,MAAM,EAAE,yBAAyB,EAAE,CAAC;CACpC;AAED,MAAM,MAAM,gCAAgC;AAC3C,qDAAqD;AACnD,QAAQ;AACV,oDAAoD;GAClD,WAAW;AACb,8DAA8D;GAC5D,eAAe,CAAC;AAEnB,MAAM,WAAW,2BAA2B;IAC3C,+BAA+B;IAC/B,aAAa,EAAE,gCAAgC,CAAC;IAChD,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,EAAE,gCAAgC,EAAE,CAAC;IAC5C,MAAM;IACN,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,kCAAkC,EAAE,CAAC;CACzD;AAED,MAAM,WAAW,0BAA0B;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,KAAK,EAAE,yBAAyB,CAAC;IACjC;;;OAGG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;OAGG;IACH,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAuB,oBAAoB,CAC1C,IAAI,EAAE,QAAQ,GAAG,mBAAmB,EACpC,OAAO,CAAC,EAAE,OAAO,GACf,cAAc,CAAC,0BAA0B,CAAC,CAK5C"}
1
+ {"version":3,"file":"textGenerationStream.d.ts","sourceRoot":"","sources":["../../../../src/tasks/nlp/textGenerationStream.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,WAAW,yBAAyB;IACzC,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb,cAAc;IACd,OAAO,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,OAAO,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,gCAAgC;IAChD,wCAAwC;IACxC,EAAE,EAAE,MAAM,CAAC;IACX,iBAAiB;IACjB,IAAI,EAAE,MAAM,CAAC;IACb;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,kCAAkC;IAClD,qBAAqB;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,+BAA+B;IAC/B,aAAa,EAAE,gCAAgC,CAAC;IAChD,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,EAAE,gCAAgC,EAAE,CAAC;IAC5C,uBAAuB;IACvB,MAAM,EAAE,yBAAyB,EAAE,CAAC;CACpC;AAED,MAAM,MAAM,gCAAgC;AAC3C,qDAAqD;AACnD,QAAQ;AACV,oDAAoD;GAClD,WAAW;AACb,8DAA8D;GAC5D,eAAe,CAAC;AAEnB,MAAM,WAAW,2BAA2B;IAC3C,+BAA+B;IAC/B,aAAa,EAAE,gCAAgC,CAAC;IAChD,iCAAiC;IACjC,gBAAgB,EAAE,MAAM,CAAC;IACzB,8CAA8C;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,oBAAoB;IACpB,OAAO,EAAE,gCAAgC,EAAE,CAAC;IAC5C,MAAM;IACN,MAAM,EAAE,yBAAyB,EAAE,CAAC;IACpC,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,kCAAkC,EAAE,CAAC;CACzD;AAED,MAAM,WAAW,0BAA0B;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,qCAAqC;IACrC,KAAK,EAAE,yBAAyB,CAAC;IACjC;;;OAGG;IACH,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B;;;OAGG;IACH,OAAO,EAAE,2BAA2B,GAAG,IAAI,CAAC;CAC5C;AAED;;GAEG;AACH,wBAAuB,oBAAoB,CAC1C,IAAI,EAAE,QAAQ,GAAG,mBAAmB,EACpC,OAAO,CAAC,EAAE,OAAO,GACf,cAAc,CAAC,0BAA0B,CAAC,CAM5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"tokenClassification.d.ts","sourceRoot":"","sources":["../../../../src/tasks/nlp/tokenClassification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE9F,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAIrD,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,wBAAwB,CAAC;AAE1E;;GAEG;AACH,wBAAsB,mBAAmB,CACxC,IAAI,EAAE,uBAAuB,EAC7B,OAAO,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,yBAAyB,CAAC,CAsBpC"}
1
+ {"version":3,"file":"tokenClassification.d.ts","sourceRoot":"","sources":["../../../../src/tasks/nlp/tokenClassification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,wBAAwB,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAE9F,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,uBAAuB,GAAG,QAAQ,GAAG,wBAAwB,CAAC;AAE1E;;GAEG;AACH,wBAAsB,mBAAmB,CACxC,IAAI,EAAE,uBAAuB,EAC7B,OAAO,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,yBAAyB,CAAC,CAWpC"}
@@ -1 +1 @@
1
- {"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../../../../src/tasks/nlp/translation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAC1D;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAUtG"}
1
+ {"version":3,"file":"translation.d.ts","sourceRoot":"","sources":["../../../../src/tasks/nlp/translation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAE9E,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,eAAe,GAAG,QAAQ,GAAG,gBAAgB,CAAC;AAC1D;;GAEG;AACH,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,EAAE,OAAO,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAOtG"}
@@ -1 +1 @@
1
- {"version":3,"file":"zeroShotClassification.d.ts","sourceRoot":"","sources":["../../../../src/tasks/nlp/zeroShotClassification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAEpG,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAIrD,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,2BAA2B,CAAC;AAEhF;;GAEG;AACH,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,0BAA0B,EAChC,OAAO,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,4BAA4B,CAAC,CAoBvC"}
1
+ {"version":3,"file":"zeroShotClassification.d.ts","sourceRoot":"","sources":["../../../../src/tasks/nlp/zeroShotClassification.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,2BAA2B,EAAE,4BAA4B,EAAE,MAAM,oBAAoB,CAAC;AAEpG,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,0BAA0B,GAAG,QAAQ,GAAG,2BAA2B,CAAC;AAEhF;;GAEG;AACH,wBAAsB,sBAAsB,CAC3C,IAAI,EAAE,0BAA0B,EAChC,OAAO,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,4BAA4B,CAAC,CAWvC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tabularClassification.d.ts","sourceRoot":"","sources":["../../../../src/tasks/tabular/tabularClassification.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG;IAClD,MAAM,EAAE;QACP;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;KAC/B,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,MAAM,EAAE,CAAC;AAEnD;;;;GAIG;AACH,wBAAsB,qBAAqB,CAC1C,IAAI,EAAE,yBAAyB,EAC/B,OAAO,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,2BAA2B,CAAC,CAUtC"}
1
+ {"version":3,"file":"tabularClassification.d.ts","sourceRoot":"","sources":["../../../../src/tasks/tabular/tabularClassification.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,yBAAyB,GAAG,QAAQ,GAAG;IAClD,MAAM,EAAE;QACP;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;KAC/B,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,2BAA2B,GAAG,MAAM,EAAE,CAAC;AAEnD;;;;GAIG;AACH,wBAAsB,qBAAqB,CAC1C,IAAI,EAAE,yBAAyB,EAC/B,OAAO,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,2BAA2B,CAAC,CAOtC"}
@@ -1 +1 @@
1
- {"version":3,"file":"tabularRegression.d.ts","sourceRoot":"","sources":["../../../../src/tasks/tabular/tabularRegression.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG;IAC9C,MAAM,EAAE;QACP;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;KAC/B,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,EAAE,CAAC;AAE/C;;;;GAIG;AACH,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,uBAAuB,CAAC,CAUlC"}
1
+ {"version":3,"file":"tabularRegression.d.ts","sourceRoot":"","sources":["../../../../src/tasks/tabular/tabularRegression.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAGrD,MAAM,MAAM,qBAAqB,GAAG,QAAQ,GAAG;IAC9C,MAAM,EAAE;QACP;;WAEG;QACH,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;KAC/B,CAAC;CACF,CAAC;AAEF;;GAEG;AACH,MAAM,MAAM,uBAAuB,GAAG,MAAM,EAAE,CAAC;AAE/C;;;;GAIG;AACH,wBAAsB,iBAAiB,CACtC,IAAI,EAAE,qBAAqB,EAC3B,OAAO,CAAC,EAAE,OAAO,GACf,OAAO,CAAC,uBAAuB,CAAC,CAOlC"}
@@ -1,4 +1,5 @@
1
1
  import type { ChatCompletionInput, PipelineType } from "@huggingface/tasks";
2
+ import type { InferenceProviderModelMapping } from "./lib/getInferenceProviderMapping";
2
3
  /**
3
4
  * HF model id, like "meta-llama/Llama-3.3-70B-Instruct"
4
5
  */
@@ -28,7 +29,7 @@ export interface Options {
28
29
  */
29
30
  billTo?: string;
30
31
  }
31
- export type InferenceTask = Exclude<PipelineType, "other">;
32
+ export type InferenceTask = Exclude<PipelineType, "other"> | "conversational";
32
33
  export declare const INFERENCE_PROVIDERS: readonly ["black-forest-labs", "cerebras", "cohere", "fal-ai", "fireworks-ai", "hf-inference", "hyperbolic", "nebius", "novita", "openai", "replicate", "sambanova", "together"];
33
34
  export type InferenceProvider = (typeof INFERENCE_PROVIDERS)[number];
34
35
  export interface BaseArgs {
@@ -75,13 +76,6 @@ export type RequestArgs = BaseArgs & ({
75
76
  } | ChatCompletionInput) & {
76
77
  parameters?: Record<string, unknown>;
77
78
  };
78
- export interface ProviderConfig {
79
- makeBaseUrl: ((task?: InferenceTask) => string) | (() => string);
80
- makeBody: (params: BodyParams) => Record<string, unknown>;
81
- makeHeaders: (params: HeaderParams) => Record<string, string>;
82
- makeUrl: (params: UrlParams) => string;
83
- clientSideRoutingOnly?: boolean;
84
- }
85
79
  export type AuthMethod = "none" | "hf-token" | "credentials-include" | "provider-key";
86
80
  export interface HeaderParams {
87
81
  accessToken?: string;
@@ -89,15 +83,13 @@ export interface HeaderParams {
89
83
  }
90
84
  export interface UrlParams {
91
85
  authMethod: AuthMethod;
92
- baseUrl: string;
93
86
  model: string;
94
87
  task?: InferenceTask;
95
- chatCompletion?: boolean;
96
88
  }
97
- export interface BodyParams {
98
- args: Record<string, unknown>;
99
- chatCompletion?: boolean;
89
+ export interface BodyParams<T extends Record<string, unknown> = Record<string, unknown>> {
90
+ args: T;
100
91
  model: string;
92
+ mapping?: InferenceProviderModelMapping | undefined;
101
93
  task?: InferenceTask;
102
94
  }
103
95
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAE5E;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,CAAC;AAE3D,eAAO,MAAM,mBAAmB,kLActB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,MAAM,WAAW,QAAQ;IACxB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GACjC,CACG;IAAE,IAAI,EAAE,IAAI,GAAG,WAAW,CAAA;CAAE,GAC5B;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GACnB;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACrB,mBAAmB,CACrB,GAAG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAEH,MAAM,WAAW,cAAc;IAC9B,WAAW,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,aAAa,KAAK,MAAM,CAAC,GAAG,CAAC,MAAM,MAAM,CAAC,CAAC;IACjE,QAAQ,EAAE,CAAC,MAAM,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC1D,WAAW,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC9D,OAAO,EAAE,CAAC,MAAM,EAAE,SAAS,KAAK,MAAM,CAAC;IACvC,qBAAqB,CAAC,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,qBAAqB,GAAG,cAAc,CAAC;AAEtF,MAAM,WAAW,YAAY;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,UAAU;IAC1B,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAC5E,OAAO,KAAK,EAAE,6BAA6B,EAAE,MAAM,mCAAmC,CAAC;AAEvF;;GAEG;AACH,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAE7B,MAAM,WAAW,OAAO;IACvB;;OAEG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB;;OAEG;IACH,KAAK,CAAC,EAAE,OAAO,KAAK,CAAC;IACrB;;OAEG;IACH,MAAM,CAAC,EAAE,WAAW,CAAC;IAErB;;OAEG;IACH,kBAAkB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAEtC;;;;;OAKG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,aAAa,GAAG,OAAO,CAAC,YAAY,EAAE,OAAO,CAAC,GAAG,gBAAgB,CAAC;AAE9E,eAAO,MAAM,mBAAmB,kLActB,CAAC;AAEX,MAAM,MAAM,iBAAiB,GAAG,CAAC,OAAO,mBAAmB,CAAC,CAAC,MAAM,CAAC,CAAC;AAErE,MAAM,WAAW,QAAQ;IACxB;;;;;;OAMG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,OAAO,CAAC;IAEhB;;;;OAIG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,iBAAiB,CAAC;CAC7B;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GACjC,CACG;IAAE,IAAI,EAAE,IAAI,GAAG,WAAW,CAAA;CAAE,GAC5B;IAAE,MAAM,EAAE,OAAO,CAAA;CAAE,GACnB;IAAE,MAAM,EAAE,MAAM,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,GAChB;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GACrB,mBAAmB,CACrB,GAAG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACrC,CAAC;AAEH,MAAM,MAAM,UAAU,GAAG,MAAM,GAAG,UAAU,GAAG,qBAAqB,GAAG,cAAc,CAAC;AAEtF,MAAM,WAAW,YAAY;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,UAAU,CAAC;CACvB;AAED,MAAM,WAAW,SAAS;IACzB,UAAU,EAAE,UAAU,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB;AAED,MAAM,WAAW,UAAU,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IACtF,IAAI,EAAE,CAAC,CAAC;IACR,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,6BAA6B,GAAG,SAAS,CAAC;IACpD,IAAI,CAAC,EAAE,aAAa,CAAC;CACrB"}
@@ -1,3 +1,4 @@
1
+ import type { getProviderHelper } from "../lib/getProviderHelper";
1
2
  import type { InferenceTask, Options, RequestArgs } from "../types";
2
3
  export interface ResponseWrapper<T> {
3
4
  data: T;
@@ -9,7 +10,7 @@ export interface ResponseWrapper<T> {
9
10
  /**
10
11
  * Primitive to make custom calls to the inference provider
11
12
  */
12
- export declare function innerRequest<T>(args: RequestArgs, options?: Options & {
13
+ export declare function innerRequest<T>(args: RequestArgs, providerHelper: ReturnType<typeof getProviderHelper>, options?: Options & {
13
14
  /** In most cases (unless we pass a endpointUrl) we know the task */
14
15
  task?: InferenceTask;
15
16
  /** Is chat completion compatible */
@@ -18,7 +19,7 @@ export declare function innerRequest<T>(args: RequestArgs, options?: Options & {
18
19
  /**
19
20
  * Primitive to make custom inference calls that expect server-sent events, and returns the response through a generator
20
21
  */
21
- export declare function innerStreamingRequest<T>(args: RequestArgs, options?: Options & {
22
+ export declare function innerStreamingRequest<T>(args: RequestArgs, providerHelper: ReturnType<typeof getProviderHelper>, options?: Options & {
22
23
  /** In most cases (unless we pass a endpointUrl) we know the task */
23
24
  task?: InferenceTask;
24
25
  /** Is chat completion compatible */
@@ -1 +1 @@
1
- {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/utils/request.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIpE,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC;IACR,cAAc,EAAE;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,WAAW,CAAC;KAClB,CAAC;CACF;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EACnC,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,GACC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAoC7B;AAED;;GAEG;AACH,wBAAuB,qBAAqB,CAAC,CAAC,EAC7C,IAAI,EAAE,WAAW,EACjB,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,GACC,cAAc,CAAC,CAAC,CAAC,CAuFnB"}
1
+ {"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../../../src/utils/request.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,OAAO,KAAK,EAAE,aAAa,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAIpE,MAAM,WAAW,eAAe,CAAC,CAAC;IACjC,IAAI,EAAE,CAAC,CAAC;IACR,cAAc,EAAE;QACf,GAAG,EAAE,MAAM,CAAC;QACZ,IAAI,EAAE,WAAW,CAAC;KAClB,CAAC;CACF;AAED;;GAEG;AACH,wBAAsB,YAAY,CAAC,CAAC,EACnC,IAAI,EAAE,WAAW,EACjB,cAAc,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACpD,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,GACC,OAAO,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,CAoC7B;AAED;;GAEG;AACH,wBAAuB,qBAAqB,CAAC,CAAC,EAC7C,IAAI,EAAE,WAAW,EACjB,cAAc,EAAE,UAAU,CAAC,OAAO,iBAAiB,CAAC,EACpD,OAAO,CAAC,EAAE,OAAO,GAAG;IACnB,oEAAoE;IACpE,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,oCAAoC;IACpC,cAAc,CAAC,EAAE,OAAO,CAAC;CACzB,GACC,cAAc,CAAC,CAAC,CAAC,CAuFnB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@huggingface/inference",
3
- "version": "3.7.0",
3
+ "version": "3.8.0",
4
4
  "packageManager": "pnpm@8.10.5",
5
5
  "license": "MIT",
6
6
  "author": "Hugging Face and Tim Mikeladze <tim.mikeladze@gmail.com>",
@@ -40,8 +40,8 @@
40
40
  },
41
41
  "type": "module",
42
42
  "dependencies": {
43
- "@huggingface/tasks": "^0.18.6",
44
- "@huggingface/jinja": "^0.3.3"
43
+ "@huggingface/tasks": "^0.18.7",
44
+ "@huggingface/jinja": "^0.3.4"
45
45
  },
46
46
  "devDependencies": {
47
47
  "@types/node": "18.13.0"
@@ -0,0 +1,96 @@
1
+ import type { WidgetType } from "@huggingface/tasks";
2
+ import type { InferenceProvider, ModelId } from "../types";
3
+ import { HF_HUB_URL } from "../config";
4
+ import { HARDCODED_MODEL_INFERENCE_MAPPING } from "../providers/consts";
5
+ import { EQUIVALENT_SENTENCE_TRANSFORMERS_TASKS } from "../providers/hf-inference";
6
+ import { typedInclude } from "../utils/typedInclude";
7
+
8
+ export const inferenceProviderMappingCache = new Map<ModelId, InferenceProviderMapping>();
9
+
10
+ export type InferenceProviderMapping = Partial<
11
+ Record<InferenceProvider, Omit<InferenceProviderModelMapping, "hfModelId" | "adapterWeightsPath">>
12
+ >;
13
+
14
+ export interface InferenceProviderModelMapping {
15
+ adapter?: string;
16
+ adapterWeightsPath?: string;
17
+ hfModelId: ModelId;
18
+ providerId: string;
19
+ status: "live" | "staging";
20
+ task: WidgetType;
21
+ }
22
+
23
+ export async function getInferenceProviderMapping(
24
+ params: {
25
+ accessToken?: string;
26
+ modelId: ModelId;
27
+ provider: InferenceProvider;
28
+ task: WidgetType;
29
+ },
30
+ options: {
31
+ fetch?: (input: RequestInfo, init?: RequestInit) => Promise<Response>;
32
+ }
33
+ ): Promise<InferenceProviderModelMapping | null> {
34
+ if (HARDCODED_MODEL_INFERENCE_MAPPING[params.provider][params.modelId]) {
35
+ return HARDCODED_MODEL_INFERENCE_MAPPING[params.provider][params.modelId];
36
+ }
37
+ let inferenceProviderMapping: InferenceProviderMapping | null;
38
+ if (inferenceProviderMappingCache.has(params.modelId)) {
39
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
40
+ inferenceProviderMapping = inferenceProviderMappingCache.get(params.modelId)!;
41
+ } else {
42
+ const resp = await (options?.fetch ?? fetch)(
43
+ `${HF_HUB_URL}/api/models/${params.modelId}?expand[]=inferenceProviderMapping`,
44
+ {
45
+ headers: params.accessToken?.startsWith("hf_") ? { Authorization: `Bearer ${params.accessToken}` } : {},
46
+ }
47
+ );
48
+ if (resp.status === 404) {
49
+ throw new Error(`Model ${params.modelId} does not exist`);
50
+ }
51
+ inferenceProviderMapping = await resp
52
+ .json()
53
+ .then((json) => json.inferenceProviderMapping)
54
+ .catch(() => null);
55
+ }
56
+
57
+ if (!inferenceProviderMapping) {
58
+ throw new Error(`We have not been able to find inference provider information for model ${params.modelId}.`);
59
+ }
60
+
61
+ const providerMapping = inferenceProviderMapping[params.provider];
62
+ if (providerMapping) {
63
+ const equivalentTasks =
64
+ params.provider === "hf-inference" && typedInclude(EQUIVALENT_SENTENCE_TRANSFORMERS_TASKS, params.task)
65
+ ? EQUIVALENT_SENTENCE_TRANSFORMERS_TASKS
66
+ : [params.task];
67
+ if (!typedInclude(equivalentTasks, providerMapping.task)) {
68
+ throw new Error(
69
+ `Model ${params.modelId} is not supported for task ${params.task} and provider ${params.provider}. Supported task: ${providerMapping.task}.`
70
+ );
71
+ }
72
+ if (providerMapping.status === "staging") {
73
+ console.warn(
74
+ `Model ${params.modelId} is in staging mode for provider ${params.provider}. Meant for test purposes only.`
75
+ );
76
+ }
77
+ if (providerMapping.adapter === "lora") {
78
+ const treeResp = await (options?.fetch ?? fetch)(`${HF_HUB_URL}/api/models/${params.modelId}/tree/main`);
79
+ if (!treeResp.ok) {
80
+ throw new Error(`Unable to fetch the model tree for ${params.modelId}.`);
81
+ }
82
+ const tree: Array<{ type: "file" | "directory"; path: string }> = await treeResp.json();
83
+ const adapterWeightsPath = tree.find(({ type, path }) => type === "file" && path.endsWith(".safetensors"))?.path;
84
+ if (!adapterWeightsPath) {
85
+ throw new Error(`No .safetensors file found in the model tree for ${params.modelId}.`);
86
+ }
87
+ return {
88
+ ...providerMapping,
89
+ hfModelId: params.modelId,
90
+ adapterWeightsPath,
91
+ };
92
+ }
93
+ return { ...providerMapping, hfModelId: params.modelId };
94
+ }
95
+ return null;
96
+ }
@@ -0,0 +1,270 @@
1
+ import * as BlackForestLabs from "../providers/black-forest-labs";
2
+ import * as Cerebras from "../providers/cerebras";
3
+ import * as Cohere from "../providers/cohere";
4
+ import * as FalAI from "../providers/fal-ai";
5
+ import * as Fireworks from "../providers/fireworks-ai";
6
+ import * as HFInference from "../providers/hf-inference";
7
+
8
+ import * as Hyperbolic from "../providers/hyperbolic";
9
+ import * as Nebius from "../providers/nebius";
10
+ import * as Novita from "../providers/novita";
11
+ import * as OpenAI from "../providers/openai";
12
+ import type {
13
+ AudioClassificationTaskHelper,
14
+ AudioToAudioTaskHelper,
15
+ AutomaticSpeechRecognitionTaskHelper,
16
+ ConversationalTaskHelper,
17
+ DocumentQuestionAnsweringTaskHelper,
18
+ FeatureExtractionTaskHelper,
19
+ FillMaskTaskHelper,
20
+ ImageClassificationTaskHelper,
21
+ ImageSegmentationTaskHelper,
22
+ ImageToImageTaskHelper,
23
+ ImageToTextTaskHelper,
24
+ ObjectDetectionTaskHelper,
25
+ QuestionAnsweringTaskHelper,
26
+ SentenceSimilarityTaskHelper,
27
+ SummarizationTaskHelper,
28
+ TableQuestionAnsweringTaskHelper,
29
+ TabularClassificationTaskHelper,
30
+ TabularRegressionTaskHelper,
31
+ TaskProviderHelper,
32
+ TextClassificationTaskHelper,
33
+ TextGenerationTaskHelper,
34
+ TextToAudioTaskHelper,
35
+ TextToImageTaskHelper,
36
+ TextToSpeechTaskHelper,
37
+ TextToVideoTaskHelper,
38
+ TokenClassificationTaskHelper,
39
+ TranslationTaskHelper,
40
+ VisualQuestionAnsweringTaskHelper,
41
+ ZeroShotClassificationTaskHelper,
42
+ ZeroShotImageClassificationTaskHelper,
43
+ } from "../providers/providerHelper";
44
+ import * as Replicate from "../providers/replicate";
45
+ import * as Sambanova from "../providers/sambanova";
46
+ import * as Together from "../providers/together";
47
+ import type { InferenceProvider, InferenceTask } from "../types";
48
+
49
+ export const PROVIDERS: Record<InferenceProvider, Partial<Record<InferenceTask, TaskProviderHelper>>> = {
50
+ "black-forest-labs": {
51
+ "text-to-image": new BlackForestLabs.BlackForestLabsTextToImageTask(),
52
+ },
53
+ cerebras: {
54
+ conversational: new Cerebras.CerebrasConversationalTask(),
55
+ },
56
+ cohere: {
57
+ conversational: new Cohere.CohereConversationalTask(),
58
+ },
59
+ "fal-ai": {
60
+ "text-to-image": new FalAI.FalAITextToImageTask(),
61
+ "text-to-speech": new FalAI.FalAITextToSpeechTask(),
62
+ "text-to-video": new FalAI.FalAITextToVideoTask(),
63
+ "automatic-speech-recognition": new FalAI.FalAIAutomaticSpeechRecognitionTask(),
64
+ },
65
+ "hf-inference": {
66
+ "text-to-image": new HFInference.HFInferenceTextToImageTask(),
67
+ conversational: new HFInference.HFInferenceConversationalTask(),
68
+ "text-generation": new HFInference.HFInferenceTextGenerationTask(),
69
+ "text-classification": new HFInference.HFInferenceTextClassificationTask(),
70
+ "question-answering": new HFInference.HFInferenceQuestionAnsweringTask(),
71
+ "audio-classification": new HFInference.HFInferenceAudioClassificationTask(),
72
+ "automatic-speech-recognition": new HFInference.HFInferenceAutomaticSpeechRecognitionTask(),
73
+ "fill-mask": new HFInference.HFInferenceFillMaskTask(),
74
+ "feature-extraction": new HFInference.HFInferenceFeatureExtractionTask(),
75
+ "image-classification": new HFInference.HFInferenceImageClassificationTask(),
76
+ "image-segmentation": new HFInference.HFInferenceImageSegmentationTask(),
77
+ "document-question-answering": new HFInference.HFInferenceDocumentQuestionAnsweringTask(),
78
+ "image-to-text": new HFInference.HFInferenceImageToTextTask(),
79
+ "object-detection": new HFInference.HFInferenceObjectDetectionTask(),
80
+ "audio-to-audio": new HFInference.HFInferenceAudioToAudioTask(),
81
+ "zero-shot-image-classification": new HFInference.HFInferenceZeroShotImageClassificationTask(),
82
+ "zero-shot-classification": new HFInference.HFInferenceZeroShotClassificationTask(),
83
+ "image-to-image": new HFInference.HFInferenceImageToImageTask(),
84
+ "sentence-similarity": new HFInference.HFInferenceSentenceSimilarityTask(),
85
+ "table-question-answering": new HFInference.HFInferenceTableQuestionAnsweringTask(),
86
+ "tabular-classification": new HFInference.HFInferenceTabularClassificationTask(),
87
+ "text-to-speech": new HFInference.HFInferenceTextToSpeechTask(),
88
+ "token-classification": new HFInference.HFInferenceTokenClassificationTask(),
89
+ translation: new HFInference.HFInferenceTranslationTask(),
90
+ summarization: new HFInference.HFInferenceSummarizationTask(),
91
+ "visual-question-answering": new HFInference.HFInferenceVisualQuestionAnsweringTask(),
92
+ "tabular-regression": new HFInference.HFInferenceTabularRegressionTask(),
93
+ "text-to-audio": new HFInference.HFInferenceTextToAudioTask(),
94
+ },
95
+ "fireworks-ai": {
96
+ conversational: new Fireworks.FireworksConversationalTask(),
97
+ },
98
+ hyperbolic: {
99
+ "text-to-image": new Hyperbolic.HyperbolicTextToImageTask(),
100
+ conversational: new Hyperbolic.HyperbolicConversationalTask(),
101
+ "text-generation": new Hyperbolic.HyperbolicTextGenerationTask(),
102
+ },
103
+ nebius: {
104
+ "text-to-image": new Nebius.NebiusTextToImageTask(),
105
+ conversational: new Nebius.NebiusConversationalTask(),
106
+ "text-generation": new Nebius.NebiusTextGenerationTask(),
107
+ },
108
+ novita: {
109
+ conversational: new Novita.NovitaConversationalTask(),
110
+ "text-generation": new Novita.NovitaTextGenerationTask(),
111
+ },
112
+ openai: {
113
+ conversational: new OpenAI.OpenAIConversationalTask(),
114
+ },
115
+ replicate: {
116
+ "text-to-image": new Replicate.ReplicateTextToImageTask(),
117
+ "text-to-speech": new Replicate.ReplicateTextToSpeechTask(),
118
+ "text-to-video": new Replicate.ReplicateTextToVideoTask(),
119
+ },
120
+ sambanova: {
121
+ conversational: new Sambanova.SambanovaConversationalTask(),
122
+ },
123
+ together: {
124
+ "text-to-image": new Together.TogetherTextToImageTask(),
125
+ conversational: new Together.TogetherConversationalTask(),
126
+ "text-generation": new Together.TogetherTextGenerationTask(),
127
+ },
128
+ };
129
+
130
+ /**
131
+ * Get provider helper instance by name and task
132
+ */
133
+ export function getProviderHelper(
134
+ provider: InferenceProvider,
135
+ task: "text-to-image"
136
+ ): TextToImageTaskHelper & TaskProviderHelper;
137
+ export function getProviderHelper(
138
+ provider: InferenceProvider,
139
+ task: "conversational"
140
+ ): ConversationalTaskHelper & TaskProviderHelper;
141
+ export function getProviderHelper(
142
+ provider: InferenceProvider,
143
+ task: "text-generation"
144
+ ): TextGenerationTaskHelper & TaskProviderHelper;
145
+ export function getProviderHelper(
146
+ provider: InferenceProvider,
147
+ task: "text-to-speech"
148
+ ): TextToSpeechTaskHelper & TaskProviderHelper;
149
+ export function getProviderHelper(
150
+ provider: InferenceProvider,
151
+ task: "text-to-audio"
152
+ ): TextToAudioTaskHelper & TaskProviderHelper;
153
+ export function getProviderHelper(
154
+ provider: InferenceProvider,
155
+ task: "automatic-speech-recognition"
156
+ ): AutomaticSpeechRecognitionTaskHelper & TaskProviderHelper;
157
+ export function getProviderHelper(
158
+ provider: InferenceProvider,
159
+ task: "text-to-video"
160
+ ): TextToVideoTaskHelper & TaskProviderHelper;
161
+ export function getProviderHelper(
162
+ provider: InferenceProvider,
163
+ task: "text-classification"
164
+ ): TextClassificationTaskHelper & TaskProviderHelper;
165
+ export function getProviderHelper(
166
+ provider: InferenceProvider,
167
+ task: "question-answering"
168
+ ): QuestionAnsweringTaskHelper & TaskProviderHelper;
169
+ export function getProviderHelper(
170
+ provider: InferenceProvider,
171
+ task: "audio-classification"
172
+ ): AudioClassificationTaskHelper & TaskProviderHelper;
173
+ export function getProviderHelper(
174
+ provider: InferenceProvider,
175
+ task: "audio-to-audio"
176
+ ): AudioToAudioTaskHelper & TaskProviderHelper;
177
+ export function getProviderHelper(
178
+ provider: InferenceProvider,
179
+ task: "fill-mask"
180
+ ): FillMaskTaskHelper & TaskProviderHelper;
181
+ export function getProviderHelper(
182
+ provider: InferenceProvider,
183
+ task: "feature-extraction"
184
+ ): FeatureExtractionTaskHelper & TaskProviderHelper;
185
+ export function getProviderHelper(
186
+ provider: InferenceProvider,
187
+ task: "image-classification"
188
+ ): ImageClassificationTaskHelper & TaskProviderHelper;
189
+ export function getProviderHelper(
190
+ provider: InferenceProvider,
191
+ task: "image-segmentation"
192
+ ): ImageSegmentationTaskHelper & TaskProviderHelper;
193
+ export function getProviderHelper(
194
+ provider: InferenceProvider,
195
+ task: "document-question-answering"
196
+ ): DocumentQuestionAnsweringTaskHelper & TaskProviderHelper;
197
+ export function getProviderHelper(
198
+ provider: InferenceProvider,
199
+ task: "image-to-text"
200
+ ): ImageToTextTaskHelper & TaskProviderHelper;
201
+ export function getProviderHelper(
202
+ provider: InferenceProvider,
203
+ task: "object-detection"
204
+ ): ObjectDetectionTaskHelper & TaskProviderHelper;
205
+ export function getProviderHelper(
206
+ provider: InferenceProvider,
207
+ task: "zero-shot-image-classification"
208
+ ): ZeroShotImageClassificationTaskHelper & TaskProviderHelper;
209
+ export function getProviderHelper(
210
+ provider: InferenceProvider,
211
+ task: "zero-shot-classification"
212
+ ): ZeroShotClassificationTaskHelper & TaskProviderHelper;
213
+ export function getProviderHelper(
214
+ provider: InferenceProvider,
215
+ task: "image-to-image"
216
+ ): ImageToImageTaskHelper & TaskProviderHelper;
217
+ export function getProviderHelper(
218
+ provider: InferenceProvider,
219
+ task: "sentence-similarity"
220
+ ): SentenceSimilarityTaskHelper & TaskProviderHelper;
221
+ export function getProviderHelper(
222
+ provider: InferenceProvider,
223
+ task: "table-question-answering"
224
+ ): TableQuestionAnsweringTaskHelper & TaskProviderHelper;
225
+ export function getProviderHelper(
226
+ provider: InferenceProvider,
227
+ task: "tabular-classification"
228
+ ): TabularClassificationTaskHelper & TaskProviderHelper;
229
+ export function getProviderHelper(
230
+ provider: InferenceProvider,
231
+ task: "tabular-regression"
232
+ ): TabularRegressionTaskHelper & TaskProviderHelper;
233
+ export function getProviderHelper(
234
+ provider: InferenceProvider,
235
+ task: "token-classification"
236
+ ): TokenClassificationTaskHelper & TaskProviderHelper;
237
+ export function getProviderHelper(
238
+ provider: InferenceProvider,
239
+ task: "translation"
240
+ ): TranslationTaskHelper & TaskProviderHelper;
241
+ export function getProviderHelper(
242
+ provider: InferenceProvider,
243
+ task: "summarization"
244
+ ): SummarizationTaskHelper & TaskProviderHelper;
245
+ export function getProviderHelper(
246
+ provider: InferenceProvider,
247
+ task: "visual-question-answering"
248
+ ): VisualQuestionAnsweringTaskHelper & TaskProviderHelper;
249
+ export function getProviderHelper(provider: InferenceProvider, task: InferenceTask | undefined): TaskProviderHelper;
250
+
251
+ export function getProviderHelper(provider: InferenceProvider, task: InferenceTask | undefined): TaskProviderHelper {
252
+ if (provider === "hf-inference") {
253
+ if (!task) {
254
+ return new HFInference.HFInferenceTask();
255
+ }
256
+ }
257
+ if (!task) {
258
+ throw new Error("you need to provide a task name when using an external provider, e.g. 'text-to-image'");
259
+ }
260
+ if (!(provider in PROVIDERS)) {
261
+ throw new Error(`Provider '${provider}' not supported. Available providers: ${Object.keys(PROVIDERS)}`);
262
+ }
263
+ const providerTasks = PROVIDERS[provider];
264
+ if (!providerTasks || !(task in providerTasks)) {
265
+ throw new Error(
266
+ `Task '${task}' not supported for provider '${provider}'. Available tasks: ${Object.keys(providerTasks ?? {})}`
267
+ );
268
+ }
269
+ return providerTasks[task] as TaskProviderHelper;
270
+ }