From 66a66b0c3da181f4a94c85f8f8a30cff7e389d31 Mon Sep 17 00:00:00 2001 From: Erik Eldridge Date: Tue, 13 May 2025 13:56:28 -0700 Subject: [PATCH 1/4] Export language model types --- common/api-review/ai.api.md | 64 ++++++++++++++++++- docs-devsite/_toc.yaml | 12 ++++ .../ai.languagemodelcreatecoreoptions.md | 49 ++++++++++++++ docs-devsite/ai.languagemodelcreateoptions.md | 50 +++++++++++++++ docs-devsite/ai.languagemodelexpectedinput.md | 40 ++++++++++++ docs-devsite/ai.languagemodelmessage.md | 40 ++++++++++++ .../ai.languagemodelmessagecontent.md | 40 ++++++++++++ .../ai.languagemodelmessageshorthand.md | 40 ++++++++++++ docs-devsite/ai.md | 24 +++++++ docs-devsite/ai.ondeviceparams.md | 2 +- packages/ai/src/methods/chrome-adapter.ts | 4 +- packages/ai/src/types/index.ts | 10 +++ packages/ai/src/types/language-model.ts | 10 +-- 13 files changed, 375 insertions(+), 10 deletions(-) create mode 100644 docs-devsite/ai.languagemodelcreatecoreoptions.md create mode 100644 docs-devsite/ai.languagemodelcreateoptions.md create mode 100644 docs-devsite/ai.languagemodelexpectedinput.md create mode 100644 docs-devsite/ai.languagemodelmessage.md create mode 100644 docs-devsite/ai.languagemodelmessagecontent.md create mode 100644 docs-devsite/ai.languagemodelmessageshorthand.md diff --git a/common/api-review/ai.api.md b/common/api-review/ai.api.md index a603a531358..428d99d7df1 100644 --- a/common/api-review/ai.api.md +++ b/common/api-review/ai.api.md @@ -664,6 +664,68 @@ export class IntegerSchema extends Schema { constructor(schemaParams?: SchemaParams); } +// @public (undocumented) +export interface LanguageModelCreateCoreOptions { + // (undocumented) + expectedInputs?: LanguageModelExpectedInput[]; + // (undocumented) + temperature?: number; + // (undocumented) + topK?: number; +} + +// @public (undocumented) +export interface LanguageModelCreateOptions extends LanguageModelCreateCoreOptions { + // (undocumented) + initialPrompts?: LanguageModelInitialPrompts; + // (undocumented) + signal?: AbortSignal; + // (undocumented) + systemPrompt?: string; +} + +// @public (undocumented) +export interface LanguageModelExpectedInput { + // (undocumented) + languages?: string[]; + // (undocumented) + type: LanguageModelMessageType; +} + +// @public (undocumented) +export type LanguageModelInitialPrompts = LanguageModelMessage[] | LanguageModelMessageShorthand[]; + +// @public (undocumented) +export interface LanguageModelMessage { + // (undocumented) + content: LanguageModelMessageContent[]; + // Warning: (ae-forgotten-export) The symbol "LanguageModelMessageRole" needs to be exported by the entry point index.d.ts + // + // (undocumented) + role: LanguageModelMessageRole; +} + +// @public (undocumented) +export interface LanguageModelMessageContent { + // Warning: (ae-forgotten-export) The symbol "LanguageModelMessageContentValue" needs to be exported by the entry point index.d.ts + // + // (undocumented) + content: LanguageModelMessageContentValue; + // (undocumented) + type: LanguageModelMessageType; +} + +// @public (undocumented) +export interface LanguageModelMessageShorthand { + // (undocumented) + content: string; + // (undocumented) + role: LanguageModelMessageRole; +} + +// @public (undocumented) +export type LanguageModelMessageType = 'text' | 'image' | 'audio'; + // @public export enum Modality { AUDIO = "AUDIO", @@ -722,8 +784,6 @@ export interface ObjectSchemaInterface extends SchemaInterface { // @public export interface OnDeviceParams { - // Warning: (ae-forgotten-export) The symbol "LanguageModelCreateOptions" needs to be exported by the entry point index.d.ts - // // (undocumented) createOptions?: LanguageModelCreateOptions; // Warning: (ae-forgotten-export) The symbol "LanguageModelPromptOptions" needs to be exported by the entry point index.d.ts diff --git a/docs-devsite/_toc.yaml b/docs-devsite/_toc.yaml index 4076c443ddc..e8359727cda 100644 --- a/docs-devsite/_toc.yaml +++ b/docs-devsite/_toc.yaml @@ -102,6 +102,18 @@ toc: path: /docs/reference/js/ai.inlinedatapart.md - title: IntegerSchema path: /docs/reference/js/ai.integerschema.md + - title: LanguageModelCreateCoreOptions + path: /docs/reference/js/ai.languagemodelcreatecoreoptions.md + - title: LanguageModelCreateOptions + path: /docs/reference/js/ai.languagemodelcreateoptions.md + - title: LanguageModelExpectedInput + path: /docs/reference/js/ai.languagemodelexpectedinput.md + - title: LanguageModelMessage + path: /docs/reference/js/ai.languagemodelmessage.md + - title: LanguageModelMessageContent + path: /docs/reference/js/ai.languagemodelmessagecontent.md + - title: LanguageModelMessageShorthand + path: /docs/reference/js/ai.languagemodelmessageshorthand.md - title: ModalityTokenCount path: /docs/reference/js/ai.modalitytokencount.md - title: ModelParams diff --git a/docs-devsite/ai.languagemodelcreatecoreoptions.md b/docs-devsite/ai.languagemodelcreatecoreoptions.md new file mode 100644 index 00000000000..2c9f61b149f --- /dev/null +++ b/docs-devsite/ai.languagemodelcreatecoreoptions.md @@ -0,0 +1,49 @@ +Project: /docs/reference/js/_project.yaml +Book: /docs/reference/_book.yaml +page_type: reference + +{% comment %} +DO NOT EDIT THIS FILE! +This is generated by the JS SDK team, and any local changes will be +overwritten. Changes should be made in the source code at +https://github.com/firebase/firebase-js-sdk +{% endcomment %} + +# LanguageModelCreateCoreOptions interface +Signature: + +```typescript +export interface LanguageModelCreateCoreOptions +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [expectedInputs](./ai.languagemodelcreatecoreoptions.md#languagemodelcreatecoreoptionsexpectedinputs) | [LanguageModelExpectedInput](./ai.languagemodelexpectedinput.md#languagemodelexpectedinput_interface)\[\] | | +| [temperature](./ai.languagemodelcreatecoreoptions.md#languagemodelcreatecoreoptionstemperature) | number | | +| [topK](./ai.languagemodelcreatecoreoptions.md#languagemodelcreatecoreoptionstopk) | number | | + +## LanguageModelCreateCoreOptions.expectedInputs + +Signature: + +```typescript +expectedInputs?: LanguageModelExpectedInput[]; +``` + +## LanguageModelCreateCoreOptions.temperature + +Signature: + +```typescript +temperature?: number; +``` + +## LanguageModelCreateCoreOptions.topK + +Signature: + +```typescript +topK?: number; +``` diff --git a/docs-devsite/ai.languagemodelcreateoptions.md b/docs-devsite/ai.languagemodelcreateoptions.md new file mode 100644 index 00000000000..44edcf7e221 --- /dev/null +++ b/docs-devsite/ai.languagemodelcreateoptions.md @@ -0,0 +1,50 @@ +Project: /docs/reference/js/_project.yaml +Book: /docs/reference/_book.yaml +page_type: reference + +{% comment %} +DO NOT EDIT THIS FILE! +This is generated by the JS SDK team, and any local changes will be +overwritten. Changes should be made in the source code at +https://github.com/firebase/firebase-js-sdk +{% endcomment %} + +# LanguageModelCreateOptions interface +Signature: + +```typescript +export interface LanguageModelCreateOptions extends LanguageModelCreateCoreOptions +``` +Extends: [LanguageModelCreateCoreOptions](./ai.languagemodelcreatecoreoptions.md#languagemodelcreatecoreoptions_interface) + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [initialPrompts](./ai.languagemodelcreateoptions.md#languagemodelcreateoptionsinitialprompts) | [LanguageModelInitialPrompts](./ai.md#languagemodelinitialprompts) | | +| [signal](./ai.languagemodelcreateoptions.md#languagemodelcreateoptionssignal) | AbortSignal | | +| [systemPrompt](./ai.languagemodelcreateoptions.md#languagemodelcreateoptionssystemprompt) | string | | + +## LanguageModelCreateOptions.initialPrompts + +Signature: + +```typescript +initialPrompts?: LanguageModelInitialPrompts; +``` + +## LanguageModelCreateOptions.signal + +Signature: + +```typescript +signal?: AbortSignal; +``` + +## LanguageModelCreateOptions.systemPrompt + +Signature: + +```typescript +systemPrompt?: string; +``` diff --git a/docs-devsite/ai.languagemodelexpectedinput.md b/docs-devsite/ai.languagemodelexpectedinput.md new file mode 100644 index 00000000000..d6cbe028fc1 --- /dev/null +++ b/docs-devsite/ai.languagemodelexpectedinput.md @@ -0,0 +1,40 @@ +Project: /docs/reference/js/_project.yaml +Book: /docs/reference/_book.yaml +page_type: reference + +{% comment %} +DO NOT EDIT THIS FILE! +This is generated by the JS SDK team, and any local changes will be +overwritten. Changes should be made in the source code at +https://github.com/firebase/firebase-js-sdk +{% endcomment %} + +# LanguageModelExpectedInput interface +Signature: + +```typescript +export interface LanguageModelExpectedInput +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [languages](./ai.languagemodelexpectedinput.md#languagemodelexpectedinputlanguages) | string\[\] | | +| [type](./ai.languagemodelexpectedinput.md#languagemodelexpectedinputtype) | [LanguageModelMessageType](./ai.md#languagemodelmessagetype) | | + +## LanguageModelExpectedInput.languages + +Signature: + +```typescript +languages?: string[]; +``` + +## LanguageModelExpectedInput.type + +Signature: + +```typescript +type: LanguageModelMessageType; +``` diff --git a/docs-devsite/ai.languagemodelmessage.md b/docs-devsite/ai.languagemodelmessage.md new file mode 100644 index 00000000000..367d781bb38 --- /dev/null +++ b/docs-devsite/ai.languagemodelmessage.md @@ -0,0 +1,40 @@ +Project: /docs/reference/js/_project.yaml +Book: /docs/reference/_book.yaml +page_type: reference + +{% comment %} +DO NOT EDIT THIS FILE! +This is generated by the JS SDK team, and any local changes will be +overwritten. Changes should be made in the source code at +https://github.com/firebase/firebase-js-sdk +{% endcomment %} + +# LanguageModelMessage interface +Signature: + +```typescript +export interface LanguageModelMessage +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [content](./ai.languagemodelmessage.md#languagemodelmessagecontent) | [LanguageModelMessageContent](./ai.languagemodelmessagecontent.md#languagemodelmessagecontent_interface)\[\] | | +| [role](./ai.languagemodelmessage.md#languagemodelmessagerole) | LanguageModelMessageRole | | + +## LanguageModelMessage.content + +Signature: + +```typescript +content: LanguageModelMessageContent[]; +``` + +## LanguageModelMessage.role + +Signature: + +```typescript +role: LanguageModelMessageRole; +``` diff --git a/docs-devsite/ai.languagemodelmessagecontent.md b/docs-devsite/ai.languagemodelmessagecontent.md new file mode 100644 index 00000000000..9c63a326747 --- /dev/null +++ b/docs-devsite/ai.languagemodelmessagecontent.md @@ -0,0 +1,40 @@ +Project: /docs/reference/js/_project.yaml +Book: /docs/reference/_book.yaml +page_type: reference + +{% comment %} +DO NOT EDIT THIS FILE! +This is generated by the JS SDK team, and any local changes will be +overwritten. Changes should be made in the source code at +https://github.com/firebase/firebase-js-sdk +{% endcomment %} + +# LanguageModelMessageContent interface +Signature: + +```typescript +export interface LanguageModelMessageContent +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [content](./ai.languagemodelmessagecontent.md#languagemodelmessagecontentcontent) | LanguageModelMessageContentValue | | +| [type](./ai.languagemodelmessagecontent.md#languagemodelmessagecontenttype) | [LanguageModelMessageType](./ai.md#languagemodelmessagetype) | | + +## LanguageModelMessageContent.content + +Signature: + +```typescript +content: LanguageModelMessageContentValue; +``` + +## LanguageModelMessageContent.type + +Signature: + +```typescript +type: LanguageModelMessageType; +``` diff --git a/docs-devsite/ai.languagemodelmessageshorthand.md b/docs-devsite/ai.languagemodelmessageshorthand.md new file mode 100644 index 00000000000..c65cef2a7dc --- /dev/null +++ b/docs-devsite/ai.languagemodelmessageshorthand.md @@ -0,0 +1,40 @@ +Project: /docs/reference/js/_project.yaml +Book: /docs/reference/_book.yaml +page_type: reference + +{% comment %} +DO NOT EDIT THIS FILE! +This is generated by the JS SDK team, and any local changes will be +overwritten. Changes should be made in the source code at +https://github.com/firebase/firebase-js-sdk +{% endcomment %} + +# LanguageModelMessageShorthand interface +Signature: + +```typescript +export interface LanguageModelMessageShorthand +``` + +## Properties + +| Property | Type | Description | +| --- | --- | --- | +| [content](./ai.languagemodelmessageshorthand.md#languagemodelmessageshorthandcontent) | string | | +| [role](./ai.languagemodelmessageshorthand.md#languagemodelmessageshorthandrole) | LanguageModelMessageRole | | + +## LanguageModelMessageShorthand.content + +Signature: + +```typescript +content: string; +``` + +## LanguageModelMessageShorthand.role + +Signature: + +```typescript +role: LanguageModelMessageRole; +``` diff --git a/docs-devsite/ai.md b/docs-devsite/ai.md index 01b3a455682..c0b818bb6c6 100644 --- a/docs-devsite/ai.md +++ b/docs-devsite/ai.md @@ -105,6 +105,12 @@ The Firebase AI Web SDK. | [ImagenModelParams](./ai.imagenmodelparams.md#imagenmodelparams_interface) | (Public Preview) Parameters for configuring an [ImagenModel](./ai.imagenmodel.md#imagenmodel_class). | | [ImagenSafetySettings](./ai.imagensafetysettings.md#imagensafetysettings_interface) | (Public Preview) Settings for controlling the aggressiveness of filtering out sensitive content.See the [documentation](http://firebase.google.com/docs/vertex-ai/generate-images) for more details. | | [InlineDataPart](./ai.inlinedatapart.md#inlinedatapart_interface) | Content part interface if the part represents an image. | +| [LanguageModelCreateCoreOptions](./ai.languagemodelcreatecoreoptions.md#languagemodelcreatecoreoptions_interface) | | +| [LanguageModelCreateOptions](./ai.languagemodelcreateoptions.md#languagemodelcreateoptions_interface) | | +| [LanguageModelExpectedInput](./ai.languagemodelexpectedinput.md#languagemodelexpectedinput_interface) | | +| [LanguageModelMessage](./ai.languagemodelmessage.md#languagemodelmessage_interface) | | +| [LanguageModelMessageContent](./ai.languagemodelmessagecontent.md#languagemodelmessagecontent_interface) | | +| [LanguageModelMessageShorthand](./ai.languagemodelmessageshorthand.md#languagemodelmessageshorthand_interface) | | | [ModalityTokenCount](./ai.modalitytokencount.md#modalitytokencount_interface) | Represents token counting info for a single modality. | | [ModelParams](./ai.modelparams.md#modelparams_interface) | Params passed to [getGenerativeModel()](./ai.md#getgenerativemodel_c63f46a). | | [ObjectSchemaInterface](./ai.objectschemainterface.md#objectschemainterface_interface) | Interface for [ObjectSchema](./ai.objectschema.md#objectschema_class) class. | @@ -143,6 +149,8 @@ The Firebase AI Web SDK. | --- | --- | | [BackendType](./ai.md#backendtype) | Type alias representing valid backend types. It can be either 'VERTEX_AI' or 'GOOGLE_AI'. | | [InferenceMode](./ai.md#inferencemode) | Determines whether inference happens on-device or in-cloud. | +| [LanguageModelInitialPrompts](./ai.md#languagemodelinitialprompts) | | +| [LanguageModelMessageType](./ai.md#languagemodelmessagetype) | | | [Part](./ai.md#part) | Content part - includes text, image/video, or function call/response part types. | | [ResponseModality](./ai.md#responsemodality) | (Public Preview) Generation modalities to be returned in generation responses. | | [Role](./ai.md#role) | Role is the producer of the content. | @@ -373,6 +381,22 @@ Determines whether inference happens on-device or in-cloud. export type InferenceMode = 'prefer_on_device' | 'only_on_device' | 'only_in_cloud'; ``` +## LanguageModelInitialPrompts + +Signature: + +```typescript +export type LanguageModelInitialPrompts = LanguageModelMessage[] | LanguageModelMessageShorthand[]; +``` + +## LanguageModelMessageType + +Signature: + +```typescript +export type LanguageModelMessageType = 'text' | 'image' | 'audio'; +``` + ## Part Content part - includes text, image/video, or function call/response part types. diff --git a/docs-devsite/ai.ondeviceparams.md b/docs-devsite/ai.ondeviceparams.md index f4bfcbb5cff..16fed65560d 100644 --- a/docs-devsite/ai.ondeviceparams.md +++ b/docs-devsite/ai.ondeviceparams.md @@ -22,7 +22,7 @@ export interface OnDeviceParams | Property | Type | Description | | --- | --- | --- | -| [createOptions](./ai.ondeviceparams.md#ondeviceparamscreateoptions) | LanguageModelCreateOptions | | +| [createOptions](./ai.ondeviceparams.md#ondeviceparamscreateoptions) | [LanguageModelCreateOptions](./ai.languagemodelcreateoptions.md#languagemodelcreateoptions_interface) | | | [promptOptions](./ai.ondeviceparams.md#ondeviceparamspromptoptions) | LanguageModelPromptOptions | | ## OnDeviceParams.createOptions diff --git a/packages/ai/src/methods/chrome-adapter.ts b/packages/ai/src/methods/chrome-adapter.ts index aa3709048a2..d6de108668d 100644 --- a/packages/ai/src/methods/chrome-adapter.ts +++ b/packages/ai/src/methods/chrome-adapter.ts @@ -104,7 +104,7 @@ export class ChromeAdapter { * *

This is comparable to {@link GenerativeModel.generateContent} for generating content in * Cloud.

- * @param request a standard Vertex {@link GenerateContentRequest} + * @param request - a standard Vertex {@link GenerateContentRequest} * @returns {@link Response}, so we can reuse common response formatting. */ async generateContent(request: GenerateContentRequest): Promise { @@ -126,7 +126,7 @@ export class ChromeAdapter { * *

This is comparable to {@link GenerativeModel.generateContentStream} for generating content in * Cloud.

- * @param request a standard Vertex {@link GenerateContentRequest} + * @param request - a standard Vertex {@link GenerateContentRequest} * @returns {@link Response}, so we can reuse common response formatting. */ async generateContentStream( diff --git a/packages/ai/src/types/index.ts b/packages/ai/src/types/index.ts index 01f3e7a701a..ce3d0b826c9 100644 --- a/packages/ai/src/types/index.ts +++ b/packages/ai/src/types/index.ts @@ -23,3 +23,13 @@ export * from './error'; export * from './schema'; export * from './imagen'; export * from './googleai'; +export { + LanguageModelCreateOptions, + LanguageModelCreateCoreOptions, + LanguageModelExpectedInput, + LanguageModelInitialPrompts, + LanguageModelMessage, + LanguageModelMessageContent, + LanguageModelMessageShorthand, + LanguageModelMessageType +} from './language-model'; diff --git a/packages/ai/src/types/language-model.ts b/packages/ai/src/types/language-model.ts index 22916e7ff96..0a62c7a1407 100644 --- a/packages/ai/src/types/language-model.ts +++ b/packages/ai/src/types/language-model.ts @@ -53,20 +53,20 @@ export interface LanguageModelPromptOptions { responseConstraint?: object; // TODO: Restore AbortSignal once the API is defined. } -interface LanguageModelExpectedInput { +export interface LanguageModelExpectedInput { type: LanguageModelMessageType; languages?: string[]; } // TODO: revert to type from Prompt API explainer once it's supported. export type LanguageModelPrompt = LanguageModelMessageContent[]; -type LanguageModelInitialPrompts = +export type LanguageModelInitialPrompts = | LanguageModelMessage[] | LanguageModelMessageShorthand[]; -interface LanguageModelMessage { +export interface LanguageModelMessage { role: LanguageModelMessageRole; content: LanguageModelMessageContent[]; } -interface LanguageModelMessageShorthand { +export interface LanguageModelMessageShorthand { role: LanguageModelMessageRole; content: string; } @@ -75,7 +75,7 @@ export interface LanguageModelMessageContent { content: LanguageModelMessageContentValue; } type LanguageModelMessageRole = 'system' | 'user' | 'assistant'; -type LanguageModelMessageType = 'text' | 'image' | 'audio'; +export type LanguageModelMessageType = 'text' | 'image' | 'audio'; type LanguageModelMessageContentValue = | ImageBitmapSource | AudioBuffer From 1e71a5665f7ae4778fd7b94db1939f3434258a15 Mon Sep 17 00:00:00 2001 From: Erik Eldridge Date: Tue, 13 May 2025 14:12:03 -0700 Subject: [PATCH 2/4] Add missing types --- common/api-review/ai.api.md | 5 +++-- docs-devsite/ai.languagemodelmessage.md | 2 +- docs-devsite/ai.languagemodelmessageshorthand.md | 2 +- docs-devsite/ai.md | 9 +++++++++ packages/ai/src/types/index.ts | 1 + packages/ai/src/types/language-model.ts | 4 ++-- 6 files changed, 17 insertions(+), 6 deletions(-) diff --git a/common/api-review/ai.api.md b/common/api-review/ai.api.md index 428d99d7df1..b059c2e4c54 100644 --- a/common/api-review/ai.api.md +++ b/common/api-review/ai.api.md @@ -699,8 +699,6 @@ export type LanguageModelInitialPrompts = LanguageModelMessage[] | LanguageModel export interface LanguageModelMessage { // (undocumented) content: LanguageModelMessageContent[]; - // Warning: (ae-forgotten-export) The symbol "LanguageModelMessageRole" needs to be exported by the entry point index.d.ts - // // (undocumented) role: LanguageModelMessageRole; } @@ -715,6 +713,9 @@ export interface LanguageModelMessageContent { type: LanguageModelMessageType; } +// @public (undocumented) +export type LanguageModelMessageRole = 'system' | 'user' | 'assistant'; + // @public (undocumented) export interface LanguageModelMessageShorthand { // (undocumented) diff --git a/docs-devsite/ai.languagemodelmessage.md b/docs-devsite/ai.languagemodelmessage.md index 367d781bb38..420059e4892 100644 --- a/docs-devsite/ai.languagemodelmessage.md +++ b/docs-devsite/ai.languagemodelmessage.md @@ -21,7 +21,7 @@ export interface LanguageModelMessage | Property | Type | Description | | --- | --- | --- | | [content](./ai.languagemodelmessage.md#languagemodelmessagecontent) | [LanguageModelMessageContent](./ai.languagemodelmessagecontent.md#languagemodelmessagecontent_interface)\[\] | | -| [role](./ai.languagemodelmessage.md#languagemodelmessagerole) | LanguageModelMessageRole | | +| [role](./ai.languagemodelmessage.md#languagemodelmessagerole) | [LanguageModelMessageRole](./ai.md#languagemodelmessagerole) | | ## LanguageModelMessage.content diff --git a/docs-devsite/ai.languagemodelmessageshorthand.md b/docs-devsite/ai.languagemodelmessageshorthand.md index c65cef2a7dc..bf821b31d52 100644 --- a/docs-devsite/ai.languagemodelmessageshorthand.md +++ b/docs-devsite/ai.languagemodelmessageshorthand.md @@ -21,7 +21,7 @@ export interface LanguageModelMessageShorthand | Property | Type | Description | | --- | --- | --- | | [content](./ai.languagemodelmessageshorthand.md#languagemodelmessageshorthandcontent) | string | | -| [role](./ai.languagemodelmessageshorthand.md#languagemodelmessageshorthandrole) | LanguageModelMessageRole | | +| [role](./ai.languagemodelmessageshorthand.md#languagemodelmessageshorthandrole) | [LanguageModelMessageRole](./ai.md#languagemodelmessagerole) | | ## LanguageModelMessageShorthand.content diff --git a/docs-devsite/ai.md b/docs-devsite/ai.md index c0b818bb6c6..a3fc9912346 100644 --- a/docs-devsite/ai.md +++ b/docs-devsite/ai.md @@ -150,6 +150,7 @@ The Firebase AI Web SDK. | [BackendType](./ai.md#backendtype) | Type alias representing valid backend types. It can be either 'VERTEX_AI' or 'GOOGLE_AI'. | | [InferenceMode](./ai.md#inferencemode) | Determines whether inference happens on-device or in-cloud. | | [LanguageModelInitialPrompts](./ai.md#languagemodelinitialprompts) | | +| [LanguageModelMessageRole](./ai.md#languagemodelmessagerole) | | | [LanguageModelMessageType](./ai.md#languagemodelmessagetype) | | | [Part](./ai.md#part) | Content part - includes text, image/video, or function call/response part types. | | [ResponseModality](./ai.md#responsemodality) | (Public Preview) Generation modalities to be returned in generation responses. | @@ -389,6 +390,14 @@ export type InferenceMode = 'prefer_on_device' | 'only_on_device' | 'only_in_clo export type LanguageModelInitialPrompts = LanguageModelMessage[] | LanguageModelMessageShorthand[]; ``` +## LanguageModelMessageRole + +Signature: + +```typescript +export type LanguageModelMessageRole = 'system' | 'user' | 'assistant'; +``` + ## LanguageModelMessageType Signature: diff --git a/packages/ai/src/types/index.ts b/packages/ai/src/types/index.ts index ce3d0b826c9..5f309a3f4a4 100644 --- a/packages/ai/src/types/index.ts +++ b/packages/ai/src/types/index.ts @@ -30,6 +30,7 @@ export { LanguageModelInitialPrompts, LanguageModelMessage, LanguageModelMessageContent, + LanguageModelMessageRole, LanguageModelMessageShorthand, LanguageModelMessageType } from './language-model'; diff --git a/packages/ai/src/types/language-model.ts b/packages/ai/src/types/language-model.ts index 0a62c7a1407..de4020f66bf 100644 --- a/packages/ai/src/types/language-model.ts +++ b/packages/ai/src/types/language-model.ts @@ -74,9 +74,9 @@ export interface LanguageModelMessageContent { type: LanguageModelMessageType; content: LanguageModelMessageContentValue; } -type LanguageModelMessageRole = 'system' | 'user' | 'assistant'; +export type LanguageModelMessageRole = 'system' | 'user' | 'assistant'; export type LanguageModelMessageType = 'text' | 'image' | 'audio'; -type LanguageModelMessageContentValue = +export type LanguageModelMessageContentValue = | ImageBitmapSource | AudioBuffer | BufferSource From 48debc14765e89c5f378781bd298d0dbff91ba72 Mon Sep 17 00:00:00 2001 From: Erik Eldridge Date: Tue, 13 May 2025 14:35:55 -0700 Subject: [PATCH 3/4] Add content value type --- common/api-review/ai.api.md | 5 +++-- docs-devsite/ai.languagemodelmessagecontent.md | 2 +- docs-devsite/ai.md | 9 +++++++++ packages/ai/src/types/index.ts | 3 ++- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/common/api-review/ai.api.md b/common/api-review/ai.api.md index b059c2e4c54..a7da6210ada 100644 --- a/common/api-review/ai.api.md +++ b/common/api-review/ai.api.md @@ -705,14 +705,15 @@ export interface LanguageModelMessage { // @public (undocumented) export interface LanguageModelMessageContent { - // Warning: (ae-forgotten-export) The symbol "LanguageModelMessageContentValue" needs to be exported by the entry point index.d.ts - // // (undocumented) content: LanguageModelMessageContentValue; // (undocumented) type: LanguageModelMessageType; } +// @public (undocumented) +export type LanguageModelMessageContentValue = ImageBitmapSource | AudioBuffer | BufferSource | string; + // @public (undocumented) export type LanguageModelMessageRole = 'system' | 'user' | 'assistant'; diff --git a/docs-devsite/ai.languagemodelmessagecontent.md b/docs-devsite/ai.languagemodelmessagecontent.md index 9c63a326747..06830ace272 100644 --- a/docs-devsite/ai.languagemodelmessagecontent.md +++ b/docs-devsite/ai.languagemodelmessagecontent.md @@ -20,7 +20,7 @@ export interface LanguageModelMessageContent | Property | Type | Description | | --- | --- | --- | -| [content](./ai.languagemodelmessagecontent.md#languagemodelmessagecontentcontent) | LanguageModelMessageContentValue | | +| [content](./ai.languagemodelmessagecontent.md#languagemodelmessagecontentcontent) | [LanguageModelMessageContentValue](./ai.md#languagemodelmessagecontentvalue) | | | [type](./ai.languagemodelmessagecontent.md#languagemodelmessagecontenttype) | [LanguageModelMessageType](./ai.md#languagemodelmessagetype) | | ## LanguageModelMessageContent.content diff --git a/docs-devsite/ai.md b/docs-devsite/ai.md index a3fc9912346..699d3a83cd6 100644 --- a/docs-devsite/ai.md +++ b/docs-devsite/ai.md @@ -150,6 +150,7 @@ The Firebase AI Web SDK. | [BackendType](./ai.md#backendtype) | Type alias representing valid backend types. It can be either 'VERTEX_AI' or 'GOOGLE_AI'. | | [InferenceMode](./ai.md#inferencemode) | Determines whether inference happens on-device or in-cloud. | | [LanguageModelInitialPrompts](./ai.md#languagemodelinitialprompts) | | +| [LanguageModelMessageContentValue](./ai.md#languagemodelmessagecontentvalue) | | | [LanguageModelMessageRole](./ai.md#languagemodelmessagerole) | | | [LanguageModelMessageType](./ai.md#languagemodelmessagetype) | | | [Part](./ai.md#part) | Content part - includes text, image/video, or function call/response part types. | @@ -390,6 +391,14 @@ export type InferenceMode = 'prefer_on_device' | 'only_on_device' | 'only_in_clo export type LanguageModelInitialPrompts = LanguageModelMessage[] | LanguageModelMessageShorthand[]; ``` +## LanguageModelMessageContentValue + +Signature: + +```typescript +export type LanguageModelMessageContentValue = ImageBitmapSource | AudioBuffer | BufferSource | string; +``` + ## LanguageModelMessageRole Signature: diff --git a/packages/ai/src/types/index.ts b/packages/ai/src/types/index.ts index 5f309a3f4a4..922809a920e 100644 --- a/packages/ai/src/types/index.ts +++ b/packages/ai/src/types/index.ts @@ -30,7 +30,8 @@ export { LanguageModelInitialPrompts, LanguageModelMessage, LanguageModelMessageContent, + LanguageModelMessageContentValue, LanguageModelMessageRole, LanguageModelMessageShorthand, - LanguageModelMessageType + LanguageModelMessageType, } from './language-model'; From 8601c4e79a5eca2850c73a7350e3218a5b000812 Mon Sep 17 00:00:00 2001 From: Erik Eldridge Date: Tue, 13 May 2025 14:38:24 -0700 Subject: [PATCH 4/4] Run yarn format --- packages/ai/src/types/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/ai/src/types/index.ts b/packages/ai/src/types/index.ts index 922809a920e..698f15b8aea 100644 --- a/packages/ai/src/types/index.ts +++ b/packages/ai/src/types/index.ts @@ -33,5 +33,5 @@ export { LanguageModelMessageContentValue, LanguageModelMessageRole, LanguageModelMessageShorthand, - LanguageModelMessageType, + LanguageModelMessageType } from './language-model';