mirror of
https://github.com/voideditor/void
synced 2026-05-24 09:58:23 +00:00
98 lines
3.2 KiB
TypeScript
98 lines
3.2 KiB
TypeScript
/*---------------------------------------------------------------------------------------------
|
|
* Copyright (c) Microsoft Corporation. All rights reserved.
|
|
* Licensed under the MIT License. See License.txt in the project root for license information.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
|
|
declare module 'vscode' {
|
|
|
|
export interface LanguageModelChat {
|
|
sendRequest(messages: Array<LanguageModelChatMessage | LanguageModelChatMessage2>, options?: LanguageModelChatRequestOptions, token?: CancellationToken): Thenable<LanguageModelChatResponse>;
|
|
countTokens(text: string | LanguageModelChatMessage | LanguageModelChatMessage2, token?: CancellationToken): Thenable<number>;
|
|
}
|
|
|
|
/**
|
|
* Represents a message in a chat. Can assume different roles, like user or assistant.
|
|
*/
|
|
export class LanguageModelChatMessage2 {
|
|
|
|
/**
|
|
* Utility to create a new user message.
|
|
*
|
|
* @param content The content of the message.
|
|
* @param name The optional name of a user for the message.
|
|
*/
|
|
static User(content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelDataPart>, name?: string): LanguageModelChatMessage2;
|
|
|
|
/**
|
|
* Utility to create a new assistant message.
|
|
*
|
|
* @param content The content of the message.
|
|
* @param name The optional name of a user for the message.
|
|
*/
|
|
static Assistant(content: string | Array<LanguageModelTextPart | LanguageModelToolCallPart | LanguageModelDataPart>, name?: string): LanguageModelChatMessage2;
|
|
|
|
/**
|
|
* The role of this message.
|
|
*/
|
|
role: LanguageModelChatMessageRole;
|
|
|
|
/**
|
|
* A string or heterogeneous array of things that a message can contain as content. Some parts may be message-type
|
|
* specific for some models.
|
|
*/
|
|
content: Array<LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelToolCallPart | LanguageModelDataPart>;
|
|
|
|
/**
|
|
* The optional name of a user for this message.
|
|
*/
|
|
name: string | undefined;
|
|
|
|
/**
|
|
* Create a new user message.
|
|
*
|
|
* @param role The role of the message.
|
|
* @param content The content of the message.
|
|
* @param name The optional name of a user for the message.
|
|
*/
|
|
constructor(role: LanguageModelChatMessageRole, content: string | Array<LanguageModelTextPart | LanguageModelToolResultPart | LanguageModelToolCallPart | LanguageModelDataPart>, name?: string);
|
|
}
|
|
|
|
/**
|
|
* A language model response part containing an image, returned from a {@link LanguageModelChatResponse}.
|
|
*/
|
|
export class LanguageModelDataPart {
|
|
/**
|
|
* The image content of the part.
|
|
*/
|
|
value: ChatImagePart;
|
|
|
|
/**
|
|
* Construct an image part with the given content.
|
|
* @param value The image content of the part.
|
|
*/
|
|
constructor(value: ChatImagePart);
|
|
}
|
|
|
|
/**
|
|
* Enum for supported image MIME types.
|
|
*/
|
|
export enum ChatImageMimeType {
|
|
PNG = 'image/png',
|
|
JPEG = 'image/jpeg',
|
|
GIF = 'image/gif',
|
|
WEBP = 'image/webp',
|
|
BMP = 'image/bmp',
|
|
}
|
|
|
|
export interface ChatImagePart {
|
|
/**
|
|
* The image's MIME type.
|
|
*/
|
|
mimeType: ChatImageMimeType;
|
|
|
|
/**
|
|
* The raw binary data of the image, encoded as a Uint8Array. Note: do not use base64 encoding. Maximum image size is 5MB.
|
|
*/
|
|
data: Uint8Array;
|
|
}
|
|
}
|