99 bedrockeEmbeddingDefaultModelId ,
1010 bedrockEmbeddingModels ,
1111 azureOpenAIApiVersion ,
12+ EmbeddingProvider ,
1213} from "../../../../src/shared/embeddings"
1314import { useExtensionState } from "../../context/ExtensionStateContext"
1415import { vscode } from "../../utils/vscode"
@@ -69,13 +70,27 @@ const EmbeddingOptions = ({ showModelOptions, showModelError = true, onValid }:
6970 if ( field === "provider" ) {
7071 // Reset the validation message
7172 setIsEmbeddingValid ( null )
73+
74+ // If provider is set to "none", uncheck "Same as LLM API configuration"
75+ if ( event . target . value === "none" && buildContextOptions ?. useSyncWithApi ) {
76+ setBuildContextOptions ( {
77+ ...buildContextOptions ,
78+ useSyncWithApi : false ,
79+ } )
80+ }
7281 }
7382
7483 const newEmbeddingConfiguration = { ...embeddingConfiguration , [ field ] : event . target . value }
7584 setEmbeddingConfiguration ( newEmbeddingConfiguration )
7685 }
7786
7887 useDeepCompareEffect ( ( ) => {
88+ // If provider is "none", skip validation and set as valid directly
89+ if ( embeddingConfiguration ?. provider === "none" ) {
90+ setIsEmbeddingValid ( null )
91+ return
92+ }
93+
7994 const error = validateEmbeddingConfiguration ( embeddingConfiguration )
8095
8196 if ( error ) {
@@ -145,17 +160,20 @@ const EmbeddingOptions = ({ showModelOptions, showModelError = true, onValid }:
145160 useEffect ( ( ) => {
146161 setEmbeddingConfiguration ( {
147162 ...embeddingConfiguration ,
148- provider : selectedProvider ,
163+ provider : selectedProvider as EmbeddingProvider ,
149164 modelId : selectedModelId ,
150165 } )
151166 // eslint-disable-next-line react-hooks/exhaustive-deps
152167 } , [ selectedModelId , selectedProvider ] )
153168
154169 const availableModels = useMemo ( ( ) => {
155- if ( ! selectedProvider ) {
170+ if ( ! selectedProvider || selectedProvider === "none" ) {
156171 return { } as Record < string , EmbeddingModelInfo >
157172 }
158- return embeddingProviderModels [ selectedProvider ] as Record < string , EmbeddingModelInfo >
173+ return embeddingProviderModels [ selectedProvider as keyof typeof embeddingProviderModels ] as Record <
174+ string ,
175+ EmbeddingModelInfo
176+ >
159177 } , [ selectedProvider ] )
160178
161179 return (
@@ -170,6 +188,7 @@ const EmbeddingOptions = ({ showModelOptions, showModelError = true, onValid }:
170188 onChange = { handleInputChange ( "provider" ) }
171189 disabled = { isLoading }
172190 style = { { minWidth : 130 , position : "relative" , width : "100%" } } >
191+ < VSCodeOption value = "none" > None</ VSCodeOption >
173192 < VSCodeOption value = "bedrock" > AWS Bedrock</ VSCodeOption >
174193 < VSCodeOption value = "openai-native" > OpenAI</ VSCodeOption >
175194 < VSCodeOption value = "openai" > OpenAI Compatible</ VSCodeOption >
@@ -476,7 +495,7 @@ const EmbeddingOptions = ({ showModelOptions, showModelError = true, onValid }:
476495}
477496
478497export function normalizeEmbeddingConfiguration ( embeddingConfiguration ?: EmbeddingConfiguration ) {
479- const provider = embeddingConfiguration ?. provider || "openai-native"
498+ const provider = embeddingConfiguration ?. provider || ( "openai-native" as EmbeddingProvider )
480499 const modelId = embeddingConfiguration ?. modelId
481500
482501 const getProviderData = ( models : Record < string , EmbeddingModelInfo > , defaultId : string ) => {
@@ -493,6 +512,12 @@ export function normalizeEmbeddingConfiguration(embeddingConfiguration?: Embeddi
493512 }
494513
495514 switch ( provider ) {
515+ case "none" :
516+ return {
517+ selectedProvider : "none" ,
518+ selectedModelId : "" ,
519+ selectedModelInfo : undefined ,
520+ }
496521 case "bedrock" :
497522 return getProviderData ( bedrockEmbeddingModels , bedrockeEmbeddingDefaultModelId )
498523 case "openai-native" :
0 commit comments