AI APIs

بناء وكلاء موثوقين: المخرجات المهيكلة واستخدام الأدوات مع واجهة برمجة تطبيقات xAI

مع نضج نماذج اللغات الكبيرة (LLMs)، يتحول التركيز في هندسة الإنتاج من واجهات الدردشة البسيطة إلى سير عمل الوكلاء المعقدة والمستقلة. لكي تكون هذه الوكلاء موثوقة، يجب أن تتجاوز التوليد النصي الاحتمالي إلى هياكل بيانات حتمية وإجراءات خارجية دقيقة. توفر واجهة برمجة تطبيقات xAI قدرات قوية لكلا الجانبين، لكن تنفيذها بشكل صحيح يتطلب فهماً عميقاً للتحقق من صحة المخططات وتسجيل الأدوات.

تحدي المخرجات غير الحتمية

في تطبيقات نماذج اللغات الكبيرة التقليدية، يعد الحصول على هيكل JSON الدقيق الذي تحتاجه أمراً صعباً للغاية. وبدون قيود صارمة، قد تبتكر النماذج مفاتيح غير موجودة، أو تتجاهل الحقول المطلوبة، أو تعيد النص محاطاً بكتل تنسيق Markdown. هذا الهشاشة تعطل خطوط معالجة البيانات اللاحقة. تكمن الحل في فرض المخرجات المهيكلة على مستوى واجهة برمجة التطبيقات، مما يضمن أن يعيد النموذج بيانات تلتزم تماماً بمخطط JSON المحدد مسبقاً.

فرض المخرجات المهيكلة

تسمح واجهة برمجة تطبيقات xAI للمطورين بتمرير معلمة response_format. عند تكوينها باستخدام json_schema، يتم تقييد النموذج لإخراج JSON صالح يتطابق فقط مع ذلك المخطط. هذا أمر حاسم للوكلاء الذين يحتاجون إلى تحليل التكوين، أو استخراج الكيانات، أو توليد مقاطع شفرة ديناميكية.

لنفترض سيناريو يحتاج فيه وكيل إلى استخراج معلومات الاتصال من بريد إلكتروني. بدلاً من الاعتماد على معالجة ما بعد النص باستخدام التعبيرات النمطية (regex)، يمكننا تعريف مخطط مباشرة في الطلب.

import xai

client = xai.Client(api_key="your-api-key")

response = client.chat.completions.create(
    model="grok-2",
    messages=[
        {
            "role": "user",
            "content": "Extract details from: 'Hi, I'm John Doe, CEO of TechCorp. Email: john@techcorp.com.'"
        }
    ],
    response_format={
        "type": "json_schema",
        "json_schema": {
            "name": "contact_info",
            "schema": {
                "type": "object",
                "properties": {
                    "name": {"type": "string"},
                    "role": {"type": "string"},
                    "company": {"type": "string"},
                    "email": {"type": "string", "format": "email"}
                },
                "required": ["name", "email"],
                "additionalProperties": False
            }
        }
    }
)

# Accessing the clean, parsed data
print(response.choices[0].message.content)

لاحظ استخدام additionalProperties: False. يضمن هذا أن النموذج لن يتضمن حقولاً غير متوقعة، مما يحافظ على سلامة قاعدة البيانات أو هياكل البيانات الداخلية الخاصة بك.

تنسيق الإجراءات باستخدام استخدام الأدوات

بينما تتعامل المخرجات المهيكلة مع البيانات، يتعامل استخدام الأدوات (أو استدعاء الدوال) مع الإجراءات. يحتاج الوكلاء إلى التفاعل مع العالم الخارجي—سواء كان ذلك عبر استعلام قواعد البيانات، أو إجراء مكالمات واجهة برمجة التطبيقات، أو إجراء حسابات. تسمح واجهة برمجة تطبيقات xAI بتعريف الأدوات التي يمكن للنموذج استدعاؤها ديناميكياً.

عند تسجيل الأدوات، الدقة هي المفتاح. يجب أن تحدد أوصاف الأدوات بوضوح ما تفعله الأداة وما هي الحجج التي تتوقعها. سيقرر النموذج بعد ذلك ما إذا كان سيستدعي الأداة وأي معلمات سيقوم بتمريرها، بناءً على نية المستخدم.

def get_weather(location: str) -> dict:
    """Get current weather for a location."""
    return {"temperature": 72, "unit": "F", "location": location}

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "Retrieve current weather data",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {"type": "string", "description": "City name or zip code"}
                },
                "required": ["location"]
            }
        }
    }
]

response = client.chat.completions.create(
    model="grok-2",
    messages=[{"role": "user", "content": "What's the weather in Seattle?"}],
    tools=tools
)

سيحتوي الرد على كائن tool_calls. يجب على منطق التطبيق الخاص بك تنفيذ دالة get_weather باستخدام الحجج المقدمة، ثم إعادة تغذية النتيجة مرة أخرى إلى حلقة المحادثة حتى يتمكن النموذج من صياغة استجابة باللغة الطبيعية.

الخاتمة

يجمع دمج المخرجات المهيكلة مع استخدام الأدوات القوي بين واجهة برمجة تطبيقات xAI لتحويلها من مولد للنصوص إلى محرك وكلاء وظيفي. من خلال فرض مخططات JSON صارمة، تقضي على أخطاء التحليل وتضمن اتساق البيانات. ومن خلال دمج تعريفات الأدوات، تتيح لوكلائك التصرف في العالم بدلاً من مجرد مناقشته. بالنسبة للمطورين الذين يبنون الجيل القادم من التطبيقات المدعومة بالذكاء الاصطناعي، لم يعد إتقان هذه الأنماط خياراً—it أصبح ضرورياً.

Share: