Skip to content
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
13 changes: 10 additions & 3 deletions types/dom-chromium-ai/dom-chromium-ai-tests.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,15 @@ async function topLevel() {
// Language Model

await LanguageModel.create({
// @ts-expect-error - System prompt must be first element of the initialPrompt array.
// @ts-expect-error - System prompt must be first element of the initialPrompts array.
initialPrompts: [{ role: "user", content: "foo" }, { role: "system", content: "foo" }],
});

await LanguageModel.create({
// @ts-expect-error - Prefixes are not allowed in initialPrompts.
initialPrompts: [{ role: "assistant", content: "foo", prefix: true }],
});

const languageModel = await LanguageModel.create({
topK: 1,
temperature: 0,
Expand Down Expand Up @@ -434,11 +439,13 @@ async function topLevel() {
});
console.log(proofreaderAvailability2);

const proofreaderResult: ProofreadResult = await proofreader.proofread("foo");
const proofreaderResult: ProofreadResult = await proofreader.proofread("foo", {
signal: (new AbortController()).signal,
});
console.log(proofreaderResult);

// for await (
// const chunk of proofreader.proofreadStreaming("foo")
// const chunk of proofreader.proofreadStreaming("foo", { signal: (new AbortController()).signal })
// ) {
// console.log(chunk);
// }
Expand Down
20 changes: 16 additions & 4 deletions types/dom-chromium-ai/index.d.ts
Original file line number Diff line number Diff line change
Expand Up @@ -146,11 +146,17 @@ interface LanguageModelToolFunction {
(...args: any[]): Promise<string>;
}

type LanguageModelPrompt = LanguageModelMessage[] | string;
type LanguageModelPrompt = (LanguageModelMessage | LanguageModelAssistantMessage)[] | string;

interface LanguageModelMessage {
role: LanguageModelMessageRole;
content: LanguageModelMessageContent[] | string;
}

// Not in IDL, split up here for allowing assistant messages with prefix in prompt() and promptStreaming() only
interface LanguageModelAssistantMessage {
role: LanguageModelAssistantMessageRole;
content: LanguageModelMessageContent[] | string;
prefix?: boolean;
}

Expand All @@ -165,7 +171,9 @@ interface LanguageModelMessageContent {
value: LanguageModelMessageValue;
}

type LanguageModelMessageRole = "user" | "assistant";
type LanguageModelMessageRole = "user" | LanguageModelAssistantMessageRole;
// Not in IDL, split up here for allowing assistant messages with prefix in prompt() and promptStreaming() only
type LanguageModelAssistantMessageRole = "assistant";
// Not in IDL, split up here for enforcing the system message as the first element
type LanguageModelSystemMessageRole = "system";

Expand Down Expand Up @@ -397,8 +405,8 @@ declare abstract class Proofreader implements DestroyableModel {
static create(options?: ProofreaderCreateOptions): Promise<Proofreader>;
static availability(options?: ProofreaderCreateCoreOptions): Promise<Availability>;

proofread(input: string): Promise<ProofreadResult>;
// proofreadStreaming(input: string): ReadableStream<unknown>;
proofread(input: string, options?: ProofreaderProofreadOptions): Promise<ProofreadResult>;
// proofreadStreaming(input: string, options?: ProofreaderProofreadOptions): ReadableStream<unknown>;

readonly includeCorrectionTypes: boolean;
readonly includeCorrectionExplanations: boolean;
Expand All @@ -420,6 +428,10 @@ interface ProofreaderCreateOptions extends ProofreaderCreateCoreOptions {
monitor?: CreateMonitorCallback;
}

interface ProofreaderProofreadOptions {
signal?: AbortSignal;
}

interface ProofreadResult {
correctedInput: string;
corrections: ProofreadCorrection[];
Expand Down