Skip to content

Commit d3e9007

Browse files
committed
handle errors when getting sql database tools
1 parent 823efa6 commit d3e9007

File tree

4 files changed

+40
-20
lines changed

4 files changed

+40
-20
lines changed

.env.template

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ LANGSMITH_API_KEY="lsv2_xxx"
1616
AZURE_OPENAI_ENDPOINT="https://xxx.openai.azure.com/"
1717
AZURE_OPENAI_API_KEY="xxx"
1818
AZURE_OPENAI_API_VERSION="2025-04-01-preview"
19-
AZURE_OPENAI_MODEL_CHAT="gpt-4o"
19+
AZURE_OPENAI_MODEL_CHAT="gpt-5-chat"
2020
AZURE_OPENAI_MODEL_EMBEDDING="text-embedding-3-small"
2121
AZURE_OPENAI_MODEL_REASONING="o4-mini"
2222

template_langgraph/agents/chat_with_tools_agent/agent.py

Lines changed: 19 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
from template_langgraph.agents.chat_with_tools_agent.models import AgentState
77
from template_langgraph.llms.azure_openais import AzureOpenAiWrapper
88
from template_langgraph.loggers import get_logger
9-
from template_langgraph.tools.common import DEFAULT_TOOLS
9+
from template_langgraph.tools.common import get_default_tools
1010

1111
logger = get_logger(__name__)
1212

@@ -24,19 +24,29 @@ def __call__(self, inputs: dict):
2424
raise ValueError("No message found in input")
2525
outputs = []
2626
for tool_call in message.tool_calls:
27-
tool_result = self.tools_by_name[tool_call["name"]].invoke(tool_call["args"])
28-
outputs.append(
29-
ToolMessage(
30-
content=json.dumps(tool_result.__str__(), ensure_ascii=False),
31-
name=tool_call["name"],
32-
tool_call_id=tool_call["id"],
27+
try:
28+
tool_result = self.tools_by_name[tool_call["name"]].invoke(tool_call["args"])
29+
outputs.append(
30+
ToolMessage(
31+
content=json.dumps(tool_result.__str__(), ensure_ascii=False),
32+
name=tool_call["name"],
33+
tool_call_id=tool_call["id"],
34+
)
35+
)
36+
except Exception as e:
37+
logger.error(f"Error occurred while invoking tools: {e}")
38+
outputs.append(
39+
ToolMessage(
40+
content=json.dumps({"error": str(e)}, ensure_ascii=False),
41+
name=tool_call["name"],
42+
tool_call_id=tool_call["id"],
43+
)
3344
)
34-
)
3545
return {"messages": outputs}
3646

3747

3848
class ChatWithToolsAgent:
39-
def __init__(self, tools=DEFAULT_TOOLS):
49+
def __init__(self, tools=get_default_tools()):
4050
self.llm = AzureOpenAiWrapper().chat_model
4151
self.tools = tools
4252

template_langgraph/agents/kabuto_helpdesk_agent/agent.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,13 @@
22

33
from template_langgraph.llms.azure_openais import AzureOpenAiWrapper
44
from template_langgraph.loggers import get_logger
5-
from template_langgraph.tools.common import DEFAULT_TOOLS
5+
from template_langgraph.tools.common import get_default_tools
66

77
logger = get_logger(__name__)
88

99

1010
class KabutoHelpdeskAgent:
11-
def __init__(self, tools=DEFAULT_TOOLS):
11+
def __init__(self, tools=get_default_tools()):
1212
self.agent = create_react_agent(
1313
model=AzureOpenAiWrapper().chat_model,
1414
tools=tools,

template_langgraph/tools/common.py

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,25 @@
11
from template_langgraph.llms.azure_openais import AzureOpenAiWrapper
2+
from template_langgraph.loggers import get_logger
23
from template_langgraph.tools.cosmosdb_tool import search_cosmosdb
34
from template_langgraph.tools.dify_tool import run_dify_workflow
45
from template_langgraph.tools.elasticsearch_tool import search_elasticsearch
56
from template_langgraph.tools.qdrant_tool import search_qdrant
67
from template_langgraph.tools.sql_database_tool import SqlDatabaseClientWrapper
78

8-
DEFAULT_TOOLS = [
9-
search_cosmosdb,
10-
run_dify_workflow,
11-
search_qdrant,
12-
search_elasticsearch,
13-
] + SqlDatabaseClientWrapper().get_tools(
14-
llm=AzureOpenAiWrapper().chat_model,
15-
)
9+
logger = get_logger(__name__)
10+
11+
12+
def get_default_tools():
13+
try:
14+
sql_database_tools = SqlDatabaseClientWrapper().get_tools(
15+
llm=AzureOpenAiWrapper().chat_model,
16+
)
17+
except Exception as e:
18+
logger.error(f"Error occurred while getting SQL database tools: {e}")
19+
sql_database_tools = []
20+
return [
21+
search_cosmosdb,
22+
run_dify_workflow,
23+
search_qdrant,
24+
search_elasticsearch,
25+
] + sql_database_tools

0 commit comments

Comments
 (0)