Skip to content

AI Hybrid Inference: flatten initial prompts type #9066

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 5 commits into from
May 28, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 3 additions & 16 deletions common/api-review/ai.api.md
Original file line number Diff line number Diff line change
Expand Up @@ -667,7 +667,7 @@ export class IntegerSchema extends Schema {
// @public (undocumented)
export interface LanguageModelCreateCoreOptions {
// (undocumented)
expectedInputs?: LanguageModelExpectedInput[];
expectedInputs?: LanguageModelExpected[];
// (undocumented)
temperature?: number;
// (undocumented)
Expand All @@ -677,24 +677,19 @@ export interface LanguageModelCreateCoreOptions {
// @public (undocumented)
export interface LanguageModelCreateOptions extends LanguageModelCreateCoreOptions {
// (undocumented)
initialPrompts?: LanguageModelInitialPrompts;
initialPrompts?: LanguageModelMessage[];
// (undocumented)
signal?: AbortSignal;
// (undocumented)
systemPrompt?: string;
}

// @public (undocumented)
export interface LanguageModelExpectedInput {
export interface LanguageModelExpected {
// (undocumented)
languages?: string[];
// (undocumented)
type: LanguageModelMessageType;
}

// @public (undocumented)
export type LanguageModelInitialPrompts = LanguageModelMessage[] | LanguageModelMessageShorthand[];

// @public (undocumented)
export interface LanguageModelMessage {
// (undocumented)
Expand All @@ -717,14 +712,6 @@ export type LanguageModelMessageContentValue = ImageBitmapSource | AudioBuffer |
// @public (undocumented)
export type LanguageModelMessageRole = 'system' | 'user' | 'assistant';

// @public (undocumented)
export interface LanguageModelMessageShorthand {
// (undocumented)
content: string;
// (undocumented)
role: LanguageModelMessageRole;
}

// @public (undocumented)
export type LanguageModelMessageType = 'text' | 'image' | 'audio';

Expand Down
6 changes: 2 additions & 4 deletions docs-devsite/_toc.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -106,14 +106,12 @@ toc:
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: LanguageModelExpected
path: /docs/reference/js/ai.languagemodelexpected.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
Expand Down
4 changes: 2 additions & 2 deletions docs-devsite/ai.languagemodelcreatecoreoptions.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ export interface LanguageModelCreateCoreOptions

| Property | Type | Description |
| --- | --- | --- |
| [expectedInputs](./ai.languagemodelcreatecoreoptions.md#languagemodelcreatecoreoptionsexpectedinputs) | [LanguageModelExpectedInput](./ai.languagemodelexpectedinput.md#languagemodelexpectedinput_interface)<!-- -->\[\] | |
| [expectedInputs](./ai.languagemodelcreatecoreoptions.md#languagemodelcreatecoreoptionsexpectedinputs) | [LanguageModelExpected](./ai.languagemodelexpected.md#languagemodelexpected_interface)<!-- -->\[\] | |
| [temperature](./ai.languagemodelcreatecoreoptions.md#languagemodelcreatecoreoptionstemperature) | number | |
| [topK](./ai.languagemodelcreatecoreoptions.md#languagemodelcreatecoreoptionstopk) | number | |

Expand All @@ -29,7 +29,7 @@ export interface LanguageModelCreateCoreOptions
<b>Signature:</b>

```typescript
expectedInputs?: LanguageModelExpectedInput[];
expectedInputs?: LanguageModelExpected[];
```

## LanguageModelCreateCoreOptions.temperature
Expand Down
13 changes: 2 additions & 11 deletions docs-devsite/ai.languagemodelcreateoptions.md
Original file line number Diff line number Diff line change
Expand Up @@ -21,16 +21,15 @@ export interface LanguageModelCreateOptions extends LanguageModelCreateCoreOptio

| Property | Type | Description |
| --- | --- | --- |
| [initialPrompts](./ai.languagemodelcreateoptions.md#languagemodelcreateoptionsinitialprompts) | [LanguageModelInitialPrompts](./ai.md#languagemodelinitialprompts) | |
| [initialPrompts](./ai.languagemodelcreateoptions.md#languagemodelcreateoptionsinitialprompts) | [LanguageModelMessage](./ai.languagemodelmessage.md#languagemodelmessage_interface)<!-- -->\[\] | |
| [signal](./ai.languagemodelcreateoptions.md#languagemodelcreateoptionssignal) | AbortSignal | |
| [systemPrompt](./ai.languagemodelcreateoptions.md#languagemodelcreateoptionssystemprompt) | string | |

## LanguageModelCreateOptions.initialPrompts

<b>Signature:</b>

```typescript
initialPrompts?: LanguageModelInitialPrompts;
initialPrompts?: LanguageModelMessage[];
```

## LanguageModelCreateOptions.signal
Expand All @@ -40,11 +39,3 @@ initialPrompts?: LanguageModelInitialPrompts;
```typescript
signal?: AbortSignal;
```

## LanguageModelCreateOptions.systemPrompt

<b>Signature:</b>

```typescript
systemPrompt?: string;
```
Original file line number Diff line number Diff line change
Expand Up @@ -9,29 +9,29 @@ overwritten. Changes should be made in the source code at
https://github.com/firebase/firebase-js-sdk
{% endcomment %}

# LanguageModelExpectedInput interface
# LanguageModelExpected interface
<b>Signature:</b>

```typescript
export interface LanguageModelExpectedInput
export interface LanguageModelExpected
```

## Properties

| Property | Type | Description |
| --- | --- | --- |
| [languages](./ai.languagemodelexpectedinput.md#languagemodelexpectedinputlanguages) | string\[\] | |
| [type](./ai.languagemodelexpectedinput.md#languagemodelexpectedinputtype) | [LanguageModelMessageType](./ai.md#languagemodelmessagetype) | |
| [languages](./ai.languagemodelexpected.md#languagemodelexpectedlanguages) | string\[\] | |
| [type](./ai.languagemodelexpected.md#languagemodelexpectedtype) | [LanguageModelMessageType](./ai.md#languagemodelmessagetype) | |

## LanguageModelExpectedInput.languages
## LanguageModelExpected.languages

<b>Signature:</b>

```typescript
languages?: string[];
```

## LanguageModelExpectedInput.type
## LanguageModelExpected.type

<b>Signature:</b>

Expand Down
10 changes: 5 additions & 5 deletions docs-devsite/ai.languagemodelmessagecontent.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,21 +20,21 @@ export interface LanguageModelMessageContent

| Property | Type | Description |
| --- | --- | --- |
| [content](./ai.languagemodelmessagecontent.md#languagemodelmessagecontentcontent) | [LanguageModelMessageContentValue](./ai.md#languagemodelmessagecontentvalue) | |
| [type](./ai.languagemodelmessagecontent.md#languagemodelmessagecontenttype) | [LanguageModelMessageType](./ai.md#languagemodelmessagetype) | |
| [value](./ai.languagemodelmessagecontent.md#languagemodelmessagecontentvalue) | [LanguageModelMessageContentValue](./ai.md#languagemodelmessagecontentvalue) | |

## LanguageModelMessageContent.content
## LanguageModelMessageContent.type

<b>Signature:</b>

```typescript
content: LanguageModelMessageContentValue;
type: LanguageModelMessageType;
```

## LanguageModelMessageContent.type
## LanguageModelMessageContent.value

<b>Signature:</b>

```typescript
type: LanguageModelMessageType;
value: LanguageModelMessageContentValue;
```
40 changes: 0 additions & 40 deletions docs-devsite/ai.languagemodelmessageshorthand.md

This file was deleted.

12 changes: 1 addition & 11 deletions docs-devsite/ai.md
Original file line number Diff line number Diff line change
Expand Up @@ -107,10 +107,9 @@ The Firebase AI Web SDK.
| [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) | |
| [LanguageModelExpected](./ai.languagemodelexpected.md#languagemodelexpected_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. |
Expand Down Expand Up @@ -149,7 +148,6 @@ The Firebase AI Web SDK.
| --- | --- |
| [BackendType](./ai.md#backendtype) | Type alias representing valid backend types. It can be either <code>'VERTEX_AI'</code> or <code>'GOOGLE_AI'</code>. |
| [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) | |
Expand Down Expand Up @@ -383,14 +381,6 @@ Determines whether inference happens on-device or in-cloud.
export type InferenceMode = 'prefer_on_device' | 'only_on_device' | 'only_in_cloud';
```

## LanguageModelInitialPrompts

<b>Signature:</b>

```typescript
export type LanguageModelInitialPrompts = LanguageModelMessage[] | LanguageModelMessageShorthand[];
```

## LanguageModelMessageContentValue

<b>Signature:</b>
Expand Down
4 changes: 1 addition & 3 deletions packages/ai/src/types/index.ts
Original file line number Diff line number Diff line change
Expand Up @@ -26,12 +26,10 @@ export * from './googleai';
export {
LanguageModelCreateOptions,
LanguageModelCreateCoreOptions,
LanguageModelExpectedInput,
LanguageModelInitialPrompts,
LanguageModelExpected,
LanguageModelMessage,
LanguageModelMessageContent,
LanguageModelMessageContentValue,
LanguageModelMessageRole,
LanguageModelMessageShorthand,
LanguageModelMessageType
} from './language-model';
23 changes: 7 additions & 16 deletions packages/ai/src/types/language-model.ts
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,9 @@
* limitations under the License.
*/
/**
* {@see https://github.com/webmachinelearning/prompt-api#full-api-surface-in-web-idl}
* The subset of the Prompt API
* ({@see https://github.com/webmachinelearning/prompt-api#full-api-surface-in-web-idl})
* required for hybrid functionality.
*/
export interface LanguageModel extends EventTarget {
create(options?: LanguageModelCreateOptions): Promise<LanguageModel>;
Expand Down Expand Up @@ -43,37 +45,26 @@ export enum Availability {
export interface LanguageModelCreateCoreOptions {
topK?: number;
temperature?: number;
expectedInputs?: LanguageModelExpectedInput[];
expectedInputs?: LanguageModelExpected[];
}
export interface LanguageModelCreateOptions
extends LanguageModelCreateCoreOptions {
signal?: AbortSignal;
systemPrompt?: string;
initialPrompts?: LanguageModelInitialPrompts;
initialPrompts?: LanguageModelMessage[];
}
export interface LanguageModelPromptOptions {
responseConstraint?: object;
// TODO: Restore AbortSignal once the API is defined.
}
export interface LanguageModelExpectedInput {
export interface LanguageModelExpected {
type: LanguageModelMessageType;
languages?: string[];
}
export type LanguageModelPrompt =
| LanguageModelMessage[]
| LanguageModelMessageShorthand[]
| string;
export type LanguageModelInitialPrompts =
| LanguageModelMessage[]
| LanguageModelMessageShorthand[];
export type LanguageModelPrompt = LanguageModelMessage[];
export interface LanguageModelMessage {
role: LanguageModelMessageRole;
content: LanguageModelMessageContent[];
}
export interface LanguageModelMessageShorthand {
role: LanguageModelMessageRole;
content: string;
}
export interface LanguageModelMessageContent {
type: LanguageModelMessageType;
value: LanguageModelMessageContentValue;
Expand Down
Loading