ai-lawyer-agent/api/tools/admin_proceedings.py

61 lines
2.3 KiB
Python

from api.fetch_api_data import fetch_api_data, docstring_from_model
from api.schemas import (AdministrativeProceedings,
AdministrativeProceedingsID,
AdministrativeProceedingsAutocomplete)
from agents import function_tool
BASE_URL = "https://obcan.justice.sk/pilot/api/ress-isu-service"
class AdminProceedingsAPI:
@function_tool
@docstring_from_model(AdministrativeProceedings)
async def admin_proceedings(self, params: AdministrativeProceedings) -> dict:
"""
Fetch a list of administrative proceedings from the Justice API with optional filtering.
Args:
params (AdministrativeProceedings): Filtering and pagination parameters.
{params}
Returns:
dict: A dictionary containing a list of administrative proceedings and related metadata.
"""
url = f"{BASE_URL}/v1/spravneKonanie"
return await fetch_api_data(icon="✒️", url=url, params=params.model_dump(exclude_none=True))
@function_tool
@docstring_from_model(AdministrativeProceedingsID)
async def admin_proceedings_id(self, params: AdministrativeProceedingsID) -> dict:
"""
Fetch detailed information about a specific administrative proceeding by its identifier.
Args:
params (AdministrativeProceedingsID): Unique identifier of the administrative proceeding.
{params}
Returns:
dict: Details of the specified administrative proceeding.
"""
url = f"{BASE_URL}/v1/spravneKonanie/{params.id}"
return await fetch_api_data(icon="✒️", url=url, params=params.model_dump(exclude_none=True))
@function_tool
@docstring_from_model(AdministrativeProceedingsAutocomplete)
async def admin_proceedings_autocomplete(self, params: AdministrativeProceedingsAutocomplete) -> dict:
"""
Fetch autocomplete suggestions for administrative proceeding search terms.
Args:
params (AdministrativeProceedingsAutocomplete): Parameters for autocomplete query (e.g., partial text).
{params}
Returns:
dict: Suggested values matching the input query.
"""
url = f"{BASE_URL}/v1/spravneKonanie/autocomplete"
return await fetch_api_data(icon="✒️", url=url, params=params.model_dump(exclude_none=True))