Skip to content

Remove IntentParams and intent:true #534

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 1 commit into from
Aug 9, 2025
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -375,7 +375,7 @@ export class CopilotLanguageModelWrapper extends Disposable {
{ type: 'function', function: { name: _options.tools[0].name } } :
undefined;

const result = await endpoint.makeChatRequest('copilotLanguageModelWrapper', messages, callback, token, ChatLocation.Other, { extensionId }, options, true, telemetryProperties, { intent: true });
const result = await endpoint.makeChatRequest('copilotLanguageModelWrapper', messages, callback, token, ChatLocation.Other, { extensionId }, options, true, telemetryProperties);

if (result.type !== ChatFetchResponseType.Success) {
if (result.type === ChatFetchResponseType.ExtensionBlocked) {
Expand Down
1 change: 0 additions & 1 deletion src/extension/mcp/vscode-node/mcpToolCallingLoop.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -92,7 +92,6 @@ export class McpToolCallingLoop extends ToolCallingLoop<IMcpToolCallingLoopOptio
...opts.requestOptions,
temperature: 0
},
intentParams: { intent: true }
}, token);
}
}
1 change: 0 additions & 1 deletion src/extension/prompt/node/chatMLFetcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -226,7 +226,6 @@ export class ChatMLFetcherImpl extends AbstractChatMLFetcher {
requestOptions,
userInitiatedRequest: false, // do not mark the retry as user initiated
telemetryProperties: { ...telemetryProperties, retryAfterFilterCategory: result.category ?? 'uncategorized' },
intentParams: opts.intentParams,
isFilterRetry: true,
}, token);

Expand Down
1 change: 0 additions & 1 deletion src/extension/prompt/node/codebaseToolCalling.ts
Original file line number Diff line number Diff line change
Expand Up @@ -88,7 +88,6 @@ export class CodebaseToolCallingLoop extends ToolCallingLoop<ICodebaseToolCallin
messageId: randomUUID(), // @TODO@joyceerhl
messageSource: CodebaseToolCallingLoop.ID
},
{ intent: true }
);
}
}
1 change: 0 additions & 1 deletion src/extension/prompt/node/defaultIntentRequestHandler.ts
Original file line number Diff line number Diff line change
Expand Up @@ -687,7 +687,6 @@ class DefaultToolCallingLoop extends ToolCallingLoop<IDefaultToolLoopOptions> {
conversationId: this.options.conversation.sessionId,
messageSource: this.options.intent?.id && this.options.intent.id !== UnknownIntent.ID ? `${messageSourcePrefix}.${this.options.intent.id}` : `${messageSourcePrefix}.user`,
},
intentParams: { intent: true }
}, token);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -232,7 +232,6 @@ export class SemanticSearchTextSearchProvider implements vscode.AITextSearchProv
messageId: generateUuid(),
messageSource: 'search.workspace'
},
{ intent: true }
);
SemanticSearchTextSearchProvider.feedBackTelemetry.llmFilteringDuration = Date.now() - llmFilteringDuration;
searchResult = fetchResult.type === 'success' ? fetchResult.value : (fetchResult.type === 'length' ? fetchResult.truncatedValue : '');
Expand Down Expand Up @@ -481,7 +480,6 @@ export class SemanticSearchTextSearchProvider implements vscode.AITextSearchProv
messageId: generateUuid(),
messageSource: 'search.keywords'
},
{ intent: true }
);
const keywordResult = fetchResult.type === 'success' ? fetchResult.value : (fetchResult.type === 'length' ? fetchResult.truncatedValue : '');
const usedResults = [];
Expand Down
22 changes: 0 additions & 22 deletions src/platform/chat/common/chatMLFetcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,15 +11,6 @@ import { FinishedCallback, IResponseDelta, OptionalChatRequestParams } from '../
import { IChatEndpoint, IMakeChatRequestOptions } from '../../networking/common/networking';
import { ChatResponse, ChatResponses } from './commonTypes';

