From 285f26cf6366852f720d542196706ccd66b92c4c Mon Sep 17 00:00:00 2001 From: Chenglong Wang Date: Thu, 24 Apr 2025 13:34:51 -0700 Subject: [PATCH 1/2] fix bugs around using openai client for ollama or openrouter etc --- py-src/data_formulator/agent_routes.py | 1 + py-src/data_formulator/agents/client_utils.py | 21 +++++++++- src/views/ModelSelectionDialog.tsx | 42 ++++++------------- 3 files changed, 32 insertions(+), 32 deletions(-) diff --git a/py-src/data_formulator/agent_routes.py b/py-src/data_formulator/agent_routes.py index 47dae653..b4e14c82 100644 --- a/py-src/data_formulator/agent_routes.py +++ b/py-src/data_formulator/agent_routes.py @@ -158,6 +158,7 @@ def test_model(): "message": "" } except Exception as e: + print(f"Error: {e}") logger.info(f"Error: {e}") result = { "model": content['model'], diff --git a/py-src/data_formulator/agents/client_utils.py b/py-src/data_formulator/agents/client_utils.py index b304d5a7..fb5e1aef 100644 --- a/py-src/data_formulator/agents/client_utils.py +++ b/py-src/data_formulator/agents/client_utils.py @@ -54,6 +54,7 @@ def __init__(self, endpoint, model, api_key=None, api_base=None, api_version=No self.model = model else: self.model = f"ollama/{model}" + def get_completion(self, messages): """ @@ -63,12 +64,28 @@ def get_completion(self, messages): # Configure LiteLLM if self.endpoint == "openai": + + print("--------------------------------") + print(f"self.params: {self.params}") + print(f"self.model: {self.model}") + print(f"self.endpoint: {self.endpoint}") + print(f"self.params['api_key']: {self.params.get('api_key', 'None')}") + print(f"self.params['api_base']: {self.params.get('api_base', 'None')}") + print(f"self.params['api_version']: {self.params.get('api_version', 'None')}") + print("--------------------------------") + + client = openai.OpenAI( - api_key=self.params["api_key"], - base_url=self.params["api_base"] if "api_base" in self.params else None, + base_url=self.params.get("api_base", 'placeholder'), + api_key=self.params.get("api_key", 'placeholder'), timeout=120 ) + + print("--------------------------------") + print(f"client: {client}") + print("--------------------------------") + completion_params = { "model": self.model, "messages": messages, diff --git a/src/views/ModelSelectionDialog.tsx b/src/views/ModelSelectionDialog.tsx index ab7eafda..d0e57ac5 100644 --- a/src/views/ModelSelectionDialog.tsx +++ b/src/views/ModelSelectionDialog.tsx @@ -100,9 +100,9 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { const [newEndpoint, setNewEndpoint] = useState(""); // openai, azure, ollama etc const [newModel, setNewModel] = useState(""); - const [newApiKey, setNewApiKey] = useState(undefined); - const [newApiBase, setNewApiBase] = useState(undefined); - const [newApiVersion, setNewApiVersion] = useState(undefined); + const [newApiKey, setNewApiKey] = useState(""); + const [newApiBase, setNewApiBase] = useState(""); + const [newApiVersion, setNewApiVersion] = useState(""); // Fetch available models from the API useEffect(() => { @@ -145,23 +145,6 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { fetchModelOptions(); }, []); - useEffect(() => { - if (newEndpoint == 'ollama') { - if (!newApiBase) { - setNewApiBase('http://localhost:11434'); - } - } - if (newEndpoint == "openai") { - if (!newModel && providerModelOptions.openai.length > 0) { - setNewModel(providerModelOptions.openai[0]); - } - } - if (newEndpoint == "anthropic") { - if (!newModel && providerModelOptions.anthropic.length > 0) { - setNewModel(providerModelOptions.anthropic[0]); - } - } - }, [newEndpoint, providerModelOptions]); let modelExists = models.some(m => m.endpoint == newEndpoint && m.model == newModel && m.api_base == newApiBase @@ -247,8 +230,8 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { { setNewApiKey(event.target.value); }} + value={newApiKey} + onChange={(event: any) => { setNewApiKey(event.target.value); }} autoComplete='off' /> @@ -304,7 +287,6 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { { setNewApiBase(event.target.value); }} @@ -343,9 +325,9 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { setNewEndpoint(""); setNewModel(""); - setNewApiKey(undefined); - setNewApiBase(undefined); - setNewApiVersion(undefined); + setNewApiKey(""); + setNewApiBase(""); + setNewApiVersion(""); }}> @@ -358,9 +340,9 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { event.stopPropagation() setNewEndpoint(""); setNewModel(""); - setNewApiKey(undefined); - setNewApiBase(undefined); - setNewApiVersion(undefined); + setNewApiKey(""); + setNewApiBase(""); + setNewApiVersion(""); }}> @@ -527,7 +509,7 @@ export const ModelSelectionButton: React.FC<{}> = ({ }) => { {modelTable} - {appConfig.DISABLE_DISPLAY_KEYS && ( + {!appConfig.DISABLE_DISPLAY_KEYS && (