Skip to content

Commit f7afdc8

Browse files
committed
✨ feat: Implement 'temperature' setting for model creativity control
1 parent 049b552 commit f7afdc8

File tree

4 files changed

+13
-2
lines changed

4 files changed

+13
-2
lines changed

package.json

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,11 @@
5151
"default": 256,
5252
"description": "Max number of new tokens to be generated."
5353
},
54+
"inference.temperature": {
55+
"type": "number",
56+
"default": 0.2,
57+
"description": "Temperature of the model. Increasing the temperature will make the model answer more creatively."
58+
},
5459
"inference.model": {
5560
"type": "string",
5661
"enum": [

src/prompts/autocomplete.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ export async function autocomplete(args: {
1010
suffix: string,
1111
maxLines: number,
1212
maxTokens: number,
13+
temperature: number,
1314
canceled?: () => boolean,
1415
}): Promise<string> {
1516

@@ -19,7 +20,8 @@ export async function autocomplete(args: {
1920
prompt: adaptPrompt({ prefix: args.prefix, suffix: args.suffix, model: args.model }),
2021
raw: true,
2122
options: {
22-
num_predict: args.maxTokens
23+
num_predict: args.maxTokens,
24+
temperature: args.temperature
2325
}
2426
};
2527

src/prompts/provider.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ export class PromptProvider implements vscode.InlineCompletionItemProvider {
6767
let model = config.get('model') as string;
6868
let maxLines = config.get('maxLines') as number;
6969
let maxTokens = config.get('maxTokens') as number;
70+
let temperature = config.get('temperature') as number;
7071
if (endpoint.endsWith('/')) {
7172
endpoint = endpoint.slice(0, endpoint.length - 1);
7273
}
@@ -102,6 +103,7 @@ export class PromptProvider implements vscode.InlineCompletionItemProvider {
102103
model: model,
103104
maxLines: maxLines,
104105
maxTokens: maxTokens,
106+
temperature,
105107
canceled: () => token.isCancellationRequested,
106108
});
107109
info(`AI completion completed: ${res}`);

src/test/suite/extension.test.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,14 +19,16 @@ suite('Extension Test Suite', () => {
1919
let model = 'codellama:7b-code-q4_K_S'; // Lightweight llm for tests
2020
let maxLines = 16;
2121
let maxTokens = 256;
22+
let temperature = 0.2;
2223
let prompt = 'fun main(): ';
2324
let result = await autocomplete({
2425
endpoint,
2526
model,
2627
prefix: prompt,
2728
suffix: '',
2829
maxLines,
29-
maxTokens
30+
maxTokens,
31+
temperature
3032
});
3133
console.warn(result);
3234
});

0 commit comments

Comments
 (0)