export interface IntentParams {

/** Copilot-only: whether to run intent classifier for off-topic detection */
intent?: boolean;

/** Copilot-only: threshold for intent classifier */
intent_threshold?: number;
}

export interface Source {
readonly extensionId?: string;
}
Expand All @@ -43,19 +34,6 @@ export interface IChatMLFetcher {

readonly onDidMakeChatMLRequest: Event<{ readonly model: string; readonly source?: Source; readonly tokenCount?: number }>;

/**
* @param debugName A helpful name for the request, shown in logs and used in telemetry if telemetryProperties.messageSource isn't set. Using a single camelCase word is advised.
* @param messages The list of messages to send to the model
* @param finishedCb A callback that streams response content
* @param token A cancel token
* @param location The location of the feature making this request
* @param endpoint The chat model info
* @param source The participant/extension making this request, if applicable
* @param requestOptions To override the default request options
* @param userInitiatedRequest Whether or not the request is the user's or some background / auxillary request. Used for billing.
* @param telemetryProperties messageSource/messageId are included in telemetry, optional, defaults to debugName
* @param intentParams { intent: true } enables the offtopic classifier
*/
fetchOne(options: IFetchMLOptions, token: CancellationToken): Promise<ChatResponse>;

/**
Expand Down
4 changes: 1 addition & 3 deletions src/platform/chat/common/responses.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@

import { Raw } from '@vscode/prompt-tsx';
import { OptionalChatRequestParams } from '../../networking/common/fetch';
import { IntentParams, Source } from './chatMLFetcher';
import { Source } from './chatMLFetcher';
import { ChatLocation } from './commonTypes';

export interface IRichChatRequestOptions {
Expand All @@ -17,6 +17,4 @@ export interface IRichChatRequestOptions {
requestOptions?: Omit<OptionalChatRequestParams, 'n'>;
/** Whether the request was user-initiated (applicable to CAPI requests) */
userInitiatedRequest?: boolean;
/** Intent parameters (applicable to CAPI requests) */
intentParams?: IntentParams;
}
5 changes: 2 additions & 3 deletions src/platform/endpoint/common/autoChatEndpoint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { ChatMessage } from '@vscode/prompt-tsx/dist/base/output/rawTypes';
import type { CancellationToken } from 'vscode';
import { ITokenizer, TokenizerType } from '../../../util/common/tokenizer';
import { AsyncIterableObject } from '../../../util/vs/base/common/async';
import { IntentParams, Source } from '../../chat/common/chatMLFetcher';
import { Source } from '../../chat/common/chatMLFetcher';
import { ChatLocation, ChatResponse } from '../../chat/common/commonTypes';
import { IEnvService } from '../../env/common/envService';
import { ILogService } from '../../log/common/logService';
Expand Down Expand Up @@ -79,7 +79,7 @@ export class AutoChatEndpoint implements IChatEndpoint {
return this._wrappedEndpoint.makeChatRequest2(options, token);
}

