Path: blob/main/extensions/copilot/src/util/common/tokenizer.ts
13397 views
/*---------------------------------------------------------------------------------------------1* Copyright (c) Microsoft Corporation. All rights reserved.2* Licensed under the MIT License. See License.txt in the project root for license information.3*--------------------------------------------------------------------------------------------*/45import type { ITokenizer as ITsxTokenizer, OutputMode, Raw } from '@vscode/prompt-tsx';6import type { LanguageModelChatTool } from 'vscode';789export enum TokenizerType {10CL100K = 'cl100k_base',11O200K = 'o200k_base',12Llama3 = 'llama3',13}1415export interface ITokenizer extends ITsxTokenizer<OutputMode.Raw> {1617/**18* Return the length of `text` in number of tokens.19*20* @param text The input text21*/22tokenLength(text: string | Raw.ChatCompletionContentPart): Promise<number>;2324countMessageTokens(message: Raw.ChatMessage): Promise<number>;2526countMessagesTokens(messages: Raw.ChatMessage[]): Promise<number>;2728countToolTokens(tools: readonly LanguageModelChatTool[]): Promise<number>;29}303132