@fairyhunter13/ai-sdk 6.0.116-fork.1

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 (534) hide show
  1. package/CHANGELOG.md +7582 -0
  2. package/README.md +238 -0
  3. package/dist/index.d.mts +6751 -0
  4. package/dist/index.d.ts +6751 -0
  5. package/dist/index.js +14155 -0
  6. package/dist/index.js.map +1 -0
  7. package/dist/index.mjs +14127 -0
  8. package/dist/index.mjs.map +1 -0
  9. package/dist/internal/index.d.mts +324 -0
  10. package/dist/internal/index.d.ts +324 -0
  11. package/dist/internal/index.js +1352 -0
  12. package/dist/internal/index.js.map +1 -0
  13. package/dist/internal/index.mjs +1336 -0
  14. package/dist/internal/index.mjs.map +1 -0
  15. package/dist/test/index.d.mts +265 -0
  16. package/dist/test/index.d.ts +265 -0
  17. package/dist/test/index.js +509 -0
  18. package/dist/test/index.js.map +1 -0
  19. package/dist/test/index.mjs +472 -0
  20. package/dist/test/index.mjs.map +1 -0
  21. package/docs/00-introduction/index.mdx +76 -0
  22. package/docs/02-foundations/01-overview.mdx +43 -0
  23. package/docs/02-foundations/02-providers-and-models.mdx +158 -0
  24. package/docs/02-foundations/03-prompts.mdx +616 -0
  25. package/docs/02-foundations/04-tools.mdx +251 -0
  26. package/docs/02-foundations/05-streaming.mdx +62 -0
  27. package/docs/02-foundations/06-provider-options.mdx +345 -0
  28. package/docs/02-foundations/index.mdx +49 -0
  29. package/docs/02-getting-started/00-choosing-a-provider.mdx +110 -0
  30. package/docs/02-getting-started/01-navigating-the-library.mdx +85 -0
  31. package/docs/02-getting-started/02-nextjs-app-router.mdx +559 -0
  32. package/docs/02-getting-started/03-nextjs-pages-router.mdx +542 -0
  33. package/docs/02-getting-started/04-svelte.mdx +627 -0
  34. package/docs/02-getting-started/05-nuxt.mdx +566 -0
  35. package/docs/02-getting-started/06-nodejs.mdx +512 -0
  36. package/docs/02-getting-started/07-expo.mdx +766 -0
  37. package/docs/02-getting-started/08-tanstack-start.mdx +583 -0
  38. package/docs/02-getting-started/09-coding-agents.mdx +179 -0
  39. package/docs/02-getting-started/index.mdx +44 -0
  40. package/docs/03-agents/01-overview.mdx +96 -0
  41. package/docs/03-agents/02-building-agents.mdx +449 -0
  42. package/docs/03-agents/03-workflows.mdx +386 -0
  43. package/docs/03-agents/04-loop-control.mdx +394 -0
  44. package/docs/03-agents/05-configuring-call-options.mdx +286 -0
  45. package/docs/03-agents/06-memory.mdx +222 -0
  46. package/docs/03-agents/06-subagents.mdx +362 -0
  47. package/docs/03-agents/index.mdx +46 -0
  48. package/docs/03-ai-sdk-core/01-overview.mdx +31 -0
  49. package/docs/03-ai-sdk-core/05-generating-text.mdx +707 -0
  50. package/docs/03-ai-sdk-core/10-generating-structured-data.mdx +498 -0
  51. package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +1144 -0
  52. package/docs/03-ai-sdk-core/16-mcp-tools.mdx +383 -0
  53. package/docs/03-ai-sdk-core/20-prompt-engineering.mdx +146 -0
  54. package/docs/03-ai-sdk-core/25-settings.mdx +216 -0
  55. package/docs/03-ai-sdk-core/26-reasoning.mdx +190 -0
  56. package/docs/03-ai-sdk-core/30-embeddings.mdx +246 -0
  57. package/docs/03-ai-sdk-core/31-reranking.mdx +218 -0
  58. package/docs/03-ai-sdk-core/35-image-generation.mdx +341 -0
  59. package/docs/03-ai-sdk-core/36-transcription.mdx +227 -0
  60. package/docs/03-ai-sdk-core/37-speech.mdx +169 -0
  61. package/docs/03-ai-sdk-core/38-video-generation.mdx +366 -0
  62. package/docs/03-ai-sdk-core/40-middleware.mdx +485 -0
  63. package/docs/03-ai-sdk-core/45-provider-management.mdx +349 -0
  64. package/docs/03-ai-sdk-core/50-error-handling.mdx +149 -0
  65. package/docs/03-ai-sdk-core/55-testing.mdx +219 -0
  66. package/docs/03-ai-sdk-core/60-telemetry.mdx +391 -0
  67. package/docs/03-ai-sdk-core/65-devtools.mdx +107 -0
  68. package/docs/03-ai-sdk-core/65-event-listeners.mdx +1118 -0
  69. package/docs/03-ai-sdk-core/index.mdx +99 -0
  70. package/docs/04-ai-sdk-ui/01-overview.mdx +44 -0
  71. package/docs/04-ai-sdk-ui/02-chatbot.mdx +1320 -0
  72. package/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +535 -0
  73. package/docs/04-ai-sdk-ui/03-chatbot-resume-streams.mdx +263 -0
  74. package/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +682 -0
  75. package/docs/04-ai-sdk-ui/04-generative-user-interfaces.mdx +389 -0
  76. package/docs/04-ai-sdk-ui/05-completion.mdx +181 -0
  77. package/docs/04-ai-sdk-ui/08-object-generation.mdx +344 -0
  78. package/docs/04-ai-sdk-ui/20-streaming-data.mdx +397 -0
  79. package/docs/04-ai-sdk-ui/21-error-handling.mdx +190 -0
  80. package/docs/04-ai-sdk-ui/21-transport.mdx +174 -0
  81. package/docs/04-ai-sdk-ui/24-reading-ui-message-streams.mdx +104 -0
  82. package/docs/04-ai-sdk-ui/25-message-metadata.mdx +152 -0
  83. package/docs/04-ai-sdk-ui/50-stream-protocol.mdx +503 -0
  84. package/docs/04-ai-sdk-ui/index.mdx +64 -0
  85. package/docs/05-ai-sdk-rsc/01-overview.mdx +45 -0
  86. package/docs/05-ai-sdk-rsc/02-streaming-react-components.mdx +209 -0
  87. package/docs/05-ai-sdk-rsc/03-generative-ui-state.mdx +279 -0
  88. package/docs/05-ai-sdk-rsc/03-saving-and-restoring-states.mdx +105 -0
  89. package/docs/05-ai-sdk-rsc/04-multistep-interfaces.mdx +282 -0
  90. package/docs/05-ai-sdk-rsc/05-streaming-values.mdx +157 -0
  91. package/docs/05-ai-sdk-rsc/06-loading-state.mdx +273 -0
  92. package/docs/05-ai-sdk-rsc/08-error-handling.mdx +94 -0
  93. package/docs/05-ai-sdk-rsc/09-authentication.mdx +42 -0
  94. package/docs/05-ai-sdk-rsc/10-migrating-to-ui.mdx +722 -0
  95. package/docs/05-ai-sdk-rsc/index.mdx +63 -0
  96. package/docs/06-advanced/01-prompt-engineering.mdx +96 -0
  97. package/docs/06-advanced/02-stopping-streams.mdx +184 -0
  98. package/docs/06-advanced/03-backpressure.mdx +173 -0
  99. package/docs/06-advanced/04-caching.mdx +169 -0
  100. package/docs/06-advanced/05-multiple-streamables.mdx +68 -0
  101. package/docs/06-advanced/06-rate-limiting.mdx +60 -0
  102. package/docs/06-advanced/07-rendering-ui-with-language-models.mdx +225 -0
  103. package/docs/06-advanced/08-model-as-router.mdx +120 -0
  104. package/docs/06-advanced/09-multistep-interfaces.mdx +115 -0
  105. package/docs/06-advanced/09-sequential-generations.mdx +55 -0
  106. package/docs/06-advanced/10-vercel-deployment-guide.mdx +117 -0
  107. package/docs/06-advanced/index.mdx +11 -0
  108. package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +2785 -0
  109. package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +3752 -0
  110. package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +332 -0
  111. package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +330 -0
  112. package/docs/07-reference/01-ai-sdk-core/06-rerank.mdx +309 -0
  113. package/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +251 -0
  114. package/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +152 -0
  115. package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +221 -0
  116. package/docs/07-reference/01-ai-sdk-core/13-generate-video.mdx +264 -0
  117. package/docs/07-reference/01-ai-sdk-core/15-agent.mdx +235 -0
  118. package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +973 -0
  119. package/docs/07-reference/01-ai-sdk-core/17-create-agent-ui-stream.mdx +154 -0
  120. package/docs/07-reference/01-ai-sdk-core/18-create-agent-ui-stream-response.mdx +173 -0
  121. package/docs/07-reference/01-ai-sdk-core/18-pipe-agent-ui-stream-to-response.mdx +150 -0
  122. package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +209 -0
  123. package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +223 -0
  124. package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +423 -0
  125. package/docs/07-reference/01-ai-sdk-core/24-mcp-stdio-transport.mdx +68 -0
  126. package/docs/07-reference/01-ai-sdk-core/25-json-schema.mdx +94 -0
  127. package/docs/07-reference/01-ai-sdk-core/26-zod-schema.mdx +109 -0
  128. package/docs/07-reference/01-ai-sdk-core/27-valibot-schema.mdx +58 -0
  129. package/docs/07-reference/01-ai-sdk-core/28-output.mdx +342 -0
  130. package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +435 -0
  131. package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +264 -0
  132. package/docs/07-reference/01-ai-sdk-core/32-validate-ui-messages.mdx +101 -0
  133. package/docs/07-reference/01-ai-sdk-core/33-safe-validate-ui-messages.mdx +113 -0
  134. package/docs/07-reference/01-ai-sdk-core/40-provider-registry.mdx +198 -0
  135. package/docs/07-reference/01-ai-sdk-core/42-custom-provider.mdx +157 -0
  136. package/docs/07-reference/01-ai-sdk-core/50-cosine-similarity.mdx +52 -0
  137. package/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +59 -0
  138. package/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +64 -0
  139. package/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +74 -0
  140. package/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +68 -0
  141. package/docs/07-reference/01-ai-sdk-core/67-simulate-streaming-middleware.mdx +71 -0
  142. package/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +80 -0
  143. package/docs/07-reference/01-ai-sdk-core/69-add-tool-input-examples-middleware.mdx +155 -0
  144. package/docs/07-reference/01-ai-sdk-core/70-extract-json-middleware.mdx +147 -0
  145. package/docs/07-reference/01-ai-sdk-core/70-step-count-is.mdx +84 -0
  146. package/docs/07-reference/01-ai-sdk-core/71-has-tool-call.mdx +120 -0
  147. package/docs/07-reference/01-ai-sdk-core/75-simulate-readable-stream.mdx +94 -0
  148. package/docs/07-reference/01-ai-sdk-core/80-smooth-stream.mdx +145 -0
  149. package/docs/07-reference/01-ai-sdk-core/90-generate-id.mdx +30 -0
  150. package/docs/07-reference/01-ai-sdk-core/91-create-id-generator.mdx +89 -0
  151. package/docs/07-reference/01-ai-sdk-core/92-default-generated-file.mdx +68 -0
  152. package/docs/07-reference/01-ai-sdk-core/index.mdx +160 -0
  153. package/docs/07-reference/02-ai-sdk-ui/01-use-chat.mdx +493 -0
  154. package/docs/07-reference/02-ai-sdk-ui/02-use-completion.mdx +185 -0
  155. package/docs/07-reference/02-ai-sdk-ui/03-use-object.mdx +196 -0
  156. package/docs/07-reference/02-ai-sdk-ui/31-convert-to-model-messages.mdx +231 -0
  157. package/docs/07-reference/02-ai-sdk-ui/32-prune-messages.mdx +108 -0
  158. package/docs/07-reference/02-ai-sdk-ui/40-create-ui-message-stream.mdx +162 -0
  159. package/docs/07-reference/02-ai-sdk-ui/41-create-ui-message-stream-response.mdx +119 -0
  160. package/docs/07-reference/02-ai-sdk-ui/42-pipe-ui-message-stream-to-response.mdx +77 -0
  161. package/docs/07-reference/02-ai-sdk-ui/43-read-ui-message-stream.mdx +57 -0
  162. package/docs/07-reference/02-ai-sdk-ui/46-infer-ui-tools.mdx +99 -0
  163. package/docs/07-reference/02-ai-sdk-ui/47-infer-ui-tool.mdx +75 -0
  164. package/docs/07-reference/02-ai-sdk-ui/50-direct-chat-transport.mdx +333 -0
  165. package/docs/07-reference/02-ai-sdk-ui/index.mdx +89 -0
  166. package/docs/07-reference/03-ai-sdk-rsc/01-stream-ui.mdx +767 -0
  167. package/docs/07-reference/03-ai-sdk-rsc/02-create-ai.mdx +90 -0
  168. package/docs/07-reference/03-ai-sdk-rsc/03-create-streamable-ui.mdx +91 -0
  169. package/docs/07-reference/03-ai-sdk-rsc/04-create-streamable-value.mdx +78 -0
  170. package/docs/07-reference/03-ai-sdk-rsc/05-read-streamable-value.mdx +79 -0
  171. package/docs/07-reference/03-ai-sdk-rsc/06-get-ai-state.mdx +50 -0
  172. package/docs/07-reference/03-ai-sdk-rsc/07-get-mutable-ai-state.mdx +70 -0
  173. package/docs/07-reference/03-ai-sdk-rsc/08-use-ai-state.mdx +26 -0
  174. package/docs/07-reference/03-ai-sdk-rsc/09-use-actions.mdx +42 -0
  175. package/docs/07-reference/03-ai-sdk-rsc/10-use-ui-state.mdx +35 -0
  176. package/docs/07-reference/03-ai-sdk-rsc/11-use-streamable-value.mdx +46 -0
  177. package/docs/07-reference/03-ai-sdk-rsc/20-render.mdx +266 -0
  178. package/docs/07-reference/03-ai-sdk-rsc/index.mdx +67 -0
  179. package/docs/07-reference/05-ai-sdk-errors/ai-api-call-error.mdx +31 -0
  180. package/docs/07-reference/05-ai-sdk-errors/ai-download-error.mdx +28 -0
  181. package/docs/07-reference/05-ai-sdk-errors/ai-empty-response-body-error.mdx +24 -0
  182. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-argument-error.mdx +26 -0
  183. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content-error.mdx +26 -0
  184. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-message-role-error.mdx +25 -0
  185. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-prompt-error.mdx +47 -0
  186. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-response-data-error.mdx +25 -0
  187. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-approval-error.mdx +24 -0
  188. package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-input-error.mdx +27 -0
  189. package/docs/07-reference/05-ai-sdk-errors/ai-json-parse-error.mdx +25 -0
  190. package/docs/07-reference/05-ai-sdk-errors/ai-load-api-key-error.mdx +24 -0
  191. package/docs/07-reference/05-ai-sdk-errors/ai-load-setting-error.mdx +24 -0
  192. package/docs/07-reference/05-ai-sdk-errors/ai-message-conversion-error.mdx +25 -0
  193. package/docs/07-reference/05-ai-sdk-errors/ai-no-content-generated-error.mdx +24 -0
  194. package/docs/07-reference/05-ai-sdk-errors/ai-no-image-generated-error.mdx +36 -0
  195. package/docs/07-reference/05-ai-sdk-errors/ai-no-object-generated-error.mdx +43 -0
  196. package/docs/07-reference/05-ai-sdk-errors/ai-no-output-generated-error.mdx +25 -0
  197. package/docs/07-reference/05-ai-sdk-errors/ai-no-speech-generated-error.mdx +24 -0
  198. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-model-error.mdx +26 -0
  199. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-provider-error.mdx +28 -0
  200. package/docs/07-reference/05-ai-sdk-errors/ai-no-such-tool-error.mdx +26 -0
  201. package/docs/07-reference/05-ai-sdk-errors/ai-no-transcript-generated-error.mdx +24 -0
  202. package/docs/07-reference/05-ai-sdk-errors/ai-no-video-generated-error.mdx +39 -0
  203. package/docs/07-reference/05-ai-sdk-errors/ai-retry-error.mdx +27 -0
  204. package/docs/07-reference/05-ai-sdk-errors/ai-too-many-embedding-values-for-call-error.mdx +27 -0
  205. package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-not-found-for-approval-error.mdx +25 -0
  206. package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-repair-error.mdx +28 -0
  207. package/docs/07-reference/05-ai-sdk-errors/ai-type-validation-error.mdx +25 -0
  208. package/docs/07-reference/05-ai-sdk-errors/ai-ui-message-stream-error.mdx +67 -0
  209. package/docs/07-reference/05-ai-sdk-errors/ai-unsupported-functionality-error.mdx +25 -0
  210. package/docs/07-reference/05-ai-sdk-errors/index.mdx +39 -0
  211. package/docs/07-reference/index.mdx +28 -0
  212. package/docs/08-migration-guides/00-versioning.mdx +46 -0
  213. package/docs/08-migration-guides/23-migration-guide-7-0.mdx +95 -0
  214. package/docs/08-migration-guides/24-migration-guide-6-0.mdx +823 -0
  215. package/docs/08-migration-guides/25-migration-guide-5-0-data.mdx +882 -0
  216. package/docs/08-migration-guides/26-migration-guide-5-0.mdx +3427 -0
  217. package/docs/08-migration-guides/27-migration-guide-4-2.mdx +99 -0
  218. package/docs/08-migration-guides/28-migration-guide-4-1.mdx +14 -0
  219. package/docs/08-migration-guides/29-migration-guide-4-0.mdx +1157 -0
  220. package/docs/08-migration-guides/36-migration-guide-3-4.mdx +14 -0
  221. package/docs/08-migration-guides/37-migration-guide-3-3.mdx +64 -0
  222. package/docs/08-migration-guides/38-migration-guide-3-2.mdx +46 -0
  223. package/docs/08-migration-guides/39-migration-guide-3-1.mdx +168 -0
  224. package/docs/08-migration-guides/index.mdx +22 -0
  225. package/docs/09-troubleshooting/01-azure-stream-slow.mdx +33 -0
  226. package/docs/09-troubleshooting/03-server-actions-in-client-components.mdx +40 -0
  227. package/docs/09-troubleshooting/04-strange-stream-output.mdx +36 -0
  228. package/docs/09-troubleshooting/05-streamable-ui-errors.mdx +16 -0
  229. package/docs/09-troubleshooting/05-tool-invocation-missing-result.mdx +106 -0
  230. package/docs/09-troubleshooting/06-streaming-not-working-when-deployed.mdx +31 -0
  231. package/docs/09-troubleshooting/06-streaming-not-working-when-proxied.mdx +31 -0
  232. package/docs/09-troubleshooting/06-timeout-on-vercel.mdx +60 -0
  233. package/docs/09-troubleshooting/07-unclosed-streams.mdx +34 -0
  234. package/docs/09-troubleshooting/08-use-chat-failed-to-parse-stream.mdx +26 -0
  235. package/docs/09-troubleshooting/09-client-stream-error.mdx +25 -0
  236. package/docs/09-troubleshooting/10-use-chat-tools-no-response.mdx +32 -0
  237. package/docs/09-troubleshooting/11-use-chat-custom-request-options.mdx +149 -0
  238. package/docs/09-troubleshooting/12-typescript-performance-zod.mdx +46 -0
  239. package/docs/09-troubleshooting/12-use-chat-an-error-occurred.mdx +59 -0
  240. package/docs/09-troubleshooting/13-repeated-assistant-messages.mdx +73 -0
  241. package/docs/09-troubleshooting/14-stream-abort-handling.mdx +73 -0
  242. package/docs/09-troubleshooting/14-tool-calling-with-structured-outputs.mdx +48 -0
  243. package/docs/09-troubleshooting/15-abort-breaks-resumable-streams.mdx +55 -0
  244. package/docs/09-troubleshooting/15-stream-text-not-working.mdx +33 -0
  245. package/docs/09-troubleshooting/16-streaming-status-delay.mdx +63 -0
  246. package/docs/09-troubleshooting/17-use-chat-stale-body-data.mdx +141 -0
  247. package/docs/09-troubleshooting/18-ontoolcall-type-narrowing.mdx +66 -0
  248. package/docs/09-troubleshooting/19-unsupported-model-version.mdx +50 -0
  249. package/docs/09-troubleshooting/20-no-object-generated-content-filter.mdx +76 -0
  250. package/docs/09-troubleshooting/21-missing-tool-results-error.mdx +82 -0
  251. package/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +21 -0
  252. package/docs/09-troubleshooting/40-typescript-cannot-find-namespace-jsx.mdx +24 -0
  253. package/docs/09-troubleshooting/50-react-maximum-update-depth-exceeded.mdx +39 -0
  254. package/docs/09-troubleshooting/60-jest-cannot-find-module-ai-rsc.mdx +22 -0
  255. package/docs/09-troubleshooting/70-high-memory-usage-with-images.mdx +108 -0
  256. package/docs/09-troubleshooting/index.mdx +11 -0
  257. package/internal.d.ts +1 -0
  258. package/package.json +120 -0
  259. package/src/agent/agent.ts +156 -0
  260. package/src/agent/create-agent-ui-stream-response.ts +61 -0
  261. package/src/agent/create-agent-ui-stream.ts +84 -0
  262. package/src/agent/index.ts +37 -0
  263. package/src/agent/infer-agent-tools.ts +7 -0
  264. package/src/agent/infer-agent-ui-message.ts +11 -0
  265. package/src/agent/pipe-agent-ui-stream-to-response.ts +64 -0
  266. package/src/agent/tool-loop-agent-settings.ts +244 -0
  267. package/src/agent/tool-loop-agent.ts +205 -0
  268. package/src/embed/embed-events.ts +109 -0
  269. package/src/embed/embed-many-result.ts +53 -0
  270. package/src/embed/embed-many.ts +484 -0
  271. package/src/embed/embed-result.ts +50 -0
  272. package/src/embed/embed.ts +294 -0
  273. package/src/embed/index.ts +5 -0
  274. package/src/error/index.ts +37 -0
  275. package/src/error/invalid-argument-error.ts +34 -0
  276. package/src/error/invalid-stream-part-error.ts +28 -0
  277. package/src/error/invalid-tool-approval-error.ts +26 -0
  278. package/src/error/invalid-tool-input-error.ts +33 -0
  279. package/src/error/missing-tool-result-error.ts +28 -0
  280. package/src/error/no-image-generated-error.ts +39 -0
  281. package/src/error/no-object-generated-error.ts +70 -0
  282. package/src/error/no-output-generated-error.ts +26 -0
  283. package/src/error/no-speech-generated-error.ts +28 -0
  284. package/src/error/no-such-tool-error.ts +35 -0
  285. package/src/error/no-transcript-generated-error.ts +30 -0
  286. package/src/error/no-video-generated-error.ts +57 -0
  287. package/src/error/tool-call-not-found-for-approval-error.ts +32 -0
  288. package/src/error/tool-call-repair-error.ts +30 -0
  289. package/src/error/ui-message-stream-error.ts +48 -0
  290. package/src/error/unsupported-model-version-error.ts +23 -0
  291. package/src/error/verify-no-object-generated-error.ts +27 -0
  292. package/src/generate-image/generate-image-result.ts +42 -0
  293. package/src/generate-image/generate-image.ts +361 -0
  294. package/src/generate-image/index.ts +18 -0
  295. package/src/generate-object/generate-object-result.ts +67 -0
  296. package/src/generate-object/generate-object.ts +514 -0
  297. package/src/generate-object/index.ts +9 -0
  298. package/src/generate-object/inject-json-instruction.ts +30 -0
  299. package/src/generate-object/output-strategy.ts +415 -0
  300. package/src/generate-object/parse-and-validate-object-result.ts +111 -0
  301. package/src/generate-object/repair-text.ts +12 -0
  302. package/src/generate-object/stream-object-result.ts +120 -0
  303. package/src/generate-object/stream-object.ts +984 -0
  304. package/src/generate-object/validate-object-generation-input.ts +144 -0
  305. package/src/generate-speech/generate-speech-result.ts +30 -0
  306. package/src/generate-speech/generate-speech.ts +191 -0
  307. package/src/generate-speech/generated-audio-file.ts +65 -0
  308. package/src/generate-speech/index.ts +3 -0
  309. package/src/generate-text/collect-tool-approvals.ts +116 -0
  310. package/src/generate-text/content-part.ts +31 -0
  311. package/src/generate-text/core-events.ts +390 -0
  312. package/src/generate-text/create-execute-tools-transformation.ts +168 -0
  313. package/src/generate-text/create-stream-text-part-transform.ts +229 -0
  314. package/src/generate-text/execute-tool-call.ts +190 -0
  315. package/src/generate-text/extract-reasoning-content.ts +17 -0
  316. package/src/generate-text/extract-text-content.ts +15 -0
  317. package/src/generate-text/generate-text-result.ts +168 -0
  318. package/src/generate-text/generate-text.ts +1411 -0
  319. package/src/generate-text/generated-file.ts +70 -0
  320. package/src/generate-text/index.ts +74 -0
  321. package/src/generate-text/is-approval-needed.ts +29 -0
  322. package/src/generate-text/output-utils.ts +23 -0
  323. package/src/generate-text/output.ts +590 -0
  324. package/src/generate-text/parse-tool-call.ts +188 -0
  325. package/src/generate-text/prepare-step.ts +103 -0
  326. package/src/generate-text/prune-messages.ts +167 -0
  327. package/src/generate-text/reasoning-output.ts +99 -0
  328. package/src/generate-text/reasoning.ts +10 -0
  329. package/src/generate-text/response-message.ts +10 -0
  330. package/src/generate-text/smooth-stream.ts +162 -0
  331. package/src/generate-text/step-result.ts +310 -0
  332. package/src/generate-text/stop-condition.ts +29 -0
  333. package/src/generate-text/stream-text-result.ts +536 -0
  334. package/src/generate-text/stream-text.ts +2693 -0
  335. package/src/generate-text/to-response-messages.ts +178 -0
  336. package/src/generate-text/tool-approval-request-output.ts +21 -0
  337. package/src/generate-text/tool-call-repair-function.ts +27 -0
  338. package/src/generate-text/tool-call.ts +47 -0
  339. package/src/generate-text/tool-error.ts +34 -0
  340. package/src/generate-text/tool-output-denied.ts +21 -0
  341. package/src/generate-text/tool-output.ts +7 -0
  342. package/src/generate-text/tool-result.ts +36 -0
  343. package/src/generate-text/tool-set.ts +14 -0
  344. package/src/generate-video/generate-video-result.ts +36 -0
  345. package/src/generate-video/generate-video.ts +402 -0
  346. package/src/generate-video/index.ts +3 -0
  347. package/src/global.ts +36 -0
  348. package/src/index.ts +49 -0
  349. package/src/logger/index.ts +6 -0
  350. package/src/logger/log-warnings.ts +140 -0
  351. package/src/middleware/add-tool-input-examples-middleware.ts +90 -0
  352. package/src/middleware/default-embedding-settings-middleware.ts +22 -0
  353. package/src/middleware/default-settings-middleware.ts +33 -0
  354. package/src/middleware/extract-json-middleware.ts +197 -0
  355. package/src/middleware/extract-reasoning-middleware.ts +249 -0
  356. package/src/middleware/index.ts +10 -0
  357. package/src/middleware/simulate-streaming-middleware.ts +79 -0
  358. package/src/middleware/wrap-embedding-model.ts +89 -0
  359. package/src/middleware/wrap-image-model.ts +92 -0
  360. package/src/middleware/wrap-language-model.ts +108 -0
  361. package/src/middleware/wrap-provider.ts +51 -0
  362. package/src/model/as-embedding-model-v3.ts +24 -0
  363. package/src/model/as-embedding-model-v4.ts +25 -0
  364. package/src/model/as-image-model-v3.ts +24 -0
  365. package/src/model/as-image-model-v4.ts +21 -0
  366. package/src/model/as-language-model-v3.ts +103 -0
  367. package/src/model/as-language-model-v4.ts +25 -0
  368. package/src/model/as-provider-v3.ts +36 -0
  369. package/src/model/as-provider-v4.ts +47 -0
  370. package/src/model/as-reranking-model-v4.ts +16 -0
  371. package/src/model/as-speech-model-v3.ts +24 -0
  372. package/src/model/as-speech-model-v4.ts +21 -0
  373. package/src/model/as-transcription-model-v3.ts +24 -0
  374. package/src/model/as-transcription-model-v4.ts +25 -0
  375. package/src/model/as-video-model-v4.ts +19 -0
  376. package/src/model/resolve-model.ts +172 -0
  377. package/src/prompt/call-settings.ts +177 -0
  378. package/src/prompt/content-part.ts +236 -0
  379. package/src/prompt/convert-to-language-model-prompt.ts +548 -0
  380. package/src/prompt/create-tool-model-output.ts +34 -0
  381. package/src/prompt/data-content.ts +134 -0
  382. package/src/prompt/index.ts +27 -0
  383. package/src/prompt/invalid-data-content-error.ts +29 -0
  384. package/src/prompt/invalid-message-role-error.ts +27 -0
  385. package/src/prompt/message-conversion-error.ts +28 -0
  386. package/src/prompt/message.ts +72 -0
  387. package/src/prompt/prepare-call-settings.ts +110 -0
  388. package/src/prompt/prepare-tools-and-tool-choice.ts +86 -0
  389. package/src/prompt/prompt.ts +43 -0
  390. package/src/prompt/split-data-url.ts +17 -0
  391. package/src/prompt/standardize-prompt.ts +99 -0
  392. package/src/prompt/wrap-gateway-error.ts +29 -0
  393. package/src/registry/custom-provider.ts +210 -0
  394. package/src/registry/index.ts +7 -0
  395. package/src/registry/no-such-provider-error.ts +41 -0
  396. package/src/registry/provider-registry.ts +331 -0
  397. package/src/rerank/index.ts +2 -0
  398. package/src/rerank/rerank-result.ts +70 -0
  399. package/src/rerank/rerank.ts +239 -0
  400. package/src/telemetry/assemble-operation-name.ts +21 -0
  401. package/src/telemetry/get-base-telemetry-attributes.ts +55 -0
  402. package/src/telemetry/get-global-telemetry-integration.ts +110 -0
  403. package/src/telemetry/get-tracer.ts +20 -0
  404. package/src/telemetry/index.ts +4 -0
  405. package/src/telemetry/noop-tracer.ts +69 -0
  406. package/src/telemetry/open-telemetry-integration.ts +537 -0
  407. package/src/telemetry/record-span.ts +75 -0
  408. package/src/telemetry/select-telemetry-attributes.ts +78 -0
  409. package/src/telemetry/stringify-for-telemetry.ts +33 -0
  410. package/src/telemetry/telemetry-integration-registry.ts +22 -0
  411. package/src/telemetry/telemetry-integration.ts +100 -0
  412. package/src/telemetry/telemetry-settings.ts +55 -0
  413. package/src/test/mock-embedding-model-v2.ts +35 -0
  414. package/src/test/mock-embedding-model-v3.ts +48 -0
  415. package/src/test/mock-embedding-model-v4.ts +48 -0
  416. package/src/test/mock-image-model-v2.ts +28 -0
  417. package/src/test/mock-image-model-v3.ts +28 -0
  418. package/src/test/mock-image-model-v4.ts +28 -0
  419. package/src/test/mock-language-model-v2.ts +72 -0
  420. package/src/test/mock-language-model-v3.ts +77 -0
  421. package/src/test/mock-language-model-v4.ts +77 -0
  422. package/src/test/mock-provider-v2.ts +68 -0
  423. package/src/test/mock-provider-v3.ts +80 -0
  424. package/src/test/mock-provider-v4.ts +80 -0
  425. package/src/test/mock-reranking-model-v3.ts +25 -0
  426. package/src/test/mock-reranking-model-v4.ts +25 -0
  427. package/src/test/mock-server-response.ts +69 -0
  428. package/src/test/mock-speech-model-v2.ts +24 -0
  429. package/src/test/mock-speech-model-v3.ts +24 -0
  430. package/src/test/mock-speech-model-v4.ts +24 -0
  431. package/src/test/mock-tracer.ts +156 -0
  432. package/src/test/mock-transcription-model-v2.ts +24 -0
  433. package/src/test/mock-transcription-model-v3.ts +24 -0
  434. package/src/test/mock-transcription-model-v4.ts +24 -0
  435. package/src/test/mock-values.ts +4 -0
  436. package/src/test/mock-video-model-v3.ts +28 -0
  437. package/src/test/mock-video-model-v4.ts +28 -0
  438. package/src/test/not-implemented.ts +3 -0
  439. package/src/text-stream/create-text-stream-response.ts +30 -0
  440. package/src/text-stream/index.ts +2 -0
  441. package/src/text-stream/pipe-text-stream-to-response.ts +38 -0
  442. package/src/transcribe/index.ts +2 -0
  443. package/src/transcribe/transcribe-result.ts +60 -0
  444. package/src/transcribe/transcribe.ts +187 -0
  445. package/src/types/embedding-model-middleware.ts +15 -0
  446. package/src/types/embedding-model.ts +20 -0
  447. package/src/types/image-model-middleware.ts +15 -0
  448. package/src/types/image-model-response-metadata.ts +16 -0
  449. package/src/types/image-model.ts +19 -0
  450. package/src/types/index.ts +29 -0
  451. package/src/types/json-value.ts +15 -0
  452. package/src/types/language-model-middleware.ts +15 -0
  453. package/src/types/language-model-request-metadata.ts +6 -0
  454. package/src/types/language-model-response-metadata.ts +21 -0
  455. package/src/types/language-model.ts +106 -0
  456. package/src/types/provider-metadata.ts +16 -0
  457. package/src/types/provider.ts +55 -0
  458. package/src/types/reranking-model.ts +6 -0
  459. package/src/types/speech-model-response-metadata.ts +21 -0
  460. package/src/types/speech-model.ts +10 -0
  461. package/src/types/transcription-model-response-metadata.ts +16 -0
  462. package/src/types/transcription-model.ts +14 -0
  463. package/src/types/usage.ts +200 -0
  464. package/src/types/video-model-response-metadata.ts +28 -0
  465. package/src/types/video-model.ts +15 -0
  466. package/src/types/warning.ts +7 -0
  467. package/src/ui/call-completion-api.ts +157 -0
  468. package/src/ui/chat-transport.ts +83 -0
  469. package/src/ui/chat.ts +786 -0
  470. package/src/ui/convert-file-list-to-file-ui-parts.ts +36 -0
  471. package/src/ui/convert-to-model-messages.ts +403 -0
  472. package/src/ui/default-chat-transport.ts +36 -0
  473. package/src/ui/direct-chat-transport.ts +117 -0
  474. package/src/ui/http-chat-transport.ts +273 -0
  475. package/src/ui/index.ts +76 -0
  476. package/src/ui/last-assistant-message-is-complete-with-approval-responses.ts +44 -0
  477. package/src/ui/last-assistant-message-is-complete-with-tool-calls.ts +39 -0
  478. package/src/ui/process-text-stream.ts +16 -0
  479. package/src/ui/process-ui-message-stream.ts +858 -0
  480. package/src/ui/text-stream-chat-transport.ts +23 -0
  481. package/src/ui/transform-text-to-ui-message-stream.ts +27 -0
  482. package/src/ui/ui-messages.ts +602 -0
  483. package/src/ui/use-completion.ts +84 -0
  484. package/src/ui/validate-ui-messages.ts +521 -0
  485. package/src/ui-message-stream/create-ui-message-stream-response.ts +44 -0
  486. package/src/ui-message-stream/create-ui-message-stream.ts +145 -0
  487. package/src/ui-message-stream/get-response-ui-message-id.ts +35 -0
  488. package/src/ui-message-stream/handle-ui-message-stream-finish.ts +170 -0
  489. package/src/ui-message-stream/index.ts +14 -0
  490. package/src/ui-message-stream/json-to-sse-transform-stream.ts +17 -0
  491. package/src/ui-message-stream/pipe-ui-message-stream-to-response.ts +51 -0
  492. package/src/ui-message-stream/read-ui-message-stream.ts +87 -0
  493. package/src/ui-message-stream/ui-message-chunks.ts +372 -0
  494. package/src/ui-message-stream/ui-message-stream-headers.ts +7 -0
  495. package/src/ui-message-stream/ui-message-stream-on-finish-callback.ts +32 -0
  496. package/src/ui-message-stream/ui-message-stream-on-step-finish-callback.ts +25 -0
  497. package/src/ui-message-stream/ui-message-stream-response-init.ts +14 -0
  498. package/src/ui-message-stream/ui-message-stream-writer.ts +24 -0
  499. package/src/util/as-array.ts +3 -0
  500. package/src/util/async-iterable-stream.ts +94 -0
  501. package/src/util/consume-stream.ts +31 -0
  502. package/src/util/cosine-similarity.ts +46 -0
  503. package/src/util/create-resolvable-promise.ts +30 -0
  504. package/src/util/create-stitchable-stream.ts +112 -0
  505. package/src/util/data-url.ts +17 -0
  506. package/src/util/deep-partial.ts +84 -0
  507. package/src/util/detect-media-type.ts +226 -0
  508. package/src/util/download/create-download.ts +13 -0
  509. package/src/util/download/download-function.ts +45 -0
  510. package/src/util/download/download.ts +74 -0
  511. package/src/util/error-handler.ts +1 -0
  512. package/src/util/fix-json.ts +401 -0
  513. package/src/util/get-potential-start-index.ts +39 -0
  514. package/src/util/index.ts +12 -0
  515. package/src/util/is-deep-equal-data.ts +48 -0
  516. package/src/util/is-non-empty-object.ts +5 -0
  517. package/src/util/job.ts +1 -0
  518. package/src/util/log-v2-compatibility-warning.ts +21 -0
  519. package/src/util/merge-abort-signals.ts +43 -0
  520. package/src/util/merge-objects.ts +79 -0
  521. package/src/util/notify.ts +22 -0
  522. package/src/util/now.ts +4 -0
  523. package/src/util/parse-partial-json.ts +30 -0
  524. package/src/util/prepare-headers.ts +14 -0
  525. package/src/util/prepare-retries.ts +47 -0
  526. package/src/util/retry-error.ts +41 -0
  527. package/src/util/retry-with-exponential-backoff.ts +154 -0
  528. package/src/util/serial-job-executor.ts +36 -0
  529. package/src/util/simulate-readable-stream.ts +39 -0
  530. package/src/util/split-array.ts +20 -0
  531. package/src/util/value-of.ts +65 -0
  532. package/src/util/write-to-server-response.ts +49 -0
  533. package/src/version.ts +5 -0
  534. package/test.d.ts +1 -0
