@ai-sdk/google 4.0.87 → 4.0.88
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 +11 -0
- package/dist/index.d.ts +7 -3
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +64 -25
- package/dist/index.js.map +1 -1
- package/dist/internal/index.d.ts +2 -1
- package/dist/internal/index.d.ts.map +1 -1
- package/dist/internal/index.js +59 -21
- package/dist/internal/index.js.map +1 -1
- package/docs/15-google.mdx +10 -10
- package/package.json +3 -3
- package/src/google-language-model.ts +79 -4
- package/src/google-provider.ts +13 -7
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,16 @@
|
|
|
1
1
|
# @ai-sdk/google
|
|
2
2
|
|
|
3
|
+
## 4.0.88
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- 2959d35: feat: rename `evaluate` to `decide`
|
|
8
|
+
- 59116e6: fix(groq,google): use JSON response tool for structured outputs with tool calling
|
|
9
|
+
- Updated dependencies [2959d35]
|
|
10
|
+
- Updated dependencies [59116e6]
|
|
11
|
+
- @ai-sdk/provider@4.0.22
|
|
12
|
+
- @ai-sdk/provider-utils@5.0.54
|
|
13
|
+
|
|
3
14
|
## 4.0.87
|
|
4
15
|
|
|
5
16
|
### Patch Changes
|
package/dist/index.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { FetchFunction, InferSchema, Resolvable, WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, WebSocketConstructor, createToolNameMapping } from "@ai-sdk/provider-utils";
|
|
2
|
-
import { EmbeddingModelV4, Experimental_BatchV4,
|
|
2
|
+
import { EmbeddingModelV4, Experimental_BatchV4, Experimental_DecisionModelV4, Experimental_RealtimeFactoryV4, Experimental_RealtimeModelV4, Experimental_RealtimeModelV4ClientEvent, Experimental_RealtimeModelV4ClientSecretOptions, Experimental_RealtimeModelV4ClientSecretResult, Experimental_RealtimeModelV4ServerEvent, Experimental_RealtimeModelV4SessionConfig, Experimental_SpeechTranslationModelV4, Experimental_SpeechTranslationModelV4StreamOptions, Experimental_TranscriptionModelV4StreamOptions, Experimental_VideoModelV4, FilesV4, ImageModelV4, JSONObject, LanguageModelV4, ProviderV4, SpeechModelV4, TranscriptionModelV4 } from "@ai-sdk/provider";
|
|
3
3
|
import { z } from "zod/v4";
|
|
4
4
|
//#region src/google-error.d.ts
|
|
5
5
|
declare const googleErrorDataSchema: import("@ai-sdk/provider-utils").LazySchema<{
|
|
@@ -621,8 +621,12 @@ interface GoogleProvider extends ProviderV4 {
|
|
|
621
621
|
(modelId: GoogleModelId): LanguageModelV4;
|
|
622
622
|
languageModel(modelId: GoogleModelId): LanguageModelV4;
|
|
623
623
|
chat(modelId: GoogleModelId): LanguageModelV4;
|
|
624
|
-
/** Creates an experimental Choice/Score/Boolean
|
|
625
|
-
|
|
624
|
+
/** Creates an experimental Choice/Score/Boolean decision model using Gemini. */
|
|
625
|
+
decisionModel(modelId: GoogleModelId): Experimental_DecisionModelV4;
|
|
626
|
+
/** @deprecated Use `decisionModel` instead. */
|
|
627
|
+
evaluationModel(modelId: GoogleModelId): Experimental_DecisionModelV4 & {
|
|
628
|
+
doEvaluate: Experimental_DecisionModelV4['doDecide'];
|
|
629
|
+
};
|
|
626
630
|
experimental_batch(): Experimental_BatchV4<{
|
|
627
631
|
text: GoogleModelId;
|
|
628
632
|
image: GoogleImageModelId;
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","names":["
|
|
1
|
+
{"version":3,"file":"index.d.ts","names":["DecisionModelV4","BatchV4","SpeechTranslationModelV4","RealtimeFactoryV4","RealtimeModelV4ClientSecretOptions","RealtimeModelV4ClientSecretResult","RealtimeModelV4ServerEvent","RealtimeModelV4ClientEvent","RealtimeModelV4","RealtimeModelV4SessionConfig","TranscriptionModelV4StreamOptions","SpeechTranslationModelV4StreamOptions","SpeechTranslationModelV4"],"sources":["../src/google-error.ts","../src/google-language-model-options.ts","../src/google-language-model.ts","../src/google-prompt.ts","../src/tool/google-search.ts","../src/google-image-model-options.ts","../src/google-embedding-model-options.ts","../src/google-video-model-options.ts","../src/google-video-settings.ts","../src/google-speech-model-options.ts","../src/google-files.ts","../src/interactions/google-interactions-language-model-options.ts","../src/interactions/google-interactions-provider-metadata.ts","../src/interactions/google-interactions-agent.ts","../src/google-tools.ts","../src/google-image-settings.ts","../src/transcription/google-transcription-model-options.ts","../src/speech-translation/google-speech-translation-model-options.ts","../src/google-provider.ts","../src/realtime/google-realtime-model.ts","../src/realtime/google-realtime-model-options.ts","../src/transcription/google-transcription-model.ts","../src/speech-translation/google-speech-translation-model.ts","../src/version.ts"],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { EXPERIMENTAL_EMBEDDING_MODEL_PROVIDER_OPTIONS_TRANSFORMER, WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, combineHeaders, connectToWebSocket, convertAsyncIteratorToReadableStream, convertBase64ToUint8Array, convertInlineFileDataToUint8Array, convertToBase64, convertUint8ArrayToBase64, createEventSourceResponseHandler, createJsonErrorResponseHandler, createJsonLinesResponseHandler, createJsonResponseHandler, createNullLanguageModelUsage, createProviderExecutedToolFactory, createProviderStreamError, createToolNameMapping, delay, detectMediaType, downloadBlob, generateId, getFromApi, getRuntimeEnvironmentUserAgent, getTopLevelMediaType, isAbortError, isCustomReasoning, isFullMediaType, isRecord, isSameOrigin, isUrlSupported, lazySchema, loadApiKey, mapReasoningToProviderBudget, mapReasoningToProviderEffort, normalizeBatchRequestCounts, parseProviderOptions, postJsonToApi, postToApi, resolve, resolveFullMediaType, resolveProviderReference, safeParseJSON, safeValidateTypes, secureJsonParse, serializeModelOptions, waitForWebSocketBufferDrain, withUserAgentSuffix, withoutTrailingSlash, zodSchema } from "@ai-sdk/provider-utils";
|
|
2
|
-
import {
|
|
1
|
+
import { EXPERIMENTAL_EMBEDDING_MODEL_PROVIDER_OPTIONS_TRANSFORMER, WORKFLOW_DESERIALIZE, WORKFLOW_SERIALIZE, combineHeaders, connectToWebSocket, convertAsyncIteratorToReadableStream, convertBase64ToUint8Array, convertInlineFileDataToUint8Array, convertJsonResponseToolStream, convertToBase64, convertUint8ArrayToBase64, createEventSourceResponseHandler, createJsonErrorResponseHandler, createJsonLinesResponseHandler, createJsonResponseHandler, createNullLanguageModelUsage, createProviderExecutedToolFactory, createProviderStreamError, createToolNameMapping, delay, detectMediaType, downloadBlob, generateId, getFromApi, getRuntimeEnvironmentUserAgent, getTopLevelMediaType, isAbortError, isCustomReasoning, isFullMediaType, isRecord, isSameOrigin, isUrlSupported, lazySchema, loadApiKey, mapReasoningToProviderBudget, mapReasoningToProviderEffort, normalizeBatchRequestCounts, parseProviderOptions, postJsonToApi, postToApi, resolve, resolveFullMediaType, resolveProviderReference, safeParseJSON, safeValidateTypes, secureJsonParse, serializeModelOptions, waitForWebSocketBufferDrain, withUserAgentSuffix, withoutTrailingSlash, zodSchema } from "@ai-sdk/provider-utils";
|
|
2
|
+
import { Experimental_DecisionLanguageModel } from "@ai-sdk/provider-utils/experimental-decision";
|
|
3
3
|
import { AISDKError, InvalidArgumentError, InvalidResponseDataError, TooManyEmbeddingValuesForCallError, UnsupportedFunctionalityError } from "@ai-sdk/provider";
|
|
4
4
|
import { z } from "zod/v4";
|
|
5
5
|
//#region src/version.ts
|
|
6
|
-
const VERSION = "4.0.
|
|
6
|
+
const VERSION = "4.0.88";
|
|
7
7
|
//#endregion
|
|
8
8
|
//#region src/google-error.ts
|
|
9
9
|
const googleErrorDataSchema = lazySchema(() => zodSchema(z.object({ error: z.object({
|
|
@@ -1546,15 +1546,38 @@ var GoogleLanguageModel = class GoogleLanguageModel {
|
|
|
1546
1546
|
toolNameMapping
|
|
1547
1547
|
};
|
|
1548
1548
|
}
|
|
1549
|
-
getArgs(options, { isStreaming = false } = {}) {
|
|
1550
|
-
|
|
1551
|
-
|
|
1552
|
-
|
|
1553
|
-
|
|
1554
|
-
|
|
1555
|
-
|
|
1549
|
+
async getArgs(options, { isStreaming = false } = {}) {
|
|
1550
|
+
const { responseFormat, tools, toolChoice } = options;
|
|
1551
|
+
let jsonResponseTool;
|
|
1552
|
+
if (responseFormat?.type === "json" && responseFormat.schema != null && tools?.some((tool) => tool.type === "function") && /(^|\/)gemini-/i.test(this.modelId) && (!getGoogleModelCapabilities(this.modelId).usesGemini3Features || toolChoice?.type === "required" || toolChoice?.type === "tool")) {
|
|
1553
|
+
let name = "json";
|
|
1554
|
+
for (let suffix = 1; tools.some((tool) => tool.name === name); suffix++) name = `json_${suffix}`;
|
|
1555
|
+
jsonResponseTool = {
|
|
1556
|
+
type: "function",
|
|
1557
|
+
name,
|
|
1558
|
+
description: responseFormat.description ?? "Respond with a JSON object.",
|
|
1559
|
+
inputSchema: responseFormat.schema
|
|
1560
|
+
};
|
|
1561
|
+
}
|
|
1562
|
+
return {
|
|
1563
|
+
...await GoogleLanguageModel.prepareRequest({
|
|
1564
|
+
modelId: this.modelId,
|
|
1565
|
+
config: this.config,
|
|
1566
|
+
options: jsonResponseTool == null ? options : {
|
|
1567
|
+
...options,
|
|
1568
|
+
responseFormat: void 0,
|
|
1569
|
+
tools: [...tools ?? [], jsonResponseTool],
|
|
1570
|
+
toolChoice: toolChoice?.type === "tool" ? toolChoice : toolChoice?.type === "none" ? {
|
|
1571
|
+
type: "tool",
|
|
1572
|
+
toolName: jsonResponseTool.name
|
|
1573
|
+
} : { type: "required" }
|
|
1574
|
+
},
|
|
1575
|
+
isStreaming
|
|
1576
|
+
}),
|
|
1577
|
+
jsonResponseToolName: jsonResponseTool?.name
|
|
1578
|
+
};
|
|
1556
1579
|
}
|
|
1557
|
-
static convertGenerateContentResponse({ config, response, warnings, providerOptionsNames, toolNameMapping }) {
|
|
1580
|
+
static convertGenerateContentResponse({ config, response, warnings, providerOptionsNames, toolNameMapping, jsonResponseToolName }) {
|
|
1558
1581
|
const wrapProviderMetadata = (payload) => Object.fromEntries(providerOptionsNames.map((name) => [name, payload]));
|
|
1559
1582
|
const candidate = response.candidates?.[0];
|
|
1560
1583
|
const promptBlockReason = response.promptFeedback?.blockReason;
|
|
@@ -1586,6 +1609,7 @@ var GoogleLanguageModel = class GoogleLanguageModel {
|
|
|
1586
1609
|
}
|
|
1587
1610
|
});
|
|
1588
1611
|
else if ("text" in part && part.text != null) {
|
|
1612
|
+
if (jsonResponseToolName != null && part.thought !== true) continue;
|
|
1589
1613
|
const thoughtSignatureMetadata = part.thoughtSignature ? wrapProviderMetadata({ thoughtSignature: part.thoughtSignature }) : void 0;
|
|
1590
1614
|
if (part.text.length === 0) {
|
|
1591
1615
|
if (thoughtSignatureMetadata != null && content.length > 0) {
|
|
@@ -1597,14 +1621,23 @@ var GoogleLanguageModel = class GoogleLanguageModel {
|
|
|
1597
1621
|
text: part.text,
|
|
1598
1622
|
providerMetadata: thoughtSignatureMetadata
|
|
1599
1623
|
});
|
|
1600
|
-
} else if ("functionCall" in part && part.functionCall.name != null)
|
|
1601
|
-
|
|
1602
|
-
|
|
1603
|
-
|
|
1604
|
-
|
|
1605
|
-
|
|
1606
|
-
|
|
1607
|
-
|
|
1624
|
+
} else if ("functionCall" in part && part.functionCall.name != null) {
|
|
1625
|
+
if (part.functionCall.name === jsonResponseToolName) {
|
|
1626
|
+
content.push({
|
|
1627
|
+
type: "text",
|
|
1628
|
+
text: typeof part.functionCall.args === "string" ? part.functionCall.args : JSON.stringify(part.functionCall.args ?? {}),
|
|
1629
|
+
...part.thoughtSignature ? { providerMetadata: wrapProviderMetadata({ thoughtSignature: part.thoughtSignature }) } : {}
|
|
1630
|
+
});
|
|
1631
|
+
continue;
|
|
1632
|
+
}
|
|
1633
|
+
content.push({
|
|
1634
|
+
type: "tool-call",
|
|
1635
|
+
toolCallId: part.functionCall.id || config.generateId(),
|
|
1636
|
+
toolName: part.functionCall.name,
|
|
1637
|
+
input: JSON.stringify(part.functionCall.args ?? {}),
|
|
1638
|
+
providerMetadata: part.thoughtSignature ? wrapProviderMetadata({ thoughtSignature: part.thoughtSignature }) : void 0
|
|
1639
|
+
});
|
|
1640
|
+
} else if ("inlineData" in part) {
|
|
1608
1641
|
const hasThought = part.thought === true;
|
|
1609
1642
|
const hasThoughtSignature = !!part.thoughtSignature;
|
|
1610
1643
|
content.push({
|
|
@@ -1682,7 +1715,7 @@ var GoogleLanguageModel = class GoogleLanguageModel {
|
|
|
1682
1715
|
};
|
|
1683
1716
|
}
|
|
1684
1717
|
async doGenerate(options) {
|
|
1685
|
-
const { args, warnings, providerOptionsNames, extraHeaders, toolNameMapping } = await this.getArgs(options);
|
|
1718
|
+
const { args, warnings, providerOptionsNames, extraHeaders, toolNameMapping, jsonResponseToolName } = await this.getArgs(options);
|
|
1686
1719
|
const mergedHeaders = combineHeaders(this.config.headers ? await resolve(this.config.headers) : void 0, options.headers, extraHeaders);
|
|
1687
1720
|
const { responseHeaders, value: response, rawValue: rawResponse } = await postJsonToApi({
|
|
1688
1721
|
url: `${this.config.baseURL}/${getModelPath(this.modelId)}:generateContent`,
|
|
@@ -1698,7 +1731,8 @@ var GoogleLanguageModel = class GoogleLanguageModel {
|
|
|
1698
1731
|
response,
|
|
1699
1732
|
warnings,
|
|
1700
1733
|
providerOptionsNames,
|
|
1701
|
-
toolNameMapping
|
|
1734
|
+
toolNameMapping,
|
|
1735
|
+
jsonResponseToolName
|
|
1702
1736
|
});
|
|
1703
1737
|
return {
|
|
1704
1738
|
...result,
|
|
@@ -1711,7 +1745,7 @@ var GoogleLanguageModel = class GoogleLanguageModel {
|
|
|
1711
1745
|
};
|
|
1712
1746
|
}
|
|
1713
1747
|
async doStream(options) {
|
|
1714
|
-
const { args, warnings, providerOptionsNames, extraHeaders, toolNameMapping } = await this.getArgs(options, { isStreaming: true });
|
|
1748
|
+
const { args, warnings, providerOptionsNames, extraHeaders, toolNameMapping, jsonResponseToolName } = await this.getArgs(options, { isStreaming: true });
|
|
1715
1749
|
const wrapProviderMetadata = (payload) => Object.fromEntries(providerOptionsNames.map((name) => [name, payload]));
|
|
1716
1750
|
const headers = combineHeaders(this.config.headers ? await resolve(this.config.headers) : void 0, options.headers, extraHeaders);
|
|
1717
1751
|
const { responseHeaders, value: response } = await postJsonToApi({
|
|
@@ -1768,7 +1802,7 @@ var GoogleLanguageModel = class GoogleLanguageModel {
|
|
|
1768
1802
|
});
|
|
1769
1803
|
hasToolCalls = true;
|
|
1770
1804
|
};
|
|
1771
|
-
|
|
1805
|
+
const result = {
|
|
1772
1806
|
stream: response.pipeThrough(new TransformStream({
|
|
1773
1807
|
start(controller) {
|
|
1774
1808
|
controller.enqueue({
|
|
@@ -2100,6 +2134,10 @@ var GoogleLanguageModel = class GoogleLanguageModel {
|
|
|
2100
2134
|
response: { headers: responseHeaders },
|
|
2101
2135
|
request: { body: args }
|
|
2102
2136
|
};
|
|
2137
|
+
return {
|
|
2138
|
+
...result,
|
|
2139
|
+
stream: jsonResponseToolName == null ? result.stream : result.stream.pipeThrough(convertJsonResponseToolStream(jsonResponseToolName))
|
|
2140
|
+
};
|
|
2103
2141
|
}
|
|
2104
2142
|
};
|
|
2105
2143
|
function getMaxOutputTokensForGemini25Model() {
|
|
@@ -8054,10 +8092,11 @@ function createGoogle(options = {}) {
|
|
|
8054
8092
|
provider.languageModel = createChatModel;
|
|
8055
8093
|
provider.chat = createChatModel;
|
|
8056
8094
|
provider.generativeAI = createChatModel;
|
|
8057
|
-
provider.
|
|
8095
|
+
provider.decisionModel = (modelId) => new Experimental_DecisionLanguageModel({
|
|
8058
8096
|
model: createChatModel(modelId),
|
|
8059
|
-
provider: `${providerName.replace(/\.generative-ai$/, "")}.
|
|
8097
|
+
provider: `${providerName.replace(/\.generative-ai$/, "")}.decision`
|
|
8060
8098
|
});
|
|
8099
|
+
provider.evaluationModel = provider.decisionModel;
|
|
8061
8100
|
provider.experimental_batch = createBatch;
|
|
8062
8101
|
provider.embedding = createEmbeddingModel;
|
|
8063
8102
|
provider.embeddingModel = createEmbeddingModel;
|