@@ -139,10 +139,44 @@ def on_vendor_change():
139139                value = st .session_state ["config" ]["openai" ]["embeddings_model" ],
140140                key = "embeddings_model" ,
141141            )
142+ 
143+             def  on_openai_compatible_api_change ():
144+                 st .session_state .use_openai_compatible_api  =  (
145+                     st .session_state .openai_compatible_api_checkbox 
146+                 )
147+ 
148+             if  "use_openai_compatible_api"  not  in st .session_state :
149+                 st .session_state .use_openai_compatible_api  =  False 
150+ 
151+             use_openai_compatible_api  =  st .checkbox (
152+                 "Use OpenAI compatible API" ,
153+                 value = st .session_state .use_openai_compatible_api ,
154+                 key = "openai_compatible_api_checkbox" ,
155+                 on_change = on_openai_compatible_api_change ,
156+             )
157+             st .session_state .use_openai_compatible_api  =  use_openai_compatible_api 
158+ 
159+             if  use_openai_compatible_api :
160+                 st .info ("Used for OpenAI compatible endpoints, e.g. Ollama, vLLM..." )
161+                 openai_api_key  =  st .text_input (
162+                     "OpenAI API key for compatible APIs" ,
163+                     value = st .session_state ["config" ]["openai" ]["api_key" ],
164+                     key = "openai_api_key" ,
165+                 )
166+                 openai_api_base_url  =  st .text_input (
167+                     "OpenAI API base URL" ,
168+                     value = st .session_state ["config" ]["openai" ]["base_url" ],
169+                     key = "openai_api_base_url" ,
170+                 )
171+             else :
172+                 openai_api_key  =  st .session_state ["config" ]["openai" ]["api_key" ]
173+                 openai_api_base_url  =  st .session_state ["config" ]["openai" ]["base_url" ]
142174            st .session_state .config ["openai" ] =  {
143175                "simple_model" : simple_model ,
144176                "complex_model" : complex_model ,
145177                "embeddings_model" : embeddings_model ,
178+                 "api_key" : openai_api_key ,
179+                 "base_url" : openai_api_base_url ,
146180            }
147181
148182        elif  vendor  ==  "aws" :
0 commit comments