Skip to content

Commit 8e076f7

Browse files
authored
Enhance LanguageModel with tool call definitions
Added new types and enums for tool calls and responses.
1 parent 5379da1 commit 8e076f7

File tree

1 file changed

+44
-7
lines changed

1 file changed

+44
-7
lines changed

index.bs

Lines changed: 44 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -39,8 +39,11 @@ interface LanguageModel : EventTarget {
3939
static Promise<Availability> availability(optional LanguageModelCreateCoreOptions options = {});
4040
static Promise<LanguageModelParams?> params();
4141

42+
// The return type from prompt() method and those alike.
43+
typedef (DOMString or sequence<LanguageModelMessageContent>) LanguageModelPromptResult;
44+
4245
// These will throw "NotSupportedError" DOMExceptions if role = "system"
43-
Promise<DOMString> prompt(
46+
Promise<LanguageModelPromptResult> prompt(
4447
LanguageModelPrompt input,
4548
optional LanguageModelPromptOptions options = {}
4649
);
@@ -80,13 +83,11 @@ interface LanguageModelParams {
8083
callback LanguageModelToolFunction = Promise<DOMString> (any... arguments);
8184

8285
// A description of a tool call that a language model can invoke.
83-
dictionary LanguageModelTool {
86+
dictionary LanguageModelToolDeclaration {
8487
required DOMString name;
8588
required DOMString description;
8689
// JSON schema for the input parameters.
8790
required object inputSchema;
88-
// The function to be invoked by user agent on behalf of language model.
89-
required LanguageModelToolFunction execute;
9091
};
9192

9293
dictionary LanguageModelCreateCoreOptions {
@@ -97,7 +98,7 @@ dictionary LanguageModelCreateCoreOptions {
9798

9899
sequence<LanguageModelExpected> expectedInputs;
99100
sequence<LanguageModelExpected> expectedOutputs;
100-
sequence<LanguageModelTool> tools;
101+
sequence<LanguageModelToolDeclaration> tools;
101102
};
102103

103104
dictionary LanguageModelCreateOptions : LanguageModelCreateCoreOptions {
@@ -148,16 +149,52 @@ dictionary LanguageModelMessageContent {
148149
required LanguageModelMessageValue value;
149150
};
150151

151-
enum LanguageModelMessageRole { "system", "user", "assistant" };
152+
enum LanguageModelMessageRole { "system", "user", "assistant", "tool-call", "tool-response" };
152153

153-
enum LanguageModelMessageType { "text", "image", "audio" };
154+
enum LanguageModelMessageType { "text", "image", "audio","tool-call", "tool-response" };
154155

155156
typedef (
156157
ImageBitmapSource
157158
or AudioBuffer
158159
or BufferSource
159160
or DOMString
161+
or LanguageModelToolCall
162+
or LanguageModelToolResponse
160163
) LanguageModelMessageValue;
164+
165+
// The definitions of `LanguageModelToolCall` and `LanguageModelToolResponse` values
166+
enum LanguageModelToolResultType { "text", "image", "audio", "object" };
167+
168+
dictionary LanguageModelToolResultContent {
169+
required LanguageModelToolResultType type;
170+
required any value;
171+
};
172+
173+
// Represents a tool call requested by the language model.
174+
dictionary LanguageModelToolCall {
175+
required DOMString callID;
176+
required DOMString name;
177+
object arguments;
178+
};
179+
180+
// Successful tool execution result.
181+
dictionary LanguageModelToolSuccess {
182+
required DOMString callID;
183+
required DOMString name;
184+
required sequence<LanguageModelToolResultContent> result;
185+
};
186+
187+
// Failed tool execution result.
188+
dictionary LanguageModelToolError {
189+
required DOMString callID;
190+
required DOMString name;
191+
required DOMString errorMessage;
192+
};
193+
194+
// The response from executing a tool call - either success or error.
195+
typedef (LanguageModelToolSuccess or LanguageModelToolError) LanguageModelToolResponse;
196+
197+
161198
</xmp>
162199

163200
<h3 id="prompt-processing">Prompt processing</h3>

0 commit comments

Comments
 (0)