@@ -0,0 +1,332 @@
1
+ ---
2
+ title: embed
3
+ description: API Reference for embed.
4
+ ---
5
+
6
+ # `embed()`
7
+
8
+ Generate an embedding for a single value using an embedding model.
9
+
10
+ This is ideal for use cases where you need to embed a single value to e.g. retrieve similar items or to use the embedding in a downstream task.
11
+
12
+ ```ts
13
+ import { embed } from 'ai';
14
+
15
+ const { embedding } = await embed({
16
+ model: 'openai/text-embedding-3-small',
17
+ value: 'sunny day at the beach',
18
+ });
19
+ ```
20
+
21
+ ## Import
22
+
23
+ <Snippet text={`import { embed } from "ai"`} prompt={false} />
24
+
25
+ ## API Signature
26
+
27
+ ### Parameters
28
+
29
+ <PropertiesTable
30
+ content={[
31
+ {
32
+ name: 'model',
33
+ type: 'EmbeddingModel',
34
+ description:
35
+ "The embedding model to use. Example: openai.embeddingModel('text-embedding-3-small')",
36
+ },
37
+ {
38
+ name: 'value',
39
+ type: 'VALUE',
40
+ description: 'The value to embed. The type depends on the model.',
41
+ },
42
+ {
43
+ name: 'maxRetries',
44
+ type: 'number',
45
+ isOptional: true,
46
+ description:
47
+ 'Maximum number of retries. Set to 0 to disable retries. Default: 2.',
48
+ },
49
+ {
50
+ name: 'abortSignal',
51
+ type: 'AbortSignal',
52
+ isOptional: true,
53
+ description:
54
+ 'An optional abort signal that can be used to cancel the call.',
55
+ },
56
+ {
57
+ name: 'headers',
58
+ type: 'Record<string, string>',
59
+ isOptional: true,
60
+ description:
61
+ 'Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.',
62
+ },
63
+ {
64
+ name: 'providerOptions',
65
+ type: 'ProviderOptions',
66
+ isOptional: true,
67
+ description:
68
+ 'Provider-specific options that are passed through to the provider.',
69
+ },
70
+ {
71
+ name: 'experimental_telemetry',
72
+ type: 'TelemetrySettings',
73
+ isOptional: true,
74
+ description: 'Telemetry configuration. Experimental feature.',
75
+ properties: [
76
+ {
77
+ type: 'TelemetrySettings',
78
+ parameters: [
79
+ {
80
+ name: 'isEnabled',
81
+ type: 'boolean',
82
+ isOptional: true,
83
+ description:
84
+ 'Enable or disable telemetry. Disabled by default while experimental.',
85
+ },
86
+ {
87
+ name: 'recordInputs',
88
+ type: 'boolean',
89
+ isOptional: true,
90
+ description:
91
+ 'Enable or disable input recording. Enabled by default.',
92
+ },
93
+ {
94
+ name: 'recordOutputs',
95
+ type: 'boolean',
96
+ isOptional: true,
97
+ description:
98
+ 'Enable or disable output recording. Enabled by default.',
99
+ },
100
+ {
101
+ name: 'functionId',
102
+ type: 'string',
103
+ isOptional: true,
104
+ description:
105
+ 'Identifier for this function. Used to group telemetry data by function.',
106
+ },
107
+ {
108
+ name: 'metadata',
109
+ isOptional: true,
110
+ type: 'Record<string, string | number | boolean | Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>>',
111
+ description:
112
+ 'Additional information to include in the telemetry data.',
113
+ },
114
+ {
115
+ name: 'tracer',
116
+ type: 'Tracer',
117
+ isOptional: true,
118
+ description: 'A custom tracer to use for the telemetry data.',
119
+ },
120
+ ],
121
+ },
122
+ ],
123
+ },
124
+ {
125
+ name: 'experimental_onStart',
126
+ type: '(event: EmbedOnStartEvent) => PromiseLike<void> | void',
127
+ isOptional: true,
128
+ description:
129
+ 'Callback that is called when the embed operation begins, before the embedding model is called. Errors thrown in this callback are silently caught and do not break the embedding flow. Experimental (can break in patch releases).',
130
+ properties: [
131
+ {
132
+ type: 'EmbedOnStartEvent',
133
+ parameters: [
134
+ {
135
+ name: 'callId',
136
+ type: 'string',
137
+ description: 'Unique identifier for this embed call.',
138
+ },
139
+ {
140
+ name: 'operationId',
141
+ type: 'string',
142
+ description: "Identifies the operation type ('ai.embed').",
143
+ },
144
+ {
145
+ name: 'model',
146
+ type: '{ provider: string; modelId: string }',
147
+ description: 'The embedding model being used.',
148
+ },
149
+ {
150
+ name: 'value',
151
+ type: 'string | Array<string>',
152
+ description: 'The value being embedded.',
153
+ },
154
+ {
155
+ name: 'maxRetries',
156
+ type: 'number',
157
+ description: 'Maximum number of retries for failed requests.',
158
+ },
159
+ {
160
+ name: 'abortSignal',
161
+ type: 'AbortSignal | undefined',
162
+ description: 'Abort signal for cancelling the operation.',
163
+ },
164
+ {
165
+ name: 'headers',
166
+ type: 'Record<string, string | undefined> | undefined',
167
+ description: 'Additional HTTP headers sent with the request.',
168
+ },
169
+ {
170
+ name: 'providerOptions',
171
+ type: 'ProviderOptions | undefined',
172
+ description: 'Additional provider-specific options.',
173
+ },
174
+ {
175
+ name: 'functionId',
176
+ type: 'string | undefined',
177
+ description:
178
+ 'Identifier from telemetry settings for grouping related operations.',
179
+ },
180
+ {
181
+ name: 'metadata',
182
+ type: 'Record<string, JSONValue> | undefined',
183
+ description: 'Additional metadata from telemetry settings.',
184
+ },
185
+ ],
186
+ },
187
+ ],
188
+ },
189
+ {
190
+ name: 'experimental_onFinish',
191
+ type: '(event: EmbedOnFinishEvent) => PromiseLike<void> | void',
192
+ isOptional: true,
193
+ description:
194
+ 'Callback that is called when the embed operation completes, after the embedding model returns. Errors thrown in this callback are silently caught and do not break the embedding flow. Experimental (can break in patch releases).',
195
+ properties: [
196
+ {
197
+ type: 'EmbedOnFinishEvent',
198
+ parameters: [
199
+ {
200
+ name: 'callId',
201
+ type: 'string',
202
+ description: 'Unique identifier for this embed call.',
203
+ },
204
+ {
205
+ name: 'operationId',
206
+ type: 'string',
207
+ description: "Identifies the operation type ('ai.embed').",
208
+ },
209
+ {
210
+ name: 'model',
211
+ type: '{ provider: string; modelId: string }',
212
+ description: 'The embedding model that was used.',
213
+ },
214
+ {
215
+ name: 'value',
216
+ type: 'string | Array<string>',
217
+ description: 'The value that was embedded.',
218
+ },
219
+ {
220
+ name: 'embedding',
221
+ type: 'Embedding | Array<Embedding>',
222
+ description: 'The resulting embedding vector.',
223
+ },
224
+ {
225
+ name: 'usage',
226
+ type: 'EmbeddingModelUsage',
227
+ description: 'Token usage for the embedding operation.',
228
+ },
229
+ {
230
+ name: 'warnings',
231
+ type: 'Array<Warning>',
232
+ description: 'Warnings from the embedding model.',
233
+ },
234
+ {
235
+ name: 'providerMetadata',
236
+ type: 'ProviderMetadata | undefined',
237
+ description: 'Optional provider-specific metadata.',
238
+ },
239
+ {
240
+ name: 'response',
241
+ type: '{ headers?: Record<string, string>; body?: unknown } | undefined',
242
+ description: 'Optional response data including headers and body.',
243
+ },
244
+ {
245
+ name: 'functionId',
246
+ type: 'string | undefined',
247
+ description:
248
+ 'Identifier from telemetry settings for grouping related operations.',
249
+ },
250
+ {
251
+ name: 'metadata',
252
+ type: 'Record<string, JSONValue> | undefined',
253
+ description: 'Additional metadata from telemetry settings.',
254
+ },
255
+ ],
256
+ },
257
+ ],
258
+ },
259
+ ]}
260
+ />
261
+
262
+ ### Returns
263
+
264
+ <PropertiesTable
265
+ content={[
266
+ {
267
+ name: 'value',
268
+ type: 'VALUE',
269
+ description: 'The value that was embedded.',
270
+ },
271
+ {
272
+ name: 'embedding',
273
+ type: 'number[]',
274
+ description: 'The embedding of the value.',
275
+ },
276
+ {
277
+ name: 'usage',
278
+ type: 'EmbeddingModelUsage',
279
+ description: 'The token usage for generating the embeddings.',
280
+ properties: [
281
+ {
282
+ type: 'EmbeddingModelUsage',
283
+ parameters: [
284
+ {
285
+ name: 'tokens',
286
+ type: 'number',
287
+ description: 'The number of tokens used in the embedding.',
288
+ },
289
+ ],
290
+ },
291
+ ],
292
+ },
293
+ {
294
+ name: 'warnings',
295
+ type: 'Warning[]',
296
+ description:
297
+ 'Warnings from the model provider (e.g. unsupported settings).',
298
+ },
299
+ {
300
+ name: 'response',
301
+ type: 'Response',
302
+ isOptional: true,
303
+ description: 'Optional response data.',
304
+ properties: [
305
+ {
306
+ type: 'Response',
307
+ parameters: [
308
+ {
309
+ name: 'headers',
310
+ isOptional: true,
311
+ type: 'Record<string, string>',
312
+ description: 'Response headers.',
313
+ },
314
+ {
315
+ name: 'body',
316
+ type: 'unknown',
317
+ isOptional: true,
318
+ description: 'The response body.',
319
+ },
320
+ ],
321
+ },
322
+ ],
323
+ },
324
+ {
325
+ name: 'providerMetadata',
326
+ type: 'ProviderMetadata | undefined',
327
+ isOptional: true,
328
+ description:
329
+ 'Optional metadata from the provider. The outer key is the provider name. The inner values are the metadata. Details depend on the provider.',
330
+ },
331
+ ]}
332
+ />
@@ -0,0 +1,330 @@
1
+ ---
2
+ title: embedMany
3
+ description: API Reference for embedMany.
4
+ ---
5
+
6
+ # `embedMany()`
7
+
8
+ Embed several values using an embedding model.
9
+
10
+ `embedMany` automatically splits large requests into smaller chunks if the model
11
+ has a limit on how many embeddings can be generated in a single call.
12
+
13
+ ```ts
14
+ import { embedMany } from 'ai';
15
+
16
+ const { embeddings } = await embedMany({
17
+ model: 'openai/text-embedding-3-small',
18
+ values: [
19
+ 'sunny day at the beach',
20
+ 'rainy afternoon in the city',
21
+ 'snowy night in the mountains',
22
+ ],
23
+ });
24
+ ```
25
+
26
+ ## Import
27
+
28
+ <Snippet text={`import { embedMany } from "ai"`} prompt={false} />
29
+
30
+ ## API Signature
31
+
32
+ ### Parameters
33
+
34
+ <PropertiesTable
35
+ content={[
36
+ {
37
+ name: 'model',
38
+ type: 'EmbeddingModel',
39
+ description:
40
+ "The embedding model to use. Example: openai.embeddingModel('text-embedding-3-small')",
41
+ },
42
+ {
43
+ name: 'values',
44
+ type: 'Array<string>',
45
+ description: 'The values to embed.',
46
+ },
47
+ {
48
+ name: 'maxRetries',
49
+ type: 'number',
50
+ isOptional: true,
51
+ description:
52
+ 'Maximum number of retries. Set to 0 to disable retries. Default: 2.',
53
+ },
54
+ {
55
+ name: 'abortSignal',
56
+ type: 'AbortSignal',
57
+ isOptional: true,
58
+ description:
59
+ 'An optional abort signal that can be used to cancel the call.',
60
+ },
61
+ {
62
+ name: 'headers',
63
+ type: 'Record<string, string>',
64
+ isOptional: true,
65
+ description:
66
+ 'Additional HTTP headers to be sent with the request. Only applicable for HTTP-based providers.',
67
+ },
68
+ {
69
+ name: 'providerOptions',
70
+ type: 'ProviderOptions',
71
+ isOptional: true,
72
+ description:
73
+ 'Provider-specific options that are passed through to the provider.',
74
+ },
75
+ {
76
+ name: 'maxParallelCalls',
77
+ type: 'number',
78
+ isOptional: true,
79
+ description:
80
+ 'Maximum number of concurrent requests to the provider. Default: Infinity.',
81
+ },
82
+ {
83
+ name: 'experimental_telemetry',
84
+ type: 'TelemetrySettings',
85
+ isOptional: true,
86
+ description: 'Telemetry configuration. Experimental feature.',
87
+ properties: [
88
+ {
89
+ type: 'TelemetrySettings',
90
+ parameters: [
91
+ {
92
+ name: 'isEnabled',
93
+ type: 'boolean',
94
+ isOptional: true,
95
+ description:
96
+ 'Enable or disable telemetry. Disabled by default while experimental.',
97
+ },
98
+ {
99
+ name: 'recordInputs',
100
+ type: 'boolean',
101
+ isOptional: true,
102
+ description:
103
+ 'Enable or disable input recording. Enabled by default.',
104
+ },
105
+ {
106
+ name: 'recordOutputs',
107
+ type: 'boolean',
108
+ isOptional: true,
109
+ description:
110
+ 'Enable or disable output recording. Enabled by default.',
111
+ },
112
+ {
113
+ name: 'functionId',
114
+ type: 'string',
115
+ isOptional: true,
116
+ description:
117
+ 'Identifier for this function. Used to group telemetry data by function.',
118
+ },
119
+ {
120
+ name: 'metadata',
121
+ isOptional: true,
122
+ type: 'Record<string, string | number | boolean | Array<null | undefined | string> | Array<null | undefined | number> | Array<null | undefined | boolean>>',
123
+ description:
124
+ 'Additional information to include in the telemetry data.',
125
+ },
126
+ {
127
+ name: 'tracer',
128
+ type: 'Tracer',
129
+ isOptional: true,
130
+ description: 'A custom tracer to use for the telemetry data.',
131
+ },
132
+ ],
133
+ },
134
+ ],
135
+ },
136
+ {
137
+ name: 'experimental_onStart',
138
+ type: '(event: EmbedOnStartEvent) => PromiseLike<void> | void',
139
+ isOptional: true,
140
+ description:
141
+ 'Callback that is called when the embedMany operation begins, before the embedding model is called. Errors thrown in this callback are silently caught and do not break the embedding flow. Experimental (can break in patch releases).',
142
+ properties: [
143
+ {
144
+ type: 'EmbedOnStartEvent',
145
+ parameters: [
146
+ {
147
+ name: 'callId',
148
+ type: 'string',
149
+ description: 'Unique identifier for this embedMany call.',
150
+ },
151
+ {
152
+ name: 'operationId',
153
+ type: 'string',
154
+ description: "Identifies the operation type ('ai.embedMany').",
155
+ },
156
+ {
157
+ name: 'model',
158
+ type: '{ provider: string; modelId: string }',
159
+ description: 'The embedding model being used.',
160
+ },
161
+ {
162
+ name: 'value',
163
+ type: 'string | Array<string>',
164
+ description:
165
+ 'The values being embedded (array of strings for embedMany).',
166
+ },
167
+ {
168
+ name: 'maxRetries',
169
+ type: 'number',
170
+ description: 'Maximum number of retries for failed requests.',
171
+ },
172
+ {
173
+ name: 'abortSignal',
174
+ type: 'AbortSignal | undefined',
175
+ description: 'Abort signal for cancelling the operation.',
176
+ },
177
+ {
178
+ name: 'headers',
179
+ type: 'Record<string, string | undefined> | undefined',
180
+ description: 'Additional HTTP headers sent with the request.',
181
+ },
182
+ {
183
+ name: 'providerOptions',
184
+ type: 'ProviderOptions | undefined',
185
+ description: 'Additional provider-specific options.',
186
+ },
187
+ {
188
+ name: 'functionId',
189
+ type: 'string | undefined',
190
+ description:
191
+ 'Identifier from telemetry settings for grouping related operations.',
192
+ },
193
+ {
194
+ name: 'metadata',
195
+ type: 'Record<string, JSONValue> | undefined',
196
+ description: 'Additional metadata from telemetry settings.',
197
+ },
198
+ ],
199
+ },
200
+ ],
201
+ },
202
+ {
203
+ name: 'experimental_onFinish',
204
+ type: '(event: EmbedOnFinishEvent) => PromiseLike<void> | void',
205
+ isOptional: true,
206
+ description:
207
+ 'Callback that is called when the embedMany operation completes, after all embedding model calls return. Errors thrown in this callback are silently caught and do not break the embedding flow. Experimental (can break in patch releases).',
208
+ properties: [
209
+ {
210
+ type: 'EmbedOnFinishEvent',
211
+ parameters: [
212
+ {
213
+ name: 'callId',
214
+ type: 'string',
215
+ description: 'Unique identifier for this embedMany call.',
216
+ },
217
+ {
218
+ name: 'operationId',
219
+ type: 'string',
220
+ description: "Identifies the operation type ('ai.embedMany').",
221
+ },
222
+ {
223
+ name: 'model',
224
+ type: '{ provider: string; modelId: string }',
225
+ description: 'The embedding model that was used.',
226
+ },
227
+ {
228
+ name: 'value',
229
+ type: 'string | Array<string>',
230
+ description:
231
+ 'The values that were embedded (array of strings for embedMany).',
232
+ },
233
+ {
234
+ name: 'embedding',
235
+ type: 'Embedding | Array<Embedding>',
236
+ description:
237
+ 'The resulting embedding vectors (array of embeddings for embedMany).',
238
+ },
239
+ {
240
+ name: 'usage',
241
+ type: 'EmbeddingModelUsage',
242
+ description: 'Token usage for the embedding operation.',
243
+ },
244
+ {
245
+ name: 'warnings',
246
+ type: 'Array<Warning>',
247
+ description: 'Warnings from the embedding model.',
248
+ },
249
+ {
250
+ name: 'providerMetadata',
251
+ type: 'ProviderMetadata | undefined',
252
+ description: 'Optional provider-specific metadata.',
253
+ },
254
+ {
255
+ name: 'response',
256
+ type: 'Array<{ headers?: Record<string, string>; body?: unknown } | undefined>',
257
+ description:
258
+ 'Response data from each embedding call. There may be multiple responses if the request was split into chunks.',
259
+ },
260
+ {
261
+ name: 'functionId',
262
+ type: 'string | undefined',
263
+ description:
264
+ 'Identifier from telemetry settings for grouping related operations.',
265
+ },
266
+ {
267
+ name: 'metadata',
268
+ type: 'Record<string, JSONValue> | undefined',
269
+ description: 'Additional metadata from telemetry settings.',
270
+ },
271
+ ],
272
+ },
273
+ ],
274
+ },
275
+ ]}
276
+ />
277
+
278
+ ### Returns
279
+
280
+ <PropertiesTable
281
+ content={[
282
+ {
283
+ name: 'values',
284
+ type: 'Array<string>',
285
+ description: 'The values that were embedded.',
286
+ },
287
+ {
288
+ name: 'embeddings',
289
+ type: 'number[][]',
290
+ description: 'The embeddings. They are in the same order as the values.',
291
+ },
292
+ {
293
+ name: 'usage',
294
+ type: 'EmbeddingModelUsage',
295
+ description: 'The token usage for generating the embeddings.',
296
+ properties: [
297
+ {
298
+ type: 'EmbeddingModelUsage',
299
+ parameters: [
300
+ {
301
+ name: 'tokens',
302
+ type: 'number',
303
+ description: 'The total number of input tokens.',
304
+ },
305
+ ],
306
+ },
307
+ ],
308
+ },
309
+ {
310
+ name: 'warnings',
311
+ type: 'Warning[]',
312
+ description:
313
+ 'Warnings from the model provider (e.g. unsupported settings).',
314
+ },
315
+ {
316
+ name: 'providerMetadata',
317
+ type: 'ProviderMetadata | undefined',
318
+ isOptional: true,
319
+ description:
320
+ 'Optional metadata from the provider. The outer key is the provider name. The inner values are the metadata. Details depend on the provider.',
321
+ },
322
+ {
323
+ name: 'responses',
324
+ type: 'Array<{ headers?: Record<string, string>; body?: unknown } | undefined>',
325
+ isOptional: true,
326
+ description:
327
+ 'Optional raw response data from each chunk request. There may be multiple responses if the request was split into multiple chunks.',
328
+ },
329
+ ]}
330
+ />