modelfusion 0.110.0 → 0.112.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 (283) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +41 -65
  3. package/core/FunctionEvent.d.ts +3 -3
  4. package/core/api/ApiFacade.cjs +20 -0
  5. package/core/api/ApiFacade.d.ts +4 -0
  6. package/core/api/ApiFacade.js +4 -0
  7. package/core/api/BaseUrlApiConfiguration.cjs +47 -5
  8. package/core/api/BaseUrlApiConfiguration.d.ts +23 -6
  9. package/core/api/BaseUrlApiConfiguration.js +45 -4
  10. package/core/api/BaseUrlApiConfiguration.test.cjs +11 -0
  11. package/core/api/BaseUrlApiConfiguration.test.js +9 -0
  12. package/core/api/callWithRetryAndThrottle.cjs +3 -3
  13. package/core/api/callWithRetryAndThrottle.js +3 -3
  14. package/core/api/index.cjs +15 -2
  15. package/core/api/index.d.ts +2 -2
  16. package/core/api/index.js +2 -2
  17. package/core/api/postToApi.cjs +28 -5
  18. package/core/api/postToApi.d.ts +5 -4
  19. package/core/api/postToApi.js +26 -4
  20. package/core/api/throttleOff.cjs +8 -0
  21. package/core/api/throttleOff.d.ts +5 -0
  22. package/core/api/throttleOff.js +4 -0
  23. package/internal/index.cjs +2 -8
  24. package/internal/index.d.ts +1 -1
  25. package/internal/index.js +1 -1
  26. package/model-function/ModelCallEvent.d.ts +3 -3
  27. package/model-function/generate-structure/generateStructure.d.ts +1 -1
  28. package/model-function/generate-text/PromptTemplateFullTextModel.cjs +2 -2
  29. package/model-function/generate-text/PromptTemplateFullTextModel.d.ts +3 -3
  30. package/model-function/generate-text/PromptTemplateFullTextModel.js +2 -2
  31. package/model-function/generate-text/PromptTemplateTextGenerationModel.cjs +2 -2
  32. package/model-function/generate-text/PromptTemplateTextGenerationModel.d.ts +3 -3
  33. package/model-function/generate-text/PromptTemplateTextGenerationModel.js +2 -2
  34. package/model-provider/anthropic/AnthropicApiConfiguration.cjs +14 -6
  35. package/model-provider/anthropic/AnthropicApiConfiguration.d.ts +7 -8
  36. package/model-provider/anthropic/AnthropicApiConfiguration.js +15 -7
  37. package/model-provider/anthropic/AnthropicError.cjs +7 -27
  38. package/model-provider/anthropic/AnthropicError.d.ts +21 -16
  39. package/model-provider/anthropic/AnthropicError.js +7 -25
  40. package/model-provider/anthropic/AnthropicFacade.cjs +10 -1
  41. package/model-provider/anthropic/AnthropicFacade.d.ts +9 -0
  42. package/model-provider/anthropic/AnthropicFacade.js +8 -0
  43. package/model-provider/anthropic/AnthropicTextGenerationModel.cjs +22 -24
  44. package/model-provider/anthropic/AnthropicTextGenerationModel.js +23 -25
  45. package/model-provider/anthropic/index.cjs +1 -4
  46. package/model-provider/anthropic/index.d.ts +1 -1
  47. package/model-provider/anthropic/index.js +0 -1
  48. package/model-provider/automatic1111/Automatic1111ApiConfiguration.cjs +12 -4
  49. package/model-provider/automatic1111/Automatic1111ApiConfiguration.d.ts +3 -3
  50. package/model-provider/automatic1111/Automatic1111ApiConfiguration.js +12 -4
  51. package/model-provider/automatic1111/Automatic1111Error.cjs +3 -3
  52. package/model-provider/automatic1111/Automatic1111Error.d.ts +13 -3
  53. package/model-provider/automatic1111/Automatic1111Error.js +4 -4
  54. package/model-provider/automatic1111/Automatic1111Facade.cjs +9 -9
  55. package/model-provider/automatic1111/Automatic1111Facade.d.ts +6 -6
  56. package/model-provider/automatic1111/Automatic1111Facade.js +7 -7
  57. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.cjs +11 -7
  58. package/model-provider/automatic1111/Automatic1111ImageGenerationModel.js +11 -7
  59. package/model-provider/cohere/CohereApiConfiguration.cjs +14 -6
  60. package/model-provider/cohere/CohereApiConfiguration.d.ts +7 -8
  61. package/model-provider/cohere/CohereApiConfiguration.js +15 -7
  62. package/model-provider/cohere/CohereError.cjs +8 -43
  63. package/model-provider/cohere/CohereError.d.ts +9 -16
  64. package/model-provider/cohere/CohereError.js +8 -41
  65. package/model-provider/cohere/CohereFacade.cjs +12 -3
  66. package/model-provider/cohere/CohereFacade.d.ts +11 -2
  67. package/model-provider/cohere/CohereFacade.js +10 -2
  68. package/model-provider/cohere/CohereTextEmbeddingModel.cjs +18 -22
  69. package/model-provider/cohere/CohereTextEmbeddingModel.js +18 -22
  70. package/model-provider/cohere/CohereTextGenerationModel.cjs +31 -39
  71. package/model-provider/cohere/CohereTextGenerationModel.d.ts +110 -8
  72. package/model-provider/cohere/CohereTextGenerationModel.js +31 -39
  73. package/model-provider/cohere/CohereTokenizer.cjs +32 -41
  74. package/model-provider/cohere/CohereTokenizer.d.ts +2 -2
  75. package/model-provider/cohere/CohereTokenizer.js +32 -41
  76. package/model-provider/cohere/index.cjs +1 -3
  77. package/model-provider/cohere/index.d.ts +1 -1
  78. package/model-provider/cohere/index.js +0 -1
  79. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.cjs +14 -6
  80. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.d.ts +7 -8
  81. package/model-provider/elevenlabs/ElevenLabsApiConfiguration.js +15 -7
  82. package/model-provider/elevenlabs/ElevenLabsFacade.cjs +10 -1
  83. package/model-provider/elevenlabs/ElevenLabsFacade.d.ts +9 -0
  84. package/model-provider/elevenlabs/ElevenLabsFacade.js +8 -0
  85. package/model-provider/elevenlabs/ElevenLabsSpeechModel.cjs +42 -53
  86. package/model-provider/elevenlabs/ElevenLabsSpeechModel.js +44 -55
  87. package/model-provider/huggingface/HuggingFaceApiConfiguration.cjs +14 -6
  88. package/model-provider/huggingface/HuggingFaceApiConfiguration.d.ts +7 -8
  89. package/model-provider/huggingface/HuggingFaceApiConfiguration.js +15 -7
  90. package/model-provider/huggingface/HuggingFaceError.cjs +7 -29
  91. package/model-provider/huggingface/HuggingFaceError.d.ts +9 -16
  92. package/model-provider/huggingface/HuggingFaceError.js +7 -27
  93. package/model-provider/huggingface/HuggingFaceFacade.cjs +10 -1
  94. package/model-provider/huggingface/HuggingFaceFacade.d.ts +9 -0
  95. package/model-provider/huggingface/HuggingFaceFacade.js +8 -0
  96. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.cjs +17 -27
  97. package/model-provider/huggingface/HuggingFaceTextEmbeddingModel.js +17 -27
  98. package/model-provider/huggingface/HuggingFaceTextGenerationModel.cjs +22 -23
  99. package/model-provider/huggingface/HuggingFaceTextGenerationModel.js +22 -23
  100. package/model-provider/huggingface/index.cjs +1 -3
  101. package/model-provider/huggingface/index.d.ts +1 -1
  102. package/model-provider/huggingface/index.js +0 -1
  103. package/model-provider/llamacpp/LlamaCppApiConfiguration.cjs +13 -6
  104. package/model-provider/llamacpp/LlamaCppApiConfiguration.d.ts +7 -9
  105. package/model-provider/llamacpp/LlamaCppApiConfiguration.js +14 -7
  106. package/model-provider/llamacpp/LlamaCppCompletionModel.cjs +4 -4
  107. package/model-provider/llamacpp/LlamaCppCompletionModel.d.ts +173 -5
  108. package/model-provider/llamacpp/LlamaCppCompletionModel.js +4 -4
  109. package/model-provider/llamacpp/LlamaCppError.cjs +7 -27
  110. package/model-provider/llamacpp/LlamaCppError.d.ts +9 -16
  111. package/model-provider/llamacpp/LlamaCppError.js +7 -25
  112. package/model-provider/llamacpp/LlamaCppFacade.cjs +10 -2
  113. package/model-provider/llamacpp/LlamaCppFacade.d.ts +8 -1
  114. package/model-provider/llamacpp/LlamaCppFacade.js +8 -1
  115. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.cjs +10 -14
  116. package/model-provider/llamacpp/LlamaCppTextEmbeddingModel.js +10 -14
  117. package/model-provider/llamacpp/LlamaCppTokenizer.cjs +14 -18
  118. package/model-provider/llamacpp/LlamaCppTokenizer.js +14 -18
  119. package/model-provider/llamacpp/index.cjs +1 -3
  120. package/model-provider/llamacpp/index.d.ts +1 -1
  121. package/model-provider/llamacpp/index.js +0 -1
  122. package/model-provider/lmnt/LmntApiConfiguration.cjs +14 -6
  123. package/model-provider/lmnt/LmntApiConfiguration.d.ts +7 -8
  124. package/model-provider/lmnt/LmntApiConfiguration.js +15 -7
  125. package/model-provider/lmnt/LmntFacade.cjs +11 -2
  126. package/model-provider/lmnt/LmntFacade.d.ts +10 -1
  127. package/model-provider/lmnt/LmntFacade.js +9 -1
  128. package/model-provider/lmnt/LmntSpeechModel.cjs +53 -41
  129. package/model-provider/lmnt/LmntSpeechModel.d.ts +51 -3
  130. package/model-provider/lmnt/LmntSpeechModel.js +54 -42
  131. package/model-provider/mistral/MistralApiConfiguration.cjs +14 -6
  132. package/model-provider/mistral/MistralApiConfiguration.d.ts +9 -11
  133. package/model-provider/mistral/MistralApiConfiguration.js +15 -7
  134. package/model-provider/mistral/MistralChatModel.cjs +4 -4
  135. package/model-provider/mistral/MistralChatModel.d.ts +52 -7
  136. package/model-provider/mistral/MistralChatModel.js +5 -5
  137. package/model-provider/mistral/MistralError.cjs +3 -3
  138. package/model-provider/mistral/MistralError.d.ts +15 -3
  139. package/model-provider/mistral/MistralError.js +4 -4
  140. package/model-provider/mistral/MistralFacade.cjs +5 -1
  141. package/model-provider/mistral/MistralFacade.d.ts +10 -3
  142. package/model-provider/mistral/MistralFacade.js +6 -2
  143. package/model-provider/mistral/MistralTextEmbeddingModel.cjs +2 -1
  144. package/model-provider/mistral/MistralTextEmbeddingModel.d.ts +3 -3
  145. package/model-provider/mistral/MistralTextEmbeddingModel.js +2 -1
  146. package/model-provider/ollama/OllamaApiConfiguration.cjs +13 -6
  147. package/model-provider/ollama/OllamaApiConfiguration.d.ts +7 -10
  148. package/model-provider/ollama/OllamaApiConfiguration.js +14 -7
  149. package/model-provider/ollama/OllamaChatModel.cjs +6 -6
  150. package/model-provider/ollama/OllamaChatModel.d.ts +49 -8
  151. package/model-provider/ollama/OllamaChatModel.js +7 -7
  152. package/model-provider/ollama/OllamaCompletionModel.cjs +6 -6
  153. package/model-provider/ollama/OllamaCompletionModel.d.ts +43 -8
  154. package/model-provider/ollama/OllamaCompletionModel.js +7 -7
  155. package/model-provider/ollama/OllamaError.cjs +3 -3
  156. package/model-provider/ollama/OllamaError.d.ts +7 -3
  157. package/model-provider/ollama/OllamaError.js +4 -4
  158. package/model-provider/ollama/OllamaFacade.cjs +6 -2
  159. package/model-provider/ollama/OllamaFacade.d.ts +8 -3
  160. package/model-provider/ollama/OllamaFacade.js +6 -2
  161. package/model-provider/ollama/OllamaTextEmbeddingModel.cjs +15 -16
  162. package/model-provider/ollama/OllamaTextEmbeddingModel.js +15 -16
  163. package/model-provider/openai/AbstractOpenAIChatModel.cjs +5 -5
  164. package/model-provider/openai/AbstractOpenAIChatModel.d.ts +155 -9
  165. package/model-provider/openai/AbstractOpenAIChatModel.js +5 -5
  166. package/model-provider/openai/AbstractOpenAICompletionModel.cjs +30 -32
  167. package/model-provider/openai/AbstractOpenAICompletionModel.d.ts +4 -4
  168. package/model-provider/openai/AbstractOpenAICompletionModel.js +30 -32
  169. package/model-provider/openai/AzureOpenAIApiConfiguration.d.ts +9 -8
  170. package/model-provider/openai/OpenAIApiConfiguration.cjs +14 -6
  171. package/model-provider/openai/OpenAIApiConfiguration.d.ts +7 -8
  172. package/model-provider/openai/OpenAIApiConfiguration.js +15 -7
  173. package/model-provider/openai/OpenAIChatFunctionCallStructureGenerationModel.d.ts +1 -1
  174. package/model-provider/openai/OpenAIChatModel.d.ts +2 -2
  175. package/model-provider/openai/OpenAIError.cjs +8 -8
  176. package/model-provider/openai/OpenAIError.d.ts +27 -3
  177. package/model-provider/openai/OpenAIError.js +9 -9
  178. package/model-provider/openai/OpenAIFacade.cjs +23 -2
  179. package/model-provider/openai/OpenAIFacade.d.ts +20 -2
  180. package/model-provider/openai/OpenAIFacade.js +20 -1
  181. package/model-provider/openai/OpenAIImageGenerationModel.cjs +20 -21
  182. package/model-provider/openai/OpenAIImageGenerationModel.js +20 -21
  183. package/model-provider/openai/OpenAISpeechModel.cjs +17 -22
  184. package/model-provider/openai/OpenAISpeechModel.js +17 -22
  185. package/model-provider/openai/OpenAITextEmbeddingModel.cjs +18 -23
  186. package/model-provider/openai/OpenAITextEmbeddingModel.d.ts +3 -3
  187. package/model-provider/openai/OpenAITextEmbeddingModel.js +18 -23
  188. package/model-provider/openai/OpenAITranscriptionModel.cjs +42 -48
  189. package/model-provider/openai/OpenAITranscriptionModel.d.ts +14 -10
  190. package/model-provider/openai/OpenAITranscriptionModel.js +42 -48
  191. package/model-provider/openai-compatible/FireworksAIApiConfiguration.cjs +11 -7
  192. package/model-provider/openai-compatible/FireworksAIApiConfiguration.d.ts +4 -9
  193. package/model-provider/openai-compatible/FireworksAIApiConfiguration.js +12 -8
  194. package/model-provider/openai-compatible/OpenAICompatibleChatModel.d.ts +2 -2
  195. package/model-provider/openai-compatible/OpenAICompatibleFacade.cjs +25 -1
  196. package/model-provider/openai-compatible/OpenAICompatibleFacade.d.ts +23 -0
  197. package/model-provider/openai-compatible/OpenAICompatibleFacade.js +22 -0
  198. package/model-provider/openai-compatible/TogetherAIApiConfiguration.cjs +11 -7
  199. package/model-provider/openai-compatible/TogetherAIApiConfiguration.d.ts +4 -9
  200. package/model-provider/openai-compatible/TogetherAIApiConfiguration.js +12 -8
  201. package/model-provider/stability/StabilityApiConfiguration.cjs +13 -12
  202. package/model-provider/stability/StabilityApiConfiguration.d.ts +4 -4
  203. package/model-provider/stability/StabilityApiConfiguration.js +13 -12
  204. package/model-provider/stability/StabilityError.cjs +3 -3
  205. package/model-provider/stability/StabilityError.d.ts +7 -3
  206. package/model-provider/stability/StabilityError.js +4 -4
  207. package/model-provider/stability/StabilityFacade.cjs +9 -9
  208. package/model-provider/stability/StabilityFacade.d.ts +8 -8
  209. package/model-provider/stability/StabilityFacade.js +7 -7
  210. package/model-provider/stability/StabilityImageGenerationModel.cjs +2 -1
  211. package/model-provider/stability/StabilityImageGenerationModel.js +2 -1
  212. package/model-provider/whispercpp/WhisperCppApiConfiguration.cjs +13 -6
  213. package/model-provider/whispercpp/WhisperCppApiConfiguration.d.ts +7 -10
  214. package/model-provider/whispercpp/WhisperCppApiConfiguration.js +14 -7
  215. package/model-provider/whispercpp/WhisperCppFacade.cjs +9 -5
  216. package/model-provider/whispercpp/WhisperCppFacade.d.ts +7 -2
  217. package/model-provider/whispercpp/WhisperCppFacade.js +8 -4
  218. package/model-provider/whispercpp/WhisperCppTranscriptionModel.cjs +5 -2
  219. package/model-provider/whispercpp/WhisperCppTranscriptionModel.js +6 -3
  220. package/package.json +1 -1
  221. package/tool/Tool.cjs +0 -10
  222. package/tool/Tool.d.ts +0 -1
  223. package/tool/Tool.js +0 -10
  224. package/tool/WebSearchTool.cjs +2 -2
  225. package/tool/WebSearchTool.d.ts +1 -2
  226. package/tool/WebSearchTool.js +3 -3
  227. package/tool/{generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.cjs → generate-tool-calls/TextGenerationToolCallsModel.cjs} +7 -7
  228. package/tool/{generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.d.ts → generate-tool-calls/TextGenerationToolCallsModel.d.ts} +6 -6
  229. package/tool/{generate-tool-calls-or-text/TextGenerationToolCallsOrGenerateTextModel.js → generate-tool-calls/TextGenerationToolCallsModel.js} +5 -5
  230. package/tool/generate-tool-calls/ToolCallsGenerationEvent.d.ts +23 -0
  231. package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.d.ts → generate-tool-calls/ToolCallsGenerationModel.d.ts} +3 -3
  232. package/tool/{generate-tool-calls-or-text/ToolCallsOrTextParseError.cjs → generate-tool-calls/ToolCallsParseError.cjs} +5 -5
  233. package/tool/{generate-tool-calls-or-text/ToolCallsOrTextParseError.d.ts → generate-tool-calls/ToolCallsParseError.d.ts} +1 -1
  234. package/tool/{generate-tool-calls-or-text/ToolCallsOrTextParseError.js → generate-tool-calls/ToolCallsParseError.js} +3 -3
  235. package/tool/{generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.d.ts → generate-tool-calls/ToolCallsPromptTemplate.d.ts} +1 -1
  236. package/tool/{generate-tool-calls-or-text/generateToolCallsOrText.cjs → generate-tool-calls/generateToolCalls.cjs} +5 -5
  237. package/tool/{generate-tool-calls-or-text/generateToolCallsOrText.d.ts → generate-tool-calls/generateToolCalls.d.ts} +3 -3
  238. package/tool/{generate-tool-calls-or-text/generateToolCallsOrText.js → generate-tool-calls/generateToolCalls.js} +3 -3
  239. package/tool/{generate-tool-calls-or-text → generate-tool-calls}/index.cjs +6 -6
  240. package/tool/generate-tool-calls/index.d.ts +6 -0
  241. package/tool/generate-tool-calls/index.js +6 -0
  242. package/tool/index.cjs +2 -3
  243. package/tool/index.d.ts +2 -3
  244. package/tool/index.js +2 -3
  245. package/tool/use-tools/UseToolsEvent.d.ts +7 -0
  246. package/tool/use-tools/UseToolsEvent.js +1 -0
  247. package/tool/{use-tools-or-generate-text → use-tools}/index.cjs +2 -2
  248. package/tool/use-tools/index.d.ts +2 -0
  249. package/tool/use-tools/index.js +2 -0
  250. package/tool/{use-tools-or-generate-text/useToolsOrGenerateText.cjs → use-tools/useTools.cjs} +6 -6
  251. package/tool/{use-tools-or-generate-text/useToolsOrGenerateText.d.ts → use-tools/useTools.d.ts} +2 -2
  252. package/tool/{use-tools-or-generate-text/useToolsOrGenerateText.js → use-tools/useTools.js} +4 -4
  253. package/vector-index/memory/MemoryVectorIndex.cjs +2 -2
  254. package/vector-index/memory/MemoryVectorIndex.js +3 -3
  255. package/core/api/BaseUrlPartsApiConfiguration.cjs +0 -53
  256. package/core/api/BaseUrlPartsApiConfiguration.d.ts +0 -26
  257. package/core/api/BaseUrlPartsApiConfiguration.js +0 -49
  258. package/core/api/throttleUnlimitedConcurrency.cjs +0 -8
  259. package/core/api/throttleUnlimitedConcurrency.d.ts +0 -5
  260. package/core/api/throttleUnlimitedConcurrency.js +0 -4
  261. package/model-provider/elevenlabs/ElevenLabsError.cjs +0 -30
  262. package/model-provider/elevenlabs/ElevenLabsError.d.ts +0 -3
  263. package/model-provider/elevenlabs/ElevenLabsError.js +0 -26
  264. package/model-provider/lmnt/LmntError.cjs +0 -30
  265. package/model-provider/lmnt/LmntError.d.ts +0 -3
  266. package/model-provider/lmnt/LmntError.js +0 -26
  267. package/tool/InvalidToolNameError.cjs +0 -17
  268. package/tool/InvalidToolNameError.d.ts +0 -7
  269. package/tool/InvalidToolNameError.js +0 -13
  270. package/tool/generate-tool-calls-or-text/ToolCallsOrTextGenerationEvent.d.ts +0 -23
  271. package/tool/generate-tool-calls-or-text/index.d.ts +0 -6
  272. package/tool/generate-tool-calls-or-text/index.js +0 -6
  273. package/tool/use-tools-or-generate-text/UseToolsOrGenerateTextEvent.d.ts +0 -7
  274. package/tool/use-tools-or-generate-text/index.d.ts +0 -2
  275. package/tool/use-tools-or-generate-text/index.js +0 -2
  276. /package/{tool/generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.js → core/api/BaseUrlApiConfiguration.test.d.ts} +0 -0
  277. /package/tool/{generate-tool-calls-or-text/ToolCallsOrGenerateTextPromptTemplate.cjs → generate-tool-calls/ToolCallsGenerationEvent.cjs} +0 -0
  278. /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationEvent.js → generate-tool-calls/ToolCallsGenerationEvent.js} +0 -0
  279. /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationEvent.cjs → generate-tool-calls/ToolCallsGenerationModel.cjs} +0 -0
  280. /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.js → generate-tool-calls/ToolCallsGenerationModel.js} +0 -0
  281. /package/tool/{generate-tool-calls-or-text/ToolCallsOrTextGenerationModel.cjs → generate-tool-calls/ToolCallsPromptTemplate.cjs} +0 -0
  282. /package/tool/{use-tools-or-generate-text/UseToolsOrGenerateTextEvent.js → generate-tool-calls/ToolCallsPromptTemplate.js} +0 -0
  283. /package/tool/{use-tools-or-generate-text/UseToolsOrGenerateTextEvent.cjs → use-tools/UseToolsEvent.cjs} +0 -0
