Jelajahi Sumber

Merge branch 'main' into christiaan/ollama-env-var

Christiaan Arnoldus 5 bulan lalu
induk
melakukan
6b6b18b85f

+ 5 - 0
.changeset/dirty-aliens-slide.md

@@ -0,0 +1,5 @@
+---
+"kilo-code": patch
+---
+
+The Data Provider Collection setting in the Kilo Code and OpenRouter provider settings is now enabled even when a specific inference provider is selected.

+ 5 - 0
.changeset/forty-deers-matter.md

@@ -0,0 +1,5 @@
+---
+"kilo-code": patch
+---
+
+Add GPT-5 support to LiteLLM provider

+ 2 - 2
src/api/providers/lite-llm.ts

@@ -109,7 +109,7 @@ export class LiteLLMHandler extends RouterProvider implements SingleCompletionHa
 
 		const requestOptions: OpenAI.Chat.Completions.ChatCompletionCreateParamsStreaming = {
 			model: modelId,
-			max_tokens: maxTokens,
+			max_completion_tokens: maxTokens, // kilocode_change
 			messages: [systemMessage, ...enhancedMessages],
 			stream: true,
 			stream_options: {
@@ -189,7 +189,7 @@ export class LiteLLMHandler extends RouterProvider implements SingleCompletionHa
 				requestOptions.temperature = this.options.modelTemperature ?? 0
 			}
 
-			requestOptions.max_tokens = info.maxTokens
+			requestOptions.max_completion_tokens = info.maxTokens // kilocode_change
 
 			const response = await this.client.chat.completions.create(requestOptions)
 			return response.choices[0]?.message.content || ""

+ 1 - 0
src/api/providers/openrouter.ts

@@ -114,6 +114,7 @@ export class OpenRouterHandler extends BaseProvider implements SingleCompletionH
 					order: [this.options.openRouterSpecificProvider],
 					only: [this.options.openRouterSpecificProvider],
 					allow_fallbacks: false,
+					data_collection: this.options.openRouterProviderDataCollection,
 				},
 			}
 		}

+ 3 - 1
src/api/providers/router-provider.ts

@@ -9,6 +9,8 @@ import { getModels } from "./fetchers/modelCache"
 
 import { DEFAULT_HEADERS } from "./constants"
 
+const TEMPERATURE_UNSUPPORTED_PREFIXES = ["openai/o3", "openai/gpt5", "gpt-5"] // kilocode_change
+
 type RouterProviderOptions = {
 	name: RouterName
 	baseURL: string
@@ -69,6 +71,6 @@ export abstract class RouterProvider extends BaseProvider {
 	}
 
 	protected supportsTemperature(modelId: string): boolean {
-		return !modelId.startsWith("openai/o3-mini")
+		return !TEMPERATURE_UNSUPPORTED_PREFIXES.some((prefix) => modelId.startsWith(prefix)) // kilocode_change
 	}
 }

+ 6 - 9
webview-ui/src/components/settings/providers/KiloProviderRouting.tsx

@@ -54,8 +54,10 @@ export const KiloProviderRouting = ({ apiConfiguration, setApiConfigurationField
 	}
 
 	const specficProvider = apiConfiguration.openRouterSpecificProvider
-	const specificProviderIsSet = !!specficProvider && specficProvider !== OPENROUTER_DEFAULT_PROVIDER_NAME
-	const specificProviderIsInvalid = specificProviderIsSet && !providers.find((p) => p.label === specficProvider)
+	const specificProviderIsInvalid =
+		!!specficProvider &&
+		specficProvider !== OPENROUTER_DEFAULT_PROVIDER_NAME &&
+		!providers.find((p) => p.label === specficProvider)
 
 	return (
 		<div className="flex flex-col gap-1">
@@ -95,19 +97,14 @@ export const KiloProviderRouting = ({ apiConfiguration, setApiConfigurationField
 				</SelectContent>
 			</Select>
 			<Select
-				value={
-					specificProviderIsSet ? "default" : (apiConfiguration.openRouterProviderDataCollection ?? "default")
-				}
+				value={apiConfiguration.openRouterProviderDataCollection ?? "default"}
 				onValueChange={(value) => {
-					if (specificProviderIsSet) {
-						return
-					}
 					setApiConfigurationField(
 						"openRouterProviderDataCollection",
 						openRouterProviderDataCollectionSchema.safeParse(value).data,
 					)
 				}}>
-				<SelectTrigger disabled={specificProviderIsSet} className="w-full">
+				<SelectTrigger className="w-full">
 					<SelectValue />
 				</SelectTrigger>
 				<SelectContent>