LegalAI-DS / utils.py
hkhwilwh
Add application file
0d24772
raw
history blame
2.1 kB
from typing import List, Dict
import re
from langchain.tools import BaseTool
from crewai.tools import BaseTool as CrewAITool
from config import UAE_LEGAL_DOMAINS
def is_arabic(text: str) -> bool:
"""Check if the text contains Arabic characters."""
arabic_pattern = re.compile('[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF]+')
return bool(arabic_pattern.search(text))
def create_uae_legal_tools() -> List[CrewAITool]:
"""Create tools for UAE legal research."""
class UAELegalDatabaseTool(CrewAITool):
name: str = "UAE Legal Database Search"
description: str = "Search UAE legal databases for laws, regulations, and precedents"
def _run(self, query: str) -> str:
return f"Found relevant UAE legal information for: {query}"
class ArabicLegalTranslationTool(CrewAITool):
name: str = "Arabic Legal Term Translation"
description: str = "Translate legal terms between Arabic and English"
def _run(self, term: str) -> str:
return f"Translation for: {term}"
class UAECaseLawTool(CrewAITool):
name: str = "UAE Case Law Search"
description: str = "Search UAE case law and legal precedents"
def _run(self, query: str) -> str:
return f"Found relevant UAE case law for: {query}"
return [
UAELegalDatabaseTool(),
ArabicLegalTranslationTool(),
UAECaseLawTool()
]
def search_uae_legal_database(query: str) -> str:
"""Simulate searching UAE legal databases."""
return f"Found relevant UAE legal information for: {query}"
def translate_legal_term(term: str) -> str:
"""Simulate legal term translation."""
return f"Translation for: {term}"
def search_uae_case_law(query: str) -> str:
"""Simulate searching UAE case law."""
return f"Found relevant UAE case law for: {query}"
def format_legal_response(response: str, language: str = 'ar') -> str:
"""Format legal responses with proper styling and language direction."""
if language == 'ar':
return f'<div dir="rtl">{response}</div>'
return response