Skip to content

Commit 45a473b

Browse files
authored
Support degraded model status (#1148)
1 parent 582f523 commit 45a473b

File tree

4 files changed

+10
-1
lines changed

4 files changed

+10
-1
lines changed

src/extension/conversation/vscode-node/languageModelAccess.ts

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -129,7 +129,9 @@ export class LanguageModelAccess extends Disposable implements IExtensionContrib
129129

130130
const sanitizedModelName = endpoint.name.replace(/\(Preview\)/g, '').trim();
131131
let modelDescription: string | undefined;
132-
if (endpoint.model === AutoChatEndpoint.id) {
132+
if (endpoint.degradationReason) {
133+
modelDescription = endpoint.degradationReason;
134+
} else if (endpoint.model === AutoChatEndpoint.id) {
133135
if (this._authenticationService.copilotToken?.isNoAuthUser) {
134136
modelDescription = localize('languageModel.autoTooltipNoAuth', 'Auto selects the best model for your request based on capacity and performance.');
135137
} else {
@@ -178,6 +180,7 @@ export class LanguageModelAccess extends Disposable implements IExtensionContrib
178180
tooltip: modelDescription,
179181
detail: modelDetail,
180182
category: modelCategory,
183+
statusIcon: endpoint.degradationReason ? new vscode.ThemeIcon('warning') : undefined,
181184
version: endpoint.version,
182185
maxInputTokens: endpoint.modelMaxPromptTokens - baseCount - BaseTokensPerCompletion,
183186
maxOutputTokens: endpoint.maxOutputTokens,

src/platform/endpoint/common/endpointProvider.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,7 @@ export interface IModelAPIResponse {
8181
is_chat_default: boolean;
8282
is_chat_fallback: boolean;
8383
version: string;
84+
warning_message?: string;
8485
billing?: { is_premium: boolean; multiplier: number; restricted_to?: string[] };
8586
capabilities: IChatModelCapabilities | ICompletionModelCapabilities | IEmbeddingModelCapabilities;
8687
supported_endpoints?: ModelSupportedEndpoint[];

src/platform/endpoint/node/chatEndpoint.ts

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -223,6 +223,10 @@ export class ChatEndpoint implements IChatEndpoint {
223223
return !!(enableResponsesApi && this._modelMetadata.supported_endpoints?.includes(ModelSupportedEndpoint.Responses));
224224
}
225225

226+
public get degradationReason(): string | undefined {
227+
return this._modelMetadata.warning_message;
228+
}
229+
226230
public get policy(): 'enabled' | { terms: string } {
227231
if (!this._policyDetails) {
228232
return 'enabled';

src/platform/networking/common/networking.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -164,6 +164,7 @@ export interface IChatEndpoint extends IEndpoint {
164164
readonly supportedEditTools?: readonly EndpointEditToolName[];
165165
readonly showInModelPicker: boolean;
166166
readonly isPremium?: boolean;
167+
readonly degradationReason?: string;
167168
readonly multiplier?: number;
168169
readonly restrictedToSkus?: string[];
169170
readonly isDefault: boolean;

0 commit comments

Comments
 (0)