Spaces:
Sleeping
Sleeping
| """ | |
| Data knowledge agent: builds the graph node that retrieves parameter/configuration | |
| information based on user queries (e.g. market mappings, cluster definitions). | |
| """ | |
| from __future__ import annotations | |
| from tools import parameter_reader | |
| from tools.state import GraphState | |
| def _tool_call(tool_or_fn, **kwargs): | |
| callable_obj = getattr(tool_or_fn, "func", tool_or_fn) | |
| return callable_obj(**kwargs) | |
| def build_data_knowledge_node(): | |
| """ | |
| Factory that returns a data knowledge node for the graph. | |
| The node uses the parameter reader to fetch relevant parameter info for the user query. | |
| """ | |
| def data_knowledge_node(state: GraphState) -> dict: | |
| user_query = state.get("user_query", "") | |
| rows = _tool_call(parameter_reader, user_query=user_query) | |
| error_message = state.get("error_message", "") | |
| if not rows and not error_message: | |
| error_message = "I couldn't find relevant parameter information for your request." | |
| return { | |
| "parameter_data": rows, | |
| "error_message": error_message, | |
| } | |
| return data_knowledge_node | |