ai 6.0.31 → 6.0.32
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.
- package/CHANGELOG.md +6 -0
- package/dist/index.js +1 -1
- package/dist/index.mjs +1 -1
- package/dist/internal/index.js +1 -1
- package/dist/internal/index.mjs +1 -1
- package/docs/00-introduction/index.mdx +76 -0
- package/docs/02-foundations/01-overview.mdx +43 -0
- package/docs/02-foundations/02-providers-and-models.mdx +163 -0
- package/docs/02-foundations/03-prompts.mdx +620 -0
- package/docs/02-foundations/04-tools.mdx +160 -0
- package/docs/02-foundations/05-streaming.mdx +62 -0
- package/docs/02-foundations/index.mdx +43 -0
- package/docs/02-getting-started/00-choosing-a-provider.mdx +110 -0
- package/docs/02-getting-started/01-navigating-the-library.mdx +85 -0
- package/docs/02-getting-started/02-nextjs-app-router.mdx +556 -0
- package/docs/02-getting-started/03-nextjs-pages-router.mdx +542 -0
- package/docs/02-getting-started/04-svelte.mdx +627 -0
- package/docs/02-getting-started/05-nuxt.mdx +566 -0
- package/docs/02-getting-started/06-nodejs.mdx +512 -0
- package/docs/02-getting-started/07-expo.mdx +766 -0
- package/docs/02-getting-started/08-tanstack-start.mdx +583 -0
- package/docs/02-getting-started/index.mdx +44 -0
- package/docs/03-agents/01-overview.mdx +96 -0
- package/docs/03-agents/02-building-agents.mdx +367 -0
- package/docs/03-agents/03-workflows.mdx +370 -0
- package/docs/03-agents/04-loop-control.mdx +350 -0
- package/docs/03-agents/05-configuring-call-options.mdx +286 -0
- package/docs/03-agents/index.mdx +40 -0
- package/docs/03-ai-sdk-core/01-overview.mdx +33 -0
- package/docs/03-ai-sdk-core/05-generating-text.mdx +600 -0
- package/docs/03-ai-sdk-core/10-generating-structured-data.mdx +662 -0
- package/docs/03-ai-sdk-core/15-tools-and-tool-calling.mdx +1102 -0
- package/docs/03-ai-sdk-core/16-mcp-tools.mdx +375 -0
- package/docs/03-ai-sdk-core/20-prompt-engineering.mdx +144 -0
- package/docs/03-ai-sdk-core/25-settings.mdx +198 -0
- package/docs/03-ai-sdk-core/30-embeddings.mdx +247 -0
- package/docs/03-ai-sdk-core/31-reranking.mdx +218 -0
- package/docs/03-ai-sdk-core/35-image-generation.mdx +341 -0
- package/docs/03-ai-sdk-core/36-transcription.mdx +173 -0
- package/docs/03-ai-sdk-core/37-speech.mdx +167 -0
- package/docs/03-ai-sdk-core/40-middleware.mdx +480 -0
- package/docs/03-ai-sdk-core/45-provider-management.mdx +349 -0
- package/docs/03-ai-sdk-core/50-error-handling.mdx +149 -0
- package/docs/03-ai-sdk-core/55-testing.mdx +218 -0
- package/docs/03-ai-sdk-core/60-telemetry.mdx +313 -0
- package/docs/03-ai-sdk-core/65-devtools.mdx +107 -0
- package/docs/03-ai-sdk-core/index.mdx +88 -0
- package/docs/04-ai-sdk-ui/01-overview.mdx +44 -0
- package/docs/04-ai-sdk-ui/02-chatbot.mdx +1313 -0
- package/docs/04-ai-sdk-ui/03-chatbot-message-persistence.mdx +535 -0
- package/docs/04-ai-sdk-ui/03-chatbot-resume-streams.mdx +263 -0
- package/docs/04-ai-sdk-ui/03-chatbot-tool-usage.mdx +682 -0
- package/docs/04-ai-sdk-ui/04-generative-user-interfaces.mdx +389 -0
- package/docs/04-ai-sdk-ui/05-completion.mdx +186 -0
- package/docs/04-ai-sdk-ui/08-object-generation.mdx +344 -0
- package/docs/04-ai-sdk-ui/20-streaming-data.mdx +397 -0
- package/docs/04-ai-sdk-ui/21-error-handling.mdx +190 -0
- package/docs/04-ai-sdk-ui/21-transport.mdx +174 -0
- package/docs/04-ai-sdk-ui/24-reading-ui-message-streams.mdx +104 -0
- package/docs/04-ai-sdk-ui/25-message-metadata.mdx +152 -0
- package/docs/04-ai-sdk-ui/50-stream-protocol.mdx +477 -0
- package/docs/04-ai-sdk-ui/index.mdx +64 -0
- package/docs/05-ai-sdk-rsc/01-overview.mdx +45 -0
- package/docs/05-ai-sdk-rsc/02-streaming-react-components.mdx +209 -0
- package/docs/05-ai-sdk-rsc/03-generative-ui-state.mdx +279 -0
- package/docs/05-ai-sdk-rsc/03-saving-and-restoring-states.mdx +105 -0
- package/docs/05-ai-sdk-rsc/04-multistep-interfaces.mdx +282 -0
- package/docs/05-ai-sdk-rsc/05-streaming-values.mdx +158 -0
- package/docs/05-ai-sdk-rsc/06-loading-state.mdx +273 -0
- package/docs/05-ai-sdk-rsc/08-error-handling.mdx +96 -0
- package/docs/05-ai-sdk-rsc/09-authentication.mdx +42 -0
- package/docs/05-ai-sdk-rsc/10-migrating-to-ui.mdx +722 -0
- package/docs/05-ai-sdk-rsc/index.mdx +58 -0
- package/docs/06-advanced/01-prompt-engineering.mdx +96 -0
- package/docs/06-advanced/02-stopping-streams.mdx +184 -0
- package/docs/06-advanced/03-backpressure.mdx +173 -0
- package/docs/06-advanced/04-caching.mdx +169 -0
- package/docs/06-advanced/05-multiple-streamables.mdx +68 -0
- package/docs/06-advanced/06-rate-limiting.mdx +60 -0
- package/docs/06-advanced/07-rendering-ui-with-language-models.mdx +213 -0
- package/docs/06-advanced/08-model-as-router.mdx +120 -0
- package/docs/06-advanced/09-multistep-interfaces.mdx +115 -0
- package/docs/06-advanced/09-sequential-generations.mdx +55 -0
- package/docs/06-advanced/10-vercel-deployment-guide.mdx +117 -0
- package/docs/06-advanced/index.mdx +11 -0
- package/docs/07-reference/01-ai-sdk-core/01-generate-text.mdx +2142 -0
- package/docs/07-reference/01-ai-sdk-core/02-stream-text.mdx +3215 -0
- package/docs/07-reference/01-ai-sdk-core/03-generate-object.mdx +780 -0
- package/docs/07-reference/01-ai-sdk-core/04-stream-object.mdx +1140 -0
- package/docs/07-reference/01-ai-sdk-core/05-embed.mdx +190 -0
- package/docs/07-reference/01-ai-sdk-core/06-embed-many.mdx +171 -0
- package/docs/07-reference/01-ai-sdk-core/06-rerank.mdx +309 -0
- package/docs/07-reference/01-ai-sdk-core/10-generate-image.mdx +227 -0
- package/docs/07-reference/01-ai-sdk-core/11-transcribe.mdx +138 -0
- package/docs/07-reference/01-ai-sdk-core/12-generate-speech.mdx +214 -0
- package/docs/07-reference/01-ai-sdk-core/15-agent.mdx +203 -0
- package/docs/07-reference/01-ai-sdk-core/16-tool-loop-agent.mdx +449 -0
- package/docs/07-reference/01-ai-sdk-core/17-create-agent-ui-stream.mdx +148 -0
- package/docs/07-reference/01-ai-sdk-core/18-create-agent-ui-stream-response.mdx +168 -0
- package/docs/07-reference/01-ai-sdk-core/18-pipe-agent-ui-stream-to-response.mdx +144 -0
- package/docs/07-reference/01-ai-sdk-core/20-tool.mdx +196 -0
- package/docs/07-reference/01-ai-sdk-core/22-dynamic-tool.mdx +175 -0
- package/docs/07-reference/01-ai-sdk-core/23-create-mcp-client.mdx +410 -0
- package/docs/07-reference/01-ai-sdk-core/24-mcp-stdio-transport.mdx +68 -0
- package/docs/07-reference/01-ai-sdk-core/25-json-schema.mdx +94 -0
- package/docs/07-reference/01-ai-sdk-core/26-zod-schema.mdx +109 -0
- package/docs/07-reference/01-ai-sdk-core/27-valibot-schema.mdx +55 -0
- package/docs/07-reference/01-ai-sdk-core/28-output.mdx +342 -0
- package/docs/07-reference/01-ai-sdk-core/30-model-message.mdx +415 -0
- package/docs/07-reference/01-ai-sdk-core/31-ui-message.mdx +246 -0
- package/docs/07-reference/01-ai-sdk-core/32-validate-ui-messages.mdx +101 -0
- package/docs/07-reference/01-ai-sdk-core/33-safe-validate-ui-messages.mdx +113 -0
- package/docs/07-reference/01-ai-sdk-core/40-provider-registry.mdx +182 -0
- package/docs/07-reference/01-ai-sdk-core/42-custom-provider.mdx +121 -0
- package/docs/07-reference/01-ai-sdk-core/50-cosine-similarity.mdx +52 -0
- package/docs/07-reference/01-ai-sdk-core/60-wrap-language-model.mdx +59 -0
- package/docs/07-reference/01-ai-sdk-core/61-wrap-image-model.mdx +64 -0
- package/docs/07-reference/01-ai-sdk-core/65-language-model-v2-middleware.mdx +46 -0
- package/docs/07-reference/01-ai-sdk-core/66-extract-reasoning-middleware.mdx +68 -0
- package/docs/07-reference/01-ai-sdk-core/67-simulate-streaming-middleware.mdx +71 -0
- package/docs/07-reference/01-ai-sdk-core/68-default-settings-middleware.mdx +80 -0
- package/docs/07-reference/01-ai-sdk-core/69-add-tool-input-examples-middleware.mdx +155 -0
- package/docs/07-reference/01-ai-sdk-core/70-extract-json-middleware.mdx +147 -0
- package/docs/07-reference/01-ai-sdk-core/70-step-count-is.mdx +84 -0
- package/docs/07-reference/01-ai-sdk-core/71-has-tool-call.mdx +120 -0
- package/docs/07-reference/01-ai-sdk-core/75-simulate-readable-stream.mdx +94 -0
- package/docs/07-reference/01-ai-sdk-core/80-smooth-stream.mdx +145 -0
- package/docs/07-reference/01-ai-sdk-core/90-generate-id.mdx +43 -0
- package/docs/07-reference/01-ai-sdk-core/91-create-id-generator.mdx +89 -0
- package/docs/07-reference/01-ai-sdk-core/index.mdx +159 -0
- package/docs/07-reference/02-ai-sdk-ui/01-use-chat.mdx +446 -0
- package/docs/07-reference/02-ai-sdk-ui/02-use-completion.mdx +179 -0
- package/docs/07-reference/02-ai-sdk-ui/03-use-object.mdx +178 -0
- package/docs/07-reference/02-ai-sdk-ui/31-convert-to-model-messages.mdx +230 -0
- package/docs/07-reference/02-ai-sdk-ui/32-prune-messages.mdx +108 -0
- package/docs/07-reference/02-ai-sdk-ui/40-create-ui-message-stream.mdx +151 -0
- package/docs/07-reference/02-ai-sdk-ui/41-create-ui-message-stream-response.mdx +113 -0
- package/docs/07-reference/02-ai-sdk-ui/42-pipe-ui-message-stream-to-response.mdx +73 -0
- package/docs/07-reference/02-ai-sdk-ui/43-read-ui-message-stream.mdx +57 -0
- package/docs/07-reference/02-ai-sdk-ui/46-infer-ui-tools.mdx +99 -0
- package/docs/07-reference/02-ai-sdk-ui/47-infer-ui-tool.mdx +75 -0
- package/docs/07-reference/02-ai-sdk-ui/50-direct-chat-transport.mdx +333 -0
- package/docs/07-reference/02-ai-sdk-ui/index.mdx +89 -0
- package/docs/07-reference/03-ai-sdk-rsc/01-stream-ui.mdx +767 -0
- package/docs/07-reference/03-ai-sdk-rsc/02-create-ai.mdx +90 -0
- package/docs/07-reference/03-ai-sdk-rsc/03-create-streamable-ui.mdx +91 -0
- package/docs/07-reference/03-ai-sdk-rsc/04-create-streamable-value.mdx +48 -0
- package/docs/07-reference/03-ai-sdk-rsc/05-read-streamable-value.mdx +78 -0
- package/docs/07-reference/03-ai-sdk-rsc/06-get-ai-state.mdx +50 -0
- package/docs/07-reference/03-ai-sdk-rsc/07-get-mutable-ai-state.mdx +70 -0
- package/docs/07-reference/03-ai-sdk-rsc/08-use-ai-state.mdx +26 -0
- package/docs/07-reference/03-ai-sdk-rsc/09-use-actions.mdx +42 -0
- package/docs/07-reference/03-ai-sdk-rsc/10-use-ui-state.mdx +35 -0
- package/docs/07-reference/03-ai-sdk-rsc/11-use-streamable-value.mdx +46 -0
- package/docs/07-reference/03-ai-sdk-rsc/20-render.mdx +262 -0
- package/docs/07-reference/03-ai-sdk-rsc/index.mdx +67 -0
- package/docs/07-reference/04-stream-helpers/01-ai-stream.mdx +89 -0
- package/docs/07-reference/04-stream-helpers/02-streaming-text-response.mdx +79 -0
- package/docs/07-reference/04-stream-helpers/05-stream-to-response.mdx +108 -0
- package/docs/07-reference/04-stream-helpers/07-openai-stream.mdx +77 -0
- package/docs/07-reference/04-stream-helpers/08-anthropic-stream.mdx +79 -0
- package/docs/07-reference/04-stream-helpers/09-aws-bedrock-stream.mdx +91 -0
- package/docs/07-reference/04-stream-helpers/10-aws-bedrock-anthropic-stream.mdx +96 -0
- package/docs/07-reference/04-stream-helpers/10-aws-bedrock-messages-stream.mdx +96 -0
- package/docs/07-reference/04-stream-helpers/11-aws-bedrock-cohere-stream.mdx +93 -0
- package/docs/07-reference/04-stream-helpers/12-aws-bedrock-llama-2-stream.mdx +93 -0
- package/docs/07-reference/04-stream-helpers/13-cohere-stream.mdx +78 -0
- package/docs/07-reference/04-stream-helpers/14-google-generative-ai-stream.mdx +85 -0
- package/docs/07-reference/04-stream-helpers/15-hugging-face-stream.mdx +84 -0
- package/docs/07-reference/04-stream-helpers/16-langchain-adapter.mdx +98 -0
- package/docs/07-reference/04-stream-helpers/16-llamaindex-adapter.mdx +70 -0
- package/docs/07-reference/04-stream-helpers/17-mistral-stream.mdx +81 -0
- package/docs/07-reference/04-stream-helpers/18-replicate-stream.mdx +83 -0
- package/docs/07-reference/04-stream-helpers/19-inkeep-stream.mdx +80 -0
- package/docs/07-reference/04-stream-helpers/index.mdx +103 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-api-call-error.mdx +30 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-download-error.mdx +27 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-empty-response-body-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-argument-error.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-data-content.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-message-role-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-prompt-error.mdx +47 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-response-data-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-approval-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-invalid-tool-input-error.mdx +27 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-json-parse-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-load-api-key-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-load-setting-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-message-conversion-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-content-generated-error.mdx +24 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-image-generated-error.mdx +36 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-object-generated-error.mdx +43 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-speech-generated-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-such-model-error.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-such-provider-error.mdx +28 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-such-tool-error.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-no-transcript-generated-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-retry-error.mdx +27 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-too-many-embedding-values-for-call-error.mdx +27 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-not-found-for-approval-error.mdx +26 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-tool-call-repair-error.mdx +28 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-type-validation-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/ai-unsupported-functionality-error.mdx +25 -0
- package/docs/07-reference/05-ai-sdk-errors/index.mdx +38 -0
- package/docs/07-reference/index.mdx +34 -0
- package/docs/08-migration-guides/00-versioning.mdx +46 -0
- package/docs/08-migration-guides/24-migration-guide-6-0.mdx +823 -0
- package/docs/08-migration-guides/25-migration-guide-5-0-data.mdx +882 -0
- package/docs/08-migration-guides/26-migration-guide-5-0.mdx +3427 -0
- package/docs/08-migration-guides/27-migration-guide-4-2.mdx +99 -0
- package/docs/08-migration-guides/28-migration-guide-4-1.mdx +14 -0
- package/docs/08-migration-guides/29-migration-guide-4-0.mdx +1157 -0
- package/docs/08-migration-guides/36-migration-guide-3-4.mdx +14 -0
- package/docs/08-migration-guides/37-migration-guide-3-3.mdx +64 -0
- package/docs/08-migration-guides/38-migration-guide-3-2.mdx +46 -0
- package/docs/08-migration-guides/39-migration-guide-3-1.mdx +168 -0
- package/docs/08-migration-guides/index.mdx +22 -0
- package/docs/09-troubleshooting/01-azure-stream-slow.mdx +33 -0
- package/docs/09-troubleshooting/02-client-side-function-calls-not-invoked.mdx +22 -0
- package/docs/09-troubleshooting/03-server-actions-in-client-components.mdx +40 -0
- package/docs/09-troubleshooting/04-strange-stream-output.mdx +36 -0
- package/docs/09-troubleshooting/05-streamable-ui-errors.mdx +16 -0
- package/docs/09-troubleshooting/05-tool-invocation-missing-result.mdx +106 -0
- package/docs/09-troubleshooting/06-streaming-not-working-when-deployed.mdx +31 -0
- package/docs/09-troubleshooting/06-streaming-not-working-when-proxied.mdx +31 -0
- package/docs/09-troubleshooting/06-timeout-on-vercel.mdx +60 -0
- package/docs/09-troubleshooting/07-unclosed-streams.mdx +34 -0
- package/docs/09-troubleshooting/08-use-chat-failed-to-parse-stream.mdx +26 -0
- package/docs/09-troubleshooting/09-client-stream-error.mdx +25 -0
- package/docs/09-troubleshooting/10-use-chat-tools-no-response.mdx +32 -0
- package/docs/09-troubleshooting/11-use-chat-custom-request-options.mdx +149 -0
- package/docs/09-troubleshooting/12-typescript-performance-zod.mdx +46 -0
- package/docs/09-troubleshooting/12-use-chat-an-error-occurred.mdx +59 -0
- package/docs/09-troubleshooting/13-repeated-assistant-messages.mdx +73 -0
- package/docs/09-troubleshooting/14-stream-abort-handling.mdx +73 -0
- package/docs/09-troubleshooting/14-tool-calling-with-structured-outputs.mdx +48 -0
- package/docs/09-troubleshooting/15-abort-breaks-resumable-streams.mdx +55 -0
- package/docs/09-troubleshooting/15-stream-text-not-working.mdx +33 -0
- package/docs/09-troubleshooting/16-streaming-status-delay.mdx +63 -0
- package/docs/09-troubleshooting/17-use-chat-stale-body-data.mdx +141 -0
- package/docs/09-troubleshooting/18-ontoolcall-type-narrowing.mdx +66 -0
- package/docs/09-troubleshooting/19-unsupported-model-version.mdx +50 -0
- package/docs/09-troubleshooting/20-no-object-generated-content-filter.mdx +72 -0
- package/docs/09-troubleshooting/30-model-is-not-assignable-to-type.mdx +21 -0
- package/docs/09-troubleshooting/40-typescript-cannot-find-namespace-jsx.mdx +24 -0
- package/docs/09-troubleshooting/50-react-maximum-update-depth-exceeded.mdx +39 -0
- package/docs/09-troubleshooting/60-jest-cannot-find-module-ai-rsc.mdx +22 -0
- package/docs/09-troubleshooting/index.mdx +11 -0
- package/package.json +8 -4
|
@@ -0,0 +1,94 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: jsonSchema
|
|
3
|
+
description: Helper function for creating JSON schemas
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `jsonSchema()`
|
|
7
|
+
|
|
8
|
+
`jsonSchema` is a helper function that creates a JSON schema object that is compatible with the AI SDK.
|
|
9
|
+
It takes the JSON schema and an optional validation function as inputs, and can be typed.
|
|
10
|
+
|
|
11
|
+
You can use it to [generate structured data](/docs/ai-sdk-core/generating-structured-data) and in [tools](/docs/ai-sdk-core/tools-and-tool-calling).
|
|
12
|
+
|
|
13
|
+
`jsonSchema` is an alternative to using Zod schemas that provides you with flexibility in dynamic situations
|
|
14
|
+
(e.g. when using OpenAPI definitions) or for using other validation libraries.
|
|
15
|
+
|
|
16
|
+
```ts
|
|
17
|
+
import { jsonSchema } from 'ai';
|
|
18
|
+
|
|
19
|
+
const mySchema = jsonSchema<{
|
|
20
|
+
recipe: {
|
|
21
|
+
name: string;
|
|
22
|
+
ingredients: { name: string; amount: string }[];
|
|
23
|
+
steps: string[];
|
|
24
|
+
};
|
|
25
|
+
}>({
|
|
26
|
+
type: 'object',
|
|
27
|
+
properties: {
|
|
28
|
+
recipe: {
|
|
29
|
+
type: 'object',
|
|
30
|
+
properties: {
|
|
31
|
+
name: { type: 'string' },
|
|
32
|
+
ingredients: {
|
|
33
|
+
type: 'array',
|
|
34
|
+
items: {
|
|
35
|
+
type: 'object',
|
|
36
|
+
properties: {
|
|
37
|
+
name: { type: 'string' },
|
|
38
|
+
amount: { type: 'string' },
|
|
39
|
+
},
|
|
40
|
+
required: ['name', 'amount'],
|
|
41
|
+
},
|
|
42
|
+
},
|
|
43
|
+
steps: {
|
|
44
|
+
type: 'array',
|
|
45
|
+
items: { type: 'string' },
|
|
46
|
+
},
|
|
47
|
+
},
|
|
48
|
+
required: ['name', 'ingredients', 'steps'],
|
|
49
|
+
},
|
|
50
|
+
},
|
|
51
|
+
required: ['recipe'],
|
|
52
|
+
});
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Import
|
|
56
|
+
|
|
57
|
+
<Snippet text={`import { jsonSchema } from "ai"`} prompt={false} />
|
|
58
|
+
|
|
59
|
+
## API Signature
|
|
60
|
+
|
|
61
|
+
### Parameters
|
|
62
|
+
|
|
63
|
+
<PropertiesTable
|
|
64
|
+
content={[
|
|
65
|
+
{
|
|
66
|
+
name: 'schema',
|
|
67
|
+
type: 'JSONSchema7',
|
|
68
|
+
description: 'The JSON schema definition.',
|
|
69
|
+
},
|
|
70
|
+
{
|
|
71
|
+
name: 'options',
|
|
72
|
+
type: 'SchemaOptions',
|
|
73
|
+
description: 'Additional options for the JSON schema.',
|
|
74
|
+
properties: [
|
|
75
|
+
{
|
|
76
|
+
type: 'SchemaOptions',
|
|
77
|
+
parameters: [
|
|
78
|
+
{
|
|
79
|
+
name: 'validate',
|
|
80
|
+
isOptional: true,
|
|
81
|
+
type: '(value: unknown) => { success: true; value: OBJECT } | { success: false; error: Error };',
|
|
82
|
+
description:
|
|
83
|
+
'A function that validates the value against the JSON schema. If the value is valid, the function should return an object with a `success` property set to `true` and a `value` property set to the validated value. If the value is invalid, the function should return an object with a `success` property set to `false` and an `error` property set to the error.',
|
|
84
|
+
},
|
|
85
|
+
],
|
|
86
|
+
},
|
|
87
|
+
],
|
|
88
|
+
},
|
|
89
|
+
]}
|
|
90
|
+
/>
|
|
91
|
+
|
|
92
|
+
### Returns
|
|
93
|
+
|
|
94
|
+
A JSON schema object that is compatible with the AI SDK.
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: zodSchema
|
|
3
|
+
description: Helper function for creating Zod schemas
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `zodSchema()`
|
|
7
|
+
|
|
8
|
+
`zodSchema` is a helper function that converts a Zod schema into a JSON schema object that is compatible with the AI SDK.
|
|
9
|
+
It takes a Zod schema and optional configuration as inputs, and returns a typed schema.
|
|
10
|
+
|
|
11
|
+
You can use it to [generate structured data](/docs/ai-sdk-core/generating-structured-data) and in [tools](/docs/ai-sdk-core/tools-and-tool-calling).
|
|
12
|
+
|
|
13
|
+
<Note>
|
|
14
|
+
You can also pass Zod objects directly to the AI SDK functions. Internally,
|
|
15
|
+
the AI SDK will convert the Zod schema to a JSON schema using `zodSchema()`.
|
|
16
|
+
However, if you want to specify options such as `useReferences`, you can pass
|
|
17
|
+
the `zodSchema()` helper function instead.
|
|
18
|
+
</Note>
|
|
19
|
+
|
|
20
|
+
<Note type="warning">
|
|
21
|
+
When using `.meta()` or `.describe()` to add metadata to your Zod schemas,
|
|
22
|
+
make sure these methods are called **at the end** of the schema chain.
|
|
23
|
+
|
|
24
|
+
metadata is attached to a specific schema
|
|
25
|
+
instance, and most schema methods (`.min()`, `.optional()`, `.extend()`, etc.)
|
|
26
|
+
return a new schema instance that does not inherit metadata from the previous one.
|
|
27
|
+
Due to Zod's immutability, metadata is only included in the JSON schema output
|
|
28
|
+
if `.meta()` or `.describe()` is the last method in the chain.
|
|
29
|
+
|
|
30
|
+
```ts
|
|
31
|
+
// ❌ Metadata will be lost - .min() returns a new instance without metadata
|
|
32
|
+
z.string().meta({ describe: 'first name' }).min(1);
|
|
33
|
+
|
|
34
|
+
// ✅ Metadata is preserved - .meta() is the final method
|
|
35
|
+
z.string().min(1).meta({ describe: 'first name' });
|
|
36
|
+
```
|
|
37
|
+
|
|
38
|
+
</Note>
|
|
39
|
+
|
|
40
|
+
## Example with recursive schemas
|
|
41
|
+
|
|
42
|
+
```ts
|
|
43
|
+
import { zodSchema } from 'ai';
|
|
44
|
+
import { z } from 'zod';
|
|
45
|
+
|
|
46
|
+
// Define a base category schema
|
|
47
|
+
const baseCategorySchema = z.object({
|
|
48
|
+
name: z.string(),
|
|
49
|
+
});
|
|
50
|
+
|
|
51
|
+
// Define the recursive Category type
|
|
52
|
+
type Category = z.infer<typeof baseCategorySchema> & {
|
|
53
|
+
subcategories: Category[];
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// Create the recursive schema using z.lazy
|
|
57
|
+
const categorySchema: z.ZodType<Category> = baseCategorySchema.extend({
|
|
58
|
+
subcategories: z.lazy(() => categorySchema.array()),
|
|
59
|
+
});
|
|
60
|
+
|
|
61
|
+
// Create the final schema with useReferences enabled for recursive support
|
|
62
|
+
const mySchema = zodSchema(
|
|
63
|
+
z.object({
|
|
64
|
+
category: categorySchema,
|
|
65
|
+
}),
|
|
66
|
+
{ useReferences: true },
|
|
67
|
+
);
|
|
68
|
+
```
|
|
69
|
+
|
|
70
|
+
## Import
|
|
71
|
+
|
|
72
|
+
<Snippet text={`import { zodSchema } from "ai"`} prompt={false} />
|
|
73
|
+
|
|
74
|
+
## API Signature
|
|
75
|
+
|
|
76
|
+
### Parameters
|
|
77
|
+
|
|
78
|
+
<PropertiesTable
|
|
79
|
+
content={[
|
|
80
|
+
{
|
|
81
|
+
name: 'zodSchema',
|
|
82
|
+
type: 'z.Schema',
|
|
83
|
+
description: 'The Zod schema definition.',
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
name: 'options',
|
|
87
|
+
type: 'object',
|
|
88
|
+
description: 'Additional options for the schema conversion.',
|
|
89
|
+
properties: [
|
|
90
|
+
{
|
|
91
|
+
type: 'object',
|
|
92
|
+
parameters: [
|
|
93
|
+
{
|
|
94
|
+
name: 'useReferences',
|
|
95
|
+
isOptional: true,
|
|
96
|
+
type: 'boolean',
|
|
97
|
+
description:
|
|
98
|
+
'Enables support for references in the schema. This is required for recursive schemas, e.g. with `z.lazy`. However, not all language models and providers support such references. Defaults to `false`.',
|
|
99
|
+
},
|
|
100
|
+
],
|
|
101
|
+
},
|
|
102
|
+
],
|
|
103
|
+
},
|
|
104
|
+
]}
|
|
105
|
+
/>
|
|
106
|
+
|
|
107
|
+
### Returns
|
|
108
|
+
|
|
109
|
+
A Schema object that is compatible with the AI SDK, containing both the JSON schema representation and validation functionality.
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: valibotSchema
|
|
3
|
+
description: Helper function for creating Valibot schemas
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `valibotSchema()`
|
|
7
|
+
|
|
8
|
+
`valibotSchema` is a helper function that converts a Valibot schema into a JSON schema object
|
|
9
|
+
that is compatible with the AI SDK.
|
|
10
|
+
It takes a Valibot schema as input, and returns a typed schema.
|
|
11
|
+
|
|
12
|
+
You can use it to [generate structured data](/docs/ai-sdk-core/generating-structured-data) and
|
|
13
|
+
in [tools](/docs/ai-sdk-core/tools-and-tool-calling).
|
|
14
|
+
|
|
15
|
+
## Example
|
|
16
|
+
|
|
17
|
+
```ts
|
|
18
|
+
import { valibotSchema } from '@ai-sdk/valibot';
|
|
19
|
+
import { object, string, array } from 'valibot';
|
|
20
|
+
|
|
21
|
+
const recipeSchema = valibotSchema(
|
|
22
|
+
object({
|
|
23
|
+
name: string(),
|
|
24
|
+
ingredients: array(
|
|
25
|
+
object({
|
|
26
|
+
name: string(),
|
|
27
|
+
amount: string(),
|
|
28
|
+
}),
|
|
29
|
+
),
|
|
30
|
+
steps: array(string()),
|
|
31
|
+
}),
|
|
32
|
+
);
|
|
33
|
+
```
|
|
34
|
+
|
|
35
|
+
## Import
|
|
36
|
+
|
|
37
|
+
<Snippet text={`import { valibotSchema } from "ai"`} prompt={false} />
|
|
38
|
+
|
|
39
|
+
## API Signature
|
|
40
|
+
|
|
41
|
+
### Parameters
|
|
42
|
+
|
|
43
|
+
<PropertiesTable
|
|
44
|
+
content={[
|
|
45
|
+
{
|
|
46
|
+
name: 'valibotSchema',
|
|
47
|
+
type: 'GenericSchema<unknown, T>',
|
|
48
|
+
description: 'The Valibot schema definition.',
|
|
49
|
+
},
|
|
50
|
+
]}
|
|
51
|
+
/>
|
|
52
|
+
|
|
53
|
+
### Returns
|
|
54
|
+
|
|
55
|
+
A Schema object that is compatible with the AI SDK, containing both the JSON schema representation and validation functionality.
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
---
|
|
2
|
+
title: Output
|
|
3
|
+
description: API Reference for Output.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# `Output`
|
|
7
|
+
|
|
8
|
+
The `Output` object provides output specifications for structured data generation with [`generateText`](/docs/reference/ai-sdk-core/generate-text) and [`streamText`](/docs/reference/ai-sdk-core/stream-text). It allows you to specify the expected shape of the generated data and handles validation automatically.
|
|
9
|
+
|
|
10
|
+
```ts
|
|
11
|
+
import { generateText, Output } from 'ai';
|
|
12
|
+
__PROVIDER_IMPORT__;
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
|
|
15
|
+
const { output } = await generateText({
|
|
16
|
+
model: __MODEL__,
|
|
17
|
+
output: Output.object({
|
|
18
|
+
schema: z.object({
|
|
19
|
+
name: z.string(),
|
|
20
|
+
age: z.number(),
|
|
21
|
+
}),
|
|
22
|
+
}),
|
|
23
|
+
prompt: 'Generate a user profile.',
|
|
24
|
+
});
|
|
25
|
+
```
|
|
26
|
+
|
|
27
|
+
## Import
|
|
28
|
+
|
|
29
|
+
<Snippet text={`import { Output } from "ai"`} prompt={false} />
|
|
30
|
+
|
|
31
|
+
## Output Types
|
|
32
|
+
|
|
33
|
+
### `Output.text()`
|
|
34
|
+
|
|
35
|
+
Output specification for plain text generation. This is the default behavior when no `output` is specified.
|
|
36
|
+
|
|
37
|
+
```ts
|
|
38
|
+
import { generateText, Output } from 'ai';
|
|
39
|
+
|
|
40
|
+
const { output } = await generateText({
|
|
41
|
+
model: yourModel,
|
|
42
|
+
output: Output.text(),
|
|
43
|
+
prompt: 'Tell me a joke.',
|
|
44
|
+
});
|
|
45
|
+
// output is a string
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
#### Parameters
|
|
49
|
+
|
|
50
|
+
No parameters required.
|
|
51
|
+
|
|
52
|
+
#### Returns
|
|
53
|
+
|
|
54
|
+
An `Output<string, string>` specification that generates plain text without schema validation.
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
58
|
+
### `Output.object()`
|
|
59
|
+
|
|
60
|
+
Output specification for typed object generation using schemas. The output is validated against the provided schema to ensure type safety.
|
|
61
|
+
|
|
62
|
+
```ts
|
|
63
|
+
import { generateText, Output } from 'ai';
|
|
64
|
+
import { z } from 'zod';
|
|
65
|
+
|
|
66
|
+
const { output } = await generateText({
|
|
67
|
+
model: yourModel,
|
|
68
|
+
output: Output.object({
|
|
69
|
+
schema: z.object({
|
|
70
|
+
name: z.string(),
|
|
71
|
+
age: z.number().nullable(),
|
|
72
|
+
labels: z.array(z.string()),
|
|
73
|
+
}),
|
|
74
|
+
}),
|
|
75
|
+
prompt: 'Generate information for a test user.',
|
|
76
|
+
});
|
|
77
|
+
// output matches the schema type
|
|
78
|
+
```
|
|
79
|
+
|
|
80
|
+
#### Parameters
|
|
81
|
+
|
|
82
|
+
<PropertiesTable
|
|
83
|
+
content={[
|
|
84
|
+
{
|
|
85
|
+
name: 'schema',
|
|
86
|
+
type: 'FlexibleSchema<OBJECT>',
|
|
87
|
+
description:
|
|
88
|
+
'The schema that defines the structure of the object to generate. Supports Zod schemas, Standard JSON schemas, and custom JSON schemas.',
|
|
89
|
+
},
|
|
90
|
+
{
|
|
91
|
+
name: 'name',
|
|
92
|
+
type: 'string',
|
|
93
|
+
isOptional: true,
|
|
94
|
+
description:
|
|
95
|
+
'Optional name of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema name.',
|
|
96
|
+
},
|
|
97
|
+
{
|
|
98
|
+
name: 'description',
|
|
99
|
+
type: 'string',
|
|
100
|
+
isOptional: true,
|
|
101
|
+
description:
|
|
102
|
+
'Optional description of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema description.',
|
|
103
|
+
},
|
|
104
|
+
]}
|
|
105
|
+
/>
|
|
106
|
+
|
|
107
|
+
#### Returns
|
|
108
|
+
|
|
109
|
+
An `Output<OBJECT, DeepPartial<OBJECT>>` specification where:
|
|
110
|
+
|
|
111
|
+
- Complete output is fully validated against the schema
|
|
112
|
+
- Partial output (during streaming) is a deep partial version of the schema type
|
|
113
|
+
|
|
114
|
+
<Note>
|
|
115
|
+
Partial outputs streamed via `streamText` cannot be validated against your
|
|
116
|
+
provided schema, as incomplete data may not yet conform to the expected
|
|
117
|
+
structure.
|
|
118
|
+
</Note>
|
|
119
|
+
|
|
120
|
+
---
|
|
121
|
+
|
|
122
|
+
### `Output.array()`
|
|
123
|
+
|
|
124
|
+
Output specification for generating arrays of typed elements. Each element is validated against the provided element schema.
|
|
125
|
+
|
|
126
|
+
```ts
|
|
127
|
+
import { generateText, Output } from 'ai';
|
|
128
|
+
import { z } from 'zod';
|
|
129
|
+
|
|
130
|
+
const { output } = await generateText({
|
|
131
|
+
model: yourModel,
|
|
132
|
+
output: Output.array({
|
|
133
|
+
element: z.object({
|
|
134
|
+
location: z.string(),
|
|
135
|
+
temperature: z.number(),
|
|
136
|
+
condition: z.string(),
|
|
137
|
+
}),
|
|
138
|
+
}),
|
|
139
|
+
prompt: 'List the weather for San Francisco and Paris.',
|
|
140
|
+
});
|
|
141
|
+
// output is an array of weather objects
|
|
142
|
+
```
|
|
143
|
+
|
|
144
|
+
#### Parameters
|
|
145
|
+
|
|
146
|
+
<PropertiesTable
|
|
147
|
+
content={[
|
|
148
|
+
{
|
|
149
|
+
name: 'element',
|
|
150
|
+
type: 'FlexibleSchema<ELEMENT>',
|
|
151
|
+
description:
|
|
152
|
+
'The schema that defines the structure of each array element. Supports Zod schemas, Valibot schemas, or JSON schemas.',
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: 'name',
|
|
156
|
+
type: 'string',
|
|
157
|
+
isOptional: true,
|
|
158
|
+
description:
|
|
159
|
+
'Optional name of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema name.',
|
|
160
|
+
},
|
|
161
|
+
{
|
|
162
|
+
name: 'description',
|
|
163
|
+
type: 'string',
|
|
164
|
+
isOptional: true,
|
|
165
|
+
description:
|
|
166
|
+
'Optional description of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema description.',
|
|
167
|
+
},
|
|
168
|
+
]}
|
|
169
|
+
/>
|
|
170
|
+
|
|
171
|
+
#### Returns
|
|
172
|
+
|
|
173
|
+
An `Output<Array<ELEMENT>, Array<ELEMENT>>` specification where:
|
|
174
|
+
|
|
175
|
+
- Complete output is an array with all elements validated
|
|
176
|
+
- Partial output contains only fully validated elements (incomplete elements are excluded)
|
|
177
|
+
|
|
178
|
+
#### Streaming with `elementStream`
|
|
179
|
+
|
|
180
|
+
When using `streamText` with `Output.array()`, you can iterate over elements as they are generated using `elementStream`:
|
|
181
|
+
|
|
182
|
+
```ts
|
|
183
|
+
import { streamText, Output } from 'ai';
|
|
184
|
+
import { z } from 'zod';
|
|
185
|
+
|
|
186
|
+
const { elementStream } = streamText({
|
|
187
|
+
model: yourModel,
|
|
188
|
+
output: Output.array({
|
|
189
|
+
element: z.object({
|
|
190
|
+
name: z.string(),
|
|
191
|
+
class: z.string(),
|
|
192
|
+
description: z.string(),
|
|
193
|
+
}),
|
|
194
|
+
}),
|
|
195
|
+
prompt: 'Generate 3 hero descriptions for a fantasy role playing game.',
|
|
196
|
+
});
|
|
197
|
+
|
|
198
|
+
for await (const hero of elementStream) {
|
|
199
|
+
console.log(hero); // Each hero is complete and validated
|
|
200
|
+
}
|
|
201
|
+
```
|
|
202
|
+
|
|
203
|
+
<Note>
|
|
204
|
+
Each element emitted by `elementStream` is complete and validated against your
|
|
205
|
+
element schema, ensuring type safety for each item as it is generated.
|
|
206
|
+
</Note>
|
|
207
|
+
|
|
208
|
+
---
|
|
209
|
+
|
|
210
|
+
### `Output.choice()`
|
|
211
|
+
|
|
212
|
+
Output specification for selecting from a predefined set of string options. Useful for classification tasks or fixed-enum answers.
|
|
213
|
+
|
|
214
|
+
```ts
|
|
215
|
+
import { generateText, Output } from 'ai';
|
|
216
|
+
|
|
217
|
+
const { output } = await generateText({
|
|
218
|
+
model: yourModel,
|
|
219
|
+
output: Output.choice({
|
|
220
|
+
options: ['sunny', 'rainy', 'snowy'],
|
|
221
|
+
}),
|
|
222
|
+
prompt: 'Is the weather sunny, rainy, or snowy today?',
|
|
223
|
+
});
|
|
224
|
+
// output is 'sunny' | 'rainy' | 'snowy'
|
|
225
|
+
```
|
|
226
|
+
|
|
227
|
+
#### Parameters
|
|
228
|
+
|
|
229
|
+
<PropertiesTable
|
|
230
|
+
content={[
|
|
231
|
+
{
|
|
232
|
+
name: 'options',
|
|
233
|
+
type: 'Array<CHOICE>',
|
|
234
|
+
description:
|
|
235
|
+
'An array of string options that the model can choose from. The output will be exactly one of these values.',
|
|
236
|
+
},
|
|
237
|
+
{
|
|
238
|
+
name: 'name',
|
|
239
|
+
type: 'string',
|
|
240
|
+
isOptional: true,
|
|
241
|
+
description:
|
|
242
|
+
'Optional name of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema name.',
|
|
243
|
+
},
|
|
244
|
+
{
|
|
245
|
+
name: 'description',
|
|
246
|
+
type: 'string',
|
|
247
|
+
isOptional: true,
|
|
248
|
+
description:
|
|
249
|
+
'Optional description of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema description.',
|
|
250
|
+
},
|
|
251
|
+
]}
|
|
252
|
+
/>
|
|
253
|
+
|
|
254
|
+
#### Returns
|
|
255
|
+
|
|
256
|
+
An `Output<CHOICE, CHOICE>` specification where:
|
|
257
|
+
|
|
258
|
+
- Complete output is validated to be exactly one of the provided options
|
|
259
|
+
|
|
260
|
+
---
|
|
261
|
+
|
|
262
|
+
### `Output.json()`
|
|
263
|
+
|
|
264
|
+
Output specification for unstructured JSON generation. Use this when you want to generate arbitrary JSON without enforcing a specific schema.
|
|
265
|
+
|
|
266
|
+
```ts
|
|
267
|
+
import { generateText, Output } from 'ai';
|
|
268
|
+
|
|
269
|
+
const { output } = await generateText({
|
|
270
|
+
model: yourModel,
|
|
271
|
+
output: Output.json(),
|
|
272
|
+
prompt:
|
|
273
|
+
'For each city, return the current temperature and weather condition as a JSON object.',
|
|
274
|
+
});
|
|
275
|
+
// output is any valid JSON value
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
#### Parameters
|
|
279
|
+
|
|
280
|
+
<PropertiesTable
|
|
281
|
+
content={[
|
|
282
|
+
{
|
|
283
|
+
name: 'name',
|
|
284
|
+
type: 'string',
|
|
285
|
+
isOptional: true,
|
|
286
|
+
description:
|
|
287
|
+
'Optional name of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema name.',
|
|
288
|
+
},
|
|
289
|
+
{
|
|
290
|
+
name: 'description',
|
|
291
|
+
type: 'string',
|
|
292
|
+
isOptional: true,
|
|
293
|
+
description:
|
|
294
|
+
'Optional description of the output that should be generated. Used by some providers for additional LLM guidance, e.g. via tool or schema description.',
|
|
295
|
+
},
|
|
296
|
+
]}
|
|
297
|
+
/>
|
|
298
|
+
|
|
299
|
+
#### Returns
|
|
300
|
+
|
|
301
|
+
An `Output<JSONValue, JSONValue>` specification that:
|
|
302
|
+
|
|
303
|
+
- Validates that the output is valid JSON
|
|
304
|
+
- Does not enforce any specific structure
|
|
305
|
+
|
|
306
|
+
<Note>
|
|
307
|
+
With `Output.json()`, the AI SDK only checks that the response is valid JSON;
|
|
308
|
+
it doesn't validate the structure or types of the values. If you need schema
|
|
309
|
+
validation, use `Output.object()` or `Output.array()` instead.
|
|
310
|
+
</Note>
|
|
311
|
+
|
|
312
|
+
## Error Handling
|
|
313
|
+
|
|
314
|
+
When `generateText` with structured output cannot generate a valid object, it throws a [`NoObjectGeneratedError`](/docs/reference/ai-sdk-errors/ai-no-object-generated-error).
|
|
315
|
+
|
|
316
|
+
```ts
|
|
317
|
+
import { generateText, Output, NoObjectGeneratedError } from 'ai';
|
|
318
|
+
|
|
319
|
+
try {
|
|
320
|
+
await generateText({
|
|
321
|
+
model: yourModel,
|
|
322
|
+
output: Output.object({ schema }),
|
|
323
|
+
prompt: 'Generate a user profile.',
|
|
324
|
+
});
|
|
325
|
+
} catch (error) {
|
|
326
|
+
if (NoObjectGeneratedError.isInstance(error)) {
|
|
327
|
+
console.log('NoObjectGeneratedError');
|
|
328
|
+
console.log('Cause:', error.cause);
|
|
329
|
+
console.log('Text:', error.text);
|
|
330
|
+
console.log('Response:', error.response);
|
|
331
|
+
console.log('Usage:', error.usage);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
```
|
|
335
|
+
|
|
336
|
+
## See also
|
|
337
|
+
|
|
338
|
+
- [Generating Structured Data](/docs/ai-sdk-core/generating-structured-data)
|
|
339
|
+
- [`generateText()`](/docs/reference/ai-sdk-core/generate-text)
|
|
340
|
+
- [`streamText()`](/docs/reference/ai-sdk-core/stream-text)
|
|
341
|
+
- [`zod-schema`](/docs/reference/ai-sdk-core/zod-schema)
|
|
342
|
+
- [`json-schema`](/docs/reference/ai-sdk-core/json-schema)
|