""" Native Arabic Function Schemas ============================== Bilingual function definitions with Arabic names, descriptions, and examples. """ NATIVE_ARABIC_SCHEMAS = [ # Financial Services - الخدمات المالية { "name": "transfer_money", "name_ar": "تحويل_أموال", "description": "Transfer money between bank accounts", "description_ar": "تحويل أموال بين الحسابات البنكية", "parameters": { "type": "object", "properties": { "from_account": { "type": "string", "description": "Source account number", "description_ar": "رقم الحساب المصدر", "examples_ar": ["SA0380000000608010167519"] }, "to_account": { "type": "string", "description": "Destination account number", "description_ar": "رقم الحساب المستقبل" }, "amount": { "type": "number", "description": "Amount to transfer", "description_ar": "المبلغ المراد تحويله" }, "currency": { "type": "string", "description": "Currency code", "description_ar": "رمز العملة", "enum": ["SAR", "AED", "EGP", "KWD", "QAR"], "examples_ar": ["ريال سعودي", "درهم إماراتي", "جنيه مصري"] } }, "required": ["from_account", "to_account", "amount"] } }, { "name": "check_balance", "name_ar": "استعلام_رصيد", "description": "Check account balance", "description_ar": "الاستعلام عن رصيد الحساب", "parameters": { "type": "object", "properties": { "account_number": { "type": "string", "description": "Account number to check", "description_ar": "رقم الحساب للاستعلام" } }, "required": ["account_number"] } }, { "name": "pay_bill", "name_ar": "دفع_فاتورة", "description": "Pay a utility or service bill", "description_ar": "دفع فاتورة خدمات", "parameters": { "type": "object", "properties": { "bill_type": { "type": "string", "description": "Type of bill", "description_ar": "نوع الفاتورة", "enum": ["electricity", "water", "telecom", "internet"], "enum_ar": ["كهرباء", "مياه", "اتصالات", "إنترنت"] }, "account_id": { "type": "string", "description": "Bill account/subscriber ID", "description_ar": "رقم المشترك" }, "amount": { "type": "number", "description": "Amount to pay", "description_ar": "المبلغ المراد دفعه" } }, "required": ["bill_type", "account_id"] } }, # Government Services - الخدمات الحكومية { "name": "renew_id", "name_ar": "تجديد_هوية", "description": "Renew national ID card", "description_ar": "تجديد بطاقة الهوية الوطنية", "parameters": { "type": "object", "properties": { "id_number": { "type": "string", "description": "National ID number", "description_ar": "رقم الهوية الوطنية" }, "reason": { "type": "string", "description": "Reason for renewal", "description_ar": "سبب التجديد", "enum": ["expiry", "damaged", "lost", "data_update"], "enum_ar": ["انتهاء الصلاحية", "تالفة", "مفقودة", "تحديث بيانات"] } }, "required": ["id_number"] } }, { "name": "book_appointment", "name_ar": "حجز_موعد", "description": "Book an appointment at a government office", "description_ar": "حجز موعد في جهة حكومية", "parameters": { "type": "object", "properties": { "service_type": { "type": "string", "description": "Type of service", "description_ar": "نوع الخدمة" }, "location": { "type": "string", "description": "Preferred location/branch", "description_ar": "الفرع المفضل", "examples_ar": ["الرياض - العليا", "جدة - الحمراء"] }, "date": { "type": "string", "description": "Preferred date (YYYY-MM-DD)", "description_ar": "التاريخ المفضل" }, "time_slot": { "type": "string", "description": "Preferred time slot", "description_ar": "الفترة الزمنية", "enum": ["morning", "afternoon"], "enum_ar": ["صباحي", "مسائي"] } }, "required": ["service_type", "date"] } }, # E-commerce - التجارة الإلكترونية { "name": "search_product", "name_ar": "البحث_عن_منتج", "description": "Search for products in the store", "description_ar": "البحث عن منتجات في المتجر", "parameters": { "type": "object", "properties": { "query": { "type": "string", "description": "Search query", "description_ar": "كلمات البحث" }, "category": { "type": "string", "description": "Product category", "description_ar": "فئة المنتج", "examples_ar": ["إلكترونيات", "ملابس", "أجهزة منزلية"] }, "min_price": { "type": "number", "description": "Minimum price", "description_ar": "الحد الأدنى للسعر" }, "max_price": { "type": "number", "description": "Maximum price", "description_ar": "الحد الأقصى للسعر" }, "sort_by": { "type": "string", "description": "Sort order", "description_ar": "ترتيب حسب", "enum": ["price_asc", "price_desc", "rating", "newest"], "enum_ar": ["السعر تصاعدي", "السعر تنازلي", "التقييم", "الأحدث"] } }, "required": ["query"] } }, { "name": "add_to_cart", "name_ar": "إضافة_للسلة", "description": "Add a product to shopping cart", "description_ar": "إضافة منتج إلى سلة التسوق", "parameters": { "type": "object", "properties": { "product_id": { "type": "string", "description": "Product identifier", "description_ar": "معرف المنتج" }, "quantity": { "type": "integer", "description": "Quantity to add", "description_ar": "الكمية", "default": 1 }, "size": { "type": "string", "description": "Product size if applicable", "description_ar": "المقاس" }, "color": { "type": "string", "description": "Product color if applicable", "description_ar": "اللون" } }, "required": ["product_id"] } }, # Healthcare - الرعاية الصحية { "name": "book_doctor_appointment", "name_ar": "حجز_موعد_طبيب", "description": "Book an appointment with a doctor", "description_ar": "حجز موعد مع طبيب", "parameters": { "type": "object", "properties": { "specialty": { "type": "string", "description": "Medical specialty", "description_ar": "التخصص الطبي", "examples_ar": ["طب عام", "طب أطفال", "طب باطني", "طب عيون", "طب أسنان"] }, "doctor_name": { "type": "string", "description": "Specific doctor name (optional)", "description_ar": "اسم الطبيب (اختياري)" }, "hospital": { "type": "string", "description": "Hospital or clinic name", "description_ar": "اسم المستشفى أو العيادة" }, "date": { "type": "string", "description": "Preferred date", "description_ar": "التاريخ المفضل" }, "reason": { "type": "string", "description": "Reason for visit", "description_ar": "سبب الزيارة" } }, "required": ["specialty", "date"] } }, { "name": "get_lab_results", "name_ar": "نتائج_التحاليل", "description": "Retrieve laboratory test results", "description_ar": "استرجاع نتائج التحاليل المخبرية", "parameters": { "type": "object", "properties": { "patient_id": { "type": "string", "description": "Patient ID or file number", "description_ar": "رقم المريض أو الملف" }, "test_type": { "type": "string", "description": "Type of test", "description_ar": "نوع التحليل", "examples_ar": ["تحليل دم شامل", "تحليل سكر", "وظائف كلى", "وظائف كبد"] }, "date_from": { "type": "string", "description": "Start date for results", "description_ar": "تاريخ البداية" } }, "required": ["patient_id"] } }, # Travel & Transportation - السفر والنقل { "name": "book_flight", "name_ar": "احجز_رحلة", "description": "Book a flight between cities", "description_ar": "حجز رحلة طيران بين المدن", "parameters": { "type": "object", "properties": { "origin": { "type": "string", "description": "Departure city", "description_ar": "مدينة المغادرة", "examples_ar": ["القاهرة", "الرياض", "دبي", "جدة"] }, "destination": { "type": "string", "description": "Arrival city", "description_ar": "مدينة الوصول" }, "date": { "type": "string", "description": "Travel date", "description_ar": "تاريخ السفر" }, "return_date": { "type": "string", "description": "Return date (optional)", "description_ar": "تاريخ العودة (اختياري)" }, "passengers": { "type": "integer", "description": "Number of passengers", "description_ar": "عدد المسافرين", "default": 1 }, "class": { "type": "string", "description": "Travel class", "description_ar": "درجة السفر", "enum": ["economy", "business", "first"], "enum_ar": ["اقتصادية", "أعمال", "أولى"] } }, "required": ["origin", "destination", "date"] } }, # Weather - الطقس { "name": "get_weather", "name_ar": "احصل_على_الطقس", "description": "Get weather information for a city", "description_ar": "الحصول على معلومات الطقس لمدينة", "parameters": { "type": "object", "properties": { "city": { "type": "string", "description": "City name", "description_ar": "اسم المدينة", "examples_ar": ["القاهرة", "دبي", "الرياض", "بيروت", "عمان"] }, "days": { "type": "integer", "description": "Number of forecast days", "description_ar": "عدد أيام التوقعات", "default": 1 } }, "required": ["city"] } } ] def get_schema_by_name(name: str, use_arabic: bool = False) -> dict: """Get a schema by its name (English or Arabic).""" for schema in NATIVE_ARABIC_SCHEMAS: if schema['name'] == name or schema.get('name_ar') == name: if use_arabic: # Return Arabic-ified version return { 'name': schema.get('name_ar', schema['name']), 'description': schema.get('description_ar', schema['description']), 'parameters': schema['parameters'] } return schema return None def get_schemas_by_category(category: str) -> list: """Get all schemas in a category.""" category_map = { 'financial': ['transfer_money', 'check_balance', 'pay_bill'], 'government': ['renew_id', 'book_appointment'], 'ecommerce': ['search_product', 'add_to_cart'], 'healthcare': ['book_doctor_appointment', 'get_lab_results'], 'travel': ['book_flight'], 'weather': ['get_weather'], } names = category_map.get(category, []) return [get_schema_by_name(name) for name in names if get_schema_by_name(name)]