Skip to content

Commit f57892c

Browse files
authored
Set verbosity to "low" for model (#1813)
* Set verbosity to "low" for model * Keep createRequestBody sync for simplicity in endgame
1 parent 70cad94 commit f57892c

File tree

5 files changed

+25
-7
lines changed

5 files changed

+25
-7
lines changed

src/extension/prompt/node/chatMLFetcher.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -113,7 +113,7 @@ export class ChatMLFetcherImpl extends AbstractChatMLFetcher {
113113
}
114114

115115
const postOptions = this.preparePostOptions(requestOptions);
116-
const requestBody = chatEndpoint.createRequestBody({
116+
const requestBody = await chatEndpoint.createRequestBody({
117117
...opts,
118118
requestId: ourRequestId,
119119
postOptions

src/platform/endpoint/common/chatModelCapabilities.ts

Lines changed: 14 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,8 @@ const VSC_MODEL_HASHES_B = [
2727
'df610ed210bb9266ff8ab812908d5837538cdb1d7436de907fb7e970dab5d289',
2828
];
2929

30+
let hiddenModelBFamily: string | undefined;
31+
const HIDDEN_MODEL_B_HASH = '8f398886c326b5f8f07b20ac250c87de6723e062474465273fe1524f2b9092fa';
3032

3133
function getModelId(model: LanguageModelChat | IChatEndpoint): string {
3234
return 'id' in model ? model.id : model.model;
@@ -39,7 +41,11 @@ export async function isHiddenModelA(model: LanguageModelChat | IChatEndpoint) {
3941

4042
export async function isHiddenModelB(model: LanguageModelChat | IChatEndpoint): Promise<boolean> {
4143
const h = await getCachedSha256Hash(model.family);
42-
return h === '8f398886c326b5f8f07b20ac250c87de6723e062474465273fe1524f2b9092fa';
44+
if (h === HIDDEN_MODEL_B_HASH) {
45+
hiddenModelBFamily = model.family;
46+
return true;
47+
}
48+
return false;
4349
}
4450

4551

@@ -150,3 +156,10 @@ export function modelNeedsStrongReplaceStringHint(model: LanguageModelChat | ICh
150156
export function modelSupportsSimplifiedApplyPatchInstructions(model: LanguageModelChat | IChatEndpoint): boolean {
151157
return model.family.startsWith('gpt-5');
152158
}
159+
160+
export function getVerbosityForModelSync(model: IChatEndpoint): 'low' | 'medium' | 'high' | undefined {
161+
if (model.family === hiddenModelBFamily) {
162+
return 'low';
163+
}
164+
return undefined;
165+
}

src/platform/endpoint/node/chatEndpoint.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,7 +246,7 @@ export class ChatEndpoint implements IChatEndpoint {
246246

247247
createRequestBody(options: ICreateEndpointBodyOptions): IEndpointBody {
248248
if (this.useResponsesApi) {
249-
const body = this._instantiationService.invokeFunction(createResponsesRequestBody, options, this.model, this.modelMetadata);
249+
const body = this._instantiationService.invokeFunction(createResponsesRequestBody, options, this.model, this);
250250
return this.customizeResponsesBody(body);
251251
} else {
252252
const body = createCapiRequestBody(options, this.model, this.getCompletionsCallback());

src/platform/endpoint/node/responsesApi.ts

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -18,18 +18,19 @@ import { IInstantiationService, ServicesAccessor } from '../../../util/vs/platfo
1818
import { ConfigKey, IConfigurationService } from '../../configuration/common/configurationService';
1919
import { ILogService } from '../../log/common/logService';
2020
import { FinishedCallback, IResponseDelta, OpenAiResponsesFunctionTool } from '../../networking/common/fetch';
21-
import { ICreateEndpointBodyOptions, IEndpointBody } from '../../networking/common/networking';
21+
import { IChatEndpoint, ICreateEndpointBodyOptions, IEndpointBody } from '../../networking/common/networking';
2222
import { ChatCompletion, FinishedCompletionReason, TokenLogProb } from '../../networking/common/openai';
2323
import { IExperimentationService } from '../../telemetry/common/nullExperimentationService';
2424
import { ITelemetryService } from '../../telemetry/common/telemetry';
2525
import { TelemetryData } from '../../telemetry/common/telemetryData';
26-
import { IChatModelInformation } from '../common/endpointProvider';
26+
import { getVerbosityForModelSync } from '../common/chatModelCapabilities';
2727
import { getStatefulMarkerAndIndex } from '../common/statefulMarkerContainer';
2828
import { rawPartAsThinkingData } from '../common/thinkingDataContainer';
2929

30-
export function createResponsesRequestBody(accessor: ServicesAccessor, options: ICreateEndpointBodyOptions, model: string, modelInfo: IChatModelInformation): IEndpointBody {
30+
export function createResponsesRequestBody(accessor: ServicesAccessor, options: ICreateEndpointBodyOptions, model: string, endpoint: IChatEndpoint): IEndpointBody {
3131
const configService = accessor.get(IConfigurationService);
3232
const expService = accessor.get(IExperimentationService);
33+
const verbosity = getVerbosityForModelSync(endpoint);
3334
const body: IEndpointBody = {
3435
model,
3536
...rawMessagesToResponseAPI(model, options.messages, !!options.ignoreStatefulMarker),
@@ -48,7 +49,8 @@ export function createResponsesRequestBody(accessor: ServicesAccessor, options:
4849
? { type: 'function', name: options.postOptions.tool_choice.function.name }
4950
: options.postOptions.tool_choice,
5051
top_logprobs: options.postOptions.logprobs ? 3 : undefined,
51-
store: false
52+
store: false,
53+
text: verbosity ? { verbosity } : undefined,
5254
};
5355

5456
body.truncation = configService.getConfig(ConfigKey.Internal.UseResponsesApiTruncation) ?

src/platform/networking/common/networking.ts

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -101,6 +101,9 @@ export interface IEndpointBody {
101101
truncation?: 'auto' | 'disabled';
102102
include?: ['reasoning.encrypted_content'];
103103
store?: boolean;
104+
text?: {
105+
verbosity?: 'low' | 'medium' | 'high';
106+
};
104107
}
105108

106109
export interface IEndpointFetchOptions {

0 commit comments

Comments
 (0)