File size: 815 Bytes
1bd1563
 
 
 
 
 
 
 
 
 
199800a
1bd1563
 
 
199800a
1bd1563
199800a
1bd1563
 
 
 
 
 
0525622
1bd1563
 
0525622
 
1bd1563
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
"""LangChain tool wrapper for SQL queries - used by LangGraph agent."""

from langchain_core.tools import tool

from logger.logging import get_logger
from mcp_server.sql_tool import SQLTool

logger = get_logger(__name__)

_sql_tool = None
_sql_tool_init_failed = False


def _get_tool():
    global _sql_tool, _sql_tool_init_failed
    if _sql_tool is None:
        _sql_tool_init_failed = False
        _sql_tool = SQLTool()
    return _sql_tool


@tool
def query_database(natural_language_query: str, max_rows: int = 100) -> dict:
    """Query the database using a natural language question.

    Args:
        natural_language_query: Question about data (e.g. "top 5 products")
        max_rows: Max number of rows to return (default 100)
    """
    return _get_tool().execute(natural_language_query, max_rows)