DB

ذكاء قاعدة أوراكل: Select AI والاستعلام باللغة الطبيعية

اسأل قاعدة أوراكل بلغة طبيعية عبر Select AI: اضبط الصلاحيات وبيانات الاعتماد وملف تعريف الذكاء، ثم ولّد SQL وافحصه ونفّذه. مع توضيح أين يعمل Select AI وما البيانات التي يرسلها إلى مزوّد الذكاء.

متوسط⏱ 3 دقيقة قراءةآخر تحديث: 2026-10-10

يتيح لك Select AI كتابة سؤال بلغة طبيعية والحصول على SQL، يولّده مزوّد ذكاء تختاره ويقتصر على كائنات المخطط التي تسمح بها. يشرح هذا الدليل الإعداد على Autonomous AI Database، وكيف تفحص SQL قبل أن تثق به، وعلاقة Select AI بـ بحث المتجهات (AI Vector Search) وJSON Relational Duality.

ℹ أين يعمل Select AI

Select AI جزء من حزمة DBMS_CLOUD_AI. وهو مُثبّت مسبقًا في Oracle Autonomous AI Database (Serverless وDedicated وCloud@Customer). وتذكر أوراكل أيضًا Oracle AI Database 26ai وOracle Database 19c، لكن في هذه القواعد المُدارة ذاتيًا يجب أولًا تثبيت حزم DBMS_CLOUD وتهيئتها يدويًا (راجع *Using the DBMS_CLOUD Family of Packages* في وثائق أوراكل). وحاوية Oracle AI Database 26ai Free القياسية لا تتضمنها: الحزمة DBMS_CLOUD_AI غير موجودة حتى تثبّتها. تفترض الخطوات التالية Autonomous AI Database.

1. منح الصلاحيات (بحساب ADMIN)

يحتاج المستخدم الذي يشغّل Select AI إلى صلاحية EXECUTE على DBMS_CLOUD_AI وإلى وصول شبكي إلى مضيف واجهة المزوّد. يستخدم هذا المثال OpenAI ومخطط العينة HR؛ استبدلهما بمستخدمك ومضيف مزوّدك.

GRANT EXECUTE ON DBMS_CLOUD_AI TO HR;

BEGIN
  DBMS_NETWORK_ACL_ADMIN.APPEND_HOST_ACE(
    host => 'api.openai.com',
    ace  => xs$ace_type(privilege_list => xs$name_list('http'),
                        principal_name => 'HR',
                        principal_type => xs_acl.ptype_db));
END;
/

2. تخزين بيانات اعتماد المزوّد

خزّن مفتاح الواجهة كبيانات اعتماد في القاعدة عبر DBMS_CLOUD.CREATE_CREDENTIAL. مع OpenAI تكون password هي مفتاحك السري. ويستخدم المزوّدون الآخرون (OCI Generative AI وAzure OpenAI وAWS…) أنواعًا مختلفة من بيانات الاعتماد — راجع أمثلة المزوّدين في وثائق أوراكل.

BEGIN
  DBMS_CLOUD.CREATE_CREDENTIAL(
    credential_name => 'AI_CRED',
    username        => 'OPENAI',
    password        => '<your_api_key>');
END;
/

3. إنشاء ملف تعريف الذكاء

يحدّد *ملف تعريف الذكاء* المزوّد وبيانات الاعتماد، ومن خلال object_list الجداول والعروض التي يمكن لـ Select AI استخدام وصفها. الخاصيتان provider وcredential_name إلزاميتان. اضبط model صراحةً على نموذج من قائمة *Select your AI Provider and LLMs* في وثائق أوراكل لمزوّدك (لا توثّق أوراكل نموذج محادثة افتراضيًا لـ OpenAI؛ ويتجاهل Azure OpenAI الخاصية model ويستخدم النشر الخاص بك). وتضيف "comments": true تعليقات الجداول والأعمدة إلى البيانات الوصفية المرسلة إلى النموذج.

