Просмотр исходного кода

Merge pull request #241 from samhvw8/fix/list-model-openai-compatible

fix(openai-compatible) fix load model when change baseUrl
Matt Rubens 1 год назад
Родитель
Сommit
948c66c1af

+ 4 - 3
src/core/webview/ClineProvider.ts

@@ -522,9 +522,10 @@ export class ClineProvider implements vscode.WebviewViewProvider {
 						await this.refreshOpenRouterModels()
 						break
 					case "refreshOpenAiModels":
-						const { apiConfiguration } = await this.getState()
-						const openAiModels = await this.getOpenAiModels(apiConfiguration.openAiBaseUrl, apiConfiguration.openAiApiKey)
-						this.postMessageToWebview({ type: "openAiModels", openAiModels })
+						if (message?.values?.baseUrl && message?.values?.apiKey) {
+							const openAiModels = await this.getOpenAiModels(message?.values?.baseUrl, message?.values?.apiKey)
+							this.postMessageToWebview({ type: "openAiModels", openAiModels })
+						}	
 						break
 					case "openImage":
 						openImage(message.text!)

+ 1 - 0
src/shared/WebviewMessage.ts

@@ -59,6 +59,7 @@ export interface WebviewMessage {
 	toolName?: string
 	alwaysAllow?: boolean
 	dataUrls?: string[]
+	values?: Record<string, any>
 }
 
 export type ClineAskResponse = "yesButtonClicked" | "noButtonClicked" | "messageResponse"

+ 10 - 1
webview-ui/src/components/settings/OpenAiModelPicker.tsx

@@ -26,7 +26,16 @@ const OpenAiModelPicker: React.FC = () => {
 	}
 
 	useEffect(() => {
-		vscode.postMessage({ type: "refreshOpenAiModels" })
+		if (!apiConfiguration?.openAiBaseUrl || !apiConfiguration?.openAiApiKey) {
+			return
+		}
+
+		vscode.postMessage({
+			type: "refreshOpenAiModels", values: {
+				baseUrl: apiConfiguration?.openAiBaseUrl,
+				apiKey: apiConfiguration?.openAiApiKey
+			}
+		})
 	}, [apiConfiguration?.openAiBaseUrl, apiConfiguration?.openAiApiKey])
 
 	useEffect(() => {