@firebase/ai 2.3.0-canary.ea8512812 → 2.4.0-20251007135320
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/ai-public.d.ts +28 -19
- package/dist/ai.d.ts +28 -19
- package/dist/esm/index.esm.js +31 -12
- package/dist/esm/index.esm.js.map +1 -1
- package/dist/esm/src/api.d.ts +1 -1
- package/dist/esm/src/methods/live-session-helpers.d.ts +2 -2
- package/dist/esm/src/methods/live-session.d.ts +10 -1
- package/dist/esm/src/models/imagen-model.d.ts +2 -2
- package/dist/esm/src/requests/imagen-image-format.d.ts +3 -3
- package/dist/esm/src/types/imagen/requests.d.ts +9 -9
- package/dist/esm/src/types/imagen/responses.d.ts +3 -3
- package/dist/esm/src/types/live-responses.d.ts +9 -1
- package/dist/index.cjs.js +31 -12
- package/dist/index.cjs.js.map +1 -1
- package/dist/index.node.cjs.js +31 -12
- package/dist/index.node.cjs.js.map +1 -1
- package/dist/index.node.mjs +31 -12
- package/dist/index.node.mjs.map +1 -1
- package/dist/src/api.d.ts +1 -1
- package/dist/src/methods/live-session-helpers.d.ts +2 -2
- package/dist/src/methods/live-session.d.ts +10 -1
- package/dist/src/models/imagen-model.d.ts +2 -2
- package/dist/src/requests/imagen-image-format.d.ts +3 -3
- package/dist/src/types/imagen/requests.d.ts +9 -9
- package/dist/src/types/imagen/responses.d.ts +3 -3
- package/dist/src/types/live-responses.d.ts +9 -1
- package/package.json +8 -8
package/dist/esm/src/api.d.ts
CHANGED
|
@@ -81,7 +81,7 @@ export declare function getGenerativeModel(ai: AI, modelParams: ModelParams | Hy
|
|
|
81
81
|
* @throws If the `apiKey` or `projectId` fields are missing in your
|
|
82
82
|
* Firebase config.
|
|
83
83
|
*
|
|
84
|
-
* @
|
|
84
|
+
* @public
|
|
85
85
|
*/
|
|
86
86
|
export declare function getImagenModel(ai: AI, modelParams: ImagenModelParams, requestOptions?: RequestOptions): ImagenModel;
|
|
87
87
|
/**
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import {
|
|
17
|
+
import { FunctionCall, FunctionResponse } from '../types';
|
|
18
18
|
import { LiveSession } from './live-session';
|
|
19
19
|
/**
|
|
20
20
|
* A controller for managing an active audio conversation.
|
|
@@ -39,7 +39,7 @@ export interface StartAudioConversationOptions {
|
|
|
39
39
|
* The handler should perform the function call and return the result as a `Part`,
|
|
40
40
|
* which will then be sent back to the model.
|
|
41
41
|
*/
|
|
42
|
-
functionCallingHandler?: (functionCalls:
|
|
42
|
+
functionCallingHandler?: (functionCalls: FunctionCall[]) => Promise<FunctionResponse>;
|
|
43
43
|
}
|
|
44
44
|
/**
|
|
45
45
|
* Dependencies needed by the {@link AudioConversationRunner}.
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import { GenerativeContentBlob, LiveServerContent, LiveServerToolCall, LiveServerToolCallCancellation, Part } from '../public-types';
|
|
17
|
+
import { FunctionResponse, GenerativeContentBlob, LiveServerContent, LiveServerToolCall, LiveServerToolCallCancellation, Part } from '../public-types';
|
|
18
18
|
import { WebSocketHandler } from '../websocket';
|
|
19
19
|
/**
|
|
20
20
|
* Represents an active, real-time, bidirectional conversation with the model.
|
|
@@ -61,6 +61,15 @@ export declare class LiveSession {
|
|
|
61
61
|
* @beta
|
|
62
62
|
*/
|
|
63
63
|
sendMediaChunks(mediaChunks: GenerativeContentBlob[]): Promise<void>;
|
|
64
|
+
/**
|
|
65
|
+
* Sends function responses to the server.
|
|
66
|
+
*
|
|
67
|
+
* @param functionResponses - The function responses to send.
|
|
68
|
+
* @throws If this session has been closed.
|
|
69
|
+
*
|
|
70
|
+
* @beta
|
|
71
|
+
*/
|
|
72
|
+
sendFunctionResponses(functionResponses: FunctionResponse[]): Promise<void>;
|
|
64
73
|
/**
|
|
65
74
|
* Sends a stream of {@link GenerativeContentBlob}.
|
|
66
75
|
*
|
|
@@ -37,7 +37,7 @@ import { AIModel } from './ai-model';
|
|
|
37
37
|
* }
|
|
38
38
|
* ```
|
|
39
39
|
*
|
|
40
|
-
* @
|
|
40
|
+
* @public
|
|
41
41
|
*/
|
|
42
42
|
export declare class ImagenModel extends AIModel {
|
|
43
43
|
requestOptions?: RequestOptions | undefined;
|
|
@@ -76,7 +76,7 @@ export declare class ImagenModel extends AIModel {
|
|
|
76
76
|
* returned object will have a `filteredReason` property.
|
|
77
77
|
* If all images are filtered, the `images` array will be empty.
|
|
78
78
|
*
|
|
79
|
-
* @
|
|
79
|
+
* @public
|
|
80
80
|
*/
|
|
81
81
|
generateImages(prompt: string): Promise<ImagenGenerationResponse<ImagenInlineImage>>;
|
|
82
82
|
/**
|
|
@@ -29,7 +29,7 @@
|
|
|
29
29
|
* }
|
|
30
30
|
* ```
|
|
31
31
|
*
|
|
32
|
-
* @
|
|
32
|
+
* @public
|
|
33
33
|
*/
|
|
34
34
|
export declare class ImagenImageFormat {
|
|
35
35
|
/**
|
|
@@ -47,7 +47,7 @@ export declare class ImagenImageFormat {
|
|
|
47
47
|
* @param compressionQuality - The level of compression (a number between 0 and 100).
|
|
48
48
|
* @returns An {@link ImagenImageFormat} object for a JPEG image.
|
|
49
49
|
*
|
|
50
|
-
* @
|
|
50
|
+
* @public
|
|
51
51
|
*/
|
|
52
52
|
static jpeg(compressionQuality?: number): ImagenImageFormat;
|
|
53
53
|
/**
|
|
@@ -55,7 +55,7 @@ export declare class ImagenImageFormat {
|
|
|
55
55
|
*
|
|
56
56
|
* @returns An {@link ImagenImageFormat} object for a PNG image.
|
|
57
57
|
*
|
|
58
|
-
* @
|
|
58
|
+
* @public
|
|
59
59
|
*/
|
|
60
60
|
static png(): ImagenImageFormat;
|
|
61
61
|
}
|
|
@@ -18,7 +18,7 @@ import { ImagenImageFormat } from '../../requests/imagen-image-format';
|
|
|
18
18
|
/**
|
|
19
19
|
* Parameters for configuring an {@link ImagenModel}.
|
|
20
20
|
*
|
|
21
|
-
* @
|
|
21
|
+
* @public
|
|
22
22
|
*/
|
|
23
23
|
export interface ImagenModelParams {
|
|
24
24
|
/**
|
|
@@ -46,7 +46,7 @@ export interface ImagenModelParams {
|
|
|
46
46
|
* See the {@link http://firebase.google.com/docs/vertex-ai/generate-images-imagen | documentation} for
|
|
47
47
|
* more details.
|
|
48
48
|
*
|
|
49
|
-
* @
|
|
49
|
+
* @public
|
|
50
50
|
*/
|
|
51
51
|
export interface ImagenGenerationConfig {
|
|
52
52
|
/**
|
|
@@ -104,7 +104,7 @@ export interface ImagenGenerationConfig {
|
|
|
104
104
|
* and the {@link https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen#safety-filters | Responsible AI and usage guidelines}
|
|
105
105
|
* for more details.
|
|
106
106
|
*
|
|
107
|
-
* @
|
|
107
|
+
* @public
|
|
108
108
|
*/
|
|
109
109
|
export declare const ImagenSafetyFilterLevel: {
|
|
110
110
|
/**
|
|
@@ -137,7 +137,7 @@ export declare const ImagenSafetyFilterLevel: {
|
|
|
137
137
|
* and the {@link https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen#safety-filters | Responsible AI and usage guidelines}
|
|
138
138
|
* for more details.
|
|
139
139
|
*
|
|
140
|
-
* @
|
|
140
|
+
* @public
|
|
141
141
|
*/
|
|
142
142
|
export type ImagenSafetyFilterLevel = (typeof ImagenSafetyFilterLevel)[keyof typeof ImagenSafetyFilterLevel];
|
|
143
143
|
/**
|
|
@@ -146,7 +146,7 @@ export type ImagenSafetyFilterLevel = (typeof ImagenSafetyFilterLevel)[keyof typ
|
|
|
146
146
|
* See the <a href="http://firebase.google.com/docs/vertex-ai/generate-images">personGeneration</a>
|
|
147
147
|
* documentation for more details.
|
|
148
148
|
*
|
|
149
|
-
* @
|
|
149
|
+
* @public
|
|
150
150
|
*/
|
|
151
151
|
export declare const ImagenPersonFilterLevel: {
|
|
152
152
|
/**
|
|
@@ -176,7 +176,7 @@ export declare const ImagenPersonFilterLevel: {
|
|
|
176
176
|
* See the <a href="http://firebase.google.com/docs/vertex-ai/generate-images">personGeneration</a>
|
|
177
177
|
* documentation for more details.
|
|
178
178
|
*
|
|
179
|
-
* @
|
|
179
|
+
* @public
|
|
180
180
|
*/
|
|
181
181
|
export type ImagenPersonFilterLevel = (typeof ImagenPersonFilterLevel)[keyof typeof ImagenPersonFilterLevel];
|
|
182
182
|
/**
|
|
@@ -185,7 +185,7 @@ export type ImagenPersonFilterLevel = (typeof ImagenPersonFilterLevel)[keyof typ
|
|
|
185
185
|
* See the {@link http://firebase.google.com/docs/vertex-ai/generate-images | documentation }
|
|
186
186
|
* for more details.
|
|
187
187
|
*
|
|
188
|
-
* @
|
|
188
|
+
* @public
|
|
189
189
|
*/
|
|
190
190
|
export interface ImagenSafetySettings {
|
|
191
191
|
/**
|
|
@@ -207,7 +207,7 @@ export interface ImagenSafetySettings {
|
|
|
207
207
|
* See the {@link http://firebase.google.com/docs/vertex-ai/generate-images | documentation }
|
|
208
208
|
* for more details and examples of the supported aspect ratios.
|
|
209
209
|
*
|
|
210
|
-
* @
|
|
210
|
+
* @public
|
|
211
211
|
*/
|
|
212
212
|
export declare const ImagenAspectRatio: {
|
|
213
213
|
/**
|
|
@@ -240,6 +240,6 @@ export declare const ImagenAspectRatio: {
|
|
|
240
240
|
* See the {@link http://firebase.google.com/docs/vertex-ai/generate-images | documentation }
|
|
241
241
|
* for more details and examples of the supported aspect ratios.
|
|
242
242
|
*
|
|
243
|
-
* @
|
|
243
|
+
* @public
|
|
244
244
|
*/
|
|
245
245
|
export type ImagenAspectRatio = (typeof ImagenAspectRatio)[keyof typeof ImagenAspectRatio];
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
/**
|
|
18
18
|
* An image generated by Imagen, represented as inline data.
|
|
19
19
|
*
|
|
20
|
-
* @
|
|
20
|
+
* @public
|
|
21
21
|
*/
|
|
22
22
|
export interface ImagenInlineImage {
|
|
23
23
|
/**
|
|
@@ -35,7 +35,7 @@ export interface ImagenInlineImage {
|
|
|
35
35
|
* An image generated by Imagen, stored in a Cloud Storage for Firebase bucket.
|
|
36
36
|
*
|
|
37
37
|
* This feature is not available yet.
|
|
38
|
-
* @
|
|
38
|
+
* @public
|
|
39
39
|
*/
|
|
40
40
|
export interface ImagenGCSImage {
|
|
41
41
|
/**
|
|
@@ -54,7 +54,7 @@ export interface ImagenGCSImage {
|
|
|
54
54
|
/**
|
|
55
55
|
* The response from a request to generate images with Imagen.
|
|
56
56
|
*
|
|
57
|
-
* @
|
|
57
|
+
* @public
|
|
58
58
|
*/
|
|
59
59
|
export interface ImagenGenerationResponse<T extends ImagenInlineImage | ImagenGCSImage> {
|
|
60
60
|
/**
|
|
@@ -14,7 +14,7 @@
|
|
|
14
14
|
* See the License for the specific language governing permissions and
|
|
15
15
|
* limitations under the License.
|
|
16
16
|
*/
|
|
17
|
-
import { Content, GenerativeContentBlob, Part } from './content';
|
|
17
|
+
import { Content, FunctionResponse, GenerativeContentBlob, Part } from './content';
|
|
18
18
|
import { LiveGenerationConfig, Tool, ToolConfig } from './requests';
|
|
19
19
|
/**
|
|
20
20
|
* User input that is sent to the model.
|
|
@@ -37,6 +37,14 @@ export interface _LiveClientRealtimeInput {
|
|
|
37
37
|
mediaChunks: GenerativeContentBlob[];
|
|
38
38
|
};
|
|
39
39
|
}
|
|
40
|
+
/**
|
|
41
|
+
* Function responses that are sent to the model in real time.
|
|
42
|
+
*/
|
|
43
|
+
export interface _LiveClientToolResponse {
|
|
44
|
+
toolResponse: {
|
|
45
|
+
functionResponses: FunctionResponse[];
|
|
46
|
+
};
|
|
47
|
+
}
|
|
40
48
|
/**
|
|
41
49
|
* The first message in a Live session, used to configure generation options.
|
|
42
50
|
*
|
package/dist/index.cjs.js
CHANGED
|
@@ -8,7 +8,7 @@ var util = require('@firebase/util');
|
|
|
8
8
|
var logger$1 = require('@firebase/logger');
|
|
9
9
|
|
|
10
10
|
var name = "@firebase/ai";
|
|
11
|
-
var version = "2.
|
|
11
|
+
var version = "2.4.0-20251007135320";
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* @license
|
|
@@ -585,7 +585,7 @@ const SchemaType = {
|
|
|
585
585
|
* and the {@link https://cloud.google.com/vertex-ai/generative-ai/docs/image/responsible-ai-imagen#safety-filters | Responsible AI and usage guidelines}
|
|
586
586
|
* for more details.
|
|
587
587
|
*
|
|
588
|
-
* @
|
|
588
|
+
* @public
|
|
589
589
|
*/
|
|
590
590
|
const ImagenSafetyFilterLevel = {
|
|
591
591
|
/**
|
|
@@ -614,7 +614,7 @@ const ImagenSafetyFilterLevel = {
|
|
|
614
614
|
* See the <a href="http://firebase.google.com/docs/vertex-ai/generate-images">personGeneration</a>
|
|
615
615
|
* documentation for more details.
|
|
616
616
|
*
|
|
617
|
-
* @
|
|
617
|
+
* @public
|
|
618
618
|
*/
|
|
619
619
|
const ImagenPersonFilterLevel = {
|
|
620
620
|
/**
|
|
@@ -647,7 +647,7 @@ const ImagenPersonFilterLevel = {
|
|
|
647
647
|
* See the {@link http://firebase.google.com/docs/vertex-ai/generate-images | documentation }
|
|
648
648
|
* for more details and examples of the supported aspect ratios.
|
|
649
649
|
*
|
|
650
|
-
* @
|
|
650
|
+
* @public
|
|
651
651
|
*/
|
|
652
652
|
const ImagenAspectRatio = {
|
|
653
653
|
/**
|
|
@@ -2850,6 +2850,25 @@ class LiveSession {
|
|
|
2850
2850
|
this.webSocketHandler.send(JSON.stringify(message));
|
|
2851
2851
|
});
|
|
2852
2852
|
}
|
|
2853
|
+
/**
|
|
2854
|
+
* Sends function responses to the server.
|
|
2855
|
+
*
|
|
2856
|
+
* @param functionResponses - The function responses to send.
|
|
2857
|
+
* @throws If this session has been closed.
|
|
2858
|
+
*
|
|
2859
|
+
* @beta
|
|
2860
|
+
*/
|
|
2861
|
+
async sendFunctionResponses(functionResponses) {
|
|
2862
|
+
if (this.isClosed) {
|
|
2863
|
+
throw new AIError(AIErrorCode.REQUEST_ERROR, 'This LiveSession has been closed and cannot be used.');
|
|
2864
|
+
}
|
|
2865
|
+
const message = {
|
|
2866
|
+
toolResponse: {
|
|
2867
|
+
functionResponses
|
|
2868
|
+
}
|
|
2869
|
+
};
|
|
2870
|
+
this.webSocketHandler.send(JSON.stringify(message));
|
|
2871
|
+
}
|
|
2853
2872
|
/**
|
|
2854
2873
|
* Sends a stream of {@link GenerativeContentBlob}.
|
|
2855
2874
|
*
|
|
@@ -3064,7 +3083,7 @@ class LiveGenerativeModel extends AIModel {
|
|
|
3064
3083
|
* }
|
|
3065
3084
|
* ```
|
|
3066
3085
|
*
|
|
3067
|
-
* @
|
|
3086
|
+
* @public
|
|
3068
3087
|
*/
|
|
3069
3088
|
class ImagenModel extends AIModel {
|
|
3070
3089
|
/**
|
|
@@ -3100,7 +3119,7 @@ class ImagenModel extends AIModel {
|
|
|
3100
3119
|
* returned object will have a `filteredReason` property.
|
|
3101
3120
|
* If all images are filtered, the `images` array will be empty.
|
|
3102
3121
|
*
|
|
3103
|
-
* @
|
|
3122
|
+
* @public
|
|
3104
3123
|
*/
|
|
3105
3124
|
async generateImages(prompt) {
|
|
3106
3125
|
const body = createPredictRequestBody(prompt, {
|
|
@@ -3563,7 +3582,7 @@ class AnyOfSchema extends Schema {
|
|
|
3563
3582
|
* }
|
|
3564
3583
|
* ```
|
|
3565
3584
|
*
|
|
3566
|
-
* @
|
|
3585
|
+
* @public
|
|
3567
3586
|
*/
|
|
3568
3587
|
class ImagenImageFormat {
|
|
3569
3588
|
constructor() {
|
|
@@ -3575,7 +3594,7 @@ class ImagenImageFormat {
|
|
|
3575
3594
|
* @param compressionQuality - The level of compression (a number between 0 and 100).
|
|
3576
3595
|
* @returns An {@link ImagenImageFormat} object for a JPEG image.
|
|
3577
3596
|
*
|
|
3578
|
-
* @
|
|
3597
|
+
* @public
|
|
3579
3598
|
*/
|
|
3580
3599
|
static jpeg(compressionQuality) {
|
|
3581
3600
|
if (compressionQuality &&
|
|
@@ -3589,7 +3608,7 @@ class ImagenImageFormat {
|
|
|
3589
3608
|
*
|
|
3590
3609
|
* @returns An {@link ImagenImageFormat} object for a PNG image.
|
|
3591
3610
|
*
|
|
3592
|
-
* @
|
|
3611
|
+
* @public
|
|
3593
3612
|
*/
|
|
3594
3613
|
static png() {
|
|
3595
3614
|
return { mimeType: 'image/png' };
|
|
@@ -3831,9 +3850,9 @@ class AudioConversationRunner {
|
|
|
3831
3850
|
}
|
|
3832
3851
|
else {
|
|
3833
3852
|
try {
|
|
3834
|
-
const
|
|
3853
|
+
const functionResponse = await this.options.functionCallingHandler(message.functionCalls);
|
|
3835
3854
|
if (!this.isStopped) {
|
|
3836
|
-
void this.liveSession.
|
|
3855
|
+
void this.liveSession.sendFunctionResponses([functionResponse]);
|
|
3837
3856
|
}
|
|
3838
3857
|
}
|
|
3839
3858
|
catch (e) {
|
|
@@ -4053,7 +4072,7 @@ function getGenerativeModel(ai, modelParams, requestOptions) {
|
|
|
4053
4072
|
* @throws If the `apiKey` or `projectId` fields are missing in your
|
|
4054
4073
|
* Firebase config.
|
|
4055
4074
|
*
|
|
4056
|
-
* @
|
|
4075
|
+
* @public
|
|
4057
4076
|
*/
|
|
4058
4077
|
function getImagenModel(ai, modelParams, requestOptions) {
|
|
4059
4078
|
if (!modelParams.model) {
|