optimize token usage

This commit is contained in:
saidsurucu
2025-07-13 22:11:35 +03:00
parent 6bac51dc19
commit 71218996fd
2 changed files with 24 additions and 4 deletions
+14 -2
View File
@@ -42,7 +42,7 @@ def create_app():
from yargitay_mcp_module.client import YargitayOfficialApiClient from yargitay_mcp_module.client import YargitayOfficialApiClient
from yargitay_mcp_module.models import ( from yargitay_mcp_module.models import (
YargitayDetailedSearchRequest, YargitayDocumentMarkdown, CompactYargitaySearchResult, YargitayDetailedSearchRequest, YargitayDocumentMarkdown, CompactYargitaySearchResult,
YargitayBirimEnum YargitayBirimEnum, CleanYargitayDecisionEntry
) )
from bedesten_mcp_module.client import BedestenApiClient from bedesten_mcp_module.client import BedestenApiClient
from bedesten_mcp_module.models import ( from bedesten_mcp_module.models import (
@@ -1004,8 +1004,20 @@ async def search_yargitay_detailed(
try: try:
api_response = await yargitay_client_instance.search_detailed_decisions(search_query) api_response = await yargitay_client_instance.search_detailed_decisions(search_query)
if api_response.data: if api_response.data:
# Convert to clean decision entries without arananKelime field
clean_decisions = [
CleanYargitayDecisionEntry(
id=decision.id,
daire=decision.daire,
esasNo=decision.esasNo,
kararNo=decision.kararNo,
kararTarihi=decision.kararTarihi,
document_url=decision.document_url
)
for decision in api_response.data.data
]
return CompactYargitaySearchResult( return CompactYargitaySearchResult(
decisions=api_response.data.data, decisions=clean_decisions,
total_records=api_response.data.recordsTotal, total_records=api_response.data.recordsTotal,
requested_page=search_query.pageNumber, requested_page=search_query.pageNumber,
page_size=search_query.pageSize) page_size=search_query.pageSize)
+10 -2
View File
@@ -64,7 +64,6 @@ class YargitayApiDecisionEntry(BaseModel):
esasNo: Optional[str] = Field(None, alias="esasNo", description="Case no") esasNo: Optional[str] = Field(None, alias="esasNo", description="Case no")
kararNo: Optional[str] = Field(None, alias="kararNo", description="Decision no") kararNo: Optional[str] = Field(None, alias="kararNo", description="Decision no")
kararTarihi: Optional[str] = Field(None, alias="kararTarihi", description="Date") kararTarihi: Optional[str] = Field(None, alias="kararTarihi", description="Date")
arananKelime: Optional[str] = Field(None, alias="arananKelime", description="Keyword")
# 'index' and 'siraNo' from API response are not critical for MCP tool, so omitted for brevity # 'index' and 'siraNo' from API response are not critical for MCP tool, so omitted for brevity
# This field will be populated by the client after fetching the search list # This field will be populated by the client after fetching the search list
@@ -91,9 +90,18 @@ class YargitayDocumentMarkdown(BaseModel):
markdown_content: Optional[str] = Field(None, description="Content") markdown_content: Optional[str] = Field(None, description="Content")
source_url: HttpUrl = Field(..., description="Source URL") source_url: HttpUrl = Field(..., description="Source URL")
class CleanYargitayDecisionEntry(BaseModel):
"""Clean decision entry without arananKelime field to reduce token usage."""
id: str
daire: Optional[str] = Field(None, description="Chamber")
esasNo: Optional[str] = Field(None, description="Case no")
kararNo: Optional[str] = Field(None, description="Decision no")
kararTarihi: Optional[str] = Field(None, description="Date")
document_url: Optional[HttpUrl] = Field(None, description="Document URL")
class CompactYargitaySearchResult(BaseModel): class CompactYargitaySearchResult(BaseModel):
"""A more compact search result model for the MCP tool to return.""" """A more compact search result model for the MCP tool to return."""
decisions: List[YargitayApiDecisionEntry] decisions: List[CleanYargitayDecisionEntry]
total_records: int total_records: int
requested_page: int requested_page: int
page_size: int page_size: int