async makeChatRequest(debugName: string, messages: ChatMessage[], finishedCb: FinishedCallback | undefined, token: CancellationToken, location: ChatLocation, source?: Source, requestOptions?: Omit<OptionalChatRequestParams, 'n'>, userInitiatedRequest?: boolean, telemetryProperties?: TelemetryProperties, intentParams?: IntentParams): Promise<ChatResponse> {
async makeChatRequest(debugName: string, messages: ChatMessage[], finishedCb: FinishedCallback | undefined, token: CancellationToken, location: ChatLocation, source?: Source, requestOptions?: Omit<OptionalChatRequestParams, 'n'>, userInitiatedRequest?: boolean, telemetryProperties?: TelemetryProperties): Promise<ChatResponse> {
return this.makeChatRequest2({
debugName,
messages,
Expand All @@ -89,7 +89,6 @@ export class AutoChatEndpoint implements IChatEndpoint {
requestOptions,
userInitiatedRequest,
telemetryProperties,
intentParams
}, token);
}
}
Expand Down
4 changes: 1 addition & 3 deletions src/platform/endpoint/node/chatEndpoint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { deepClone, mixin } from '../../../util/vs/base/common/objects';
import { generateUuid } from '../../../util/vs/base/common/uuid';
import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';
import { IAuthenticationService } from '../../authentication/common/authentication';
import { IChatMLFetcher, IntentParams, Source } from '../../chat/common/chatMLFetcher';
import { IChatMLFetcher, Source } from '../../chat/common/chatMLFetcher';
import { ChatLocation, ChatResponse } from '../../chat/common/commonTypes';
import { getTextPart } from '../../chat/common/globalStringUtils';
import { CHAT_MODEL, ConfigKey, IConfigurationService } from '../../configuration/common/configurationService';
Expand Down Expand Up @@ -318,7 +318,6 @@ export class ChatEndpoint implements IChatEndpoint {
requestOptions?: Omit<OptionalChatRequestParams, 'n'>,
userInitiatedRequest?: boolean,
telemetryProperties?: TelemetryProperties,
intentParams?: IntentParams
): Promise<ChatResponse> {
return this.makeChatRequest2({
debugName,
Expand All @@ -329,7 +328,6 @@ export class ChatEndpoint implements IChatEndpoint {
requestOptions,
userInitiatedRequest,
telemetryProperties,
intentParams
}, token);
}

Expand Down
6 changes: 3 additions & 3 deletions src/platform/endpoint/node/proxyExperimentEndpoint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { ChatMessage } from '@vscode/prompt-tsx/dist/base/output/rawTypes';
import type { CancellationToken } from 'vscode';
import { ITokenizer, TokenizerType } from '../../../util/common/tokenizer';
import { AsyncIterableObject } from '../../../util/vs/base/common/async';
import { IntentParams, Source } from '../../chat/common/chatMLFetcher';
import { Source } from '../../chat/common/chatMLFetcher';
import { ChatLocation, ChatResponse } from '../../chat/common/commonTypes';
import { ILogService } from '../../log/common/logService';
import { FinishedCallback, OptionalChatRequestParams } from '../../networking/common/fetch';
Expand Down Expand Up @@ -122,8 +122,8 @@ export class ProxyExperimentEndpoint implements IChatEndpoint {
return this.selectedEndpoint.makeChatRequest2(options, token);
}

makeChatRequest(debugName: string, messages: ChatMessage[], finishedCb: FinishedCallback | undefined, token: CancellationToken, location: ChatLocation, source?: Source, requestOptions?: Omit<OptionalChatRequestParams, 'n'>, userInitiatedRequest?: boolean, telemetryProperties?: TelemetryProperties, intentParams?: IntentParams): Promise<ChatResponse> {
return this.selectedEndpoint.makeChatRequest(debugName, messages, finishedCb, token, location, source, requestOptions, userInitiatedRequest, telemetryProperties, intentParams);
makeChatRequest(debugName: string, messages: ChatMessage[], finishedCb: FinishedCallback | undefined, token: CancellationToken, location: ChatLocation, source?: Source, requestOptions?: Omit<OptionalChatRequestParams, 'n'>, userInitiatedRequest?: boolean, telemetryProperties?: TelemetryProperties): Promise<ChatResponse> {
return this.selectedEndpoint.makeChatRequest(debugName, messages, finishedCb, token, location, source, requestOptions, userInitiatedRequest, telemetryProperties);
}

cloneWithTokenOverride(modelMaxPromptTokens: number): IChatEndpoint {
Expand Down
4 changes: 1 addition & 3 deletions src/platform/endpoint/test/node/mockEndpoint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ import { Raw } from '@vscode/prompt-tsx';
import { ITokenizer, TokenizerType } from '../../../../util/common/tokenizer';
import { AsyncIterableObject } from '../../../../util/vs/base/common/async';
import { CancellationToken } from '../../../../util/vs/base/common/cancellation';
import { IChatMLFetcher, IntentParams, Source } from '../../../chat/common/chatMLFetcher';
import { IChatMLFetcher, Source } from '../../../chat/common/chatMLFetcher';
import { ChatLocation, ChatResponse } from '../../../chat/common/commonTypes';
import { CHAT_MODEL } from '../../../configuration/common/configurationService';
import { ILogService } from '../../../log/common/logService';
Expand Down Expand Up @@ -75,7 +75,6 @@ export class MockEndpoint implements IChatEndpoint {
requestOptions?: Omit<OptionalChatRequestParams, 'n'>,
userInitiatedRequest?: boolean,
telemetryProperties?: TelemetryProperties,
intentParams?: IntentParams
): Promise<ChatResponse> {
return this.makeChatRequest2({
debugName,
Expand All @@ -86,7 +85,6 @@ export class MockEndpoint implements IChatEndpoint {
requestOptions,
userInitiatedRequest,
telemetryProperties,
intentParams
}, token);
}

Expand Down
3 changes: 0 additions & 3 deletions src/platform/endpoint/vscode-node/extChatEndpoint.ts
Original file line number Diff line number Diff line change
Expand Up @@ -11,7 +11,6 @@ import { AsyncIterableObject } from '../../../util/vs/base/common/async';
import { toErrorMessage } from '../../../util/vs/base/common/errorMessage';
import { generateUuid } from '../../../util/vs/base/common/uuid';
import { IInstantiationService } from '../../../util/vs/platform/instantiation/common/instantiation';
import { IntentParams } from '../../chat/common/chatMLFetcher';
import { ChatFetchResponseType, ChatLocation, ChatResponse } from '../../chat/common/commonTypes';
import { ILogService } from '../../log/common/logService';
import { FinishedCallback, OpenAiFunctionTool, OptionalChatRequestParams } from '../../networking/common/fetch';
Expand Down Expand Up @@ -196,7 +195,6 @@ export class ExtensionContributedChatEndpoint implements IChatEndpoint {
requestOptions?: Omit<OptionalChatRequestParams, 'n'>,
userInitiatedRequest?: boolean,
telemetryProperties?: Record<string, string>,
intentParams?: IntentParams
): Promise<ChatResponse> {
return this.makeChatRequest2({
debugName,
Expand All @@ -207,7 +205,6 @@ export class ExtensionContributedChatEndpoint implements IChatEndpoint {
requestOptions,
userInitiatedRequest,
telemetryProperties,
intentParams
}, token);
}

Expand Down
14 changes: 1 addition & 13 deletions src/platform/networking/common/networking.ts
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ import { createServiceIdentifier } from '../../../util/common/services';
import { ITokenizer, TokenizerType } from '../../../util/common/tokenizer';
import { AsyncIterableObject } from '../../../util/vs/base/common/async';
import { CancellationError } from '../../../util/vs/base/common/errors';
import { IntentParams, Source } from '../../chat/common/chatMLFetcher';
import { Source } from '../../chat/common/chatMLFetcher';
import type { ChatLocation, ChatResponse } from '../../chat/common/commonTypes';
import { EMBEDDING_MODEL } from '../../configuration/common/configurationService';
import { ICAPIClientService } from '../../endpoint/common/capiClient';
Expand Down Expand Up @@ -145,8 +145,6 @@ export interface IMakeChatRequestOptions {
userInitiatedRequest?: boolean;
/** (CAPI-only) Optional telemetry properties for analytics */
telemetryProperties?: TelemetryProperties;
/** (CAPI-only) Intent classifier details */
intentParams?: IntentParams;
/** Whether this request is retrying a filtered response */
isFilterRetry?: boolean;
}
Expand Down Expand Up @@ -216,7 +214,6 @@ export interface IChatEndpoint extends IEndpoint {
requestOptions?: Omit<OptionalChatRequestParams, 'n'>,
userInitiatedRequest?: boolean,
telemetryProperties?: TelemetryProperties,
intentParams?: IntentParams
): Promise<ChatResponse>;

/**
Expand Down Expand Up @@ -249,15 +246,6 @@ export function createCapiRequestBody(model: string, options: ICreateEndpointBod
Object.assign(request, options.postOptions);
}

// todo@connor4312/lramos: this was present but, from what I can tell, was
// never used in current code paths.
// if (options.intentParams) {
// request.intent = options.intentParams.intent;
// if (options.intentParams.intent_threshold) {
// request.intent_threshold = options.intentParams.intent_threshold;
// }
// }

return request;
}

Expand Down
3 changes: 1 addition & 2 deletions src/platform/openai/node/fetch.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,6 @@ import type { CancellationToken } from 'vscode';
import { createRequestHMAC } from '../../../util/common/crypto';
import { generateUuid } from '../../../util/vs/base/common/uuid';
import { IAuthenticationService } from '../../authentication/common/authentication';
import { IntentParams } from '../../chat/common/chatMLFetcher';
import { IChatQuotaService } from '../../chat/common/chatQuotaService';
import { ChatLocation } from '../../chat/common/commonTypes';
import { IInteractionService } from '../../chat/common/interactionService';
Expand Down Expand Up @@ -43,7 +42,7 @@ interface CopilotOnlyParams {
}

export interface ChatRequest extends
RequiredChatRequestParams, OptionalChatRequestParams, CopilotOnlyParams, IntentParams {
RequiredChatRequestParams, OptionalChatRequestParams, CopilotOnlyParams {
}

export enum FetchResponseKind {
Expand Down
7 changes: 3 additions & 4 deletions test/base/cachingChatMLFetcher.ts
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ import { tmpdir } from 'os';
import * as path from 'path';
import type { CancellationToken } from 'vscode';
import { AbstractChatMLFetcher } from '../../src/extension/prompt/node/chatMLFetcher';
import { IChatMLFetcher, IFetchMLOptions, IntentParams } from '../../src/platform/chat/common/chatMLFetcher';
import { IChatMLFetcher, IFetchMLOptions } from '../../src/platform/chat/common/chatMLFetcher';
import { ChatFetchResponseType, ChatResponses } from '../../src/platform/chat/common/commonTypes';
import { IConversationOptions } from '../../src/platform/chat/common/conversationOptions';
import { getTextPart } from '../../src/platform/chat/common/globalStringUtils';
Expand Down Expand Up @@ -40,10 +40,9 @@ export class CacheableChatRequest {
messages: Raw.ChatMessage[],
model: string,
requestOptions: OptionalChatRequestParams,
intentParams: IntentParams | undefined,
extraCacheProperties: any | undefined
) {
this.obj = { messages: rawMessageToCAPI(messages), model, requestOptions, intentParams, extraCacheProperties };
this.obj = { messages: rawMessageToCAPI(messages), model, requestOptions, extraCacheProperties };
this.hash = computeSHA256(CHAT_ML_CACHE_SALT + JSON.stringify(this.obj));

// To aid in reading cache entries, we will write objects to disk splitting each message by new lines
Expand Down Expand Up @@ -154,7 +153,7 @@ export class CachingChatMLFetcher extends AbstractChatMLFetcher implements IDisp
}

const finalReqOptions = this.preparePostOptions(opts.requestOptions);
const req = new CacheableChatRequest(opts.messages, opts.endpoint.model, finalReqOptions, opts.intentParams, this.extraCacheProperties);
const req = new CacheableChatRequest(opts.messages, opts.endpoint.model, finalReqOptions, this.extraCacheProperties);
// console.log(`request with hash: ${req.hash}`);

return CachingChatMLFetcher.Locks.withLock(req.hash, async () => {
Expand Down
Loading