From 438f0ac5bbe4d1efd32a0fcc81ee1c2d1c2cc2b6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Fievet?= Date: Sun, 26 Jan 2025 14:34:38 +0100 Subject: [PATCH] Update llms.py Add Deepseek --- app/llms.py | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/app/llms.py b/app/llms.py index 3850abe..026a31d 100644 --- a/app/llms.py +++ b/app/llms.py @@ -5,6 +5,7 @@ from langchain_groq import ChatGroq from langchain_anthropic import ChatAnthropic from crewai import LLM +from langchain_openai.chat_models.base import BaseChatOpenAI # Načtení prostředí z .env load_dotenv(override=True) @@ -18,6 +19,8 @@ "LMSTUDIO_API_BASE": os.getenv("LMSTUDIO_API_BASE"), "ANTHROPIC_API_KEY": os.getenv("ANTHROPIC_API_KEY"), "OLLAMA_HOST": os.getenv("OLLAMA_HOST"), + "DEEPSEEK_API_KEY": os.getenv("DEEPSEEK_API_KEY"), + "DEEPSEEK_BASE_URL": os.getenv("DEEPSEEK_BASE_URL"), } else: st.session_state.env_vars = st.session_state.env_vars @@ -89,6 +92,28 @@ def create_ollama_llm(model, temperature): else: raise ValueError("Ollama Host is not set in .env file") + +def create_deepseek_llm(model, temperature): + host = st.session_state.env_vars.get("DEEPSEEK_BASE_URL") + api_key = st.session_state.env_vars.get("DEEPSEEK_API_KEY") + + if not host or not api_key: + raise ValueError("DEEPSEEK_BASE_URL and DEEPSEEK_API_KEY must be set in .env file") + + switch_environment({ + "OPENAI_API_KEY": api_key, + "OPENAI_API_BASE": host, + }) + + return LLM( + model="deepseek/deepseek-chat", # Format correct pour DeepSeek selon liteLLM + temperature=temperature, + api_key=api_key, + base_url=host + ) + + + def create_lmstudio_llm(model, temperature): switch_environment({ "OPENAI_API_KEY": "lm-studio", @@ -123,6 +148,10 @@ def create_lmstudio_llm(model, temperature): "models": ["claude-3-5-sonnet-20240620"], "create_llm": create_anthropic_llm, }, + "DeepSeek": { + "models": ["deepseek/deepseek-chat"], + "create_llm": create_deepseek_llm, + }, "LM Studio": { "models": ["lms-default"], "create_llm": create_lmstudio_llm,