Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
microsoft
GitHub Repository: microsoft/vscode
Path: blob/main/extensions/copilot/src/platform/endpoint/node/embeddingsEndpoint.ts
13401 views
1
/*---------------------------------------------------------------------------------------------
2
* Copyright (c) Microsoft Corporation. All rights reserved.
3
* Licensed under the MIT License. See License.txt in the project root for license information.
4
*--------------------------------------------------------------------------------------------*/
5
6
import { RequestMetadata, RequestType } from '@vscode/copilot-api';
7
import { ITokenizer } from '../../../util/common/tokenizer';
8
import { IEmbeddingsEndpoint } from '../../networking/common/networking';
9
import { ITokenizerProvider } from '../../tokenizer/node/tokenizer';
10
import { IEmbeddingModelInformation } from '../common/endpointProvider';
11
12
export class EmbeddingEndpoint implements IEmbeddingsEndpoint {
13
public readonly maxBatchSize: number;
14
public readonly modelMaxPromptTokens: number;
15
16
public readonly name = this._modelInfo.name;
17
public readonly version = this._modelInfo.version;
18
public readonly family = this._modelInfo.capabilities.family;
19
public readonly tokenizer = this._modelInfo.capabilities.tokenizer;
20
21
constructor(
22
private _modelInfo: IEmbeddingModelInformation,
23
@ITokenizerProvider private readonly _tokenizerProvider: ITokenizerProvider
24
) {
25
this.maxBatchSize = this._modelInfo.capabilities.limits?.max_inputs ?? 256;
26
this.modelMaxPromptTokens = 8192;
27
}
28
29
public acquireTokenizer(): ITokenizer {
30
return this._tokenizerProvider.acquireTokenizer(this);
31
}
32
33
public get urlOrRequestMetadata(): string | RequestMetadata {
34
return { type: RequestType.CAPIEmbeddings };
35
}
36
}
37
38