@ai-sdk/google-vertex 0.0.22 → 0.0.24
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/dist/index.d.mts +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +15 -12
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +15 -12
- package/dist/index.mjs.map +1 -1
- package/package.json +5 -5
package/dist/index.d.mts
CHANGED
@@ -29,7 +29,7 @@ type GoogleVertexAIConfig = {
|
|
29
29
|
declare class GoogleVertexLanguageModel implements LanguageModelV1 {
|
30
30
|
readonly specificationVersion = "v1";
|
31
31
|
readonly provider = "google-vertex";
|
32
|
-
readonly defaultObjectGenerationMode
|
32
|
+
readonly defaultObjectGenerationMode = "json";
|
33
33
|
readonly supportsImageUrls = false;
|
34
34
|
readonly modelId: GoogleVertexModelId;
|
35
35
|
readonly settings: GoogleVertexSettings;
|
package/dist/index.d.ts
CHANGED
@@ -29,7 +29,7 @@ type GoogleVertexAIConfig = {
|
|
29
29
|
declare class GoogleVertexLanguageModel implements LanguageModelV1 {
|
30
30
|
readonly specificationVersion = "v1";
|
31
31
|
readonly provider = "google-vertex";
|
32
|
-
readonly defaultObjectGenerationMode
|
32
|
+
readonly defaultObjectGenerationMode = "json";
|
33
33
|
readonly supportsImageUrls = false;
|
34
34
|
readonly modelId: GoogleVertexModelId;
|
35
35
|
readonly settings: GoogleVertexSettings;
|
package/dist/index.js
CHANGED
@@ -278,7 +278,7 @@ var GoogleVertexLanguageModel = class {
|
|
278
278
|
constructor(modelId, settings, config) {
|
279
279
|
this.specificationVersion = "v1";
|
280
280
|
this.provider = "google-vertex";
|
281
|
-
this.defaultObjectGenerationMode =
|
281
|
+
this.defaultObjectGenerationMode = "json";
|
282
282
|
this.supportsImageUrls = false;
|
283
283
|
this.modelId = modelId;
|
284
284
|
this.settings = settings;
|
@@ -323,13 +323,6 @@ var GoogleVertexLanguageModel = class {
|
|
323
323
|
setting: "headers"
|
324
324
|
});
|
325
325
|
}
|
326
|
-
if (responseFormat != null && responseFormat.type !== "text") {
|
327
|
-
warnings.push({
|
328
|
-
type: "unsupported-setting",
|
329
|
-
setting: "responseFormat",
|
330
|
-
details: "JSON response format is not supported."
|
331
|
-
});
|
332
|
-
}
|
333
326
|
const generationConfig = {
|
334
327
|
// model specific settings:
|
335
328
|
topK: topK != null ? topK : this.settings.topK,
|
@@ -337,7 +330,8 @@ var GoogleVertexLanguageModel = class {
|
|
337
330
|
maxOutputTokens: maxTokens,
|
338
331
|
temperature,
|
339
332
|
topP,
|
340
|
-
stopSequences
|
333
|
+
stopSequences,
|
334
|
+
responseMimeType: (responseFormat == null ? void 0 : responseFormat.type) === "json" ? "application/json" : void 0
|
341
335
|
};
|
342
336
|
const type = mode.type;
|
343
337
|
switch (type) {
|
@@ -354,9 +348,18 @@ var GoogleVertexLanguageModel = class {
|
|
354
348
|
};
|
355
349
|
}
|
356
350
|
case "object-json": {
|
357
|
-
|
358
|
-
|
359
|
-
|
351
|
+
return {
|
352
|
+
model: this.config.vertexAI.getGenerativeModel({
|
353
|
+
model: this.modelId,
|
354
|
+
generationConfig: {
|
355
|
+
...generationConfig,
|
356
|
+
responseMimeType: "application/json"
|
357
|
+
},
|
358
|
+
safetySettings: this.settings.safetySettings
|
359
|
+
}),
|
360
|
+
contentRequest: convertToGoogleVertexContentRequest(prompt),
|
361
|
+
warnings
|
362
|
+
};
|
360
363
|
}
|
361
364
|
case "object-tool": {
|
362
365
|
throw new import_provider3.UnsupportedFunctionalityError({
|
package/dist/index.js.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/index.ts","../src/google-vertex-provider.ts","../src/google-vertex-language-model.ts","../src/convert-to-google-vertex-content-request.ts","../src/map-google-vertex-finish-reason.ts","../src/prepare-function-declaration-schema.ts"],"sourcesContent":["export * from './google-vertex-provider';\n","import { generateId, loadSetting } from '@ai-sdk/provider-utils';\nimport { VertexAI, VertexInit } from '@google-cloud/vertexai';\nimport { GoogleVertexLanguageModel } from './google-vertex-language-model';\nimport {\n GoogleVertexModelId,\n GoogleVertexSettings,\n} from './google-vertex-settings';\n\nexport interface GoogleVertexProvider {\n /**\nCreates a model for text generation.\n */\n (\n modelId: GoogleVertexModelId,\n settings?: GoogleVertexSettings,\n ): GoogleVertexLanguageModel;\n\n languageModel: (\n modelId: GoogleVertexModelId,\n settings?: GoogleVertexSettings,\n ) => GoogleVertexLanguageModel;\n}\n\nexport interface GoogleVertexProviderSettings {\n /**\nYour Google Vertex location. Defaults to the environment variable `GOOGLE_VERTEX_LOCATION`.\n */\n location?: string;\n\n /**\nYour Google Vertex project. Defaults to the environment variable `GOOGLE_VERTEX_PROJECT`.\n */\n project?: string;\n\n /**\n Optional. The Authentication options provided by google-auth-library.\nComplete list of authentication options is documented in the\nGoogleAuthOptions interface:\nhttps://github.com/googleapis/google-auth-library-nodejs/blob/main/src/auth/googleauth.ts.\n */\n googleAuthOptions?: VertexInit['googleAuthOptions'];\n\n // for testing\n generateId?: () => string;\n\n // for testing\n createVertexAI?: ({\n project,\n location,\n }: {\n project: string;\n location: string;\n }) => VertexAI;\n}\n\n/**\nCreate a Google Vertex AI provider instance.\n */\nexport function createVertex(\n options: GoogleVertexProviderSettings = {},\n): GoogleVertexProvider {\n const createVertexAI = () => {\n const config = {\n project: loadSetting({\n settingValue: options.project,\n settingName: 'project',\n environmentVariableName: 'GOOGLE_VERTEX_PROJECT',\n description: 'Google Vertex project',\n }),\n location: loadSetting({\n settingValue: options.location,\n settingName: 'location',\n environmentVariableName: 'GOOGLE_VERTEX_LOCATION',\n description: 'Google Vertex location',\n }),\n googleAuthOptions: options.googleAuthOptions,\n };\n\n return options.createVertexAI?.(config) ?? new VertexAI(config);\n };\n\n const createChatModel = (\n modelId: GoogleVertexModelId,\n settings: GoogleVertexSettings = {},\n ) =>\n new GoogleVertexLanguageModel(modelId, settings, {\n vertexAI: createVertexAI(),\n generateId: options.generateId ?? generateId,\n });\n\n const provider = function (\n modelId: GoogleVertexModelId,\n settings?: GoogleVertexSettings,\n ) {\n if (new.target) {\n throw new Error(\n 'The Google Vertex AI model function cannot be called with the new keyword.',\n );\n }\n\n return createChatModel(modelId, settings);\n };\n\n provider.languageModel = createChatModel;\n\n return provider as GoogleVertexProvider;\n}\n\n/**\nDefault Google Vertex AI provider instance.\n */\nexport const vertex = createVertex();\n","import {\n LanguageModelV1,\n LanguageModelV1CallOptions,\n LanguageModelV1CallWarning,\n LanguageModelV1FinishReason,\n LanguageModelV1StreamPart,\n NoContentGeneratedError,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertAsyncGeneratorToReadableStream } from '@ai-sdk/provider-utils';\nimport {\n GenerateContentResponse,\n GenerationConfig,\n Part,\n SafetySetting,\n VertexAI,\n} from '@google-cloud/vertexai';\nimport { convertToGoogleVertexContentRequest } from './convert-to-google-vertex-content-request';\nimport {\n GoogleVertexModelId,\n GoogleVertexSettings,\n} from './google-vertex-settings';\nimport { mapGoogleVertexFinishReason } from './map-google-vertex-finish-reason';\nimport { prepareFunctionDeclarationSchema } from './prepare-function-declaration-schema';\n\ntype GoogleVertexAIConfig = {\n vertexAI: VertexAI;\n generateId: () => string;\n};\n\nexport class GoogleVertexLanguageModel implements LanguageModelV1 {\n readonly specificationVersion = 'v1';\n readonly provider = 'google-vertex';\n readonly defaultObjectGenerationMode = undefined;\n readonly supportsImageUrls = false;\n\n readonly modelId: GoogleVertexModelId;\n readonly settings: GoogleVertexSettings;\n\n private readonly config: GoogleVertexAIConfig;\n\n constructor(\n modelId: GoogleVertexModelId,\n settings: GoogleVertexSettings,\n config: GoogleVertexAIConfig,\n ) {\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n\n private async getArgs({\n mode,\n prompt,\n maxTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n headers,\n }: LanguageModelV1CallOptions) {\n const warnings: LanguageModelV1CallWarning[] = [];\n\n if (frequencyPenalty != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'frequencyPenalty',\n });\n }\n\n if (presencePenalty != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'presencePenalty',\n });\n }\n\n if (seed != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'seed',\n });\n }\n\n if (headers != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'headers',\n });\n }\n\n if (responseFormat != null && responseFormat.type !== 'text') {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'responseFormat',\n details: 'JSON response format is not supported.',\n });\n }\n\n const generationConfig: GenerationConfig = {\n // model specific settings:\n topK: topK ?? this.settings.topK,\n\n // standardized settings:\n maxOutputTokens: maxTokens,\n temperature,\n topP,\n stopSequences,\n };\n\n const type = mode.type;\n\n switch (type) {\n case 'regular': {\n return {\n model: this.config.vertexAI.getGenerativeModel({\n model: this.modelId,\n generationConfig,\n tools: prepareTools(mode),\n safetySettings: this.settings.safetySettings as\n | undefined\n | Array<SafetySetting>,\n }),\n contentRequest: convertToGoogleVertexContentRequest(prompt),\n warnings,\n };\n }\n\n case 'object-json': {\n throw new UnsupportedFunctionalityError({\n functionality: 'object-json mode',\n });\n }\n\n case 'object-tool': {\n throw new UnsupportedFunctionalityError({\n functionality: 'object-tool mode',\n });\n }\n\n default: {\n const _exhaustiveCheck: never = type;\n throw new Error(`Unsupported type: ${_exhaustiveCheck}`);\n }\n }\n }\n\n async doGenerate(\n options: Parameters<LanguageModelV1['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>> {\n const { model, contentRequest, warnings } = await this.getArgs(options);\n const { response } = await model.generateContent(contentRequest);\n\n const firstCandidate = response.candidates?.[0];\n\n if (firstCandidate == null) {\n throw new NoContentGeneratedError({ message: 'No candidates returned' });\n }\n\n const parts = firstCandidate.content.parts;\n const usageMetadata = response.usageMetadata;\n\n const toolCalls = getToolCallsFromParts({\n parts,\n generateId: this.config.generateId,\n });\n\n return {\n text: getTextFromParts(parts),\n toolCalls,\n finishReason: mapGoogleVertexFinishReason({\n finishReason: firstCandidate.finishReason,\n hasToolCalls: toolCalls != null && toolCalls.length > 0,\n }),\n usage: {\n promptTokens: usageMetadata?.promptTokenCount ?? NaN,\n completionTokens: usageMetadata?.candidatesTokenCount ?? NaN,\n },\n rawCall: {\n rawPrompt: contentRequest,\n rawSettings: {},\n },\n warnings,\n };\n }\n\n async doStream(\n options: Parameters<LanguageModelV1['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>> {\n const { model, contentRequest, warnings } = await this.getArgs(options);\n const { stream } = await model.generateContentStream(contentRequest);\n\n let finishReason: LanguageModelV1FinishReason = 'other';\n let usage: { promptTokens: number; completionTokens: number } = {\n promptTokens: Number.NaN,\n completionTokens: Number.NaN,\n };\n\n const generateId = this.config.generateId;\n let hasToolCalls = false;\n\n return {\n stream: convertAsyncGeneratorToReadableStream(stream).pipeThrough(\n new TransformStream<GenerateContentResponse, LanguageModelV1StreamPart>(\n {\n transform(chunk, controller) {\n const usageMetadata = chunk.usageMetadata;\n if (usageMetadata != null) {\n usage = {\n promptTokens: usageMetadata.promptTokenCount ?? NaN,\n completionTokens: usageMetadata.candidatesTokenCount ?? NaN,\n };\n }\n\n const candidate = chunk.candidates?.[0];\n\n if (candidate == null) {\n controller.enqueue({\n type: 'error',\n error: new NoContentGeneratedError({\n message: 'No candidates in chunk.',\n }),\n });\n return;\n }\n\n if (candidate.finishReason != null) {\n finishReason = mapGoogleVertexFinishReason({\n finishReason: candidate.finishReason,\n hasToolCalls,\n });\n }\n\n const content = candidate.content;\n\n const deltaText = getTextFromParts(content.parts);\n if (deltaText != null) {\n controller.enqueue({\n type: 'text-delta',\n textDelta: deltaText,\n });\n }\n\n const toolCallDeltas = getToolCallsFromParts({\n parts: content.parts,\n generateId,\n });\n\n if (toolCallDeltas != null) {\n for (const toolCall of toolCallDeltas) {\n controller.enqueue({\n type: 'tool-call-delta',\n toolCallType: 'function',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n argsTextDelta: toolCall.args,\n });\n\n controller.enqueue({\n type: 'tool-call',\n toolCallType: 'function',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n args: toolCall.args,\n });\n\n hasToolCalls = true;\n }\n }\n },\n\n flush(controller) {\n controller.enqueue({\n type: 'finish',\n finishReason,\n usage,\n });\n },\n },\n ),\n ),\n rawCall: {\n rawPrompt: contentRequest,\n rawSettings: {},\n },\n warnings,\n };\n }\n}\n\nfunction prepareTools(\n mode: Parameters<LanguageModelV1['doGenerate']>[0]['mode'] & {\n type: 'regular';\n },\n) {\n // when the tools array is empty, change it to undefined to prevent errors:\n const tools = mode.tools?.length ? mode.tools : undefined;\n\n if (tools == null) {\n return undefined;\n }\n\n const toolChoice = mode.toolChoice;\n\n if (toolChoice?.type === 'none') {\n return undefined;\n }\n\n if (toolChoice == null || toolChoice.type === 'auto') {\n return [\n {\n functionDeclarations: tools.map(tool => ({\n name: tool.name,\n description: tool.description ?? '',\n parameters: prepareFunctionDeclarationSchema(tool.parameters),\n })),\n },\n ];\n }\n\n // forcing tool calls or a specific tool call is not supported by Vertex:\n throw new UnsupportedFunctionalityError({\n functionality: `toolChoice: ${toolChoice.type}`,\n });\n}\n\nfunction getToolCallsFromParts({\n parts,\n generateId,\n}: {\n parts: Part[];\n generateId: () => string;\n}) {\n if (parts == null) {\n return undefined; // parts are sometimes undefined when using safety settings\n }\n\n return parts.flatMap(part =>\n part.functionCall == null\n ? []\n : {\n toolCallType: 'function' as const,\n toolCallId: generateId(),\n toolName: part.functionCall.name,\n args: JSON.stringify(part.functionCall.args),\n },\n );\n}\n\nfunction getTextFromParts(parts: Part[] | undefined) {\n if (parts == null) {\n return undefined; // parts are sometimes undefined when using safety settings\n }\n\n const textParts = parts.filter(part => 'text' in part) as Array<\n Part & { text: string }\n >;\n\n return textParts.length === 0\n ? undefined\n : textParts.map(part => part.text).join('');\n}\n","import {\n LanguageModelV1Prompt,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertUint8ArrayToBase64 } from '@ai-sdk/provider-utils';\nimport { Content, GenerateContentRequest, Part } from '@google-cloud/vertexai';\n\nexport function convertToGoogleVertexContentRequest(\n prompt: LanguageModelV1Prompt,\n): GenerateContentRequest {\n const systemInstructionParts: Part[] = [];\n const contents: Content[] = [];\n let systemMessagesAllowed = true;\n\n for (const { role, content } of prompt) {\n switch (role) {\n case 'system': {\n if (!systemMessagesAllowed) {\n throw new UnsupportedFunctionalityError({\n functionality: 'system messages after first user message',\n });\n }\n systemInstructionParts.push({ text: content });\n break;\n }\n\n case 'user': {\n systemMessagesAllowed = false;\n\n const parts: Content['parts'] = [];\n\n for (const part of content) {\n switch (part.type) {\n case 'text': {\n parts.push({ text: part.text });\n break;\n }\n\n case 'image': {\n if (part.image instanceof URL) {\n // The AI SDK automatically downloads images for user image parts with URLs\n throw new UnsupportedFunctionalityError({\n functionality: 'Image URLs in user messages',\n });\n }\n\n parts.push({\n inlineData: {\n mimeType: part.mimeType ?? 'image/jpeg',\n data: convertUint8ArrayToBase64(part.image),\n },\n });\n\n break;\n }\n\n default: {\n const _exhaustiveCheck: never = part;\n throw new UnsupportedFunctionalityError({\n functionality: `prompt part: ${_exhaustiveCheck}`,\n });\n }\n }\n }\n\n contents.push({ role: 'user', parts });\n break;\n }\n\n case 'assistant': {\n systemMessagesAllowed = false;\n\n contents.push({\n role: 'assistant',\n parts: content\n .filter(part => part.type !== 'text' || part.text.length > 0)\n .map(part => {\n switch (part.type) {\n case 'text': {\n return { text: part.text };\n }\n\n case 'tool-call': {\n return {\n functionCall: {\n name: part.toolName,\n args: part.args as object,\n },\n };\n }\n\n default: {\n const _exhaustiveCheck: never = part;\n throw new UnsupportedFunctionalityError({\n functionality: `prompt part: ${_exhaustiveCheck}`,\n });\n }\n }\n }),\n });\n\n break;\n }\n\n case 'tool': {\n systemMessagesAllowed = false;\n\n contents.push({\n role: 'user',\n parts: content.map(part => ({\n functionResponse: {\n name: part.toolName,\n response: part.result as object,\n },\n })),\n });\n break;\n }\n\n default: {\n const _exhaustiveCheck: never = role;\n throw new UnsupportedFunctionalityError({\n functionality: `role: ${_exhaustiveCheck}`,\n });\n }\n }\n }\n\n return {\n systemInstruction:\n systemInstructionParts.length > 0\n ? { role: 'system', parts: systemInstructionParts }\n : undefined,\n contents,\n };\n}\n","import { LanguageModelV1FinishReason } from '@ai-sdk/provider';\nimport { FinishReason } from '@google-cloud/vertexai';\n\nexport function mapGoogleVertexFinishReason({\n finishReason,\n hasToolCalls,\n}: {\n finishReason: FinishReason | undefined;\n hasToolCalls: boolean;\n}): LanguageModelV1FinishReason {\n switch (finishReason) {\n case 'STOP':\n return hasToolCalls ? 'tool-calls' : 'stop';\n case 'MAX_TOKENS':\n return 'length';\n case 'BLOCKLIST':\n case 'PROHIBITED_CONTENT':\n case 'SPII':\n case 'RECITATION':\n case 'SAFETY':\n return 'content-filter';\n case 'FINISH_REASON_UNSPECIFIED':\n case 'OTHER':\n default:\n return 'other';\n }\n}\n","import { UnsupportedFunctionalityError } from '@ai-sdk/provider';\nimport {\n FunctionDeclarationSchema,\n FunctionDeclarationSchemaProperty,\n FunctionDeclarationSchemaType,\n} from '@google-cloud/vertexai';\nimport { JSONSchema7Definition } from 'json-schema';\n\nconst primitiveTypes = {\n string: FunctionDeclarationSchemaType.STRING,\n number: FunctionDeclarationSchemaType.NUMBER,\n integer: FunctionDeclarationSchemaType.INTEGER,\n boolean: FunctionDeclarationSchemaType.BOOLEAN,\n};\n\n/**\nConverts the tool parameters JSON schema to the format required by Vertex AI.\n */\nexport function prepareFunctionDeclarationSchema(\n jsonSchema: JSONSchema7Definition,\n): FunctionDeclarationSchema {\n if (typeof jsonSchema === 'boolean') {\n return {\n type: FunctionDeclarationSchemaType.BOOLEAN,\n properties: {},\n };\n }\n\n const type = jsonSchema.type;\n switch (type) {\n case 'number':\n case 'integer':\n case 'boolean':\n case 'string':\n return {\n type: primitiveTypes[type],\n description: jsonSchema.description,\n required: jsonSchema.required,\n properties: {},\n };\n\n case 'object':\n return {\n type: FunctionDeclarationSchemaType.OBJECT,\n properties: Object.entries(jsonSchema.properties ?? {}).reduce(\n (acc, [key, value]) => {\n acc[key] = prepareFunctionDeclarationSchemaProperty(value);\n return acc;\n },\n {} as Record<string, FunctionDeclarationSchemaProperty>,\n ),\n description: jsonSchema.description,\n required: jsonSchema.required,\n };\n\n case 'array':\n throw new UnsupportedFunctionalityError({\n functionality:\n 'arrays are not supported as root or as array parameters',\n });\n\n default: {\n throw new UnsupportedFunctionalityError({\n functionality: `json schema type: ${type}`,\n });\n }\n }\n}\n\nfunction prepareFunctionDeclarationSchemaProperty(\n jsonSchema: JSONSchema7Definition,\n): FunctionDeclarationSchemaProperty {\n if (typeof jsonSchema === 'boolean') {\n return {\n type: FunctionDeclarationSchemaType.BOOLEAN,\n };\n }\n\n const type = jsonSchema.type;\n\n switch (type) {\n // primitive types:\n case 'number':\n case 'integer':\n case 'boolean':\n case 'string': {\n return {\n type: primitiveTypes[type],\n description: jsonSchema.description,\n required: jsonSchema.required,\n };\n }\n // array:\n case 'array': {\n const items = jsonSchema.items;\n\n if (items == null) {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'Array without items is not supported in tool parameters',\n });\n }\n\n if (Array.isArray(items)) {\n throw new UnsupportedFunctionalityError({\n functionality: 'Tuple arrays are not supported in tool parameters',\n });\n }\n\n return {\n type: FunctionDeclarationSchemaType.ARRAY,\n description: jsonSchema.description,\n required: jsonSchema.required,\n items: prepareFunctionDeclarationSchema(items),\n };\n }\n // nested object:\n case 'object':\n return {\n type: FunctionDeclarationSchemaType.OBJECT,\n properties: Object.entries(jsonSchema.properties ?? {}).reduce(\n (acc, [key, value]) => {\n acc[key] = prepareFunctionDeclarationSchema(value);\n return acc;\n },\n {} as Record<string, FunctionDeclarationSchema>,\n ),\n description: jsonSchema.description,\n required: jsonSchema.required,\n };\n default:\n throw new Error(`Unsupported type: ${type}`);\n }\n}\n"],"mappings":"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","names":["import_provider_utils","import_vertexai","import_provider","import_provider_utils","import_provider","generateId","_a"]}
|
1
|
+
{"version":3,"sources":["../src/index.ts","../src/google-vertex-provider.ts","../src/google-vertex-language-model.ts","../src/convert-to-google-vertex-content-request.ts","../src/map-google-vertex-finish-reason.ts","../src/prepare-function-declaration-schema.ts"],"sourcesContent":["export * from './google-vertex-provider';\n","import { generateId, loadSetting } from '@ai-sdk/provider-utils';\nimport { VertexAI, VertexInit } from '@google-cloud/vertexai';\nimport { GoogleVertexLanguageModel } from './google-vertex-language-model';\nimport {\n GoogleVertexModelId,\n GoogleVertexSettings,\n} from './google-vertex-settings';\n\nexport interface GoogleVertexProvider {\n /**\nCreates a model for text generation.\n */\n (\n modelId: GoogleVertexModelId,\n settings?: GoogleVertexSettings,\n ): GoogleVertexLanguageModel;\n\n languageModel: (\n modelId: GoogleVertexModelId,\n settings?: GoogleVertexSettings,\n ) => GoogleVertexLanguageModel;\n}\n\nexport interface GoogleVertexProviderSettings {\n /**\nYour Google Vertex location. Defaults to the environment variable `GOOGLE_VERTEX_LOCATION`.\n */\n location?: string;\n\n /**\nYour Google Vertex project. Defaults to the environment variable `GOOGLE_VERTEX_PROJECT`.\n */\n project?: string;\n\n /**\n Optional. The Authentication options provided by google-auth-library.\nComplete list of authentication options is documented in the\nGoogleAuthOptions interface:\nhttps://github.com/googleapis/google-auth-library-nodejs/blob/main/src/auth/googleauth.ts.\n */\n googleAuthOptions?: VertexInit['googleAuthOptions'];\n\n // for testing\n generateId?: () => string;\n\n // for testing\n createVertexAI?: ({\n project,\n location,\n }: {\n project: string;\n location: string;\n }) => VertexAI;\n}\n\n/**\nCreate a Google Vertex AI provider instance.\n */\nexport function createVertex(\n options: GoogleVertexProviderSettings = {},\n): GoogleVertexProvider {\n const createVertexAI = () => {\n const config = {\n project: loadSetting({\n settingValue: options.project,\n settingName: 'project',\n environmentVariableName: 'GOOGLE_VERTEX_PROJECT',\n description: 'Google Vertex project',\n }),\n location: loadSetting({\n settingValue: options.location,\n settingName: 'location',\n environmentVariableName: 'GOOGLE_VERTEX_LOCATION',\n description: 'Google Vertex location',\n }),\n googleAuthOptions: options.googleAuthOptions,\n };\n\n return options.createVertexAI?.(config) ?? new VertexAI(config);\n };\n\n const createChatModel = (\n modelId: GoogleVertexModelId,\n settings: GoogleVertexSettings = {},\n ) =>\n new GoogleVertexLanguageModel(modelId, settings, {\n vertexAI: createVertexAI(),\n generateId: options.generateId ?? generateId,\n });\n\n const provider = function (\n modelId: GoogleVertexModelId,\n settings?: GoogleVertexSettings,\n ) {\n if (new.target) {\n throw new Error(\n 'The Google Vertex AI model function cannot be called with the new keyword.',\n );\n }\n\n return createChatModel(modelId, settings);\n };\n\n provider.languageModel = createChatModel;\n\n return provider as GoogleVertexProvider;\n}\n\n/**\nDefault Google Vertex AI provider instance.\n */\nexport const vertex = createVertex();\n","import {\n LanguageModelV1,\n LanguageModelV1CallOptions,\n LanguageModelV1CallWarning,\n LanguageModelV1FinishReason,\n LanguageModelV1StreamPart,\n NoContentGeneratedError,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertAsyncGeneratorToReadableStream } from '@ai-sdk/provider-utils';\nimport {\n GenerateContentResponse,\n GenerationConfig,\n Part,\n SafetySetting,\n VertexAI,\n} from '@google-cloud/vertexai';\nimport { convertToGoogleVertexContentRequest } from './convert-to-google-vertex-content-request';\nimport {\n GoogleVertexModelId,\n GoogleVertexSettings,\n} from './google-vertex-settings';\nimport { mapGoogleVertexFinishReason } from './map-google-vertex-finish-reason';\nimport { prepareFunctionDeclarationSchema } from './prepare-function-declaration-schema';\n\ntype GoogleVertexAIConfig = {\n vertexAI: VertexAI;\n generateId: () => string;\n};\n\nexport class GoogleVertexLanguageModel implements LanguageModelV1 {\n readonly specificationVersion = 'v1';\n readonly provider = 'google-vertex';\n readonly defaultObjectGenerationMode = 'json';\n readonly supportsImageUrls = false;\n\n readonly modelId: GoogleVertexModelId;\n readonly settings: GoogleVertexSettings;\n\n private readonly config: GoogleVertexAIConfig;\n\n constructor(\n modelId: GoogleVertexModelId,\n settings: GoogleVertexSettings,\n config: GoogleVertexAIConfig,\n ) {\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n\n private async getArgs({\n mode,\n prompt,\n maxTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n headers,\n }: LanguageModelV1CallOptions) {\n const warnings: LanguageModelV1CallWarning[] = [];\n\n if (frequencyPenalty != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'frequencyPenalty',\n });\n }\n\n if (presencePenalty != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'presencePenalty',\n });\n }\n\n if (seed != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'seed',\n });\n }\n\n if (headers != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'headers',\n });\n }\n\n const generationConfig: GenerationConfig = {\n // model specific settings:\n topK: topK ?? this.settings.topK,\n\n // standardized settings:\n maxOutputTokens: maxTokens,\n temperature,\n topP,\n stopSequences,\n responseMimeType:\n responseFormat?.type === 'json' ? 'application/json' : undefined,\n };\n\n const type = mode.type;\n\n switch (type) {\n case 'regular': {\n return {\n model: this.config.vertexAI.getGenerativeModel({\n model: this.modelId,\n generationConfig,\n tools: prepareTools(mode),\n safetySettings: this.settings.safetySettings as\n | undefined\n | Array<SafetySetting>,\n }),\n contentRequest: convertToGoogleVertexContentRequest(prompt),\n warnings,\n };\n }\n\n case 'object-json': {\n return {\n model: this.config.vertexAI.getGenerativeModel({\n model: this.modelId,\n generationConfig: {\n ...generationConfig,\n responseMimeType: 'application/json',\n },\n safetySettings: this.settings.safetySettings as\n | undefined\n | Array<SafetySetting>,\n }),\n contentRequest: convertToGoogleVertexContentRequest(prompt),\n warnings,\n };\n }\n\n case 'object-tool': {\n throw new UnsupportedFunctionalityError({\n functionality: 'object-tool mode',\n });\n }\n\n default: {\n const _exhaustiveCheck: never = type;\n throw new Error(`Unsupported type: ${_exhaustiveCheck}`);\n }\n }\n }\n\n async doGenerate(\n options: Parameters<LanguageModelV1['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>> {\n const { model, contentRequest, warnings } = await this.getArgs(options);\n const { response } = await model.generateContent(contentRequest);\n\n const firstCandidate = response.candidates?.[0];\n\n if (firstCandidate == null) {\n throw new NoContentGeneratedError({ message: 'No candidates returned' });\n }\n\n const parts = firstCandidate.content.parts;\n const usageMetadata = response.usageMetadata;\n\n const toolCalls = getToolCallsFromParts({\n parts,\n generateId: this.config.generateId,\n });\n\n return {\n text: getTextFromParts(parts),\n toolCalls,\n finishReason: mapGoogleVertexFinishReason({\n finishReason: firstCandidate.finishReason,\n hasToolCalls: toolCalls != null && toolCalls.length > 0,\n }),\n usage: {\n promptTokens: usageMetadata?.promptTokenCount ?? NaN,\n completionTokens: usageMetadata?.candidatesTokenCount ?? NaN,\n },\n rawCall: {\n rawPrompt: contentRequest,\n rawSettings: {},\n },\n warnings,\n };\n }\n\n async doStream(\n options: Parameters<LanguageModelV1['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>> {\n const { model, contentRequest, warnings } = await this.getArgs(options);\n const { stream } = await model.generateContentStream(contentRequest);\n\n let finishReason: LanguageModelV1FinishReason = 'other';\n let usage: { promptTokens: number; completionTokens: number } = {\n promptTokens: Number.NaN,\n completionTokens: Number.NaN,\n };\n\n const generateId = this.config.generateId;\n let hasToolCalls = false;\n\n return {\n stream: convertAsyncGeneratorToReadableStream(stream).pipeThrough(\n new TransformStream<GenerateContentResponse, LanguageModelV1StreamPart>(\n {\n transform(chunk, controller) {\n const usageMetadata = chunk.usageMetadata;\n if (usageMetadata != null) {\n usage = {\n promptTokens: usageMetadata.promptTokenCount ?? NaN,\n completionTokens: usageMetadata.candidatesTokenCount ?? NaN,\n };\n }\n\n const candidate = chunk.candidates?.[0];\n\n if (candidate == null) {\n controller.enqueue({\n type: 'error',\n error: new NoContentGeneratedError({\n message: 'No candidates in chunk.',\n }),\n });\n return;\n }\n\n if (candidate.finishReason != null) {\n finishReason = mapGoogleVertexFinishReason({\n finishReason: candidate.finishReason,\n hasToolCalls,\n });\n }\n\n const content = candidate.content;\n\n const deltaText = getTextFromParts(content.parts);\n if (deltaText != null) {\n controller.enqueue({\n type: 'text-delta',\n textDelta: deltaText,\n });\n }\n\n const toolCallDeltas = getToolCallsFromParts({\n parts: content.parts,\n generateId,\n });\n\n if (toolCallDeltas != null) {\n for (const toolCall of toolCallDeltas) {\n controller.enqueue({\n type: 'tool-call-delta',\n toolCallType: 'function',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n argsTextDelta: toolCall.args,\n });\n\n controller.enqueue({\n type: 'tool-call',\n toolCallType: 'function',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n args: toolCall.args,\n });\n\n hasToolCalls = true;\n }\n }\n },\n\n flush(controller) {\n controller.enqueue({\n type: 'finish',\n finishReason,\n usage,\n });\n },\n },\n ),\n ),\n rawCall: {\n rawPrompt: contentRequest,\n rawSettings: {},\n },\n warnings,\n };\n }\n}\n\nfunction prepareTools(\n mode: Parameters<LanguageModelV1['doGenerate']>[0]['mode'] & {\n type: 'regular';\n },\n) {\n // when the tools array is empty, change it to undefined to prevent errors:\n const tools = mode.tools?.length ? mode.tools : undefined;\n\n if (tools == null) {\n return undefined;\n }\n\n const toolChoice = mode.toolChoice;\n\n if (toolChoice?.type === 'none') {\n return undefined;\n }\n\n if (toolChoice == null || toolChoice.type === 'auto') {\n return [\n {\n functionDeclarations: tools.map(tool => ({\n name: tool.name,\n description: tool.description ?? '',\n parameters: prepareFunctionDeclarationSchema(tool.parameters),\n })),\n },\n ];\n }\n\n // forcing tool calls or a specific tool call is not supported by Vertex:\n throw new UnsupportedFunctionalityError({\n functionality: `toolChoice: ${toolChoice.type}`,\n });\n}\n\nfunction getToolCallsFromParts({\n parts,\n generateId,\n}: {\n parts: Part[];\n generateId: () => string;\n}) {\n if (parts == null) {\n return undefined; // parts are sometimes undefined when using safety settings\n }\n\n return parts.flatMap(part =>\n part.functionCall == null\n ? []\n : {\n toolCallType: 'function' as const,\n toolCallId: generateId(),\n toolName: part.functionCall.name,\n args: JSON.stringify(part.functionCall.args),\n },\n );\n}\n\nfunction getTextFromParts(parts: Part[] | undefined) {\n if (parts == null) {\n return undefined; // parts are sometimes undefined when using safety settings\n }\n\n const textParts = parts.filter(part => 'text' in part) as Array<\n Part & { text: string }\n >;\n\n return textParts.length === 0\n ? undefined\n : textParts.map(part => part.text).join('');\n}\n","import {\n LanguageModelV1Prompt,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertUint8ArrayToBase64 } from '@ai-sdk/provider-utils';\nimport { Content, GenerateContentRequest, Part } from '@google-cloud/vertexai';\n\nexport function convertToGoogleVertexContentRequest(\n prompt: LanguageModelV1Prompt,\n): GenerateContentRequest {\n const systemInstructionParts: Part[] = [];\n const contents: Content[] = [];\n let systemMessagesAllowed = true;\n\n for (const { role, content } of prompt) {\n switch (role) {\n case 'system': {\n if (!systemMessagesAllowed) {\n throw new UnsupportedFunctionalityError({\n functionality: 'system messages after first user message',\n });\n }\n systemInstructionParts.push({ text: content });\n break;\n }\n\n case 'user': {\n systemMessagesAllowed = false;\n\n const parts: Content['parts'] = [];\n\n for (const part of content) {\n switch (part.type) {\n case 'text': {\n parts.push({ text: part.text });\n break;\n }\n\n case 'image': {\n if (part.image instanceof URL) {\n // The AI SDK automatically downloads images for user image parts with URLs\n throw new UnsupportedFunctionalityError({\n functionality: 'Image URLs in user messages',\n });\n }\n\n parts.push({\n inlineData: {\n mimeType: part.mimeType ?? 'image/jpeg',\n data: convertUint8ArrayToBase64(part.image),\n },\n });\n\n break;\n }\n\n default: {\n const _exhaustiveCheck: never = part;\n throw new UnsupportedFunctionalityError({\n functionality: `prompt part: ${_exhaustiveCheck}`,\n });\n }\n }\n }\n\n contents.push({ role: 'user', parts });\n break;\n }\n\n case 'assistant': {\n systemMessagesAllowed = false;\n\n contents.push({\n role: 'assistant',\n parts: content\n .filter(part => part.type !== 'text' || part.text.length > 0)\n .map(part => {\n switch (part.type) {\n case 'text': {\n return { text: part.text };\n }\n\n case 'tool-call': {\n return {\n functionCall: {\n name: part.toolName,\n args: part.args as object,\n },\n };\n }\n\n default: {\n const _exhaustiveCheck: never = part;\n throw new UnsupportedFunctionalityError({\n functionality: `prompt part: ${_exhaustiveCheck}`,\n });\n }\n }\n }),\n });\n\n break;\n }\n\n case 'tool': {\n systemMessagesAllowed = false;\n\n contents.push({\n role: 'user',\n parts: content.map(part => ({\n functionResponse: {\n name: part.toolName,\n response: part.result as object,\n },\n })),\n });\n break;\n }\n\n default: {\n const _exhaustiveCheck: never = role;\n throw new UnsupportedFunctionalityError({\n functionality: `role: ${_exhaustiveCheck}`,\n });\n }\n }\n }\n\n return {\n systemInstruction:\n systemInstructionParts.length > 0\n ? { role: 'system', parts: systemInstructionParts }\n : undefined,\n contents,\n };\n}\n","import { LanguageModelV1FinishReason } from '@ai-sdk/provider';\nimport { FinishReason } from '@google-cloud/vertexai';\n\nexport function mapGoogleVertexFinishReason({\n finishReason,\n hasToolCalls,\n}: {\n finishReason: FinishReason | undefined;\n hasToolCalls: boolean;\n}): LanguageModelV1FinishReason {\n switch (finishReason) {\n case 'STOP':\n return hasToolCalls ? 'tool-calls' : 'stop';\n case 'MAX_TOKENS':\n return 'length';\n case 'BLOCKLIST':\n case 'PROHIBITED_CONTENT':\n case 'SPII':\n case 'RECITATION':\n case 'SAFETY':\n return 'content-filter';\n case 'FINISH_REASON_UNSPECIFIED':\n case 'OTHER':\n default:\n return 'other';\n }\n}\n","import { UnsupportedFunctionalityError } from '@ai-sdk/provider';\nimport {\n FunctionDeclarationSchema,\n FunctionDeclarationSchemaProperty,\n FunctionDeclarationSchemaType,\n} from '@google-cloud/vertexai';\nimport { JSONSchema7Definition } from 'json-schema';\n\nconst primitiveTypes = {\n string: FunctionDeclarationSchemaType.STRING,\n number: FunctionDeclarationSchemaType.NUMBER,\n integer: FunctionDeclarationSchemaType.INTEGER,\n boolean: FunctionDeclarationSchemaType.BOOLEAN,\n};\n\n/**\nConverts the tool parameters JSON schema to the format required by Vertex AI.\n */\nexport function prepareFunctionDeclarationSchema(\n jsonSchema: JSONSchema7Definition,\n): FunctionDeclarationSchema {\n if (typeof jsonSchema === 'boolean') {\n return {\n type: FunctionDeclarationSchemaType.BOOLEAN,\n properties: {},\n };\n }\n\n const type = jsonSchema.type;\n switch (type) {\n case 'number':\n case 'integer':\n case 'boolean':\n case 'string':\n return {\n type: primitiveTypes[type],\n description: jsonSchema.description,\n required: jsonSchema.required,\n properties: {},\n };\n\n case 'object':\n return {\n type: FunctionDeclarationSchemaType.OBJECT,\n properties: Object.entries(jsonSchema.properties ?? {}).reduce(\n (acc, [key, value]) => {\n acc[key] = prepareFunctionDeclarationSchemaProperty(value);\n return acc;\n },\n {} as Record<string, FunctionDeclarationSchemaProperty>,\n ),\n description: jsonSchema.description,\n required: jsonSchema.required,\n };\n\n case 'array':\n throw new UnsupportedFunctionalityError({\n functionality:\n 'arrays are not supported as root or as array parameters',\n });\n\n default: {\n throw new UnsupportedFunctionalityError({\n functionality: `json schema type: ${type}`,\n });\n }\n }\n}\n\nfunction prepareFunctionDeclarationSchemaProperty(\n jsonSchema: JSONSchema7Definition,\n): FunctionDeclarationSchemaProperty {\n if (typeof jsonSchema === 'boolean') {\n return {\n type: FunctionDeclarationSchemaType.BOOLEAN,\n };\n }\n\n const type = jsonSchema.type;\n\n switch (type) {\n // primitive types:\n case 'number':\n case 'integer':\n case 'boolean':\n case 'string': {\n return {\n type: primitiveTypes[type],\n description: jsonSchema.description,\n required: jsonSchema.required,\n };\n }\n // array:\n case 'array': {\n const items = jsonSchema.items;\n\n if (items == null) {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'Array without items is not supported in tool parameters',\n });\n }\n\n if (Array.isArray(items)) {\n throw new UnsupportedFunctionalityError({\n functionality: 'Tuple arrays are not supported in tool parameters',\n });\n }\n\n return {\n type: FunctionDeclarationSchemaType.ARRAY,\n description: jsonSchema.description,\n required: jsonSchema.required,\n items: prepareFunctionDeclarationSchema(items),\n };\n }\n // nested object:\n case 'object':\n return {\n type: FunctionDeclarationSchemaType.OBJECT,\n properties: Object.entries(jsonSchema.properties ?? {}).reduce(\n (acc, [key, value]) => {\n acc[key] = prepareFunctionDeclarationSchema(value);\n return acc;\n },\n {} as Record<string, FunctionDeclarationSchema>,\n ),\n description: jsonSchema.description,\n required: jsonSchema.required,\n };\n default:\n throw new Error(`Unsupported type: ${type}`);\n }\n}\n"],"mappings":"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","names":["import_provider_utils","import_vertexai","import_provider","import_provider_utils","import_provider","generateId","_a"]}
|
package/dist/index.mjs
CHANGED
@@ -258,7 +258,7 @@ var GoogleVertexLanguageModel = class {
|
|
258
258
|
constructor(modelId, settings, config) {
|
259
259
|
this.specificationVersion = "v1";
|
260
260
|
this.provider = "google-vertex";
|
261
|
-
this.defaultObjectGenerationMode =
|
261
|
+
this.defaultObjectGenerationMode = "json";
|
262
262
|
this.supportsImageUrls = false;
|
263
263
|
this.modelId = modelId;
|
264
264
|
this.settings = settings;
|
@@ -303,13 +303,6 @@ var GoogleVertexLanguageModel = class {
|
|
303
303
|
setting: "headers"
|
304
304
|
});
|
305
305
|
}
|
306
|
-
if (responseFormat != null && responseFormat.type !== "text") {
|
307
|
-
warnings.push({
|
308
|
-
type: "unsupported-setting",
|
309
|
-
setting: "responseFormat",
|
310
|
-
details: "JSON response format is not supported."
|
311
|
-
});
|
312
|
-
}
|
313
306
|
const generationConfig = {
|
314
307
|
// model specific settings:
|
315
308
|
topK: topK != null ? topK : this.settings.topK,
|
@@ -317,7 +310,8 @@ var GoogleVertexLanguageModel = class {
|
|
317
310
|
maxOutputTokens: maxTokens,
|
318
311
|
temperature,
|
319
312
|
topP,
|
320
|
-
stopSequences
|
313
|
+
stopSequences,
|
314
|
+
responseMimeType: (responseFormat == null ? void 0 : responseFormat.type) === "json" ? "application/json" : void 0
|
321
315
|
};
|
322
316
|
const type = mode.type;
|
323
317
|
switch (type) {
|
@@ -334,9 +328,18 @@ var GoogleVertexLanguageModel = class {
|
|
334
328
|
};
|
335
329
|
}
|
336
330
|
case "object-json": {
|
337
|
-
|
338
|
-
|
339
|
-
|
331
|
+
return {
|
332
|
+
model: this.config.vertexAI.getGenerativeModel({
|
333
|
+
model: this.modelId,
|
334
|
+
generationConfig: {
|
335
|
+
...generationConfig,
|
336
|
+
responseMimeType: "application/json"
|
337
|
+
},
|
338
|
+
safetySettings: this.settings.safetySettings
|
339
|
+
}),
|
340
|
+
contentRequest: convertToGoogleVertexContentRequest(prompt),
|
341
|
+
warnings
|
342
|
+
};
|
340
343
|
}
|
341
344
|
case "object-tool": {
|
342
345
|
throw new UnsupportedFunctionalityError3({
|
package/dist/index.mjs.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sources":["../src/google-vertex-provider.ts","../src/google-vertex-language-model.ts","../src/convert-to-google-vertex-content-request.ts","../src/map-google-vertex-finish-reason.ts","../src/prepare-function-declaration-schema.ts"],"sourcesContent":["import { generateId, loadSetting } from '@ai-sdk/provider-utils';\nimport { VertexAI, VertexInit } from '@google-cloud/vertexai';\nimport { GoogleVertexLanguageModel } from './google-vertex-language-model';\nimport {\n GoogleVertexModelId,\n GoogleVertexSettings,\n} from './google-vertex-settings';\n\nexport interface GoogleVertexProvider {\n /**\nCreates a model for text generation.\n */\n (\n modelId: GoogleVertexModelId,\n settings?: GoogleVertexSettings,\n ): GoogleVertexLanguageModel;\n\n languageModel: (\n modelId: GoogleVertexModelId,\n settings?: GoogleVertexSettings,\n ) => GoogleVertexLanguageModel;\n}\n\nexport interface GoogleVertexProviderSettings {\n /**\nYour Google Vertex location. Defaults to the environment variable `GOOGLE_VERTEX_LOCATION`.\n */\n location?: string;\n\n /**\nYour Google Vertex project. Defaults to the environment variable `GOOGLE_VERTEX_PROJECT`.\n */\n project?: string;\n\n /**\n Optional. The Authentication options provided by google-auth-library.\nComplete list of authentication options is documented in the\nGoogleAuthOptions interface:\nhttps://github.com/googleapis/google-auth-library-nodejs/blob/main/src/auth/googleauth.ts.\n */\n googleAuthOptions?: VertexInit['googleAuthOptions'];\n\n // for testing\n generateId?: () => string;\n\n // for testing\n createVertexAI?: ({\n project,\n location,\n }: {\n project: string;\n location: string;\n }) => VertexAI;\n}\n\n/**\nCreate a Google Vertex AI provider instance.\n */\nexport function createVertex(\n options: GoogleVertexProviderSettings = {},\n): GoogleVertexProvider {\n const createVertexAI = () => {\n const config = {\n project: loadSetting({\n settingValue: options.project,\n settingName: 'project',\n environmentVariableName: 'GOOGLE_VERTEX_PROJECT',\n description: 'Google Vertex project',\n }),\n location: loadSetting({\n settingValue: options.location,\n settingName: 'location',\n environmentVariableName: 'GOOGLE_VERTEX_LOCATION',\n description: 'Google Vertex location',\n }),\n googleAuthOptions: options.googleAuthOptions,\n };\n\n return options.createVertexAI?.(config) ?? new VertexAI(config);\n };\n\n const createChatModel = (\n modelId: GoogleVertexModelId,\n settings: GoogleVertexSettings = {},\n ) =>\n new GoogleVertexLanguageModel(modelId, settings, {\n vertexAI: createVertexAI(),\n generateId: options.generateId ?? generateId,\n });\n\n const provider = function (\n modelId: GoogleVertexModelId,\n settings?: GoogleVertexSettings,\n ) {\n if (new.target) {\n throw new Error(\n 'The Google Vertex AI model function cannot be called with the new keyword.',\n );\n }\n\n return createChatModel(modelId, settings);\n };\n\n provider.languageModel = createChatModel;\n\n return provider as GoogleVertexProvider;\n}\n\n/**\nDefault Google Vertex AI provider instance.\n */\nexport const vertex = createVertex();\n","import {\n LanguageModelV1,\n LanguageModelV1CallOptions,\n LanguageModelV1CallWarning,\n LanguageModelV1FinishReason,\n LanguageModelV1StreamPart,\n NoContentGeneratedError,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertAsyncGeneratorToReadableStream } from '@ai-sdk/provider-utils';\nimport {\n GenerateContentResponse,\n GenerationConfig,\n Part,\n SafetySetting,\n VertexAI,\n} from '@google-cloud/vertexai';\nimport { convertToGoogleVertexContentRequest } from './convert-to-google-vertex-content-request';\nimport {\n GoogleVertexModelId,\n GoogleVertexSettings,\n} from './google-vertex-settings';\nimport { mapGoogleVertexFinishReason } from './map-google-vertex-finish-reason';\nimport { prepareFunctionDeclarationSchema } from './prepare-function-declaration-schema';\n\ntype GoogleVertexAIConfig = {\n vertexAI: VertexAI;\n generateId: () => string;\n};\n\nexport class GoogleVertexLanguageModel implements LanguageModelV1 {\n readonly specificationVersion = 'v1';\n readonly provider = 'google-vertex';\n readonly defaultObjectGenerationMode = undefined;\n readonly supportsImageUrls = false;\n\n readonly modelId: GoogleVertexModelId;\n readonly settings: GoogleVertexSettings;\n\n private readonly config: GoogleVertexAIConfig;\n\n constructor(\n modelId: GoogleVertexModelId,\n settings: GoogleVertexSettings,\n config: GoogleVertexAIConfig,\n ) {\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n\n private async getArgs({\n mode,\n prompt,\n maxTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n headers,\n }: LanguageModelV1CallOptions) {\n const warnings: LanguageModelV1CallWarning[] = [];\n\n if (frequencyPenalty != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'frequencyPenalty',\n });\n }\n\n if (presencePenalty != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'presencePenalty',\n });\n }\n\n if (seed != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'seed',\n });\n }\n\n if (headers != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'headers',\n });\n }\n\n if (responseFormat != null && responseFormat.type !== 'text') {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'responseFormat',\n details: 'JSON response format is not supported.',\n });\n }\n\n const generationConfig: GenerationConfig = {\n // model specific settings:\n topK: topK ?? this.settings.topK,\n\n // standardized settings:\n maxOutputTokens: maxTokens,\n temperature,\n topP,\n stopSequences,\n };\n\n const type = mode.type;\n\n switch (type) {\n case 'regular': {\n return {\n model: this.config.vertexAI.getGenerativeModel({\n model: this.modelId,\n generationConfig,\n tools: prepareTools(mode),\n safetySettings: this.settings.safetySettings as\n | undefined\n | Array<SafetySetting>,\n }),\n contentRequest: convertToGoogleVertexContentRequest(prompt),\n warnings,\n };\n }\n\n case 'object-json': {\n throw new UnsupportedFunctionalityError({\n functionality: 'object-json mode',\n });\n }\n\n case 'object-tool': {\n throw new UnsupportedFunctionalityError({\n functionality: 'object-tool mode',\n });\n }\n\n default: {\n const _exhaustiveCheck: never = type;\n throw new Error(`Unsupported type: ${_exhaustiveCheck}`);\n }\n }\n }\n\n async doGenerate(\n options: Parameters<LanguageModelV1['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>> {\n const { model, contentRequest, warnings } = await this.getArgs(options);\n const { response } = await model.generateContent(contentRequest);\n\n const firstCandidate = response.candidates?.[0];\n\n if (firstCandidate == null) {\n throw new NoContentGeneratedError({ message: 'No candidates returned' });\n }\n\n const parts = firstCandidate.content.parts;\n const usageMetadata = response.usageMetadata;\n\n const toolCalls = getToolCallsFromParts({\n parts,\n generateId: this.config.generateId,\n });\n\n return {\n text: getTextFromParts(parts),\n toolCalls,\n finishReason: mapGoogleVertexFinishReason({\n finishReason: firstCandidate.finishReason,\n hasToolCalls: toolCalls != null && toolCalls.length > 0,\n }),\n usage: {\n promptTokens: usageMetadata?.promptTokenCount ?? NaN,\n completionTokens: usageMetadata?.candidatesTokenCount ?? NaN,\n },\n rawCall: {\n rawPrompt: contentRequest,\n rawSettings: {},\n },\n warnings,\n };\n }\n\n async doStream(\n options: Parameters<LanguageModelV1['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>> {\n const { model, contentRequest, warnings } = await this.getArgs(options);\n const { stream } = await model.generateContentStream(contentRequest);\n\n let finishReason: LanguageModelV1FinishReason = 'other';\n let usage: { promptTokens: number; completionTokens: number } = {\n promptTokens: Number.NaN,\n completionTokens: Number.NaN,\n };\n\n const generateId = this.config.generateId;\n let hasToolCalls = false;\n\n return {\n stream: convertAsyncGeneratorToReadableStream(stream).pipeThrough(\n new TransformStream<GenerateContentResponse, LanguageModelV1StreamPart>(\n {\n transform(chunk, controller) {\n const usageMetadata = chunk.usageMetadata;\n if (usageMetadata != null) {\n usage = {\n promptTokens: usageMetadata.promptTokenCount ?? NaN,\n completionTokens: usageMetadata.candidatesTokenCount ?? NaN,\n };\n }\n\n const candidate = chunk.candidates?.[0];\n\n if (candidate == null) {\n controller.enqueue({\n type: 'error',\n error: new NoContentGeneratedError({\n message: 'No candidates in chunk.',\n }),\n });\n return;\n }\n\n if (candidate.finishReason != null) {\n finishReason = mapGoogleVertexFinishReason({\n finishReason: candidate.finishReason,\n hasToolCalls,\n });\n }\n\n const content = candidate.content;\n\n const deltaText = getTextFromParts(content.parts);\n if (deltaText != null) {\n controller.enqueue({\n type: 'text-delta',\n textDelta: deltaText,\n });\n }\n\n const toolCallDeltas = getToolCallsFromParts({\n parts: content.parts,\n generateId,\n });\n\n if (toolCallDeltas != null) {\n for (const toolCall of toolCallDeltas) {\n controller.enqueue({\n type: 'tool-call-delta',\n toolCallType: 'function',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n argsTextDelta: toolCall.args,\n });\n\n controller.enqueue({\n type: 'tool-call',\n toolCallType: 'function',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n args: toolCall.args,\n });\n\n hasToolCalls = true;\n }\n }\n },\n\n flush(controller) {\n controller.enqueue({\n type: 'finish',\n finishReason,\n usage,\n });\n },\n },\n ),\n ),\n rawCall: {\n rawPrompt: contentRequest,\n rawSettings: {},\n },\n warnings,\n };\n }\n}\n\nfunction prepareTools(\n mode: Parameters<LanguageModelV1['doGenerate']>[0]['mode'] & {\n type: 'regular';\n },\n) {\n // when the tools array is empty, change it to undefined to prevent errors:\n const tools = mode.tools?.length ? mode.tools : undefined;\n\n if (tools == null) {\n return undefined;\n }\n\n const toolChoice = mode.toolChoice;\n\n if (toolChoice?.type === 'none') {\n return undefined;\n }\n\n if (toolChoice == null || toolChoice.type === 'auto') {\n return [\n {\n functionDeclarations: tools.map(tool => ({\n name: tool.name,\n description: tool.description ?? '',\n parameters: prepareFunctionDeclarationSchema(tool.parameters),\n })),\n },\n ];\n }\n\n // forcing tool calls or a specific tool call is not supported by Vertex:\n throw new UnsupportedFunctionalityError({\n functionality: `toolChoice: ${toolChoice.type}`,\n });\n}\n\nfunction getToolCallsFromParts({\n parts,\n generateId,\n}: {\n parts: Part[];\n generateId: () => string;\n}) {\n if (parts == null) {\n return undefined; // parts are sometimes undefined when using safety settings\n }\n\n return parts.flatMap(part =>\n part.functionCall == null\n ? []\n : {\n toolCallType: 'function' as const,\n toolCallId: generateId(),\n toolName: part.functionCall.name,\n args: JSON.stringify(part.functionCall.args),\n },\n );\n}\n\nfunction getTextFromParts(parts: Part[] | undefined) {\n if (parts == null) {\n return undefined; // parts are sometimes undefined when using safety settings\n }\n\n const textParts = parts.filter(part => 'text' in part) as Array<\n Part & { text: string }\n >;\n\n return textParts.length === 0\n ? undefined\n : textParts.map(part => part.text).join('');\n}\n","import {\n LanguageModelV1Prompt,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertUint8ArrayToBase64 } from '@ai-sdk/provider-utils';\nimport { Content, GenerateContentRequest, Part } from '@google-cloud/vertexai';\n\nexport function convertToGoogleVertexContentRequest(\n prompt: LanguageModelV1Prompt,\n): GenerateContentRequest {\n const systemInstructionParts: Part[] = [];\n const contents: Content[] = [];\n let systemMessagesAllowed = true;\n\n for (const { role, content } of prompt) {\n switch (role) {\n case 'system': {\n if (!systemMessagesAllowed) {\n throw new UnsupportedFunctionalityError({\n functionality: 'system messages after first user message',\n });\n }\n systemInstructionParts.push({ text: content });\n break;\n }\n\n case 'user': {\n systemMessagesAllowed = false;\n\n const parts: Content['parts'] = [];\n\n for (const part of content) {\n switch (part.type) {\n case 'text': {\n parts.push({ text: part.text });\n break;\n }\n\n case 'image': {\n if (part.image instanceof URL) {\n // The AI SDK automatically downloads images for user image parts with URLs\n throw new UnsupportedFunctionalityError({\n functionality: 'Image URLs in user messages',\n });\n }\n\n parts.push({\n inlineData: {\n mimeType: part.mimeType ?? 'image/jpeg',\n data: convertUint8ArrayToBase64(part.image),\n },\n });\n\n break;\n }\n\n default: {\n const _exhaustiveCheck: never = part;\n throw new UnsupportedFunctionalityError({\n functionality: `prompt part: ${_exhaustiveCheck}`,\n });\n }\n }\n }\n\n contents.push({ role: 'user', parts });\n break;\n }\n\n case 'assistant': {\n systemMessagesAllowed = false;\n\n contents.push({\n role: 'assistant',\n parts: content\n .filter(part => part.type !== 'text' || part.text.length > 0)\n .map(part => {\n switch (part.type) {\n case 'text': {\n return { text: part.text };\n }\n\n case 'tool-call': {\n return {\n functionCall: {\n name: part.toolName,\n args: part.args as object,\n },\n };\n }\n\n default: {\n const _exhaustiveCheck: never = part;\n throw new UnsupportedFunctionalityError({\n functionality: `prompt part: ${_exhaustiveCheck}`,\n });\n }\n }\n }),\n });\n\n break;\n }\n\n case 'tool': {\n systemMessagesAllowed = false;\n\n contents.push({\n role: 'user',\n parts: content.map(part => ({\n functionResponse: {\n name: part.toolName,\n response: part.result as object,\n },\n })),\n });\n break;\n }\n\n default: {\n const _exhaustiveCheck: never = role;\n throw new UnsupportedFunctionalityError({\n functionality: `role: ${_exhaustiveCheck}`,\n });\n }\n }\n }\n\n return {\n systemInstruction:\n systemInstructionParts.length > 0\n ? { role: 'system', parts: systemInstructionParts }\n : undefined,\n contents,\n };\n}\n","import { LanguageModelV1FinishReason } from '@ai-sdk/provider';\nimport { FinishReason } from '@google-cloud/vertexai';\n\nexport function mapGoogleVertexFinishReason({\n finishReason,\n hasToolCalls,\n}: {\n finishReason: FinishReason | undefined;\n hasToolCalls: boolean;\n}): LanguageModelV1FinishReason {\n switch (finishReason) {\n case 'STOP':\n return hasToolCalls ? 'tool-calls' : 'stop';\n case 'MAX_TOKENS':\n return 'length';\n case 'BLOCKLIST':\n case 'PROHIBITED_CONTENT':\n case 'SPII':\n case 'RECITATION':\n case 'SAFETY':\n return 'content-filter';\n case 'FINISH_REASON_UNSPECIFIED':\n case 'OTHER':\n default:\n return 'other';\n }\n}\n","import { UnsupportedFunctionalityError } from '@ai-sdk/provider';\nimport {\n FunctionDeclarationSchema,\n FunctionDeclarationSchemaProperty,\n FunctionDeclarationSchemaType,\n} from '@google-cloud/vertexai';\nimport { JSONSchema7Definition } from 'json-schema';\n\nconst primitiveTypes = {\n string: FunctionDeclarationSchemaType.STRING,\n number: FunctionDeclarationSchemaType.NUMBER,\n integer: FunctionDeclarationSchemaType.INTEGER,\n boolean: FunctionDeclarationSchemaType.BOOLEAN,\n};\n\n/**\nConverts the tool parameters JSON schema to the format required by Vertex AI.\n */\nexport function prepareFunctionDeclarationSchema(\n jsonSchema: JSONSchema7Definition,\n): FunctionDeclarationSchema {\n if (typeof jsonSchema === 'boolean') {\n return {\n type: FunctionDeclarationSchemaType.BOOLEAN,\n properties: {},\n };\n }\n\n const type = jsonSchema.type;\n switch (type) {\n case 'number':\n case 'integer':\n case 'boolean':\n case 'string':\n return {\n type: primitiveTypes[type],\n description: jsonSchema.description,\n required: jsonSchema.required,\n properties: {},\n };\n\n case 'object':\n return {\n type: FunctionDeclarationSchemaType.OBJECT,\n properties: Object.entries(jsonSchema.properties ?? {}).reduce(\n (acc, [key, value]) => {\n acc[key] = prepareFunctionDeclarationSchemaProperty(value);\n return acc;\n },\n {} as Record<string, FunctionDeclarationSchemaProperty>,\n ),\n description: jsonSchema.description,\n required: jsonSchema.required,\n };\n\n case 'array':\n throw new UnsupportedFunctionalityError({\n functionality:\n 'arrays are not supported as root or as array parameters',\n });\n\n default: {\n throw new UnsupportedFunctionalityError({\n functionality: `json schema type: ${type}`,\n });\n }\n }\n}\n\nfunction prepareFunctionDeclarationSchemaProperty(\n jsonSchema: JSONSchema7Definition,\n): FunctionDeclarationSchemaProperty {\n if (typeof jsonSchema === 'boolean') {\n return {\n type: FunctionDeclarationSchemaType.BOOLEAN,\n };\n }\n\n const type = jsonSchema.type;\n\n switch (type) {\n // primitive types:\n case 'number':\n case 'integer':\n case 'boolean':\n case 'string': {\n return {\n type: primitiveTypes[type],\n description: jsonSchema.description,\n required: jsonSchema.required,\n };\n }\n // array:\n case 'array': {\n const items = jsonSchema.items;\n\n if (items == null) {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'Array without items is not supported in tool parameters',\n });\n }\n\n if (Array.isArray(items)) {\n throw new UnsupportedFunctionalityError({\n functionality: 'Tuple arrays are not supported in tool parameters',\n });\n }\n\n return {\n type: FunctionDeclarationSchemaType.ARRAY,\n description: jsonSchema.description,\n required: jsonSchema.required,\n items: prepareFunctionDeclarationSchema(items),\n };\n }\n // nested object:\n case 'object':\n return {\n type: FunctionDeclarationSchemaType.OBJECT,\n properties: Object.entries(jsonSchema.properties ?? {}).reduce(\n (acc, [key, value]) => {\n acc[key] = prepareFunctionDeclarationSchema(value);\n return acc;\n },\n {} as Record<string, FunctionDeclarationSchema>,\n ),\n description: jsonSchema.description,\n required: jsonSchema.required,\n };\n default:\n throw new Error(`Unsupported type: ${type}`);\n }\n}\n"],"mappings":"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","names":["UnsupportedFunctionalityError","UnsupportedFunctionalityError","UnsupportedFunctionalityError","generateId","_a"]}
|
1
|
+
{"version":3,"sources":["../src/google-vertex-provider.ts","../src/google-vertex-language-model.ts","../src/convert-to-google-vertex-content-request.ts","../src/map-google-vertex-finish-reason.ts","../src/prepare-function-declaration-schema.ts"],"sourcesContent":["import { generateId, loadSetting } from '@ai-sdk/provider-utils';\nimport { VertexAI, VertexInit } from '@google-cloud/vertexai';\nimport { GoogleVertexLanguageModel } from './google-vertex-language-model';\nimport {\n GoogleVertexModelId,\n GoogleVertexSettings,\n} from './google-vertex-settings';\n\nexport interface GoogleVertexProvider {\n /**\nCreates a model for text generation.\n */\n (\n modelId: GoogleVertexModelId,\n settings?: GoogleVertexSettings,\n ): GoogleVertexLanguageModel;\n\n languageModel: (\n modelId: GoogleVertexModelId,\n settings?: GoogleVertexSettings,\n ) => GoogleVertexLanguageModel;\n}\n\nexport interface GoogleVertexProviderSettings {\n /**\nYour Google Vertex location. Defaults to the environment variable `GOOGLE_VERTEX_LOCATION`.\n */\n location?: string;\n\n /**\nYour Google Vertex project. Defaults to the environment variable `GOOGLE_VERTEX_PROJECT`.\n */\n project?: string;\n\n /**\n Optional. The Authentication options provided by google-auth-library.\nComplete list of authentication options is documented in the\nGoogleAuthOptions interface:\nhttps://github.com/googleapis/google-auth-library-nodejs/blob/main/src/auth/googleauth.ts.\n */\n googleAuthOptions?: VertexInit['googleAuthOptions'];\n\n // for testing\n generateId?: () => string;\n\n // for testing\n createVertexAI?: ({\n project,\n location,\n }: {\n project: string;\n location: string;\n }) => VertexAI;\n}\n\n/**\nCreate a Google Vertex AI provider instance.\n */\nexport function createVertex(\n options: GoogleVertexProviderSettings = {},\n): GoogleVertexProvider {\n const createVertexAI = () => {\n const config = {\n project: loadSetting({\n settingValue: options.project,\n settingName: 'project',\n environmentVariableName: 'GOOGLE_VERTEX_PROJECT',\n description: 'Google Vertex project',\n }),\n location: loadSetting({\n settingValue: options.location,\n settingName: 'location',\n environmentVariableName: 'GOOGLE_VERTEX_LOCATION',\n description: 'Google Vertex location',\n }),\n googleAuthOptions: options.googleAuthOptions,\n };\n\n return options.createVertexAI?.(config) ?? new VertexAI(config);\n };\n\n const createChatModel = (\n modelId: GoogleVertexModelId,\n settings: GoogleVertexSettings = {},\n ) =>\n new GoogleVertexLanguageModel(modelId, settings, {\n vertexAI: createVertexAI(),\n generateId: options.generateId ?? generateId,\n });\n\n const provider = function (\n modelId: GoogleVertexModelId,\n settings?: GoogleVertexSettings,\n ) {\n if (new.target) {\n throw new Error(\n 'The Google Vertex AI model function cannot be called with the new keyword.',\n );\n }\n\n return createChatModel(modelId, settings);\n };\n\n provider.languageModel = createChatModel;\n\n return provider as GoogleVertexProvider;\n}\n\n/**\nDefault Google Vertex AI provider instance.\n */\nexport const vertex = createVertex();\n","import {\n LanguageModelV1,\n LanguageModelV1CallOptions,\n LanguageModelV1CallWarning,\n LanguageModelV1FinishReason,\n LanguageModelV1StreamPart,\n NoContentGeneratedError,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertAsyncGeneratorToReadableStream } from '@ai-sdk/provider-utils';\nimport {\n GenerateContentResponse,\n GenerationConfig,\n Part,\n SafetySetting,\n VertexAI,\n} from '@google-cloud/vertexai';\nimport { convertToGoogleVertexContentRequest } from './convert-to-google-vertex-content-request';\nimport {\n GoogleVertexModelId,\n GoogleVertexSettings,\n} from './google-vertex-settings';\nimport { mapGoogleVertexFinishReason } from './map-google-vertex-finish-reason';\nimport { prepareFunctionDeclarationSchema } from './prepare-function-declaration-schema';\n\ntype GoogleVertexAIConfig = {\n vertexAI: VertexAI;\n generateId: () => string;\n};\n\nexport class GoogleVertexLanguageModel implements LanguageModelV1 {\n readonly specificationVersion = 'v1';\n readonly provider = 'google-vertex';\n readonly defaultObjectGenerationMode = 'json';\n readonly supportsImageUrls = false;\n\n readonly modelId: GoogleVertexModelId;\n readonly settings: GoogleVertexSettings;\n\n private readonly config: GoogleVertexAIConfig;\n\n constructor(\n modelId: GoogleVertexModelId,\n settings: GoogleVertexSettings,\n config: GoogleVertexAIConfig,\n ) {\n this.modelId = modelId;\n this.settings = settings;\n this.config = config;\n }\n\n private async getArgs({\n mode,\n prompt,\n maxTokens,\n temperature,\n topP,\n topK,\n frequencyPenalty,\n presencePenalty,\n stopSequences,\n responseFormat,\n seed,\n headers,\n }: LanguageModelV1CallOptions) {\n const warnings: LanguageModelV1CallWarning[] = [];\n\n if (frequencyPenalty != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'frequencyPenalty',\n });\n }\n\n if (presencePenalty != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'presencePenalty',\n });\n }\n\n if (seed != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'seed',\n });\n }\n\n if (headers != null) {\n warnings.push({\n type: 'unsupported-setting',\n setting: 'headers',\n });\n }\n\n const generationConfig: GenerationConfig = {\n // model specific settings:\n topK: topK ?? this.settings.topK,\n\n // standardized settings:\n maxOutputTokens: maxTokens,\n temperature,\n topP,\n stopSequences,\n responseMimeType:\n responseFormat?.type === 'json' ? 'application/json' : undefined,\n };\n\n const type = mode.type;\n\n switch (type) {\n case 'regular': {\n return {\n model: this.config.vertexAI.getGenerativeModel({\n model: this.modelId,\n generationConfig,\n tools: prepareTools(mode),\n safetySettings: this.settings.safetySettings as\n | undefined\n | Array<SafetySetting>,\n }),\n contentRequest: convertToGoogleVertexContentRequest(prompt),\n warnings,\n };\n }\n\n case 'object-json': {\n return {\n model: this.config.vertexAI.getGenerativeModel({\n model: this.modelId,\n generationConfig: {\n ...generationConfig,\n responseMimeType: 'application/json',\n },\n safetySettings: this.settings.safetySettings as\n | undefined\n | Array<SafetySetting>,\n }),\n contentRequest: convertToGoogleVertexContentRequest(prompt),\n warnings,\n };\n }\n\n case 'object-tool': {\n throw new UnsupportedFunctionalityError({\n functionality: 'object-tool mode',\n });\n }\n\n default: {\n const _exhaustiveCheck: never = type;\n throw new Error(`Unsupported type: ${_exhaustiveCheck}`);\n }\n }\n }\n\n async doGenerate(\n options: Parameters<LanguageModelV1['doGenerate']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV1['doGenerate']>>> {\n const { model, contentRequest, warnings } = await this.getArgs(options);\n const { response } = await model.generateContent(contentRequest);\n\n const firstCandidate = response.candidates?.[0];\n\n if (firstCandidate == null) {\n throw new NoContentGeneratedError({ message: 'No candidates returned' });\n }\n\n const parts = firstCandidate.content.parts;\n const usageMetadata = response.usageMetadata;\n\n const toolCalls = getToolCallsFromParts({\n parts,\n generateId: this.config.generateId,\n });\n\n return {\n text: getTextFromParts(parts),\n toolCalls,\n finishReason: mapGoogleVertexFinishReason({\n finishReason: firstCandidate.finishReason,\n hasToolCalls: toolCalls != null && toolCalls.length > 0,\n }),\n usage: {\n promptTokens: usageMetadata?.promptTokenCount ?? NaN,\n completionTokens: usageMetadata?.candidatesTokenCount ?? NaN,\n },\n rawCall: {\n rawPrompt: contentRequest,\n rawSettings: {},\n },\n warnings,\n };\n }\n\n async doStream(\n options: Parameters<LanguageModelV1['doStream']>[0],\n ): Promise<Awaited<ReturnType<LanguageModelV1['doStream']>>> {\n const { model, contentRequest, warnings } = await this.getArgs(options);\n const { stream } = await model.generateContentStream(contentRequest);\n\n let finishReason: LanguageModelV1FinishReason = 'other';\n let usage: { promptTokens: number; completionTokens: number } = {\n promptTokens: Number.NaN,\n completionTokens: Number.NaN,\n };\n\n const generateId = this.config.generateId;\n let hasToolCalls = false;\n\n return {\n stream: convertAsyncGeneratorToReadableStream(stream).pipeThrough(\n new TransformStream<GenerateContentResponse, LanguageModelV1StreamPart>(\n {\n transform(chunk, controller) {\n const usageMetadata = chunk.usageMetadata;\n if (usageMetadata != null) {\n usage = {\n promptTokens: usageMetadata.promptTokenCount ?? NaN,\n completionTokens: usageMetadata.candidatesTokenCount ?? NaN,\n };\n }\n\n const candidate = chunk.candidates?.[0];\n\n if (candidate == null) {\n controller.enqueue({\n type: 'error',\n error: new NoContentGeneratedError({\n message: 'No candidates in chunk.',\n }),\n });\n return;\n }\n\n if (candidate.finishReason != null) {\n finishReason = mapGoogleVertexFinishReason({\n finishReason: candidate.finishReason,\n hasToolCalls,\n });\n }\n\n const content = candidate.content;\n\n const deltaText = getTextFromParts(content.parts);\n if (deltaText != null) {\n controller.enqueue({\n type: 'text-delta',\n textDelta: deltaText,\n });\n }\n\n const toolCallDeltas = getToolCallsFromParts({\n parts: content.parts,\n generateId,\n });\n\n if (toolCallDeltas != null) {\n for (const toolCall of toolCallDeltas) {\n controller.enqueue({\n type: 'tool-call-delta',\n toolCallType: 'function',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n argsTextDelta: toolCall.args,\n });\n\n controller.enqueue({\n type: 'tool-call',\n toolCallType: 'function',\n toolCallId: toolCall.toolCallId,\n toolName: toolCall.toolName,\n args: toolCall.args,\n });\n\n hasToolCalls = true;\n }\n }\n },\n\n flush(controller) {\n controller.enqueue({\n type: 'finish',\n finishReason,\n usage,\n });\n },\n },\n ),\n ),\n rawCall: {\n rawPrompt: contentRequest,\n rawSettings: {},\n },\n warnings,\n };\n }\n}\n\nfunction prepareTools(\n mode: Parameters<LanguageModelV1['doGenerate']>[0]['mode'] & {\n type: 'regular';\n },\n) {\n // when the tools array is empty, change it to undefined to prevent errors:\n const tools = mode.tools?.length ? mode.tools : undefined;\n\n if (tools == null) {\n return undefined;\n }\n\n const toolChoice = mode.toolChoice;\n\n if (toolChoice?.type === 'none') {\n return undefined;\n }\n\n if (toolChoice == null || toolChoice.type === 'auto') {\n return [\n {\n functionDeclarations: tools.map(tool => ({\n name: tool.name,\n description: tool.description ?? '',\n parameters: prepareFunctionDeclarationSchema(tool.parameters),\n })),\n },\n ];\n }\n\n // forcing tool calls or a specific tool call is not supported by Vertex:\n throw new UnsupportedFunctionalityError({\n functionality: `toolChoice: ${toolChoice.type}`,\n });\n}\n\nfunction getToolCallsFromParts({\n parts,\n generateId,\n}: {\n parts: Part[];\n generateId: () => string;\n}) {\n if (parts == null) {\n return undefined; // parts are sometimes undefined when using safety settings\n }\n\n return parts.flatMap(part =>\n part.functionCall == null\n ? []\n : {\n toolCallType: 'function' as const,\n toolCallId: generateId(),\n toolName: part.functionCall.name,\n args: JSON.stringify(part.functionCall.args),\n },\n );\n}\n\nfunction getTextFromParts(parts: Part[] | undefined) {\n if (parts == null) {\n return undefined; // parts are sometimes undefined when using safety settings\n }\n\n const textParts = parts.filter(part => 'text' in part) as Array<\n Part & { text: string }\n >;\n\n return textParts.length === 0\n ? undefined\n : textParts.map(part => part.text).join('');\n}\n","import {\n LanguageModelV1Prompt,\n UnsupportedFunctionalityError,\n} from '@ai-sdk/provider';\nimport { convertUint8ArrayToBase64 } from '@ai-sdk/provider-utils';\nimport { Content, GenerateContentRequest, Part } from '@google-cloud/vertexai';\n\nexport function convertToGoogleVertexContentRequest(\n prompt: LanguageModelV1Prompt,\n): GenerateContentRequest {\n const systemInstructionParts: Part[] = [];\n const contents: Content[] = [];\n let systemMessagesAllowed = true;\n\n for (const { role, content } of prompt) {\n switch (role) {\n case 'system': {\n if (!systemMessagesAllowed) {\n throw new UnsupportedFunctionalityError({\n functionality: 'system messages after first user message',\n });\n }\n systemInstructionParts.push({ text: content });\n break;\n }\n\n case 'user': {\n systemMessagesAllowed = false;\n\n const parts: Content['parts'] = [];\n\n for (const part of content) {\n switch (part.type) {\n case 'text': {\n parts.push({ text: part.text });\n break;\n }\n\n case 'image': {\n if (part.image instanceof URL) {\n // The AI SDK automatically downloads images for user image parts with URLs\n throw new UnsupportedFunctionalityError({\n functionality: 'Image URLs in user messages',\n });\n }\n\n parts.push({\n inlineData: {\n mimeType: part.mimeType ?? 'image/jpeg',\n data: convertUint8ArrayToBase64(part.image),\n },\n });\n\n break;\n }\n\n default: {\n const _exhaustiveCheck: never = part;\n throw new UnsupportedFunctionalityError({\n functionality: `prompt part: ${_exhaustiveCheck}`,\n });\n }\n }\n }\n\n contents.push({ role: 'user', parts });\n break;\n }\n\n case 'assistant': {\n systemMessagesAllowed = false;\n\n contents.push({\n role: 'assistant',\n parts: content\n .filter(part => part.type !== 'text' || part.text.length > 0)\n .map(part => {\n switch (part.type) {\n case 'text': {\n return { text: part.text };\n }\n\n case 'tool-call': {\n return {\n functionCall: {\n name: part.toolName,\n args: part.args as object,\n },\n };\n }\n\n default: {\n const _exhaustiveCheck: never = part;\n throw new UnsupportedFunctionalityError({\n functionality: `prompt part: ${_exhaustiveCheck}`,\n });\n }\n }\n }),\n });\n\n break;\n }\n\n case 'tool': {\n systemMessagesAllowed = false;\n\n contents.push({\n role: 'user',\n parts: content.map(part => ({\n functionResponse: {\n name: part.toolName,\n response: part.result as object,\n },\n })),\n });\n break;\n }\n\n default: {\n const _exhaustiveCheck: never = role;\n throw new UnsupportedFunctionalityError({\n functionality: `role: ${_exhaustiveCheck}`,\n });\n }\n }\n }\n\n return {\n systemInstruction:\n systemInstructionParts.length > 0\n ? { role: 'system', parts: systemInstructionParts }\n : undefined,\n contents,\n };\n}\n","import { LanguageModelV1FinishReason } from '@ai-sdk/provider';\nimport { FinishReason } from '@google-cloud/vertexai';\n\nexport function mapGoogleVertexFinishReason({\n finishReason,\n hasToolCalls,\n}: {\n finishReason: FinishReason | undefined;\n hasToolCalls: boolean;\n}): LanguageModelV1FinishReason {\n switch (finishReason) {\n case 'STOP':\n return hasToolCalls ? 'tool-calls' : 'stop';\n case 'MAX_TOKENS':\n return 'length';\n case 'BLOCKLIST':\n case 'PROHIBITED_CONTENT':\n case 'SPII':\n case 'RECITATION':\n case 'SAFETY':\n return 'content-filter';\n case 'FINISH_REASON_UNSPECIFIED':\n case 'OTHER':\n default:\n return 'other';\n }\n}\n","import { UnsupportedFunctionalityError } from '@ai-sdk/provider';\nimport {\n FunctionDeclarationSchema,\n FunctionDeclarationSchemaProperty,\n FunctionDeclarationSchemaType,\n} from '@google-cloud/vertexai';\nimport { JSONSchema7Definition } from 'json-schema';\n\nconst primitiveTypes = {\n string: FunctionDeclarationSchemaType.STRING,\n number: FunctionDeclarationSchemaType.NUMBER,\n integer: FunctionDeclarationSchemaType.INTEGER,\n boolean: FunctionDeclarationSchemaType.BOOLEAN,\n};\n\n/**\nConverts the tool parameters JSON schema to the format required by Vertex AI.\n */\nexport function prepareFunctionDeclarationSchema(\n jsonSchema: JSONSchema7Definition,\n): FunctionDeclarationSchema {\n if (typeof jsonSchema === 'boolean') {\n return {\n type: FunctionDeclarationSchemaType.BOOLEAN,\n properties: {},\n };\n }\n\n const type = jsonSchema.type;\n switch (type) {\n case 'number':\n case 'integer':\n case 'boolean':\n case 'string':\n return {\n type: primitiveTypes[type],\n description: jsonSchema.description,\n required: jsonSchema.required,\n properties: {},\n };\n\n case 'object':\n return {\n type: FunctionDeclarationSchemaType.OBJECT,\n properties: Object.entries(jsonSchema.properties ?? {}).reduce(\n (acc, [key, value]) => {\n acc[key] = prepareFunctionDeclarationSchemaProperty(value);\n return acc;\n },\n {} as Record<string, FunctionDeclarationSchemaProperty>,\n ),\n description: jsonSchema.description,\n required: jsonSchema.required,\n };\n\n case 'array':\n throw new UnsupportedFunctionalityError({\n functionality:\n 'arrays are not supported as root or as array parameters',\n });\n\n default: {\n throw new UnsupportedFunctionalityError({\n functionality: `json schema type: ${type}`,\n });\n }\n }\n}\n\nfunction prepareFunctionDeclarationSchemaProperty(\n jsonSchema: JSONSchema7Definition,\n): FunctionDeclarationSchemaProperty {\n if (typeof jsonSchema === 'boolean') {\n return {\n type: FunctionDeclarationSchemaType.BOOLEAN,\n };\n }\n\n const type = jsonSchema.type;\n\n switch (type) {\n // primitive types:\n case 'number':\n case 'integer':\n case 'boolean':\n case 'string': {\n return {\n type: primitiveTypes[type],\n description: jsonSchema.description,\n required: jsonSchema.required,\n };\n }\n // array:\n case 'array': {\n const items = jsonSchema.items;\n\n if (items == null) {\n throw new UnsupportedFunctionalityError({\n functionality:\n 'Array without items is not supported in tool parameters',\n });\n }\n\n if (Array.isArray(items)) {\n throw new UnsupportedFunctionalityError({\n functionality: 'Tuple arrays are not supported in tool parameters',\n });\n }\n\n return {\n type: FunctionDeclarationSchemaType.ARRAY,\n description: jsonSchema.description,\n required: jsonSchema.required,\n items: prepareFunctionDeclarationSchema(items),\n };\n }\n // nested object:\n case 'object':\n return {\n type: FunctionDeclarationSchemaType.OBJECT,\n properties: Object.entries(jsonSchema.properties ?? {}).reduce(\n (acc, [key, value]) => {\n acc[key] = prepareFunctionDeclarationSchema(value);\n return acc;\n },\n {} as Record<string, FunctionDeclarationSchema>,\n ),\n description: jsonSchema.description,\n required: jsonSchema.required,\n };\n default:\n throw new Error(`Unsupported type: ${type}`);\n }\n}\n"],"mappings":"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","names":["UnsupportedFunctionalityError","UnsupportedFunctionalityError","UnsupportedFunctionalityError","generateId","_a"]}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "@ai-sdk/google-vertex",
|
3
|
-
"version": "0.0.
|
3
|
+
"version": "0.0.24",
|
4
4
|
"license": "Apache-2.0",
|
5
5
|
"sideEffects": false,
|
6
6
|
"main": "./dist/index.js",
|
@@ -18,12 +18,12 @@
|
|
18
18
|
}
|
19
19
|
},
|
20
20
|
"dependencies": {
|
21
|
-
"@ai-sdk/provider": "0.0.
|
22
|
-
"@ai-sdk/provider-utils": "1.0.
|
21
|
+
"@ai-sdk/provider": "0.0.17",
|
22
|
+
"@ai-sdk/provider-utils": "1.0.9",
|
23
23
|
"json-schema": "0.4.0"
|
24
24
|
},
|
25
25
|
"devDependencies": {
|
26
|
-
"@google-cloud/vertexai": "^1.
|
26
|
+
"@google-cloud/vertexai": "^1.4.0",
|
27
27
|
"@types/json-schema": "7.0.15",
|
28
28
|
"@types/node": "^18",
|
29
29
|
"tsup": "^8",
|
@@ -31,7 +31,7 @@
|
|
31
31
|
"@vercel/ai-tsconfig": "0.0.0"
|
32
32
|
},
|
33
33
|
"peerDependencies": {
|
34
|
-
"@google-cloud/vertexai": "^1.
|
34
|
+
"@google-cloud/vertexai": "^1.4.0"
|
35
35
|
},
|
36
36
|
"engines": {
|
37
37
|
"node": ">=18"
|