ai-lawyer-agent/core/api/tools/decisions.py
2025-12-15 23:21:10 +01:00

53 lines
1.8 KiB
Python

from core.api.fetch_api_data import fetch_api_data
from core.api.schemas import Decision, DecisionID, DecisionAutocomplete
from agents import function_tool
BASE_URL = 'https://obcan.justice.sk/pilot/api/ress-isu-service'
class DecisionsAPI:
@function_tool
async def decision(self, params: Decision) -> dict:
"""
Fetch a list of decisions from the Justice API with optional filtering.
Args:
params (Decision): Filtering and pagination parameters.
Returns:
dict: A dictionary containing a list of decisions and related metadata.
"""
url = f"{BASE_URL}/v1/rozhodnutie"
return await fetch_api_data(icon="⚖️️", url=url, params=params.model_dump(exclude_none=True))
@function_tool
async def decision_id(self, params: DecisionID) -> dict:
"""
Fetch detailed information about a specific decision by its identifier.
Args:
params (DecisionID): Unique identifier of the decision.
Returns:
dict: Details of the specified decision.
"""
url = f"{BASE_URL}/v1/rozhodnutie/{params.id}"
return await fetch_api_data(icon="⚖️️", url=url, params=params.model_dump(exclude_none=True))
@function_tool
async def decision_autocomplete(self, params: DecisionAutocomplete) -> dict:
"""
Fetch autocomplete suggestions for decision-related search terms.
Args:
params (DecisionAutocomplete): Parameters for autocomplete.
Returns:
dict: Suggested values matching the input query.
"""
url = f"{BASE_URL}/v1/rozhodnutie/autocomplete"
return await fetch_api_data(icon="⚖️️", url=url, params=params.model_dump(exclude_none=True))