Source code

Revision control

Copy as Markdown

Other Tools

Test Info: Warnings

// META: title=Language Model Prompt Context Usage
// META: script=/resources/testdriver.js
// META: script=/resources/testdriver-vendor.js
// META: script=../../../resources/util.js
// META: timeout=long
'use strict';
promise_test(async () => {
await ensureLanguageModel();
const session = await createLanguageModel();
assert_equals(session.contextUsage, 0);
const promptUsage = await session.measureContextUsage(kTestPrompt);
assert_greater_than(promptUsage, 0);
const result = await session.prompt(kTestPrompt);
assert_equals(typeof result, 'string');
const resultUsage = await session.measureContextUsage(result);
// The response is also appended to the session context, increasing usage.
// Allow some margin for counted tokens vs actual requested tokens.
// TODO(crbug.com/500479741): Add expectation precision.
assert_approx_equals(session.contextUsage, promptUsage + resultUsage, 5);
}, 'Check contextUsage increases from a simple LanguageModel.prompt() call');