@@ -4,6 +4,7 @@ exports.LlamaCppTokenizer = void 0;
4
4
  const zod_1 = require("zod");
5
5
  const callWithRetryAndThrottle_js_1 = require("../../core/api/callWithRetryAndThrottle.cjs");
6
6
  const postToApi_js_1 = require("../../core/api/postToApi.cjs");
7
+ const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
7
8
  const LlamaCppApiConfiguration_js_1 = require("./LlamaCppApiConfiguration.cjs");
8
9
  const LlamaCppError_js_1 = require("./LlamaCppError.cjs");
9
10
  /**
@@ -30,13 +31,20 @@ class LlamaCppTokenizer {
30
31
  this.api = api;
31
32
  }
32
33
  async callTokenizeAPI(text, context) {
34
+ const api = this.api;
35
+ const abortSignal = context?.abortSignal;
33
36
  return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
34
- retry: this.api.retry,
35
- throttle: this.api.throttle,
36
- call: async () => callLlamaCppTokenizeAPI({
37
- api: this.api,
38
- abortSignal: context?.abortSignal,
39
- text,
37
+ retry: api.retry,
38
+ throttle: api.throttle,
39
+ call: async () => (0, postToApi_js_1.postJsonToApi)({
40
+ url: api.assembleUrl(`/tokenize`),
41
+ headers: api.headers,
42
+ body: {
43
+ content: text,
44
+ },
45
+ failedResponseHandler: LlamaCppError_js_1.failedLlamaCppCallResponseHandler,
46
+ successfulResponseHandler: (0, postToApi_js_1.createJsonResponseHandler)((0, ZodSchema_js_1.zodSchema)(llamaCppTokenizationResponseSchema)),
47
+ abortSignal,
40
48
  }),
41
49
  });
42
50
  }
@@ -49,15 +57,3 @@ exports.LlamaCppTokenizer = LlamaCppTokenizer;
49
57
  const llamaCppTokenizationResponseSchema = zod_1.z.object({
50
58
  tokens: zod_1.z.array(zod_1.z.number()),
51
59
  });
52
- async function callLlamaCppTokenizeAPI({ api, abortSignal, text, }) {
53
- return (0, postToApi_js_1.postJsonToApi)({
54
- url: api.assembleUrl(`/tokenize`),
55
- headers: api.headers,
56
- body: {
57
- content: text,
58
- },
59
- failedResponseHandler: LlamaCppError_js_1.failedLlamaCppCallResponseHandler,
60
- successfulResponseHandler: (0, postToApi_js_1.createJsonResponseHandler)(llamaCppTokenizationResponseSchema),
61
- abortSignal,
62
- });
63
- }
@@ -1,6 +1,7 @@
1
1
  import { z } from "zod";
2
2
  import { callWithRetryAndThrottle } from "../../core/api/callWithRetryAndThrottle.js";
3
3
  import { createJsonResponseHandler, postJsonToApi, } from "../../core/api/postToApi.js";
4
+ import { zodSchema } from "../../core/schema/ZodSchema.js";
4
5
  import { LlamaCppApiConfiguration } from "./LlamaCppApiConfiguration.js";
5
6
  import { failedLlamaCppCallResponseHandler } from "./LlamaCppError.js";
6
7
  /**
@@ -27,13 +28,20 @@ export class LlamaCppTokenizer {
27
28
  this.api = api;
28
29
  }
29
30
  async callTokenizeAPI(text, context) {
31
+ const api = this.api;
32
+ const abortSignal = context?.abortSignal;
30
33
  return callWithRetryAndThrottle({
31
- retry: this.api.retry,
32
- throttle: this.api.throttle,
33
- call: async () => callLlamaCppTokenizeAPI({
34
- api: this.api,
35
- abortSignal: context?.abortSignal,
36
- text,
34
+ retry: api.retry,
35
+ throttle: api.throttle,
36
+ call: async () => postJsonToApi({
37
+ url: api.assembleUrl(`/tokenize`),
38
+ headers: api.headers,
39
+ body: {
40
+ content: text,
41
+ },
42
+ failedResponseHandler: failedLlamaCppCallResponseHandler,
43
+ successfulResponseHandler: createJsonResponseHandler(zodSchema(llamaCppTokenizationResponseSchema)),
44
+ abortSignal,
37
45
  }),
38
46
  });
39
47
  }
@@ -45,15 +53,3 @@ export class LlamaCppTokenizer {
45
53
  const llamaCppTokenizationResponseSchema = z.object({
46
54
  tokens: z.array(z.number()),
47
55
  });
48
- async function callLlamaCppTokenizeAPI({ api, abortSignal, text, }) {
49
- return postJsonToApi({
50
- url: api.assembleUrl(`/tokenize`),
51
- headers: api.headers,
52
- body: {
53
- content: text,
54
- },
55
- failedResponseHandler: failedLlamaCppCallResponseHandler,
56
- successfulResponseHandler: createJsonResponseHandler(llamaCppTokenizationResponseSchema),
57
- abortSignal,
58
- });
59
- }
@@ -26,11 +26,9 @@ var __importStar = (this && this.__importStar) || function (mod) {
26
26
  return result;
27
27
  };
28
28
  Object.defineProperty(exports, "__esModule", { value: true });
29
- exports.llamacpp = exports.LlamaCppError = exports.LlamaCppBakLLaVA1Prompt = void 0;
29
+ exports.llamacpp = exports.LlamaCppBakLLaVA1Prompt = void 0;
30
30
  __exportStar(require("./LlamaCppApiConfiguration.cjs"), exports);
31
31
  exports.LlamaCppBakLLaVA1Prompt = __importStar(require("./LlamaCppBakLLaVA1PromptTemplate.cjs"));
32
- var LlamaCppError_js_1 = require("./LlamaCppError.cjs");
33
- Object.defineProperty(exports, "LlamaCppError", { enumerable: true, get: function () { return LlamaCppError_js_1.LlamaCppError; } });
34
32
  exports.llamacpp = __importStar(require("./LlamaCppFacade.cjs"));
35
33
  __exportStar(require("./LlamaCppTextEmbeddingModel.cjs"), exports);
36
34
  __exportStar(require("./LlamaCppCompletionModel.cjs"), exports);
@@ -1,6 +1,6 @@
1
1
  export * from "./LlamaCppApiConfiguration.js";
2
2
  export * as LlamaCppBakLLaVA1Prompt from "./LlamaCppBakLLaVA1PromptTemplate.js";
3
- export { LlamaCppError, LlamaCppErrorData } from "./LlamaCppError.js";
3
+ export { LlamaCppErrorData } from "./LlamaCppError.js";
4
4
  export * as llamacpp from "./LlamaCppFacade.js";
5
5
  export * from "./LlamaCppTextEmbeddingModel.js";
6
6
  export * from "./LlamaCppCompletionModel.js";
@@ -1,6 +1,5 @@
1
1
  export * from "./LlamaCppApiConfiguration.js";
2
2
  export * as LlamaCppBakLLaVA1Prompt from "./LlamaCppBakLLaVA1PromptTemplate.js";
3
- export { LlamaCppError } from "./LlamaCppError.js";
4
3
  export * as llamacpp from "./LlamaCppFacade.js";
5
4
  export * from "./LlamaCppTextEmbeddingModel.js";
6
5
  export * from "./LlamaCppCompletionModel.js";
@@ -3,19 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LmntApiConfiguration = void 0;
4
4
  const BaseUrlApiConfiguration_js_1 = require("../../core/api/BaseUrlApiConfiguration.cjs");
5
5
  const loadApiKey_js_1 = require("../../core/api/loadApiKey.cjs");
6
- class LmntApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApiConfiguration {
7
- constructor({ baseUrl = "https://api.lmnt.com/speech/beta", apiKey, retry, throttle, } = {}) {
6
+ /**
7
+ * Creates an API configuration for the LMNT API.
8
+ * It calls the API at https://api.lmnt.com/v1 and uses the `LMNT_API_KEY` env variable by default.
9
+ */
10
+ class LmntApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApiConfigurationWithDefaults {
11
+ constructor(settings = {}) {
8
12
  super({
9
- baseUrl,
13
+ ...settings,
10
14
  headers: {
11
15
  "X-API-Key": (0, loadApiKey_js_1.loadApiKey)({
12
- apiKey,
16
+ apiKey: settings.apiKey,
13
17
  environmentVariableName: "LMNT_API_KEY",
14
18
  description: "LMNT",
15
19
  }),
16
20
  },
17
- retry,
18
- throttle,
21
+ baseUrlDefaults: {
22
+ protocol: "https",
23
+ host: "api.lmnt.com",
24
+ port: "443",
25
+ path: "/v1",
26
+ },
19
27
  });
20
28
  }
21
29
  }
