Compare commits

...

9 Commits

Author SHA1 Message Date
celestial-vault 874026e57d rename openAiTemperature to temperature 2025-03-08 15:54:23 -08:00
celestial-vault ca7f23f98c Allow user to pass decimal values 2025-03-07 16:26:55 -08:00
celestial-vault ae8a5ee562 use nullish coalescing operator 2025-03-06 00:23:28 -08:00
celestial-vault 0909252622 type error 2025-03-06 00:21:56 -08:00
celestial-vault 6a50c8fc26 move temperature to openaimodelinfo 2025-03-06 00:19:13 -08:00
celestial-vault 8fa1872bf9 changeset 2025-03-04 18:16:39 -08:00
celestial-vault 3a8d87f9b9 improved options layout 2025-03-04 17:14:08 -08:00
celestial-vault 057dc06e27 prevent type errors 2025-03-04 16:59:49 -08:00
celestial-vault 083c1d4c0a add temperature to openai compatible model configuration 2025-03-04 16:34:50 -08:00
4 changed files with 45 additions and 3 deletions
+5
View File
@@ -0,0 +1,5 @@
---
"claude-dev": minor
---
Add temperature control to OpenAI Compatible
+1 -1
View File
@@ -39,7 +39,7 @@ export class OpenAiHandler implements ApiHandler {
{ role: "system", content: systemPrompt },
...convertToOpenAiMessages(messages),
]
let temperature: number | undefined = 0
let temperature: number | undefined = this.options.openAiModelInfo?.temperature ?? openAiModelInfoSaneDefaults.temperature
let reasoningEffort: ChatCompletionReasoningEffort | undefined = undefined
if (isDeepseekReasoner) {
+7 -2
View File
@@ -41,7 +41,7 @@ export interface ApiHandlerOptions {
openAiBaseUrl?: string
openAiApiKey?: string
openAiModelId?: string
openAiModelInfo?: ModelInfo
openAiModelInfo?: OpenAiCompatibleModelInfo
ollamaModelId?: string
ollamaBaseUrl?: string
lmStudioModelId?: string
@@ -84,6 +84,10 @@ export interface ModelInfo {
description?: string
}
export interface OpenAiCompatibleModelInfo extends ModelInfo {
temperature?: number
}
// Anthropic
// https://docs.anthropic.com/en/docs/about-claude/models // prices updated 2025-01-02
export type AnthropicModelId = keyof typeof anthropicModels
@@ -370,13 +374,14 @@ export const vertexModels = {
},
} as const satisfies Record<string, ModelInfo>
export const openAiModelInfoSaneDefaults: ModelInfo = {
export const openAiModelInfoSaneDefaults: OpenAiCompatibleModelInfo = {
maxTokens: -1,
contextWindow: 128_000,
supportsImages: true,
supportsPromptCache: false,
inputPrice: 0,
outputPrice: 0,
temperature: 0,
}
// Gemini
@@ -870,6 +870,38 @@ const ApiOptions = ({ showModelOptions, apiErrorMessage, modelIdErrorMessage, is
<span style={{ fontWeight: 500 }}>Output Price / 1M tokens</span>
</VSCodeTextField>
</div>
<div style={{ display: "flex", gap: 10, marginTop: "5px" }}>
<VSCodeTextField
value={
apiConfiguration?.openAiModelInfo?.temperature
? apiConfiguration.openAiModelInfo.temperature.toString()
: openAiModelInfoSaneDefaults.temperature?.toString()
}
onInput={(input: any) => {
let modelInfo = apiConfiguration?.openAiModelInfo
? apiConfiguration.openAiModelInfo
: { ...openAiModelInfoSaneDefaults }
// Check if the input ends with a decimal point or has trailing zeros after decimal
const value = input.target.value
const shouldPreserveFormat =
value.endsWith(".") || (value.includes(".") && value.endsWith("0"))
modelInfo.temperature =
value === ""
? openAiModelInfoSaneDefaults.temperature
: shouldPreserveFormat
? value // Keep as string to preserve decimal format
: parseFloat(value)
setApiConfiguration({
...apiConfiguration,
openAiModelInfo: modelInfo,
})
}}>
<span style={{ fontWeight: 500 }}>Temperature</span>
</VSCodeTextField>
</div>
</>
)}
<p