BEGIN
  DBMS_CLOUD_AI.CREATE_PROFILE(
    profile_name => 'HR_AI',
    attributes   => '{"provider": "openai",
                      "credential_name": "AI_CRED",
                      "model": "gpt-5",
                      "comments": true,
                      "object_list": [{"owner": "HR", "name": "EMPLOYEES"},
                                      {"owner": "HR", "name": "DEPARTMENTS"}]}');
END;
/

4. اسأل بلغة طبيعية

اضبط ملف التعريف مرة في كل جلسة (اتصال)، ثم استخدم SELECT AI <action> <prompt>. وبدون تحديد إجراء يكون الافتراضي runsql: يُولَّد SQL ويُنفَّذ.

EXEC DBMS_CLOUD_AI.SET_PROFILE('HR_AI');

SELECT AI how many employees per department earn above average;

-- لعرض SQL المُولَّد بدلًا من تنفيذه
SELECT AI showsql how many employees per department earn above average;
  • runsql (الافتراضي) — يولّد SQL وينفّذه.
  • showsql — يعرض SQL المُولَّد دون تنفيذه.
  • explainsql — يشرح SQL المُولَّد بلغة مبسّطة.
  • narrate — ينفّذ SQL ويعيد إجابة نصية (يرسل صفوف النتيجة إلى المزوّد).
  • chat — يرسل السؤال مباشرة إلى النموذج دون توليد SQL.

⚠ راجع قبل أن تثق

قد تولّد النماذج اللغوية SQL خاطئًا. استخدم showsql لفحص الاستعلام قبل الاعتماد عليه، واستخدم أسماء أعمدة واضحة، أو أضف تعليقات على الأعمدة واضبط "comments": true في ملف التعريف كي تصل إلى النموذج.

الاتصالات عديمة الحالة وAPEX

يسري SET_PROFILE طوال الجلسة فقط. في الاتصالات عديمة الحالة أو المُجمَّعة — وفي APEX وDatabase Actions حيث لا تُدعم الكلمة SELECT AI — استدعِ DBMS_CLOUD_AI.GENERATE ومرّر ملف التعريف في كل استدعاء.

SELECT DBMS_CLOUD_AI.GENERATE(
         prompt       => 'how many employees per department earn above average',
         profile_name => 'HR_AI',
         action       => 'showsql')
FROM dual;

ما الذي يغادر القاعدة

لتوليد SQL ترسل أوراكل سؤالك مع بيانات وصف المخطط فقط — تعريفات الجداول والأعمدة، إضافةً إلى التعليقات والتوصيفات (annotations) والقيود عند تفعيلها في ملف التعريف (comments وannotations وconstraints) — لا قيم الصفوف. والاستثناء هو narrate: يرسل نتيجة الاستعلام إلى المزوّد. أبقِ الجداول الحساسة خارج object_list، وأضف "enforce_object_list": true إن كان يجب أن يبقى SQL المُولَّد ضمن الكائنات المدرجة.

أين يقع بقية ذكاء القاعدة

  • بحث المتجهات (AI Vector Search) — بحث بالتشابه الدلالي على متجهات مخزنة في القاعدة؛ ويمكن لـ Select AI استخدام فهرس متجهات لـ RAG (انظر دليل بحث المتجهات).
  • عروض JSON Relational Duality — البيانات نفسها كجداول علائقية وكمستندات JSON، وهي مريحة لخلفيات التطبيقات.
  • Select AI narrate — إجابة نصية بدل الصفوف لتطبيقات المحادثة.

اختبر فهمك

Check your understanding

0% · 0/3

ماذا يفعل SELECT AI showsql؟

ما الذي يحدّد الجداول المرئية لـ Select AI؟

أي إجراء يرسل نتائج الاستعلام (بياناتك) إلى مزوّد الذكاء؟

تحتاج إلى تنفيذها؟

اطلب عرضًا