@@ -1,11 +1,10 @@
1
- import { BaseUrlApiConfiguration } from "../../core/api/BaseUrlApiConfiguration.js";
2
- import { RetryFunction } from "../../core/api/RetryFunction.js";
3
- import { ThrottleFunction } from "../../core/api/ThrottleFunction.js";
4
- export declare class LmntApiConfiguration extends BaseUrlApiConfiguration {
5
- constructor({ baseUrl, apiKey, retry, throttle, }?: {
6
- baseUrl?: string;
1
+ import { BaseUrlApiConfigurationWithDefaults, PartialBaseUrlPartsApiConfigurationOptions } from "../../core/api/BaseUrlApiConfiguration.js";
2
+ /**
3
+ * Creates an API configuration for the LMNT API.
4
+ * It calls the API at https://api.lmnt.com/v1 and uses the `LMNT_API_KEY` env variable by default.
5
+ */
6
+ export declare class LmntApiConfiguration extends BaseUrlApiConfigurationWithDefaults {
7
+ constructor(settings?: PartialBaseUrlPartsApiConfigurationOptions & {
7
8
  apiKey?: string;
8
- retry?: RetryFunction;
9
- throttle?: ThrottleFunction;
10
9
  });
11
10
  }
@@ -1,18 +1,26 @@
1
- import { BaseUrlApiConfiguration } from "../../core/api/BaseUrlApiConfiguration.js";
1
+ import { BaseUrlApiConfigurationWithDefaults, } from "../../core/api/BaseUrlApiConfiguration.js";
2
2
  import { loadApiKey } from "../../core/api/loadApiKey.js";
3
- export class LmntApiConfiguration extends BaseUrlApiConfiguration {
4
- constructor({ baseUrl = "https://api.lmnt.com/speech/beta", apiKey, retry, throttle, } = {}) {
3
+ /**
4
+ * Creates an API configuration for the LMNT API.
5
+ * It calls the API at https://api.lmnt.com/v1 and uses the `LMNT_API_KEY` env variable by default.
6
+ */
7
+ export class LmntApiConfiguration extends BaseUrlApiConfigurationWithDefaults {
8
+ constructor(settings = {}) {
5
9
  super({
6
- baseUrl,
10
+ ...settings,
7
11
  headers: {
8
12
  "X-API-Key": loadApiKey({
9
- apiKey,
13
+ apiKey: settings.apiKey,
10
14
  environmentVariableName: "LMNT_API_KEY",
11
15
  description: "LMNT",
12
16
  }),
13
17
  },
14
- retry,
15
- throttle,
18
+ baseUrlDefaults: {
19
+ protocol: "https",
20
+ host: "api.lmnt.com",
21
+ port: "443",
22
+ path: "/v1",
23
+ },
16
24
  });
17
25
  }
18
26
  }
@@ -1,11 +1,20 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SpeechGenerator = void 0;
3
+ exports.SpeechGenerator = exports.Api = void 0;
4
4
  const LmntSpeechModel_js_1 = require("./LmntSpeechModel.cjs");
5
+ const LmntApiConfiguration_js_1 = require("./LmntApiConfiguration.cjs");
6
+ /**
7
+ * Creates an API configuration for the LMNT API.
8
+ * It calls the API at https://api.lmnt.com/v1 and uses the `LMNT_API_KEY` env variable by default.
9
+ */
10
+ function Api(settings) {
11
+ return new LmntApiConfiguration_js_1.LmntApiConfiguration(settings);
12
+ }
13
+ exports.Api = Api;
5
14
  /**
6
15
  * Synthesize speech using the LMNT API.
7
16
  *
8
- * @see https://www.lmnt.com/docs/rest/#synthesize-speech
17
+ * @see https://docs.lmnt.com/api-reference/speech/synthesize-speech-1
9
18
  *
10
19
  * @returns A new instance of {@link LmntSpeechModel}.
11
20
  */
@@ -1,8 +1,17 @@
1
1
  import { LmntSpeechModel, LmntSpeechModelSettings } from "./LmntSpeechModel.js";
2
+ import { PartialBaseUrlPartsApiConfigurationOptions } from "../../core/api/BaseUrlApiConfiguration.js";
3
+ import { LmntApiConfiguration } from "./LmntApiConfiguration.js";
4
+ /**
5
+ * Creates an API configuration for the LMNT API.
6
+ * It calls the API at https://api.lmnt.com/v1 and uses the `LMNT_API_KEY` env variable by default.
7
+ */
8
+ export declare function Api(settings: PartialBaseUrlPartsApiConfigurationOptions & {
9
+ apiKey?: string;
10
+ }): LmntApiConfiguration;
2
11
  /**
3
12
  * Synthesize speech using the LMNT API.
4
13
  *
5
- * @see https://www.lmnt.com/docs/rest/#synthesize-speech
14
+ * @see https://docs.lmnt.com/api-reference/speech/synthesize-speech-1
6
15
  *
7
16
  * @returns A new instance of {@link LmntSpeechModel}.
8
17
  */
@@ -1,8 +1,16 @@
1
1
  import { LmntSpeechModel } from "./LmntSpeechModel.js";
2
+ import { LmntApiConfiguration } from "./LmntApiConfiguration.js";
3
+ /**
4
+ * Creates an API configuration for the LMNT API.
5
+ * It calls the API at https://api.lmnt.com/v1 and uses the `LMNT_API_KEY` env variable by default.
6
+ */
7
+ export function Api(settings) {
8
+ return new LmntApiConfiguration(settings);
9
+ }
2
10
  /**
3
11
  * Synthesize speech using the LMNT API.
4
12
  *
5
- * @see https://www.lmnt.com/docs/rest/#synthesize-speech
13
+ * @see https://docs.lmnt.com/api-reference/speech/synthesize-speech-1
6
14
  *
7
15
  * @returns A new instance of {@link LmntSpeechModel}.
8
16
  */
@@ -1,15 +1,16 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.LmntSpeechModel = void 0;
4
- const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
4
+ const zod_1 = require("zod");
5
5
  const callWithRetryAndThrottle_js_1 = require("../../core/api/callWithRetryAndThrottle.cjs");
6
6
  const postToApi_js_1 = require("../../core/api/postToApi.cjs");
7
+ const ZodSchema_js_1 = require("../../core/schema/ZodSchema.cjs");
8
+ const AbstractModel_js_1 = require("../../model-function/AbstractModel.cjs");
7
9
  const LmntApiConfiguration_js_1 = require("./LmntApiConfiguration.cjs");
8
- const LmntError_js_1 = require("./LmntError.cjs");
9
10
  /**
10
11
  * Synthesize speech using the LMNT API.
11
12
  *
12
- * @see https://www.lmnt.com/docs/rest/#synthesize-speech
13
+ * @see https://docs.lmnt.com/api-reference/speech/synthesize-speech-1
13
14
  */
14
15
  class LmntSpeechModel extends AbstractModel_js_1.AbstractModel {
15
16
  constructor(settings) {
@@ -25,14 +26,44 @@ class LmntSpeechModel extends AbstractModel_js_1.AbstractModel {
25
26
  return this.settings.voice;
26
27
  }
27
28
  async callAPI(text, options) {
29
+ const api = this.settings.api ?? new LmntApiConfiguration_js_1.LmntApiConfiguration();
30
+ const abortSignal = options?.run?.abortSignal;
28
31
  return (0, callWithRetryAndThrottle_js_1.callWithRetryAndThrottle)({
29
- retry: this.settings.api?.retry,
30
- throttle: this.settings.api?.throttle,
31
- call: async () => callLmntTextToSpeechAPI({
32
- ...this.settings,
33
- abortSignal: options?.run?.abortSignal,
34
- text,
35
- }),
32
+ retry: api.retry,
33
+ throttle: api.throttle,
34
+ call: async () => {
35
+ const formData = new FormData();
36
+ formData.append("text", text);
37
+ formData.append("voice", this.settings.voice);
38
+ formData.append("format", "mp3");
39
+ formData.append("return_durations", "true");
40
+ if (this.settings.speed != null) {
41
+ formData.append("speed", this.settings.speed.toString());
42
+ }
43
+ if (this.settings.seed != null) {
44
+ formData.append("seed", this.settings.seed.toString());
45
+ }
46
+ if (this.settings.length != null) {
47
+ formData.append("length", this.settings.length.toString());
48
+ }
49
+ return (0, postToApi_js_1.postToApi)({
50
+ url: api.assembleUrl(`/ai/speech`),
51
+ headers: api.headers,
52
+ body: {
53
+ content: formData,
54
+ values: {
55
+ text,
56
+ voice: this.settings.voice,
57
+ speed: this.settings.speed,
58
+ seed: this.settings.seed,
59
+ length: this.settings.length,
60
+ },
61
+ },
62
+ failedResponseHandler: (0, postToApi_js_1.createTextErrorResponseHandler)(),
63
+ successfulResponseHandler: (0, postToApi_js_1.createJsonResponseHandler)((0, ZodSchema_js_1.zodSchema)(lmntSpeechResponseSchema)),
64
+ abortSignal,
65
+ });
66
+ },
36
67
  });
37
68
  }
38
69
  get settingsForEvent() {
@@ -43,8 +74,9 @@ class LmntSpeechModel extends AbstractModel_js_1.AbstractModel {
43
74
  length: this.settings.length,
44
75
  };
45
76
  }
46
- doGenerateSpeechStandard(text, options) {
47
- return this.callAPI(text, options);
77
+ async doGenerateSpeechStandard(text, options) {
78
+ const response = await this.callAPI(text, options);
79
+ return Buffer.from(response.audio, "base64");
48
80
  }
49
81
  withSettings(additionalSettings) {
50
82
  return new LmntSpeechModel({
@@ -54,32 +86,12 @@ class LmntSpeechModel extends AbstractModel_js_1.AbstractModel {
54
86
  }
55
87
  }
56
88
  exports.LmntSpeechModel = LmntSpeechModel;
57
- async function callLmntTextToSpeechAPI({ api = new LmntApiConfiguration_js_1.LmntApiConfiguration(), abortSignal, text, voice, speed, seed, length, }) {
58
- const formData = new FormData();
59
- formData.append("text", text);
60
- formData.append("voice", voice);
61
- formData.append("format", "mp3");
62
- if (speed != null)
63
- formData.append("speed", speed.toString());
64
- if (seed != null)
65
- formData.append("seed", seed.toString());
66
- if (length != null)
67
- formData.append("length", length.toString());
68
- return (0, postToApi_js_1.postToApi)({
69
- url: api.assembleUrl(`/synthesize`),
70
- headers: api.headers,
71
- body: {
72
- content: formData,
73
- values: {
74
- text,
75
- voice,
76
- speed,
77
- seed,
78
- length,
79
- },
80
- },
81
- failedResponseHandler: LmntError_js_1.failedLmntCallResponseHandler,
82
- successfulResponseHandler: (0, postToApi_js_1.createAudioMpegResponseHandler)(),
83
- abortSignal,
84
- });
85
- }
89
+ const lmntSpeechResponseSchema = zod_1.z.object({
90
+ audio: zod_1.z.string(),
91
+ durations: zod_1.z.array(zod_1.z.object({
92
+ duration: zod_1.z.number(),
93
+ start: zod_1.z.number(),
94
+ text: zod_1.z.string(),
95
+ })),
96
+ seed: zod_1.z.number(),
97
+ });
@@ -1,19 +1,32 @@
1
1
  /// <reference types="node" />
2
- import { AbstractModel } from "../../model-function/AbstractModel.js";
3
- import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
2
+ import { z } from "zod";
4
3
  import { FunctionOptions } from "../../core/FunctionOptions.js";
4
+ import { ApiConfiguration } from "../../core/api/ApiConfiguration.js";
5
+ import { AbstractModel } from "../../model-function/AbstractModel.js";
5
6
  import { SpeechGenerationModel, SpeechGenerationModelSettings } from "../../model-function/generate-speech/SpeechGenerationModel.js";
6
7
  export interface LmntSpeechModelSettings extends SpeechGenerationModelSettings {
7
8
  api?: ApiConfiguration;
9
+ /**
10
+ * The voice id of the voice to use for synthesis.
11
+ */
8
12
  voice: string;
13
+ /**
14
+ * The talking speed of the generated speech. A Floating point value between 0.25 (slow) and 2.0 (fast); defaults to 1.0
15
+ */
9
16
  speed?: number;
17
+ /**
18
+ * Seed used to specify a different take; defaults to random
19
+ */
10
20
  seed?: number;
21
+ /**
22
+ * Produce speech of this length in seconds; maximum 300.0 (5 minutes)
23
+ */
11
24
  length?: number;
12
25
  }
13
26
  /**
14
27
  * Synthesize speech using the LMNT API.
15
28
  *
16
- * @see https://www.lmnt.com/docs/rest/#synthesize-speech
29
+ * @see https://docs.lmnt.com/api-reference/speech/synthesize-speech-1
17
30
  */
18
31
  export declare class LmntSpeechModel extends AbstractModel<LmntSpeechModelSettings> implements SpeechGenerationModel<LmntSpeechModelSettings> {
19
32
  constructor(settings: LmntSpeechModelSettings);
@@ -24,3 +37,38 @@ export declare class LmntSpeechModel extends AbstractModel<LmntSpeechModelSettin
24
37
  doGenerateSpeechStandard(text: string, options?: FunctionOptions): Promise<Buffer>;
25
38
  withSettings(additionalSettings: Partial<LmntSpeechModelSettings>): this;
26
39
  }
40
+ declare const lmntSpeechResponseSchema: z.ZodObject<{
41
+ audio: z.ZodString;
42
+ durations: z.ZodArray<z.ZodObject<{
43
+ duration: z.ZodNumber;
44
+ start: z.ZodNumber;
45
+ text: z.ZodString;
46
+ }, "strip", z.ZodTypeAny, {
47
+ text: string;
48
+ duration: number;
49
+ start: number;
50
+ }, {
51
+ text: string;
52
+ duration: number;
53
+ start: number;
54
+ }>, "many">;
55
+ seed: z.ZodNumber;
56
+ }, "strip", z.ZodTypeAny, {
57
+ seed: number;
58
+ audio: string;
59
+ durations: {
60
+ text: string;
61
+ duration: number;
62
+ start: number;
63
+ }[];
64
+ }, {
65
+ seed: number;
66
+ audio: string;
67
+ durations: {
68
+ text: string;
69
+ duration: number;
70
+ start: number;
71
+ }[];
72
+ }>;
73
+ export type LmntSpeechResponse = z.infer<typeof lmntSpeechResponseSchema>;
74
+ export {};
@@ -1,12 +1,13 @@
1
- import { AbstractModel } from "../../model-function/AbstractModel.js";
1
+ import { z } from "zod";
2
2
  import { callWithRetryAndThrottle } from "../../core/api/callWithRetryAndThrottle.js";
3
- import { createAudioMpegResponseHandler, postToApi, } from "../../core/api/postToApi.js";
3
+ import { createJsonResponseHandler, createTextErrorResponseHandler, postToApi, } from "../../core/api/postToApi.js";
4
+ import { zodSchema } from "../../core/schema/ZodSchema.js";
5
+ import { AbstractModel } from "../../model-function/AbstractModel.js";
4
6
  import { LmntApiConfiguration } from "./LmntApiConfiguration.js";
5
- import { failedLmntCallResponseHandler } from "./LmntError.js";
6
7
  /**
7
8
  * Synthesize speech using the LMNT API.
8
9
  *
9
- * @see https://www.lmnt.com/docs/rest/#synthesize-speech
10
+ * @see https://docs.lmnt.com/api-reference/speech/synthesize-speech-1
10
11
  */
11
12
  export class LmntSpeechModel extends AbstractModel {
12
13
  constructor(settings) {
@@ -22,14 +23,44 @@ export class LmntSpeechModel extends AbstractModel {
22
23
  return this.settings.voice;
23
24
  }
24
25
  async callAPI(text, options) {
26
+ const api = this.settings.api ?? new LmntApiConfiguration();
27
+ const abortSignal = options?.run?.abortSignal;
25
28
  return callWithRetryAndThrottle({
26
- retry: this.settings.api?.retry,
27
- throttle: this.settings.api?.throttle,
28
- call: async () => callLmntTextToSpeechAPI({
29
- ...this.settings,
30
- abortSignal: options?.run?.abortSignal,
31
- text,
32
- }),
29
+ retry: api.retry,
30
+ throttle: api.throttle,
31
+ call: async () => {
32
+ const formData = new FormData();
33
+ formData.append("text", text);
34
+ formData.append("voice", this.settings.voice);
35
+ formData.append("format", "mp3");
36
+ formData.append("return_durations", "true");
37
+ if (this.settings.speed != null) {
38
+ formData.append("speed", this.settings.speed.toString());
39
+ }
40
+ if (this.settings.seed != null) {
41
+ formData.append("seed", this.settings.seed.toString());
42
+ }
43
+ if (this.settings.length != null) {
44
+ formData.append("length", this.settings.length.toString());
45
+ }
46
+ return postToApi({
47
+ url: api.assembleUrl(`/ai/speech`),
48
+ headers: api.headers,
49
+ body: {
50
+ content: formData,
51
+ values: {
52
+ text,
53
+ voice: this.settings.voice,
54
+ speed: this.settings.speed,
55
+ seed: this.settings.seed,
56
+ length: this.settings.length,
57
+ },
58
+ },
59
+ failedResponseHandler: createTextErrorResponseHandler(),
60
+ successfulResponseHandler: createJsonResponseHandler(zodSchema(lmntSpeechResponseSchema)),
61
+ abortSignal,
62
+ });
63
+ },
33
64
  });
34
65
  }
35
66
  get settingsForEvent() {
@@ -40,8 +71,9 @@ export class LmntSpeechModel extends AbstractModel {
40
71
  length: this.settings.length,
41
72
  };
42
73
  }
43
- doGenerateSpeechStandard(text, options) {
44
- return this.callAPI(text, options);
74
+ async doGenerateSpeechStandard(text, options) {
75
+ const response = await this.callAPI(text, options);
76
+ return Buffer.from(response.audio, "base64");
45
77
  }
46
78
  withSettings(additionalSettings) {
47
79
  return new LmntSpeechModel({
@@ -50,32 +82,12 @@ export class LmntSpeechModel extends AbstractModel {
50
82
  });
51
83
  }
52
84
  }
53
- async function callLmntTextToSpeechAPI({ api = new LmntApiConfiguration(), abortSignal, text, voice, speed, seed, length, }) {
54
- const formData = new FormData();
55
- formData.append("text", text);
56
- formData.append("voice", voice);
57
- formData.append("format", "mp3");
58
- if (speed != null)
59
- formData.append("speed", speed.toString());
60
- if (seed != null)
61
- formData.append("seed", seed.toString());
62
- if (length != null)
63
- formData.append("length", length.toString());
64
- return postToApi({
65
- url: api.assembleUrl(`/synthesize`),
66
- headers: api.headers,
67
- body: {
68
- content: formData,
69
- values: {
70
- text,
71
- voice,
72
- speed,
73
- seed,
74
- length,
75
- },
76
- },
77
- failedResponseHandler: failedLmntCallResponseHandler,
78
- successfulResponseHandler: createAudioMpegResponseHandler(),
79
- abortSignal,
80
- });
81
- }
85
+ const lmntSpeechResponseSchema = z.object({
86
+ audio: z.string(),
87
+ durations: z.array(z.object({
88
+ duration: z.number(),
89
+ start: z.number(),
90
+ text: z.string(),
91
+ })),
92
+ seed: z.number(),
93
+ });
@@ -3,19 +3,27 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.MistralApiConfiguration = void 0;
4
4
  const BaseUrlApiConfiguration_js_1 = require("../../core/api/BaseUrlApiConfiguration.cjs");
5
5
  const loadApiKey_js_1 = require("../../core/api/loadApiKey.cjs");
6
- class MistralApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApiConfiguration {
7
- constructor({ baseUrl = "https://api.mistral.ai/v1", apiKey, retry, throttle, } = {}) {
6
+ /**
7
+ * Creates an API configuration for the Mistral API.
8
+ * It calls the API at https://api.mistral.ai/v1 and uses the `MISTRAL_API_KEY` env variable by default.
9
+ */
10
+ class MistralApiConfiguration extends BaseUrlApiConfiguration_js_1.BaseUrlApiConfigurationWithDefaults {
11
+ constructor(settings = {}) {
8
12
  super({
9
- baseUrl,
13
+ ...settings,
10
14
  headers: {
11
15
  Authorization: `Bearer ${(0, loadApiKey_js_1.loadApiKey)({
12
- apiKey,
16
+ apiKey: settings.apiKey,
13
17
  environmentVariableName: "MISTRAL_API_KEY",
14
18
  description: "Mistral",
15
19
  })}`,
16
20
  },
17
- retry,
18
- throttle,
21
+ baseUrlDefaults: {
22
+ protocol: "https",
23
+ host: "api.mistral.ai",
24
+ port: "443",
25
+ path: "/v1",
26
+ },
19
27
  });
20
28
  }
21
29
  }