ai 3.2.23 → 3.2.25
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/README.md +6 -5
- package/dist/index.d.mts +67 -16
- package/dist/index.d.ts +67 -16
- package/dist/index.js +97 -10
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +96 -10
- package/dist/index.mjs.map +1 -1
- package/package.json +6 -6
- package/rsc/dist/rsc-server.mjs +1 -1
- package/rsc/dist/rsc-server.mjs.map +1 -1
package/README.md
CHANGED
@@ -52,12 +52,13 @@ The [AI SDK UI](https://sdk.vercel.ai/docs/ai-sdk-ui/overview) module provides a
|
|
52
52
|
###### @/app/page.tsx (Next.js App Router)
|
53
53
|
|
54
54
|
```tsx
|
55
|
-
|
55
|
+
'use client';
|
56
56
|
|
57
|
-
import { useChat } from 'ai/react'
|
57
|
+
import { useChat } from 'ai/react';
|
58
58
|
|
59
59
|
export default function Page() {
|
60
|
-
const { messages, input, handleSubmit, handleInputChange, isLoading } =
|
60
|
+
const { messages, input, handleSubmit, handleInputChange, isLoading } =
|
61
|
+
useChat();
|
61
62
|
|
62
63
|
return (
|
63
64
|
<div>
|
@@ -66,7 +67,7 @@ export default function Page() {
|
|
66
67
|
<div>{message.role}</div>
|
67
68
|
<div>{message.content}</div>
|
68
69
|
</div>
|
69
|
-
)}
|
70
|
+
))}
|
70
71
|
|
71
72
|
<form onSubmit={handleSubmit}>
|
72
73
|
<input
|
@@ -77,7 +78,7 @@ export default function Page() {
|
|
77
78
|
/>
|
78
79
|
</form>
|
79
80
|
</div>
|
80
|
-
)
|
81
|
+
);
|
81
82
|
}
|
82
83
|
```
|
83
84
|
|
package/dist/index.d.mts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { DeepPartial, JSONValue, CreateMessage, FunctionCall as FunctionCall$1, AssistantMessage, DataMessage } from '@ai-sdk/ui-utils';
|
1
|
+
import { DeepPartial, Attachment, JSONValue, CreateMessage, FunctionCall as FunctionCall$1, AssistantMessage, DataMessage } from '@ai-sdk/ui-utils';
|
2
2
|
export { AssistantMessage, AssistantStatus, ChatRequest, ChatRequestOptions, CreateMessage, DataMessage, DeepPartial, Function, FunctionCall, FunctionCallHandler, IdGenerator, JSONValue, Message, RequestOptions, StreamPart, Tool, ToolCall, ToolCallHandler, ToolChoice, ToolInvocation, UseAssistantOptions, formatStreamPart, parseComplexResponse, parseStreamPart, readDataStream } from '@ai-sdk/ui-utils';
|
3
3
|
import { EmbeddingModelV1, EmbeddingModelV1Embedding, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning, LanguageModelV1StreamPart } from '@ai-sdk/provider';
|
4
4
|
export { APICallError, EmptyResponseBodyError, InvalidArgumentError, InvalidDataContentError, InvalidPromptError, InvalidResponseDataError, InvalidToolArgumentsError, JSONParseError, LoadAPIKeyError, NoObjectGeneratedError, NoSuchToolError, RetryError, ToolCallParseError, TypeValidationError, UnsupportedFunctionalityError, UnsupportedJSONSchemaError } from '@ai-sdk/provider';
|
@@ -310,6 +310,13 @@ Converts data content to a Uint8Array.
|
|
310
310
|
@returns Uint8Array.
|
311
311
|
*/
|
312
312
|
declare function convertDataContentToUint8Array(content: DataContent): Uint8Array;
|
313
|
+
/**
|
314
|
+
* Converts a Uint8Array to a string of text.
|
315
|
+
*
|
316
|
+
* @param uint8Array - The Uint8Array to convert.
|
317
|
+
* @returns The converted string.
|
318
|
+
*/
|
319
|
+
declare function convertUint8ArrayToText(uint8Array: Uint8Array): string;
|
313
320
|
|
314
321
|
/**
|
315
322
|
Text content part of a prompt. It contains a string of text.
|
@@ -905,6 +912,7 @@ declare function convertToCoreMessages(messages: Array<{
|
|
905
912
|
role: 'user' | 'assistant';
|
906
913
|
content: string;
|
907
914
|
toolInvocations?: Array<ToolResult<string, unknown, unknown>>;
|
915
|
+
experimental_attachments?: Attachment[];
|
908
916
|
}>): CoreMessage[];
|
909
917
|
|
910
918
|
declare class InvalidMessageRoleError extends Error {
|
@@ -1062,31 +1070,74 @@ declare class GenerateTextResult<TOOLS extends Record<string, CoreTool>> {
|
|
1062
1070
|
*/
|
1063
1071
|
readonly responseMessages: Array<CoreAssistantMessage | CoreToolMessage>;
|
1064
1072
|
/**
|
1073
|
+
Response information for every roundtrip.
|
1074
|
+
You can use this to get information about intermediate steps, such as the tool calls or the response headers.
|
1075
|
+
*/
|
1076
|
+
readonly roundtrips: Array<{
|
1077
|
+
/**
|
1078
|
+
The generated text.
|
1079
|
+
*/
|
1080
|
+
readonly text: string;
|
1081
|
+
/**
|
1082
|
+
The tool calls that were made during the generation.
|
1083
|
+
*/
|
1084
|
+
readonly toolCalls: ToToolCallArray<TOOLS>;
|
1085
|
+
/**
|
1086
|
+
The results of the tool calls.
|
1087
|
+
*/
|
1088
|
+
readonly toolResults: ToToolResultArray<TOOLS>;
|
1089
|
+
/**
|
1090
|
+
The reason why the generation finished.
|
1091
|
+
*/
|
1092
|
+
readonly finishReason: FinishReason;
|
1093
|
+
/**
|
1094
|
+
The token usage of the generated text.
|
1095
|
+
*/
|
1096
|
+
readonly usage: CompletionTokenUsage$1;
|
1097
|
+
/**
|
1098
|
+
Warnings from the model provider (e.g. unsupported settings)
|
1099
|
+
*/
|
1100
|
+
readonly warnings: CallWarning[] | undefined;
|
1101
|
+
/**
|
1102
|
+
Logprobs for the completion.
|
1103
|
+
`undefined` if the mode does not support logprobs or if was not enabled.
|
1104
|
+
*/
|
1105
|
+
readonly logprobs: LogProbs | undefined;
|
1106
|
+
/**
|
1107
|
+
Optional raw response data.
|
1108
|
+
*/
|
1109
|
+
readonly rawResponse?: {
|
1110
|
+
/**
|
1111
|
+
Response headers.
|
1112
|
+
*/
|
1113
|
+
readonly headers?: Record<string, string>;
|
1114
|
+
};
|
1115
|
+
}>;
|
1116
|
+
/**
|
1065
1117
|
Optional raw response data.
|
1066
1118
|
*/
|
1067
|
-
rawResponse?: {
|
1119
|
+
readonly rawResponse?: {
|
1068
1120
|
/**
|
1069
1121
|
Response headers.
|
1070
1122
|
*/
|
1071
|
-
headers?: Record<string, string>;
|
1123
|
+
readonly headers?: Record<string, string>;
|
1072
1124
|
};
|
1073
1125
|
/**
|
1074
1126
|
Logprobs for the completion.
|
1075
|
-
`undefined` if the mode does not support logprobs or if was not enabled
|
1127
|
+
`undefined` if the mode does not support logprobs or if was not enabled.
|
1076
1128
|
*/
|
1077
1129
|
readonly logprobs: LogProbs | undefined;
|
1078
1130
|
constructor(options: {
|
1079
|
-
text:
|
1080
|
-
toolCalls:
|
1081
|
-
toolResults:
|
1082
|
-
finishReason:
|
1083
|
-
usage:
|
1084
|
-
warnings:
|
1085
|
-
rawResponse?:
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
responseMessages: Array<CoreAssistantMessage | CoreToolMessage>;
|
1131
|
+
text: GenerateTextResult<TOOLS>['text'];
|
1132
|
+
toolCalls: GenerateTextResult<TOOLS>['toolCalls'];
|
1133
|
+
toolResults: GenerateTextResult<TOOLS>['toolResults'];
|
1134
|
+
finishReason: GenerateTextResult<TOOLS>['finishReason'];
|
1135
|
+
usage: GenerateTextResult<TOOLS>['usage'];
|
1136
|
+
warnings: GenerateTextResult<TOOLS>['warnings'];
|
1137
|
+
rawResponse?: GenerateTextResult<TOOLS>['rawResponse'];
|
1138
|
+
logprobs: GenerateTextResult<TOOLS>['logprobs'];
|
1139
|
+
responseMessages: GenerateTextResult<TOOLS>['responseMessages'];
|
1140
|
+
roundtrips: GenerateTextResult<TOOLS>['roundtrips'];
|
1090
1141
|
});
|
1091
1142
|
}
|
1092
1143
|
/**
|
@@ -2184,4 +2235,4 @@ declare const generateId: (size?: number | undefined) => string;
|
|
2184
2235
|
*/
|
2185
2236
|
declare const nanoid: (size?: number | undefined) => string;
|
2186
2237
|
|
2187
|
-
export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionTokenUsage, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingTokenUsage, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidMessageRoleError, InvalidModelIdError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LogProbs, MistralStream, NoSuchModelError, NoSuchProviderError, ObjectStreamInputPart, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, ReplicateStream, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertDataContentToBase64String, convertDataContentToUint8Array, convertToCoreMessages, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
|
2238
|
+
export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionTokenUsage, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingTokenUsage, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidMessageRoleError, InvalidModelIdError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LogProbs, MistralStream, NoSuchModelError, NoSuchProviderError, ObjectStreamInputPart, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, ReplicateStream, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertDataContentToBase64String, convertDataContentToUint8Array, convertToCoreMessages, convertUint8ArrayToText, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
|
package/dist/index.d.ts
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
import { DeepPartial, JSONValue, CreateMessage, FunctionCall as FunctionCall$1, AssistantMessage, DataMessage } from '@ai-sdk/ui-utils';
|
1
|
+
import { DeepPartial, Attachment, JSONValue, CreateMessage, FunctionCall as FunctionCall$1, AssistantMessage, DataMessage } from '@ai-sdk/ui-utils';
|
2
2
|
export { AssistantMessage, AssistantStatus, ChatRequest, ChatRequestOptions, CreateMessage, DataMessage, DeepPartial, Function, FunctionCall, FunctionCallHandler, IdGenerator, JSONValue, Message, RequestOptions, StreamPart, Tool, ToolCall, ToolCallHandler, ToolChoice, ToolInvocation, UseAssistantOptions, formatStreamPart, parseComplexResponse, parseStreamPart, readDataStream } from '@ai-sdk/ui-utils';
|
3
3
|
import { EmbeddingModelV1, EmbeddingModelV1Embedding, LanguageModelV1, LanguageModelV1FinishReason, LanguageModelV1LogProbs, LanguageModelV1CallWarning, LanguageModelV1StreamPart } from '@ai-sdk/provider';
|
4
4
|
export { APICallError, EmptyResponseBodyError, InvalidArgumentError, InvalidDataContentError, InvalidPromptError, InvalidResponseDataError, InvalidToolArgumentsError, JSONParseError, LoadAPIKeyError, NoObjectGeneratedError, NoSuchToolError, RetryError, ToolCallParseError, TypeValidationError, UnsupportedFunctionalityError, UnsupportedJSONSchemaError } from '@ai-sdk/provider';
|
@@ -310,6 +310,13 @@ Converts data content to a Uint8Array.
|
|
310
310
|
@returns Uint8Array.
|
311
311
|
*/
|
312
312
|
declare function convertDataContentToUint8Array(content: DataContent): Uint8Array;
|
313
|
+
/**
|
314
|
+
* Converts a Uint8Array to a string of text.
|
315
|
+
*
|
316
|
+
* @param uint8Array - The Uint8Array to convert.
|
317
|
+
* @returns The converted string.
|
318
|
+
*/
|
319
|
+
declare function convertUint8ArrayToText(uint8Array: Uint8Array): string;
|
313
320
|
|
314
321
|
/**
|
315
322
|
Text content part of a prompt. It contains a string of text.
|
@@ -905,6 +912,7 @@ declare function convertToCoreMessages(messages: Array<{
|
|
905
912
|
role: 'user' | 'assistant';
|
906
913
|
content: string;
|
907
914
|
toolInvocations?: Array<ToolResult<string, unknown, unknown>>;
|
915
|
+
experimental_attachments?: Attachment[];
|
908
916
|
}>): CoreMessage[];
|
909
917
|
|
910
918
|
declare class InvalidMessageRoleError extends Error {
|
@@ -1062,31 +1070,74 @@ declare class GenerateTextResult<TOOLS extends Record<string, CoreTool>> {
|
|
1062
1070
|
*/
|
1063
1071
|
readonly responseMessages: Array<CoreAssistantMessage | CoreToolMessage>;
|
1064
1072
|
/**
|
1073
|
+
Response information for every roundtrip.
|
1074
|
+
You can use this to get information about intermediate steps, such as the tool calls or the response headers.
|
1075
|
+
*/
|
1076
|
+
readonly roundtrips: Array<{
|
1077
|
+
/**
|
1078
|
+
The generated text.
|
1079
|
+
*/
|
1080
|
+
readonly text: string;
|
1081
|
+
/**
|
1082
|
+
The tool calls that were made during the generation.
|
1083
|
+
*/
|
1084
|
+
readonly toolCalls: ToToolCallArray<TOOLS>;
|
1085
|
+
/**
|
1086
|
+
The results of the tool calls.
|
1087
|
+
*/
|
1088
|
+
readonly toolResults: ToToolResultArray<TOOLS>;
|
1089
|
+
/**
|
1090
|
+
The reason why the generation finished.
|
1091
|
+
*/
|
1092
|
+
readonly finishReason: FinishReason;
|
1093
|
+
/**
|
1094
|
+
The token usage of the generated text.
|
1095
|
+
*/
|
1096
|
+
readonly usage: CompletionTokenUsage$1;
|
1097
|
+
/**
|
1098
|
+
Warnings from the model provider (e.g. unsupported settings)
|
1099
|
+
*/
|
1100
|
+
readonly warnings: CallWarning[] | undefined;
|
1101
|
+
/**
|
1102
|
+
Logprobs for the completion.
|
1103
|
+
`undefined` if the mode does not support logprobs or if was not enabled.
|
1104
|
+
*/
|
1105
|
+
readonly logprobs: LogProbs | undefined;
|
1106
|
+
/**
|
1107
|
+
Optional raw response data.
|
1108
|
+
*/
|
1109
|
+
readonly rawResponse?: {
|
1110
|
+
/**
|
1111
|
+
Response headers.
|
1112
|
+
*/
|
1113
|
+
readonly headers?: Record<string, string>;
|
1114
|
+
};
|
1115
|
+
}>;
|
1116
|
+
/**
|
1065
1117
|
Optional raw response data.
|
1066
1118
|
*/
|
1067
|
-
rawResponse?: {
|
1119
|
+
readonly rawResponse?: {
|
1068
1120
|
/**
|
1069
1121
|
Response headers.
|
1070
1122
|
*/
|
1071
|
-
headers?: Record<string, string>;
|
1123
|
+
readonly headers?: Record<string, string>;
|
1072
1124
|
};
|
1073
1125
|
/**
|
1074
1126
|
Logprobs for the completion.
|
1075
|
-
`undefined` if the mode does not support logprobs or if was not enabled
|
1127
|
+
`undefined` if the mode does not support logprobs or if was not enabled.
|
1076
1128
|
*/
|
1077
1129
|
readonly logprobs: LogProbs | undefined;
|
1078
1130
|
constructor(options: {
|
1079
|
-
text:
|
1080
|
-
toolCalls:
|
1081
|
-
toolResults:
|
1082
|
-
finishReason:
|
1083
|
-
usage:
|
1084
|
-
warnings:
|
1085
|
-
rawResponse?:
|
1086
|
-
|
1087
|
-
|
1088
|
-
|
1089
|
-
responseMessages: Array<CoreAssistantMessage | CoreToolMessage>;
|
1131
|
+
text: GenerateTextResult<TOOLS>['text'];
|
1132
|
+
toolCalls: GenerateTextResult<TOOLS>['toolCalls'];
|
1133
|
+
toolResults: GenerateTextResult<TOOLS>['toolResults'];
|
1134
|
+
finishReason: GenerateTextResult<TOOLS>['finishReason'];
|
1135
|
+
usage: GenerateTextResult<TOOLS>['usage'];
|
1136
|
+
warnings: GenerateTextResult<TOOLS>['warnings'];
|
1137
|
+
rawResponse?: GenerateTextResult<TOOLS>['rawResponse'];
|
1138
|
+
logprobs: GenerateTextResult<TOOLS>['logprobs'];
|
1139
|
+
responseMessages: GenerateTextResult<TOOLS>['responseMessages'];
|
1140
|
+
roundtrips: GenerateTextResult<TOOLS>['roundtrips'];
|
1090
1141
|
});
|
1091
1142
|
}
|
1092
1143
|
/**
|
@@ -2184,4 +2235,4 @@ declare const generateId: (size?: number | undefined) => string;
|
|
2184
2235
|
*/
|
2185
2236
|
declare const nanoid: (size?: number | undefined) => string;
|
2186
2237
|
|
2187
|
-
export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionTokenUsage, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingTokenUsage, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidMessageRoleError, InvalidModelIdError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LogProbs, MistralStream, NoSuchModelError, NoSuchProviderError, ObjectStreamInputPart, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, ReplicateStream, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertDataContentToBase64String, convertDataContentToUint8Array, convertToCoreMessages, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
|
2238
|
+
export { AIStream, AIStreamCallbacksAndOptions, AIStreamParser, AIStreamParserOptions, AWSBedrockAnthropicMessagesStream, AWSBedrockAnthropicStream, AWSBedrockCohereStream, AWSBedrockLlama2Stream, AWSBedrockStream, AnthropicStream, AssistantContent, AssistantResponse, CallWarning, CohereStream, CompletionTokenUsage, CompletionUsage, CoreAssistantMessage, CoreMessage, CoreSystemMessage, CoreTool, CoreToolChoice, CoreToolMessage, CoreUserMessage, DataContent, EmbedManyResult, EmbedResult, Embedding, EmbeddingModel, EmbeddingTokenUsage, ExperimentalAssistantMessage, ExperimentalMessage, ExperimentalTool, ExperimentalToolMessage, ExperimentalUserMessage, FinishReason, FunctionCallPayload, GenerateObjectResult, GenerateTextResult, GoogleGenerativeAIStream, HuggingFaceStream, ImagePart, InkeepAIStreamCallbacksAndOptions, InkeepChatResultCallbacks, InkeepOnFinalMetadata, InkeepStream, InvalidMessageRoleError, InvalidModelIdError, langchainAdapter as LangChainAdapter, LangChainStream, LanguageModel, LogProbs, MistralStream, NoSuchModelError, NoSuchProviderError, ObjectStreamInputPart, ObjectStreamPart, OpenAIStream, OpenAIStreamCallbacks, ReplicateStream, StreamData, StreamObjectResult, StreamTextResult, StreamingTextResponse, TextPart$1 as TextPart, TextStreamPart, TokenUsage, ToolCallPart, ToolCallPayload, ToolContent, ToolResultPart, UserContent, convertDataContentToBase64String, convertDataContentToUint8Array, convertToCoreMessages, convertUint8ArrayToText, cosineSimilarity, createCallbacksTransformer, createEventStreamTransformer, createStreamDataTransformer, embed, embedMany, experimental_AssistantResponse, experimental_ModelRegistry, experimental_ProviderRegistry, experimental_StreamData, experimental_createModelRegistry, experimental_createProviderRegistry, experimental_generateObject, experimental_generateText, experimental_streamObject, experimental_streamText, generateId, generateObject, generateText, nanoid, readableFromAsyncIterable, streamObject, streamText, streamToResponse, tool, trimStartOfStreamHelper };
|
package/dist/index.js
CHANGED
@@ -78,6 +78,7 @@ __export(streams_exports, {
|
|
78
78
|
convertDataContentToBase64String: () => convertDataContentToBase64String,
|
79
79
|
convertDataContentToUint8Array: () => convertDataContentToUint8Array,
|
80
80
|
convertToCoreMessages: () => convertToCoreMessages,
|
81
|
+
convertUint8ArrayToText: () => convertUint8ArrayToText,
|
81
82
|
cosineSimilarity: () => cosineSimilarity,
|
82
83
|
createCallbacksTransformer: () => createCallbacksTransformer,
|
83
84
|
createEventStreamTransformer: () => createEventStreamTransformer,
|
@@ -296,7 +297,7 @@ function convertDataContentToUint8Array(content) {
|
|
296
297
|
return (0, import_provider_utils2.convertBase64ToUint8Array)(content);
|
297
298
|
} catch (error) {
|
298
299
|
throw new import_provider2.InvalidDataContentError({
|
299
|
-
message: "Invalid data content. Content string is not a base64-encoded
|
300
|
+
message: "Invalid data content. Content string is not a base64-encoded media.",
|
300
301
|
content,
|
301
302
|
cause: error
|
302
303
|
});
|
@@ -307,6 +308,13 @@ function convertDataContentToUint8Array(content) {
|
|
307
308
|
}
|
308
309
|
throw new import_provider2.InvalidDataContentError({ content });
|
309
310
|
}
|
311
|
+
function convertUint8ArrayToText(uint8Array) {
|
312
|
+
try {
|
313
|
+
return new TextDecoder().decode(uint8Array);
|
314
|
+
} catch (error) {
|
315
|
+
throw new Error("Error decoding Uint8Array to text");
|
316
|
+
}
|
317
|
+
}
|
310
318
|
|
311
319
|
// core/prompt/invalid-message-role-error.ts
|
312
320
|
var InvalidMessageRoleError = class extends Error {
|
@@ -1428,7 +1436,7 @@ async function generateText({
|
|
1428
1436
|
},
|
1429
1437
|
tracer,
|
1430
1438
|
fn: async (span) => {
|
1431
|
-
var _a2, _b, _c;
|
1439
|
+
var _a2, _b, _c, _d;
|
1432
1440
|
const retry = retryWithExponentialBackoff({ maxRetries });
|
1433
1441
|
const validatedPrompt = getValidatedPrompt({
|
1434
1442
|
system,
|
@@ -1444,10 +1452,11 @@ async function generateText({
|
|
1444
1452
|
let currentModelResponse;
|
1445
1453
|
let currentToolCalls = [];
|
1446
1454
|
let currentToolResults = [];
|
1447
|
-
let
|
1455
|
+
let roundtripCount = 0;
|
1448
1456
|
const responseMessages = [];
|
1457
|
+
const roundtrips = [];
|
1449
1458
|
do {
|
1450
|
-
const currentInputFormat =
|
1459
|
+
const currentInputFormat = roundtripCount === 0 ? validatedPrompt.type : "messages";
|
1451
1460
|
currentModelResponse = await retry(
|
1452
1461
|
() => recordSpan({
|
1453
1462
|
name: "ai.generateText.doGenerate",
|
@@ -1485,9 +1494,18 @@ async function generateText({
|
|
1485
1494
|
tools,
|
1486
1495
|
tracer
|
1487
1496
|
});
|
1488
|
-
|
1497
|
+
roundtrips.push({
|
1489
1498
|
text: (_b = currentModelResponse.text) != null ? _b : "",
|
1490
1499
|
toolCalls: currentToolCalls,
|
1500
|
+
toolResults: currentToolResults,
|
1501
|
+
finishReason: currentModelResponse.finishReason,
|
1502
|
+
usage: calculateCompletionTokenUsage(currentModelResponse.usage),
|
1503
|
+
warnings: currentModelResponse.warnings,
|
1504
|
+
logprobs: currentModelResponse.logprobs
|
1505
|
+
});
|
1506
|
+
const newResponseMessages = toResponseMessages({
|
1507
|
+
text: (_c = currentModelResponse.text) != null ? _c : "",
|
1508
|
+
toolCalls: currentToolCalls,
|
1491
1509
|
toolResults: currentToolResults
|
1492
1510
|
});
|
1493
1511
|
responseMessages.push(...newResponseMessages);
|
@@ -1498,7 +1516,7 @@ async function generateText({
|
|
1498
1516
|
// there are tool calls:
|
1499
1517
|
currentToolCalls.length > 0 && // all current tool calls have results:
|
1500
1518
|
currentToolResults.length === currentToolCalls.length && // the number of roundtrips is less than the maximum:
|
1501
|
-
|
1519
|
+
roundtripCount++ < maxToolRoundtrips
|
1502
1520
|
);
|
1503
1521
|
span.setAttributes({
|
1504
1522
|
"ai.finishReason": currentModelResponse.finishReason,
|
@@ -1511,7 +1529,7 @@ async function generateText({
|
|
1511
1529
|
// Always return a string so that the caller doesn't have to check for undefined.
|
1512
1530
|
// If they need to check if the model did not return any text,
|
1513
1531
|
// they can check the length of the string:
|
1514
|
-
text: (
|
1532
|
+
text: (_d = currentModelResponse.text) != null ? _d : "",
|
1515
1533
|
toolCalls: currentToolCalls,
|
1516
1534
|
toolResults: currentToolResults,
|
1517
1535
|
finishReason: currentModelResponse.finishReason,
|
@@ -1519,7 +1537,8 @@ async function generateText({
|
|
1519
1537
|
warnings: currentModelResponse.warnings,
|
1520
1538
|
rawResponse: currentModelResponse.rawResponse,
|
1521
1539
|
logprobs: currentModelResponse.logprobs,
|
1522
|
-
responseMessages
|
1540
|
+
responseMessages,
|
1541
|
+
roundtrips
|
1523
1542
|
});
|
1524
1543
|
}
|
1525
1544
|
});
|
@@ -1577,6 +1596,7 @@ var GenerateTextResult = class {
|
|
1577
1596
|
this.rawResponse = options.rawResponse;
|
1578
1597
|
this.logprobs = options.logprobs;
|
1579
1598
|
this.responseMessages = options.responseMessages;
|
1599
|
+
this.roundtrips = options.roundtrips;
|
1580
1600
|
}
|
1581
1601
|
};
|
1582
1602
|
function toResponseMessages({
|
@@ -2174,13 +2194,79 @@ var StreamTextResult = class {
|
|
2174
2194
|
};
|
2175
2195
|
var experimental_streamText = streamText;
|
2176
2196
|
|
2197
|
+
// core/prompt/attachments-to-parts.ts
|
2198
|
+
function attachmentsToParts(attachments) {
|
2199
|
+
var _a, _b, _c;
|
2200
|
+
const parts = [];
|
2201
|
+
for (const attachment of attachments) {
|
2202
|
+
let url;
|
2203
|
+
try {
|
2204
|
+
url = new URL(attachment.url);
|
2205
|
+
} catch (error) {
|
2206
|
+
throw new Error(`Invalid URL: ${attachment.url}`);
|
2207
|
+
}
|
2208
|
+
switch (url.protocol) {
|
2209
|
+
case "http:":
|
2210
|
+
case "https:": {
|
2211
|
+
if ((_a = attachment.contentType) == null ? void 0 : _a.startsWith("image/")) {
|
2212
|
+
parts.push({ type: "image", image: url });
|
2213
|
+
}
|
2214
|
+
break;
|
2215
|
+
}
|
2216
|
+
case "data:": {
|
2217
|
+
let header;
|
2218
|
+
let base64Content;
|
2219
|
+
let mimeType;
|
2220
|
+
try {
|
2221
|
+
[header, base64Content] = attachment.url.split(",");
|
2222
|
+
mimeType = header.split(";")[0].split(":")[1];
|
2223
|
+
} catch (error) {
|
2224
|
+
throw new Error(`Error processing data URL: ${attachment.url}`);
|
2225
|
+
}
|
2226
|
+
if (mimeType == null || base64Content == null) {
|
2227
|
+
throw new Error(`Invalid data URL format: ${attachment.url}`);
|
2228
|
+
}
|
2229
|
+
if ((_b = attachment.contentType) == null ? void 0 : _b.startsWith("image/")) {
|
2230
|
+
parts.push({
|
2231
|
+
type: "image",
|
2232
|
+
image: convertDataContentToUint8Array(base64Content)
|
2233
|
+
});
|
2234
|
+
} else if ((_c = attachment.contentType) == null ? void 0 : _c.startsWith("text/")) {
|
2235
|
+
parts.push({
|
2236
|
+
type: "text",
|
2237
|
+
text: convertUint8ArrayToText(
|
2238
|
+
convertDataContentToUint8Array(base64Content)
|
2239
|
+
)
|
2240
|
+
});
|
2241
|
+
}
|
2242
|
+
break;
|
2243
|
+
}
|
2244
|
+
default: {
|
2245
|
+
throw new Error(`Unsupported URL protocol: ${url.protocol}`);
|
2246
|
+
}
|
2247
|
+
}
|
2248
|
+
}
|
2249
|
+
return parts;
|
2250
|
+
}
|
2251
|
+
|
2177
2252
|
// core/prompt/convert-to-core-messages.ts
|
2178
2253
|
function convertToCoreMessages(messages) {
|
2179
2254
|
const coreMessages = [];
|
2180
|
-
for (const {
|
2255
|
+
for (const {
|
2256
|
+
role,
|
2257
|
+
content,
|
2258
|
+
toolInvocations,
|
2259
|
+
experimental_attachments
|
2260
|
+
} of messages) {
|
2181
2261
|
switch (role) {
|
2182
2262
|
case "user": {
|
2183
|
-
coreMessages.push({
|
2263
|
+
coreMessages.push({
|
2264
|
+
role: "user",
|
2265
|
+
content: experimental_attachments ? [
|
2266
|
+
{ type: "text", text: content },
|
2267
|
+
...attachmentsToParts(experimental_attachments)
|
2268
|
+
] : content
|
2269
|
+
});
|
2184
2270
|
break;
|
2185
2271
|
}
|
2186
2272
|
case "assistant": {
|
@@ -3524,6 +3610,7 @@ var nanoid = import_provider_utils7.generateId;
|
|
3524
3610
|
convertDataContentToBase64String,
|
3525
3611
|
convertDataContentToUint8Array,
|
3526
3612
|
convertToCoreMessages,
|
3613
|
+
convertUint8ArrayToText,
|
3527
3614
|
cosineSimilarity,
|
3528
3615
|
createCallbacksTransformer,
|
3529
3616
|
createEventStreamTransformer,
|