Prompt API: rename ai.assistant to ai.languageModel
This CL only focus on the user-facing interface renaming, all the
file name, metrics, class name (including the one exposed to JS) will be
updated as follow-up.
Bug: 372186535
Change-Id: I57752e193461d15906d9c6bd4d63af3ade1455c3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/src/+/5919127
Reviewed-by: Kelvin Jiang <kelvinjiang@chromium.org>
Reviewed-by: Devlin Cronin <rdevlin.cronin@chromium.org>
Reviewed-by: Kentaro Hara <haraken@chromium.org>
Commit-Queue: Mingyu Lei <leimy@chromium.org>
Reviewed-by: Takashi Toyoshima <toyoshim@chromium.org>
Cr-Commit-Position: refs/heads/main@{#1368007}
diff --git a/chrome/browser/extensions/ai_assistant_browsertest.cc b/chrome/browser/extensions/ai_assistant_browsertest.cc
index 6a53c6fd..54f26b9 100644
--- a/chrome/browser/extensions/ai_assistant_browsertest.cc
+++ b/chrome/browser/extensions/ai_assistant_browsertest.cc
@@ -29,8 +29,8 @@
constexpr char kOriginTrialPublicKeyForTesting[] =
"dRCs+TocuKkocNKa0AtZ4awrt9XKH2SQCI6o4FY6BNA=";
-constexpr char kAIAssistantOriginTrialPermissionsField[] =
- "\"permissions\":[\"aiAssistantOriginTrial\"],";
+constexpr char kAILanguageModelOriginTrialPermissionsField[] =
+ "\"permissions\":[\"aiLanguageModelOriginTrial\"],";
// The extension origin trial token (expired on 2032-11-26) was generated by
// ```
@@ -38,7 +38,7 @@
// chrome-extension://jnapclmfkaejhjkddbmiafekigmcbmma AIPromptAPIForExtension
// --expire-days 3000
// ```
-constexpr char kAIAssistantOriginTrialTokensField[] =
+constexpr char kLanguageModelOriginTrialTokensField[] =
"\"trial_tokens\":[\"A5nDxhrF7Qe4GiLouR1mgL5XKSk4wXA0B/RV2VyQcZj2IkLALdG/"
"FHrucKbG1TKD8QidNfqBdC07wP8KJaF6EQYAAAB9eyJvcmlnaW4iOiAiY2hyb21lLWV4dGVuc2"
"lvbjovL2puYXBjbG1ma2Flamhqa2RkYm1pYWZla2lnbWNibW1hIiwgImZlYXR1cmUiOiAiQUlQ"
@@ -74,7 +74,7 @@
const expectChromeAiOriginTrialAssistant = %s;
chrome.test.assertEq(
expectChromeAiOriginTrialAssistant,
- !!(chrome.aiOriginTrial && chrome.aiOriginTrial.assistant)
+ !!(chrome.aiOriginTrial && chrome.aiOriginTrial.languageModel)
);
chrome.test.succeed();
},
@@ -199,10 +199,10 @@
std::string GetManifest() {
return base::StringPrintf(kManifestTemplate,
IsExtensionPermissionRequested(GetParam())
- ? kAIAssistantOriginTrialPermissionsField
+ ? kAILanguageModelOriginTrialPermissionsField
: "",
IsExtensionParticipatingInOriginTrial(GetParam())
- ? kAIAssistantOriginTrialTokensField
+ ? kLanguageModelOriginTrialTokensField
: "");
}
diff --git a/chrome/common/extensions/api/_permission_features.json b/chrome/common/extensions/api/_permission_features.json
index a06406b..53829b8 100644
--- a/chrome/common/extensions/api/_permission_features.json
+++ b/chrome/common/extensions/api/_permission_features.json
@@ -56,7 +56,7 @@
"5107DE9024C329EEA9C9A72D94C16723790C6422" // Apps Developer Tool Dev.
]
},
- "aiAssistantOriginTrial": {
+ "aiLanguageModelOriginTrial": {
"channel": "trunk",
"extension_types": [
"extension"
diff --git a/chrome/common/extensions/permissions/chrome_api_permissions.cc b/chrome/common/extensions/permissions/chrome_api_permissions.cc
index 0e6b4ef..0f1810b 100644
--- a/chrome/common/extensions/permissions/chrome_api_permissions.cc
+++ b/chrome/common/extensions/permissions/chrome_api_permissions.cc
@@ -63,7 +63,8 @@
APIPermissionInfo::kFlagCannotBeOptional},
{APIPermissionID::kAccessibilityServicePrivate,
"accessibilityServicePrivate", APIPermissionInfo::kFlagCannotBeOptional},
- {APIPermissionID::kAIAssistantOriginTrial, "aiAssistantOriginTrial"},
+ {APIPermissionID::kAILanguageModelOriginTrial,
+ "aiLanguageModelOriginTrial"},
{APIPermissionID::kBookmark, "bookmarks"},
{APIPermissionID::kBrailleDisplayPrivate, "brailleDisplayPrivate",
APIPermissionInfo::kFlagCannotBeOptional},
diff --git a/chrome/common/extensions/permissions/permission_set_unittest.cc b/chrome/common/extensions/permissions/permission_set_unittest.cc
index 8938de6..96c4190e 100644
--- a/chrome/common/extensions/permissions/permission_set_unittest.cc
+++ b/chrome/common/extensions/permissions/permission_set_unittest.cc
@@ -833,7 +833,7 @@
// This API is still in origin trial so we don't want to show a permission
// prompt.
- skip.insert(APIPermissionID::kAIAssistantOriginTrial);
+ skip.insert(APIPermissionID::kAILanguageModelOriginTrial);
// These are private.
skip.insert(APIPermissionID::kAccessibilityPrivate);
diff --git a/extensions/common/mojom/api_permission_id.mojom b/extensions/common/mojom/api_permission_id.mojom
index 368cf91..d189a7d4 100644
--- a/extensions/common/mojom/api_permission_id.mojom
+++ b/extensions/common/mojom/api_permission_id.mojom
@@ -283,7 +283,7 @@
kOdfsConfigPrivate = 256,
kChromeOSManagementAudio = 257,
kChromeOSDiagnosticsNetworkInfoForMlab = 258,
- kAIAssistantOriginTrial = 259,
+ kAILanguageModelOriginTrial = 259,
kExperimentalAiData = 260,
// Add new entries at the end of the enum and be sure to update the
diff --git a/extensions/renderer/native_extension_bindings_system.cc b/extensions/renderer/native_extension_bindings_system.cc
index c2f62d1..fa82e12 100644
--- a/extensions/renderer/native_extension_bindings_system.cc
+++ b/extensions/renderer/native_extension_bindings_system.cc
@@ -81,7 +81,7 @@
constexpr char kBindingsSystemPerContextKey[] = "extension_bindings_system";
constexpr char kStringNameAIOriginTrial[] = "aiOriginTrial";
-constexpr char kStringNameAssistant[] = "assistant";
+constexpr char kStringNameAssistant[] = "languageModel";
// Returns true if the given |api| is a "prefixed" api of the |root_api|; that
// is, if the api begins with the root.
@@ -1106,14 +1106,15 @@
v8::HandleScope handle_scope(isolate);
v8::Local<v8::Context> v8_context = context->v8_context();
- // If the extension has requested for `kAIAssistantOriginTrial`
- // permission, we will set the `chrome.ai.assistantOriginTrial` as a
- // mirror of `self.ai.assistant`.
+ // If the extension has requested for `kAILanguageModelOriginTrial`
+ // permission, we will set the `chrome.aiOriginTrial.languageModel` as a
+ // mirror of `self.ai.languageModel`.
if (!context->extension() ||
!context->extension()
->permissions_data()
->active_permissions()
- .HasAPIPermission(mojom::APIPermissionID::kAIAssistantOriginTrial)) {
+ .HasAPIPermission(
+ mojom::APIPermissionID::kAILanguageModelOriginTrial)) {
return;
}
diff --git a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
index 8a2f6bec..c620513 100644
--- a/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
+++ b/third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom
@@ -4457,7 +4457,7 @@
kV8AIAssistantCapabilities_DefaultTemperature_AttributeGetter = 5083,
kV8AIAssistantFactory_Capabilities_Method = 5084,
kV8AIAssistantFactory_Create_Method = 5085,
- kV8AI_Assistant_AttributeGetter = 5086,
+ kOBSOLETE_V8AI_Assistant_AttributeGetter = 5086,
kV8AIAssistant_MaxTokens_AttributeGetter = 5087,
kV8AIAssistant_TokensSoFar_AttributeGetter = 5088,
kV8AIAssistant_TokensLeft_AttributeGetter = 5089,
@@ -4490,6 +4490,7 @@
kV8PerformanceResourceTiming_WorkerCacheLookupStart_AttributeGetter = 5116,
kV8PerformanceResourceTiming_WorkerMatchedSourceType_AttributeGetter = 5117,
kV8PerformanceResourceTiming_WorkerFinalSourceType_AttributeGetter = 5118,
+ kV8AI_LanguageModel_AttributeGetter = 5119,
// Add new features immediately above this line. Don't change assigned
// numbers of any item, and don't reuse removed slots. Also don't add extra
diff --git a/third_party/blink/public/web/modules/ai/web_ai_assistant.h b/third_party/blink/public/web/modules/ai/web_ai_assistant.h
index e205d229..1b9197e 100644
--- a/third_party/blink/public/web/modules/ai/web_ai_assistant.h
+++ b/third_party/blink/public/web/modules/ai/web_ai_assistant.h
@@ -12,12 +12,12 @@
class BLINK_EXPORT WebAIAssistant {
public:
- // Returns the `self.ai.assistant` value even if it's not generated through
- // the binding (i.e. the runtime enabled feature controlling the interface is
- // disabled).
- // This method is used for creating the `chrome.aiOriginTrial.assistant` for
- // extension, see `NativeExtensionBindingsSystem::UpdateBindingsForPromptAPI`
- // for more information.
+ // Returns the `self.ai.languageModel` value even if it's not generated
+ // through the binding (i.e. the runtime enabled feature controlling the
+ // interface is disabled). This method is used for creating the
+ // `chrome.aiOriginTrial.languageModel` for extension, see
+ // `NativeExtensionBindingsSystem::UpdateBindingsForPromptAPI` for more
+ // information.
static v8::Local<v8::Value> GetAIAssistantFactory(
v8::Local<v8::Context> v8_context,
v8::Isolate* isolate);
diff --git a/third_party/blink/renderer/modules/ai/ai.cc b/third_party/blink/renderer/modules/ai/ai.cc
index bf7d140..56ae92f 100644
--- a/third_party/blink/renderer/modules/ai/ai.cc
+++ b/third_party/blink/renderer/modules/ai/ai.cc
@@ -47,7 +47,7 @@
return task_runner_;
}
-AIAssistantFactory* AI::assistant() {
+AIAssistantFactory* AI::languageModel() {
if (!ai_assistant_factory_) {
ai_assistant_factory_ = MakeGarbageCollected<AIAssistantFactory>(this);
}
diff --git a/third_party/blink/renderer/modules/ai/ai.h b/third_party/blink/renderer/modules/ai/ai.h
index d556571..de91b9c 100644
--- a/third_party/blink/renderer/modules/ai/ai.h
+++ b/third_party/blink/renderer/modules/ai/ai.h
@@ -32,7 +32,7 @@
void Trace(Visitor* visitor) const override;
// model_manager.idl implementation.
- AIAssistantFactory* assistant();
+ AIAssistantFactory* languageModel();
AISummarizerFactory* summarizer();
AIRewriterFactory* rewriter();
AIWriterFactory* writer();
diff --git a/third_party/blink/renderer/modules/ai/ai.idl b/third_party/blink/renderer/modules/ai/ai.idl
index 790cf71..6625b0e7 100644
--- a/third_party/blink/renderer/modules/ai/ai.idl
+++ b/third_party/blink/renderer/modules/ai/ai.idl
@@ -19,7 +19,7 @@
Measure,
RuntimeEnabled=AIPromptAPI
]
- readonly attribute AIAssistantFactory assistant;
+ readonly attribute AIAssistantFactory languageModel;
[
Measure,
RuntimeEnabled=AISummarizationAPI
diff --git a/third_party/blink/renderer/modules/exported/web_ai_assistant.cc b/third_party/blink/renderer/modules/exported/web_ai_assistant.cc
index e46c268..8df81d2 100644
--- a/third_party/blink/renderer/modules/exported/web_ai_assistant.cc
+++ b/third_party/blink/renderer/modules/exported/web_ai_assistant.cc
@@ -16,7 +16,8 @@
v8::Local<v8::Context> v8_context,
v8::Isolate* isolate) {
ExecutionContext* execution_context = ExecutionContext::From(v8_context);
- AIAssistantFactory* assistant = DOMAI::ai(*execution_context)->assistant();
+ AIAssistantFactory* assistant =
+ DOMAI::ai(*execution_context)->languageModel();
return assistant->ToV8(ScriptState::From(isolate, v8_context));
}
diff --git a/third_party/blink/web_tests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt b/third_party/blink/web_tests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
index 5e574cd9..67703a50 100644
--- a/third_party/blink/web_tests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
+++ b/third_party/blink/web_tests/http/tests/serviceworker/webexposed/global-interface-listing-service-worker-expected.txt
@@ -1,8 +1,8 @@
[INTERFACES]
interface AI
attribute @@toStringTag
- getter assistant
getter languageDetector
+ getter languageModel
getter rewriter
getter summarizer
getter writer
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
index 9841bb7..57a6e18e 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-dedicated-worker-expected.txt
@@ -6,8 +6,8 @@
[Worker] [INTERFACES]
[Worker] interface AI
[Worker] attribute @@toStringTag
-[Worker] getter assistant
[Worker] getter languageDetector
+[Worker] getter languageModel
[Worker] getter rewriter
[Worker] getter summarizer
[Worker] getter writer
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
index 1281141..afe2156 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-expected.txt
@@ -5,8 +5,8 @@
[INTERFACES]
interface AI
attribute @@toStringTag
- getter assistant
getter languageDetector
+ getter languageModel
getter rewriter
getter summarizer
getter writer
diff --git a/third_party/blink/web_tests/webexposed/global-interface-listing-shared-worker-expected.txt b/third_party/blink/web_tests/webexposed/global-interface-listing-shared-worker-expected.txt
index 6344cac..e982c5a1 100644
--- a/third_party/blink/web_tests/webexposed/global-interface-listing-shared-worker-expected.txt
+++ b/third_party/blink/web_tests/webexposed/global-interface-listing-shared-worker-expected.txt
@@ -6,8 +6,8 @@
[Worker] [INTERFACES]
[Worker] interface AI
[Worker] attribute @@toStringTag
-[Worker] getter assistant
[Worker] getter languageDetector
+[Worker] getter languageModel
[Worker] getter rewriter
[Worker] getter summarizer
[Worker] getter writer
diff --git a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-abort.any.js b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-abort.any.js
index 0ea9815..533aae3 100644
--- a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-abort.any.js
+++ b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-abort.any.js
@@ -3,14 +3,14 @@
promise_test(async (t) => {
const controller = new AbortController();
- const createPromise = ai.assistant.create({ signal: controller.signal });
+ const createPromise = ai.languageModel.create({ signal: controller.signal });
controller.abort();
await promise_rejects_dom(t, 'AbortError', createPromise);
}, "Aborting AIAssistantFactory.create()");
promise_test(async (t) => {
const controller = new AbortController();
- const session = await ai.assistant.create();
+ const session = await ai.languageModel.create();
const clonePromise = session.clone({ signal: controller.signal });
controller.abort();
await promise_rejects_dom(t, 'AbortError', clonePromise);
@@ -18,7 +18,7 @@
promise_test(async (t) => {
const controller = new AbortController();
- const session = await ai.assistant.create();
+ const session = await ai.languageModel.create();
const promptPromise = session.prompt(
"Write a poem", { signal: controller.signal }
);
diff --git a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-clone.any.js b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-clone.any.js
index 930573f4..10d39681 100644
--- a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-clone.any.js
+++ b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-clone.any.js
@@ -6,11 +6,11 @@
// Make sure the prompt api is enabled.
assert_true(!!ai);
// Make sure the session could be created.
- const capabilities = await ai.assistant.capabilities();
+ const capabilities = await ai.languageModel.capabilities();
const status = capabilities.available;
assert_true(status === 'readily');
// Start a new session and test it.
- const session = await ai.assistant.create();
+ const session = await ai.languageModel.create();
let result = await testSession(session);
assert_true(result.success, result.error);
diff --git a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-count-prompt-tokens.any.js b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-count-prompt-tokens.any.js
index 4e1d0a1..91b6199 100644
--- a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-count-prompt-tokens.any.js
+++ b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-count-prompt-tokens.any.js
@@ -4,11 +4,11 @@
// Make sure the prompt api is enabled.
assert_true(!!ai);
// Make sure the session could be created.
- const capabilities = await ai.assistant.capabilities();
+ const capabilities = await ai.languageModel.capabilities();
const status = capabilities.available;
assert_true(status === 'readily');
// Start a new session.
- const session = await ai.assistant.create();
+ const session = await ai.languageModel.create();
// Test the countPromptTokens() API.
let result = await session.countPromptTokens("This is a prompt.");
diff --git a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-destroy.any.js b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-destroy.any.js
index 8833611..a4eca46 100644
--- a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-destroy.any.js
+++ b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-destroy.any.js
@@ -4,11 +4,11 @@
// Make sure the prompt api is enabled.
assert_true(!!ai);
// Make sure the session could be created.
- const capabilities = await ai.assistant.capabilities();
+ const capabilities = await ai.languageModel.capabilities();
const status = capabilities.available;
assert_true(status === 'readily');
// Start a new session.
- const session = await ai.assistant.create();
+ const session = await ai.languageModel.create();
// Calling `session.destroy()` immediately after `session.prompt()` will
// trigger the "The model execution session has been destroyed." exception.
diff --git a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-from-detached-iframe.window.js b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-from-detached-iframe.window.js
index 0066572..959f8d0 100644
--- a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-from-detached-iframe.window.js
+++ b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-from-detached-iframe.window.js
@@ -7,14 +7,14 @@
let iframe = document.createElement("iframe");
document.childNodes[document.childNodes.length - 1].appendChild(iframe);
let iframeWindow = iframe.contentWindow;
- iframeWindow.assistant = iframeWindow.ai.assistant;
+ iframeWindow.languageModel = iframeWindow.ai.languageModel;
let iframeDOMException = iframeWindow.DOMException;
// Detach the iframe.
iframe.remove();
- // Calling `ai.assistant.capabilities()` from an invalid script state will trigger
+ // Calling `ai.languageModel.capabilities()` from an invalid script state will trigger
// the "The execution context is not valid." exception.
await promise_rejects_dom(
- t, 'InvalidStateError', iframeDOMException, iframeWindow.assistant.capabilities(),
+ t, 'InvalidStateError', iframeDOMException, iframeWindow.languageModel.capabilities(),
"The promise should be rejected with InvalidStateError if the execution context is invalid."
);
});
\ No newline at end of file
diff --git a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-context-destroyed.window.js b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-context-destroyed.window.js
index 3061120..4deb1e5 100644
--- a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-context-destroyed.window.js
+++ b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-context-destroyed.window.js
@@ -7,7 +7,7 @@
const iframe = document.createElement('iframe');
document.childNodes[document.childNodes.length - 1].appendChild(iframe);
- const session = await iframe.contentWindow.ai.assistant.create();
+ const session = await iframe.contentWindow.ai.languageModel.create();
session.prompt('hello');
// Detach the iframe.
iframe.remove();
diff --git a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-gc.any.js b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-gc.any.js
index 7192fdc..c3fdfe6 100644
--- a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-gc.any.js
+++ b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-gc.any.js
@@ -5,11 +5,11 @@
// Make sure the prompt api is enabled.
assert_true(!!ai);
// Make sure the session could be created.
- const capabilities = await ai.assistant.capabilities();
+ const capabilities = await ai.languageModel.capabilities();
const status = capabilities.available;
assert_true(status === 'readily');
// Start a new session.
- const session = await ai.assistant.create();
+ const session = await ai.languageModel.create();
// Test the prompt API.
const promptPromise = session.prompt('hello');
// Run GC.
diff --git a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-streaming-gc.any.js b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-streaming-gc.any.js
index 551b57ba..741c1a7 100644
--- a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-streaming-gc.any.js
+++ b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-streaming-gc.any.js
@@ -5,11 +5,11 @@
// Make sure the prompt api is enabled.
assert_true(!!ai);
// Make sure the session could be created.
- const capabilities = await ai.assistant.capabilities();
+ const capabilities = await ai.languageModel.capabilities();
const status = capabilities.available;
assert_true(status === 'readily');
// Start a new session.
- const session = await ai.assistant.create();
+ const session = await ai.languageModel.create();
// Test the streaming prompt API.
const streamingResponse = session.promptStreaming("What is 1+2?");
// Run GC.
diff --git a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-streaming.any.js b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-streaming.any.js
index abbdcca..e70d1a6f 100644
--- a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-streaming.any.js
+++ b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt-streaming.any.js
@@ -5,11 +5,11 @@
// Make sure the prompt api is enabled.
assert_true(!!ai);
// Make sure the session could be created.
- const capabilities = await ai.assistant.capabilities();
+ const capabilities = await ai.languageModel.capabilities();
const status = capabilities.available;
assert_true(status === 'readily');
// Start a new session.
- const session = await ai.assistant.create();
+ const session = await ai.languageModel.create();
// Test the streaming prompt API.
const streamingResponse = session.promptStreaming("What is 1+2?");
assert_true(Object.prototype.toString.call(streamingResponse) === "[object ReadableStream]");
diff --git a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt.any.js b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt.any.js
index 9ae50e3..3dedb9c4 100644
--- a/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt.any.js
+++ b/third_party/blink/web_tests/wpt_internal/ai/assistant-api-prompt.any.js
@@ -12,7 +12,7 @@
// Make sure the prompt api is enabled.
assert_true(!!ai);
// Make sure the session could be created.
- const capabilities = await ai.assistant.capabilities();
+ const capabilities = await ai.languageModel.capabilities();
const status = capabilities.available;
assert_true(status === 'readily');
@@ -20,30 +20,30 @@
let result;
// Create a new session with no option.
- session = await ai.assistant.create();
+ session = await ai.languageModel.create();
assert_true(!!session);
// Create a new session with topK and temperature.
- session = await ai.assistant.create({topK: 3, temperature: 0.6});
+ session = await ai.languageModel.create({ topK: 3, temperature: 0.6 });
assert_true(!!session);
// Create a new session with only topK or temperature, it should fail.
- result = ai.assistant.create({topK: 3});
+ result = ai.languageModel.create({ topK: 3 });
await promise_rejects_dom(
t, 'NotSupportedError', result,
'Initializing a new session must either specify both topK and temperature, or neither of them.');
- result = ai.assistant.create({temperature: 0.5});
+ result = ai.languageModel.create({ temperature: 0.5 });
await promise_rejects_dom(
t, 'NotSupportedError', result,
'Initializing a new session must either specify both topK and temperature, or neither of them.');
// Create a new session with system prompt.
- session = await ai.assistant.create({systemPrompt: 'you are a robot'});
+ session = await ai.languageModel.create({ systemPrompt: 'you are a robot' });
assert_true(!!session);
// Create a new session with initial prompts.
- session = await ai.assistant.create({
+ session = await ai.languageModel.create({
initialPrompts: [
{role: 'system', content: 'you are a robot'},
{role: 'user', content: 'hello'}, {role: 'assistant', content: 'hello'}
@@ -52,7 +52,7 @@
assert_true(!!session);
// Create a new session with initial prompts without system role.
- session = await ai.assistant.create({
+ session = await ai.languageModel.create({
initialPrompts: [
{role: 'user', content: 'hello'}, {role: 'assistant', content: 'hello'}
]
@@ -61,7 +61,7 @@
// Create a new session with initial prompts with system role not placing as
// the first element.
- result = ai.assistant.create({
+ result = ai.languageModel.create({
initialPrompts: [
{role: 'user', content: 'hello'}, {role: 'assistant', content: 'hello'},
{role: 'system', content: 'you are a robot'}
@@ -71,7 +71,7 @@
// Create a new session with both system prompt and initial prompts, it should
// fail.
- result = ai.assistant.create({
+ result = ai.languageModel.create({
systemPrompt: 'you are a robot',
initialPrompts: [
{role: 'system', content: 'you are a robot'},
diff --git a/third_party/blink/web_tests/wpt_internal/ai/resources/utils.js b/third_party/blink/web_tests/wpt_internal/ai/resources/utils.js
index da2a1b5..a79619f 100644
--- a/third_party/blink/web_tests/wpt_internal/ai/resources/utils.js
+++ b/third_party/blink/web_tests/wpt_internal/ai/resources/utils.js
@@ -64,7 +64,7 @@
}
try {
- const capabilities = await ai.assistant.capabilities();
+ const capabilities = await ai.languageModel.capabilities();
const status = capabilities.available;
if (status !== "readily") {
return {
@@ -73,7 +73,7 @@
};
}
- const session = await ai.assistant.create({
+ const session = await ai.languageModel.create({
topK: 3,
temperature: 0.8,
systemPrompt: "Let's talk about Mauritius."
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 0e88623..cc56761e 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -10905,7 +10905,7 @@
label="V8AIAssistantCapabilities_DefaultTemperature_AttributeGetter"/>
<int value="5084" label="V8AIAssistantFactory_Capabilities_Method"/>
<int value="5085" label="V8AIAssistantFactory_Create_Method"/>
- <int value="5086" label="V8AI_Assistant_AttributeGetter"/>
+ <int value="5086" label="OBSOLETE_V8AI_Assistant_AttributeGetter"/>
<int value="5087" label="V8AIAssistant_MaxTokens_AttributeGetter"/>
<int value="5088" label="V8AIAssistant_TokensSoFar_AttributeGetter"/>
<int value="5089" label="V8AIAssistant_TokensLeft_AttributeGetter"/>
@@ -10946,6 +10946,7 @@
label="V8PerformanceResourceTiming_WorkerMatchedSourceType_AttributeGetter"/>
<int value="5118"
label="V8PerformanceResourceTiming_WorkerFinalSourceType_AttributeGetter"/>
+ <int value="5119" label="V8AI_LanguageModel_AttributeGetter"/>
</enum>
<!-- LINT.ThenChange(//third_party/blink/public/mojom/use_counter/metrics/web_feature.mojom:WebFeature) -->
diff --git a/tools/metrics/histograms/metadata/extensions/enums.xml b/tools/metrics/histograms/metadata/extensions/enums.xml
index 8066aad..dbdc0f6 100644
--- a/tools/metrics/histograms/metadata/extensions/enums.xml
+++ b/tools/metrics/histograms/metadata/extensions/enums.xml
@@ -3150,7 +3150,7 @@
<int value="256" label="kOdfsConfigPrivate"/>
<int value="257" label="kChromeOSManagementAudio"/>
<int value="258" label="kChromeOSDiagnosticsNetworkInfoForMlab"/>
- <int value="259" label="kAIAssistantOriginTrial"/>
+ <int value="259" label="kAILanguageModelOriginTrial"/>
<int value="260" label="kExperimentalAiData"/>
</enum>