1
+ /**
2
+ * @license
3
+ * Copyright 2025 Google LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+
1
18
export interface LanguageModel extends EventTarget {
2
- create ( options ?: LanguageModelCreateOptions ) : Promise < LanguageModel > ;
3
- availability ( options ?: LanguageModelCreateCoreOptions ) : Promise < Availability > ;
4
- prompt ( input : LanguageModelPrompt , options ?: LanguageModelPromptOptions ) : Promise < string > ;
5
- promptStreaming ( input : LanguageModelPrompt , options ?: LanguageModelPromptOptions ) : ReadableStream ;
6
- measureInputUsage ( input : LanguageModelPrompt , options ?: LanguageModelPromptOptions ) : Promise < number > ;
7
- destroy ( ) : undefined ;
8
- }
9
- enum Availability { "unavailable" , "downloadable" , "downloading" , "available" } ;
19
+ create ( options ?: LanguageModelCreateOptions ) : Promise < LanguageModel > ;
20
+ availability ( options ?: LanguageModelCreateCoreOptions ) : Promise < Availability > ;
21
+ prompt (
22
+ input : LanguageModelPrompt ,
23
+ options ?: LanguageModelPromptOptions
24
+ ) : Promise < string > ;
25
+ promptStreaming (
26
+ input : LanguageModelPrompt ,
27
+ options ?: LanguageModelPromptOptions
28
+ ) : ReadableStream ;
29
+ measureInputUsage (
30
+ input : LanguageModelPrompt ,
31
+ options ?: LanguageModelPromptOptions
32
+ ) : Promise < number > ;
33
+ destroy ( ) : undefined ;
34
+ }
35
+ enum Availability {
36
+ 'unavailable' ,
37
+ 'downloadable' ,
38
+ 'downloading' ,
39
+ 'available'
40
+ }
10
41
interface LanguageModelParams {
11
- readonly defaultTopK : number ;
12
- readonly maxTopK : number ;
13
- readonly defaultTemperature : number ;
14
- readonly maxTemperature : number ;
42
+ readonly defaultTopK : number ;
43
+ readonly maxTopK : number ;
44
+ readonly defaultTemperature : number ;
45
+ readonly maxTemperature : number ;
15
46
}
16
47
interface LanguageModelCreateCoreOptions {
17
- topK ?: number ;
18
- temperature ?: number ;
19
- expectedInputs ?: LanguageModelExpectedInput [ ] ;
48
+ topK ?: number ;
49
+ temperature ?: number ;
50
+ expectedInputs ?: LanguageModelExpectedInput [ ] ;
20
51
}
21
52
interface LanguageModelCreateOptions extends LanguageModelCreateCoreOptions {
22
- signal ?: AbortSignal ;
23
- systemPrompt ?: string ;
24
- initialPrompts ?: LanguageModelInitialPrompts ;
53
+ signal ?: AbortSignal ;
54
+ systemPrompt ?: string ;
55
+ initialPrompts ?: LanguageModelInitialPrompts ;
25
56
}
26
57
interface LanguageModelPromptOptions {
27
- signal ?: AbortSignal ;
58
+ signal ?: AbortSignal ;
28
59
}
29
60
interface LanguageModelExpectedInput {
30
- type : LanguageModelMessageType ;
31
- languages ?: string [ ] ;
61
+ type : LanguageModelMessageType ;
62
+ languages ?: string [ ] ;
32
63
}
33
- type LanguageModelPrompt = LanguageModelMessage [ ] | LanguageModelMessageShorthand [ ] | string ;
34
- type LanguageModelInitialPrompts = LanguageModelMessage [ ] | LanguageModelMessageShorthand [ ] ;
64
+ type LanguageModelPrompt =
65
+ | LanguageModelMessage [ ]
66
+ | LanguageModelMessageShorthand [ ]
67
+ | string ;
68
+ type LanguageModelInitialPrompts =
69
+ | LanguageModelMessage [ ]
70
+ | LanguageModelMessageShorthand [ ] ;
35
71
interface LanguageModelMessage {
36
- role : LanguageModelMessageRole ;
37
- content : LanguageModelMessageContent [ ] ;
72
+ role : LanguageModelMessageRole ;
73
+ content : LanguageModelMessageContent [ ] ;
38
74
}
39
75
interface LanguageModelMessageShorthand {
40
- role : LanguageModelMessageRole ;
41
- content : string ;
76
+ role : LanguageModelMessageRole ;
77
+ content : string ;
42
78
}
43
79
interface LanguageModelMessageContent {
44
- type : LanguageModelMessageType ;
45
- content : LanguageModelMessageContentValue ;
80
+ type : LanguageModelMessageType ;
81
+ content : LanguageModelMessageContentValue ;
46
82
}
47
83
interface LanguageModelPromptDict {
48
- role ?: LanguageModelMessageRole ;
49
- type ?: LanguageModelMessageType ;
50
- content : LanguageModelMessageContent ;
84
+ role ?: LanguageModelMessageRole ;
85
+ type ?: LanguageModelMessageType ;
86
+ content : LanguageModelMessageContent ;
51
87
}
52
- type LanguageModelMessageRole = "system" | "user" | "assistant" ;
53
- type LanguageModelMessageType = "text" | "image" | "audio" ;
54
- type LanguageModelMessageContentValue = ImageBitmapSource | AudioBuffer | BufferSource | string ;
88
+ type LanguageModelMessageRole = 'system' | 'user' | 'assistant' ;
89
+ type LanguageModelMessageType = 'text' | 'image' | 'audio' ;
90
+ type LanguageModelMessageContentValue =
91
+ | ImageBitmapSource
92
+ | AudioBuffer
93
+ | BufferSource
94
+ | string ;
0 commit comments