optimize token usage
This commit is contained in:
+14
-2
@@ -42,7 +42,7 @@ def create_app():
|
||||
from yargitay_mcp_module.client import YargitayOfficialApiClient
|
||||
from yargitay_mcp_module.models import (
|
||||
YargitayDetailedSearchRequest, YargitayDocumentMarkdown, CompactYargitaySearchResult,
|
||||
YargitayBirimEnum
|
||||
YargitayBirimEnum, CleanYargitayDecisionEntry
|
||||
)
|
||||
from bedesten_mcp_module.client import BedestenApiClient
|
||||
from bedesten_mcp_module.models import (
|
||||
@@ -1004,8 +1004,20 @@ async def search_yargitay_detailed(
|
||||
try:
|
||||
api_response = await yargitay_client_instance.search_detailed_decisions(search_query)
|
||||
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(
|
||||
decisions=api_response.data.data,
|
||||
decisions=clean_decisions,
|
||||
total_records=api_response.data.recordsTotal,
|
||||
requested_page=search_query.pageNumber,
|
||||
page_size=search_query.pageSize)
|
||||
|
||||
@@ -64,7 +64,6 @@ class YargitayApiDecisionEntry(BaseModel):
|
||||
esasNo: Optional[str] = Field(None, alias="esasNo", description="Case no")
|
||||
kararNo: Optional[str] = Field(None, alias="kararNo", description="Decision no")
|
||||
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
|
||||
|
||||
# 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")
|
||||
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):
|
||||
"""A more compact search result model for the MCP tool to return."""
|
||||
decisions: List[YargitayApiDecisionEntry]
|
||||
decisions: List[CleanYargitayDecisionEntry]
|
||||
total_records: int
|
||||
requested_page: int
|
||||
page_size: int
|
||||
Reference in New Issue
Block a user