meet4150's picture
download
raw
2.35 kB
from __future__ import annotations
from typing import Any
from rag.reranker import rerank
from rag.vector_store import retrieve
MOCK_CLAIMS = {
"CLM-1001": {"status": "approved", "updated_at": "2026-04-08", "amount": 1240.0},
"CLM-1002": {"status": "under_review", "updated_at": "2026-04-09", "amount": None},
"CLM-1003": {"status": "denied", "updated_at": "2026-04-07", "amount": 0.0},
"CLM-1004": {"status": "paid", "updated_at": "2026-04-10", "amount": 5600.0},
}
def search_policy(
query: str,
use_reranker: bool = True,
top_k: int = 4,
) -> dict[str, Any]:
chunks = retrieve(query, k=top_k)
if use_reranker and len(chunks) > 1:
chunks = rerank(query, chunks, top_k=min(3, len(chunks)))
return {
"query": query,
"count": len(chunks),
"results": [
{
"source": c["source"],
"section": c.get("section", "Unknown section"),
"score": c.get("score"),
"rerank_score": c.get("rerank_score"),
"content": c["content"],
}
for c in chunks
],
}
def calculate_premium(coverage: float, risk_score: float) -> dict[str, Any]:
coverage_val = float(coverage)
risk_val = float(risk_score)
monthly = round(coverage_val * 0.002 * risk_val, 2)
return {
"formula": "coverage * 0.002 * risk_score",
"coverage": coverage_val,
"risk_score": risk_val,
"monthly_premium": monthly,
}
def check_claim_status(claim_id: str) -> dict[str, Any]:
claim = MOCK_CLAIMS.get(claim_id.strip().upper())
if claim is None:
return {
"claim_id": claim_id,
"status": "not_found",
"message": "Claim ID not found in mock system.",
}
return {"claim_id": claim_id.strip().upper(), **claim}
TOOL_SCHEMAS = {
"search_policy": {
"description": "Query insurance policy knowledge via RAG retrieval.",
"arguments": {"query": "string"},
},
"calculate_premium": {
"description": "Calculate mock monthly premium.",
"arguments": {"coverage": "number", "risk_score": "number"},
},
"check_claim_status": {
"description": "Lookup mock claim status from hardcoded map.",
"arguments": {"claim_id": "string"},
},
}

Xet Storage Details

Size:
2.35 kB
·
Xet hash:
c32c9faf974e8159c4f814fb6e5a866178f9d9e242726e4fd9265e828a4d66fd

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.