Path: blob/main/extensions/copilot/src/platform/endpoint/node/embeddingsEndpoint.ts
13401 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 { RequestMetadata, RequestType } from '@vscode/copilot-api';6import { ITokenizer } from '../../../util/common/tokenizer';7import { IEmbeddingsEndpoint } from '../../networking/common/networking';8import { ITokenizerProvider } from '../../tokenizer/node/tokenizer';9import { IEmbeddingModelInformation } from '../common/endpointProvider';1011export class EmbeddingEndpoint implements IEmbeddingsEndpoint {12public readonly maxBatchSize: number;13public readonly modelMaxPromptTokens: number;1415public readonly name = this._modelInfo.name;16public readonly version = this._modelInfo.version;17public readonly family = this._modelInfo.capabilities.family;18public readonly tokenizer = this._modelInfo.capabilities.tokenizer;1920constructor(21private _modelInfo: IEmbeddingModelInformation,22@ITokenizerProvider private readonly _tokenizerProvider: ITokenizerProvider23) {24this.maxBatchSize = this._modelInfo.capabilities.limits?.max_inputs ?? 256;25this.modelMaxPromptTokens = 8192;26}2728public acquireTokenizer(): ITokenizer {29return this._tokenizerProvider.acquireTokenizer(this);30}3132public get urlOrRequestMetadata(): string | RequestMetadata {33return { type: RequestType.CAPIEmbeddings };34}35}363738