Skip to content

Commit eb6d43a

Browse files
committed
Merge branch 'main' into ah/ai-thought-summaries
2 parents 364370e + cc605e7 commit eb6d43a

File tree

77 files changed

+2541
-176
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

77 files changed

+2541
-176
lines changed

.changeset/strong-avocados-prove.md

Lines changed: 0 additions & 5 deletions
This file was deleted.

common/api-review/ai.api.md

Lines changed: 95 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -125,7 +125,7 @@ export class BooleanSchema extends Schema {
125125

126126
// @public
127127
export class ChatSession {
128-
constructor(apiSettings: ApiSettings, model: string, params?: StartChatParams | undefined, requestOptions?: RequestOptions | undefined);
128+
constructor(apiSettings: ApiSettings, model: string, chromeAdapter?: ChromeAdapter | undefined, params?: StartChatParams | undefined, requestOptions?: RequestOptions | undefined);
129129
getHistory(): Promise<Content[]>;
130130
// (undocumented)
131131
model: string;
@@ -137,6 +137,15 @@ export class ChatSession {
137137
sendMessageStream(request: string | Array<string | Part>): Promise<GenerateContentStreamResult>;
138138
}
139139

140+
// @public
141+
export interface ChromeAdapter {
142+
// @internal (undocumented)
143+
countTokens(request: CountTokensRequest): Promise<Response>;
144+
generateContent(request: GenerateContentRequest): Promise<Response>;
145+
generateContentStream(request: GenerateContentRequest): Promise<Response>;
146+
isAvailable(request: GenerateContentRequest): Promise<boolean>;
147+
}
148+
140149
// @public
141150
export interface Citation {
142151
// (undocumented)
@@ -428,7 +437,7 @@ export interface GenerativeContentBlob {
428437

429438
// @public
430439
export class GenerativeModel extends AIModel {
431-
constructor(ai: AI, modelParams: ModelParams, requestOptions?: RequestOptions);
440+
constructor(ai: AI, modelParams: ModelParams, requestOptions?: RequestOptions, chromeAdapter?: ChromeAdapter | undefined);
432441
countTokens(request: CountTokensRequest | string | Array<string | Part>): Promise<CountTokensResponse>;
433442
generateContent(request: GenerateContentRequest | string | Array<string | Part>): Promise<GenerateContentResult>;
434443
generateContentStream(request: GenerateContentRequest | string | Array<string | Part>): Promise<GenerateContentStreamResult>;
@@ -451,7 +460,7 @@ export class GenerativeModel extends AIModel {
451460
export function getAI(app?: FirebaseApp, options?: AIOptions): AI;
452461

453462
// @public
454-
export function getGenerativeModel(ai: AI, modelParams: ModelParams, requestOptions?: RequestOptions): GenerativeModel;
463+
export function getGenerativeModel(ai: AI, modelParams: ModelParams | HybridParams, requestOptions?: RequestOptions): GenerativeModel;
455464

456465
// @beta
457466
export function getImagenModel(ai: AI, modelParams: ImagenModelParams, requestOptions?: RequestOptions): ImagenModel;
@@ -600,6 +609,13 @@ export const HarmSeverity: {
600609
// @public
601610
export type HarmSeverity = (typeof HarmSeverity)[keyof typeof HarmSeverity];
602611

612+
// @public
613+
export interface HybridParams {
614+
inCloudParams?: ModelParams;
615+
mode: InferenceMode;
616+
onDeviceParams?: OnDeviceParams;
617+
}
618+
603619
// @beta
604620
export const ImagenAspectRatio: {
605621
readonly SQUARE: "1:1";
@@ -612,7 +628,7 @@ export const ImagenAspectRatio: {
612628
// @beta
613629
export type ImagenAspectRatio = (typeof ImagenAspectRatio)[keyof typeof ImagenAspectRatio];
614630

615-
// @public
631+
// @beta
616632
export interface ImagenGCSImage {
617633
gcsURI: string;
618634
mimeType: string;
@@ -693,6 +709,16 @@ export interface ImagenSafetySettings {
693709
safetyFilterLevel?: ImagenSafetyFilterLevel;
694710
}
695711

712+
// @public
713+
export const InferenceMode: {
714+
readonly PREFER_ON_DEVICE: "prefer_on_device";
715+
readonly ONLY_ON_DEVICE: "only_on_device";
716+
readonly ONLY_IN_CLOUD: "only_in_cloud";
717+
};
718+
719+
// @public
720+
export type InferenceMode = (typeof InferenceMode)[keyof typeof InferenceMode];
721+
696722
// @public
697723
export interface InlineDataPart {
698724
// (undocumented)
@@ -715,6 +741,63 @@ export class IntegerSchema extends Schema {
715741
constructor(schemaParams?: SchemaParams);
716742
}
717743

744+
// @public
745+
export interface LanguageModelCreateCoreOptions {
746+
// (undocumented)
747+
expectedInputs?: LanguageModelExpected[];
748+
// (undocumented)
749+
temperature?: number;
750+
// (undocumented)
751+
topK?: number;
752+
}
753+
754+
// @public
755+
export interface LanguageModelCreateOptions extends LanguageModelCreateCoreOptions {
756+
// (undocumented)
757+
initialPrompts?: LanguageModelMessage[];
758+
// (undocumented)
759+
signal?: AbortSignal;
760+
}
761+
762+
// @public
763+
export interface LanguageModelExpected {
764+
// (undocumented)
765+
languages?: string[];
766+
// (undocumented)
767+
type: LanguageModelMessageType;
768+
}
769+
770+
// @public
771+
export interface LanguageModelMessage {
772+
// (undocumented)
773+
content: LanguageModelMessageContent[];
774+
// (undocumented)
775+
role: LanguageModelMessageRole;
776+
}
777+
778+
// @public
779+
export interface LanguageModelMessageContent {
780+
// (undocumented)
781+
type: LanguageModelMessageType;
782+
// (undocumented)
783+
value: LanguageModelMessageContentValue;
784+
}
785+
786+
// @public
787+
export type LanguageModelMessageContentValue = ImageBitmapSource | AudioBuffer | BufferSource | string;
788+
789+
// @public
790+
export type LanguageModelMessageRole = 'system' | 'user' | 'assistant';
791+
792+
// @public
793+
export type LanguageModelMessageType = 'text' | 'image' | 'audio';
794+
795+
// @public
796+
export interface LanguageModelPromptOptions {
797+
// (undocumented)
798+
responseConstraint?: object;
799+
}
800+
718801
// @public
719802
export const Modality: {
720803
readonly MODALITY_UNSPECIFIED: "MODALITY_UNSPECIFIED";
@@ -773,6 +856,14 @@ export interface ObjectSchemaRequest extends SchemaRequest {
773856
type: 'object';
774857
}
775858

859+
// @public
860+
export interface OnDeviceParams {
861+
// (undocumented)
862+
createOptions?: LanguageModelCreateOptions;
863+
// (undocumented)
864+
promptOptions?: LanguageModelPromptOptions;
865+
}
866+
776867
// @public
777868
export type Part = TextPart | InlineDataPart | FunctionCallPart | FunctionResponsePart | FileDataPart;
778869

docs-devsite/_toc.yaml

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@ toc:
2424
path: /docs/reference/js/ai.booleanschema.md
2525
- title: ChatSession
2626
path: /docs/reference/js/ai.chatsession.md
27+
- title: ChromeAdapter
28+
path: /docs/reference/js/ai.chromeadapter.md
2729
- title: Citation
2830
path: /docs/reference/js/ai.citation.md
2931
- title: CitationMetadata
@@ -88,6 +90,8 @@ toc:
8890
path: /docs/reference/js/ai.groundingmetadata.md
8991
- title: GroundingSupport
9092
path: /docs/reference/js/ai.groundingsupport.md
93+
- title: HybridParams
94+
path: /docs/reference/js/ai.hybridparams.md
9195
- title: ImagenGCSImage
9296
path: /docs/reference/js/ai.imagengcsimage.md
9397
- title: ImagenGenerationConfig
@@ -108,6 +112,18 @@ toc:
108112
path: /docs/reference/js/ai.inlinedatapart.md
109113
- title: IntegerSchema
110114
path: /docs/reference/js/ai.integerschema.md
115+
- title: LanguageModelCreateCoreOptions
116+
path: /docs/reference/js/ai.languagemodelcreatecoreoptions.md
117+
- title: LanguageModelCreateOptions
118+
path: /docs/reference/js/ai.languagemodelcreateoptions.md
119+
- title: LanguageModelExpected
120+
path: /docs/reference/js/ai.languagemodelexpected.md
121+
- title: LanguageModelMessage
122+
path: /docs/reference/js/ai.languagemodelmessage.md
123+
- title: LanguageModelMessageContent
124+
path: /docs/reference/js/ai.languagemodelmessagecontent.md
125+
- title: LanguageModelPromptOptions
126+
path: /docs/reference/js/ai.languagemodelpromptoptions.md
111127
- title: ModalityTokenCount
112128
path: /docs/reference/js/ai.modalitytokencount.md
113129
- title: ModelParams
@@ -118,6 +134,8 @@ toc:
118134
path: /docs/reference/js/ai.objectschema.md
119135
- title: ObjectSchemaRequest
120136
path: /docs/reference/js/ai.objectschemarequest.md
137+
- title: OnDeviceParams
138+
path: /docs/reference/js/ai.ondeviceparams.md
121139
- title: PromptFeedback
122140
path: /docs/reference/js/ai.promptfeedback.md
123141
- title: RequestOptions

docs-devsite/ai.chatsession.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ export declare class ChatSession
2222

2323
| Constructor | Modifiers | Description |
2424
| --- | --- | --- |
25-
| [(constructor)(apiSettings, model, params, requestOptions)](./ai.chatsession.md#chatsessionconstructor) | | Constructs a new instance of the <code>ChatSession</code> class |
25+
| [(constructor)(apiSettings, model, chromeAdapter, params, requestOptions)](./ai.chatsession.md#chatsessionconstructor) | | Constructs a new instance of the <code>ChatSession</code> class |
2626

2727
## Properties
2828

@@ -47,7 +47,7 @@ Constructs a new instance of the `ChatSession` class
4747
<b>Signature:</b>
4848

4949
```typescript
50-
constructor(apiSettings: ApiSettings, model: string, params?: StartChatParams | undefined, requestOptions?: RequestOptions | undefined);
50+
constructor(apiSettings: ApiSettings, model: string, chromeAdapter?: ChromeAdapter | undefined, params?: StartChatParams | undefined, requestOptions?: RequestOptions | undefined);
5151
```
5252

5353
#### Parameters
@@ -56,6 +56,7 @@ constructor(apiSettings: ApiSettings, model: string, params?: StartChatParams |
5656
| --- | --- | --- |
5757
| apiSettings | ApiSettings | |
5858
| model | string | |
59+
| chromeAdapter | [ChromeAdapter](./ai.chromeadapter.md#chromeadapter_interface) \| undefined | |
5960
| params | [StartChatParams](./ai.startchatparams.md#startchatparams_interface) \| undefined | |
6061
| requestOptions | [RequestOptions](./ai.requestoptions.md#requestoptions_interface) \| undefined | |
6162

docs-devsite/ai.chromeadapter.md

Lines changed: 94 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,94 @@
1+
Project: /docs/reference/js/_project.yaml
2+
Book: /docs/reference/_book.yaml
3+
page_type: reference
4+
5+
{% comment %}
6+
DO NOT EDIT THIS FILE!
7+
This is generated by the JS SDK team, and any local changes will be
8+
overwritten. Changes should be made in the source code at
9+
https://github.com/firebase/firebase-js-sdk
10+
{% endcomment %}
11+
12+
# ChromeAdapter interface
13+
<b>(EXPERIMENTAL)</b> Defines an inference "backend" that uses Chrome's on-device model, and encapsulates logic for detecting when on-device inference is possible.
14+
15+
These methods should not be called directly by the user.
16+
17+
<b>Signature:</b>
18+
19+
```typescript
20+
export interface ChromeAdapter
21+
```
22+
23+
## Methods
24+
25+
| Method | Description |
26+
| --- | --- |
27+
| [generateContent(request)](./ai.chromeadapter.md#chromeadaptergeneratecontent) | Generates content using on-device inference. |
28+
| [generateContentStream(request)](./ai.chromeadapter.md#chromeadaptergeneratecontentstream) | Generates a content stream using on-device inference. |
29+
| [isAvailable(request)](./ai.chromeadapter.md#chromeadapterisavailable) | Checks if the on-device model is capable of handling a given request. |
30+
31+
## ChromeAdapter.generateContent()
32+
33+
Generates content using on-device inference.
34+
35+
This is comparable to [GenerativeModel.generateContent()](./ai.generativemodel.md#generativemodelgeneratecontent) for generating content using in-cloud inference.
36+
37+
<b>Signature:</b>
38+
39+
```typescript
40+
generateContent(request: GenerateContentRequest): Promise<Response>;
41+
```
42+
43+
#### Parameters
44+
45+
| Parameter | Type | Description |
46+
| --- | --- | --- |
47+
| request | [GenerateContentRequest](./ai.generatecontentrequest.md#generatecontentrequest_interface) | a standard Firebase AI [GenerateContentRequest](./ai.generatecontentrequest.md#generatecontentrequest_interface) |
48+
49+
<b>Returns:</b>
50+
51+
Promise&lt;Response&gt;
52+
53+
## ChromeAdapter.generateContentStream()
54+
55+
Generates a content stream using on-device inference.
56+
57+
This is comparable to [GenerativeModel.generateContentStream()](./ai.generativemodel.md#generativemodelgeneratecontentstream) for generating a content stream using in-cloud inference.
58+
59+
<b>Signature:</b>
60+
61+
```typescript
62+
generateContentStream(request: GenerateContentRequest): Promise<Response>;
63+
```
64+
65+
#### Parameters
66+
67+
| Parameter | Type | Description |
68+
| --- | --- | --- |
69+
| request | [GenerateContentRequest](./ai.generatecontentrequest.md#generatecontentrequest_interface) | a standard Firebase AI [GenerateContentRequest](./ai.generatecontentrequest.md#generatecontentrequest_interface) |
70+
71+
<b>Returns:</b>
72+
73+
Promise&lt;Response&gt;
74+
75+
## ChromeAdapter.isAvailable()
76+
77+
Checks if the on-device model is capable of handling a given request.
78+
79+
<b>Signature:</b>
80+
81+
```typescript
82+
isAvailable(request: GenerateContentRequest): Promise<boolean>;
83+
```
84+
85+
#### Parameters
86+
87+
| Parameter | Type | Description |
88+
| --- | --- | --- |
89+
| request | [GenerateContentRequest](./ai.generatecontentrequest.md#generatecontentrequest_interface) | A potential request to be passed to the model. |
90+
91+
<b>Returns:</b>
92+
93+
Promise&lt;boolean&gt;
94+

docs-devsite/ai.generativemodel.md

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export declare class GenerativeModel extends AIModel
2323
2424
| Constructor | Modifiers | Description |
2525
| --- | --- | --- |
26-
| [(constructor)(ai, modelParams, requestOptions)](./ai.generativemodel.md#generativemodelconstructor) | | Constructs a new instance of the <code>GenerativeModel</code> class |
26+
| [(constructor)(ai, modelParams, requestOptions, chromeAdapter)](./ai.generativemodel.md#generativemodelconstructor) | | Constructs a new instance of the <code>GenerativeModel</code> class |
2727
2828
## Properties
2929
@@ -52,7 +52,7 @@ Constructs a new instance of the `GenerativeModel` class
5252
<b>Signature:</b>
5353
5454
```typescript
55-
constructor(ai: AI, modelParams: ModelParams, requestOptions?: RequestOptions);
55+
constructor(ai: AI, modelParams: ModelParams, requestOptions?: RequestOptions, chromeAdapter?: ChromeAdapter | undefined);
5656
```
5757
5858
#### Parameters
@@ -62,6 +62,7 @@ constructor(ai: AI, modelParams: ModelParams, requestOptions?: RequestOptions);
6262
| ai | [AI](./ai.ai.md#ai_interface) | |
6363
| modelParams | [ModelParams](./ai.modelparams.md#modelparams_interface) | |
6464
| requestOptions | [RequestOptions](./ai.requestoptions.md#requestoptions_interface) | |
65+
| chromeAdapter | [ChromeAdapter](./ai.chromeadapter.md#chromeadapter_interface) \| undefined | |
6566
6667
## GenerativeModel.generationConfig
6768

0 commit comments

Comments
 (0)