nPeppon commited on
Commit
7eff63d
·
1 Parent(s): 0584af4

Refactor core.py and multimodal_tools.py to support dynamic provider selection for Chat models; update requirements.txt to include langchain_openai and gradio[oauth].

Browse files
Files changed (3) hide show
  1. nodes/core.py +20 -8
  2. requirements.txt +3 -1
  3. tools/multimodal_tools.py +21 -10
nodes/core.py CHANGED
@@ -3,6 +3,7 @@ import os
3
  # Import the load_dotenv function from the dotenv library
4
  from dotenv import load_dotenv
5
  from langchain_google_genai import ChatGoogleGenerativeAI
 
6
  from tools.multimodal_tools import extract_text, analyze_image_tool, analyze_audio_tool
7
  from tools.math_tools import add, subtract, multiply, divide
8
  from tools.search_tools import search_tool, serpapi_search
@@ -12,7 +13,6 @@ from langfuse.callback import CallbackHandler
12
  load_dotenv()
13
 
14
  # Read your API key from the environment variable or set it manually
15
- api_key = os.getenv("GEMINI_API_KEY")
16
  langfuse_secret_key = os.getenv("LANGFUSE_SECRET_KEY")
17
  langfuse_public_key = os.getenv("LANGFUSE_PUBLIC_KEY")
18
 
@@ -23,13 +23,25 @@ langfuse_handler = CallbackHandler(
23
  host="http://localhost:3000"
24
  )
25
 
26
- chat = ChatGoogleGenerativeAI(
27
- model= "gemini-2.5-pro-preview-05-06",
28
- temperature=0,
29
- max_retries=2,
30
- google_api_key=api_key,
31
- thinking_budget= 0
32
- )
 
 
 
 
 
 
 
 
 
 
 
 
33
 
34
  tools = [
35
  extract_text,
 
3
  # Import the load_dotenv function from the dotenv library
4
  from dotenv import load_dotenv
5
  from langchain_google_genai import ChatGoogleGenerativeAI
6
+ from langchain_openai import ChatOpenAI
7
  from tools.multimodal_tools import extract_text, analyze_image_tool, analyze_audio_tool
8
  from tools.math_tools import add, subtract, multiply, divide
9
  from tools.search_tools import search_tool, serpapi_search
 
13
  load_dotenv()
14
 
15
  # Read your API key from the environment variable or set it manually
 
16
  langfuse_secret_key = os.getenv("LANGFUSE_SECRET_KEY")
17
  langfuse_public_key = os.getenv("LANGFUSE_PUBLIC_KEY")
18
 
 
23
  host="http://localhost:3000"
24
  )
25
 
26
+
27
+ provider = os.getenv("PROVIDER", "GOOGLE")
28
+ if provider == "GOOGLE":
29
+ api_key = os.getenv("GEMINI_API_KEY")
30
+ chat = ChatGoogleGenerativeAI(
31
+ model= "gemini-2.5-pro-preview-05-06",
32
+ temperature=0,
33
+ max_retries=2,
34
+ google_api_key=api_key,
35
+ thinking_budget= 0
36
+ )
37
+ elif provider == "OPENAI":
38
+ chat = ChatOpenAI(
39
+ model= "gpt-4o",
40
+ temperature=0,
41
+ max_retries=2,
42
+ )
43
+ else:
44
+ raise ValueError(f"Invalid provider: {provider}")
45
 
46
  tools = [
47
  extract_text,
requirements.txt CHANGED
@@ -54,6 +54,7 @@ langchain-text-splitters==0.3.8
54
  langfuse==2.60.7
55
  langgraph==0.4.8
56
  langgraph-checkpoint==2.0.26
 
57
  langgraph-prebuilt==0.2.2
58
  langgraph-sdk==0.1.70
59
  langsmith==0.3.44
@@ -118,4 +119,5 @@ wrapt==1.17.2
118
  xxhash==3.5.0
119
  yarl==1.20.0
120
  youtube-transcript-api==1.0.3
121
- zstandard==0.23.0
 
 
54
  langfuse==2.60.7
55
  langgraph==0.4.8
56
  langgraph-checkpoint==2.0.26
57
+ langchain_openai
58
  langgraph-prebuilt==0.2.2
59
  langgraph-sdk==0.1.70
60
  langsmith==0.3.44
 
119
  xxhash==3.5.0
120
  yarl==1.20.0
121
  youtube-transcript-api==1.0.3
122
+ zstandard==0.23.0
123
+ gradio[oauth]
tools/multimodal_tools.py CHANGED
@@ -4,16 +4,27 @@ from langchain_core.messages import AnyMessage, SystemMessage, HumanMessage
4
  from langchain_google_genai import ChatGoogleGenerativeAI
5
  from langchain.tools import Tool
6
  from langchain_core.tools import tool
7
-
8
- api_key = os.getenv("GEMINI_API_KEY")
9
-
10
- # Create LLM class
11
- vision_llm = ChatGoogleGenerativeAI(
12
- model= "gemini-2.5-flash-preview-05-20",
13
- temperature=0,
14
- max_retries=2,
15
- google_api_key=api_key
16
- )
 
 
 
 
 
 
 
 
 
 
 
17
 
18
  @tool("extract_text_tool", parse_docstring=True)
19
  def extract_text(img_path: str) -> str:
 
4
  from langchain_google_genai import ChatGoogleGenerativeAI
5
  from langchain.tools import Tool
6
  from langchain_core.tools import tool
7
+ from langchain_openai import ChatOpenAI
8
+
9
+
10
+ provider = os.getenv("PROVIDER", "GOOGLE")
11
+ if provider == "GOOGLE":
12
+ api_key = os.getenv("GEMINI_API_KEY")
13
+ vision_llm = ChatGoogleGenerativeAI(
14
+ model= "gemini-2.5-pro-preview-05-06",
15
+ temperature=0,
16
+ max_retries=2,
17
+ google_api_key=api_key,
18
+ thinking_budget= 0
19
+ )
20
+ elif provider == "OPENAI":
21
+ vision_llm = ChatOpenAI(
22
+ model= "gpt-4o",
23
+ temperature=0,
24
+ max_retries=2,
25
+ )
26
+ else:
27
+ raise ValueError(f"Invalid provider: {provider}")
28
 
29
  @tool("extract_text_tool", parse_docstring=True)
30
  def extract_text(img_path: str) -> str: