Skip to main content
دوال الذكاء الاصطناعي هي دوال مضمّنة في ClickHouse يمكنك استخدامها لاستدعاء الذكاء الاصطناعي أو إنشاء embeddings للعمل مع بياناتك، واستخراج المعلومات، وتصنيف البيانات، وغير ذلك…
دوال الذكاء الاصطناعي تجريبية. اضبط allow_experimental_ai_functions لتمكينها.
قد تُرجع دوال الذكاء الاصطناعي مخرجات غير متوقعة. وتعتمد النتيجة بدرجة كبيرة على جودة الموجّه والنموذج المستخدم.
تشترك جميع الدوال في بنية تحتية موحّدة توفّر ما يلي:

التهيئة

تشير دوال AI إلى مجموعة مُسمّاة تخزّن بيانات اعتماد الموفّر والتهيئة. الوسيط الأول لكل دالة هو اسم هذه المجموعة. مثال على تعليمة لإنشاء مجموعة مُسمّاة تتضمن بيانات اعتماد الموفّر:

معلمات المجموعة المسماة

يمكن استخدام أي واجهة برمجة تطبيقات متوافقة مع OpenAI (مثل vLLM وOllama وLiteLLM) عبر ضبط provider = 'openai' وتوجيه endpoint إلى خدمتك.

إعدادات على مستوى الاستعلام

تَرِد جميع الإعدادات المتعلقة بالذكاء الاصطناعي في الإعدادات تحت البادئة ai_function_.

تقييد مضيفات نقطة النهاية

يمثل عنوان URL الخاص بـ endpoint في مجموعة مسماة للذكاء الاصطناعي وجهةً خارجية يتصل بها الخادم باستخدام هويته الخاصة، وقد يتضمن — إذا جرى تحديده — api_key الخاص بالمجموعة المسماة في رؤوس الطلب. افتراضيًا، يسمح ClickHouse بأي مضيف. لحصر الدوال في مجموعة محددة من الموفّرين، اضبط remote_url_allow_hosts في إعدادات الخادم، على سبيل المثال:
لاحظ أن هذا الإعداد عام على مستوى الخادم ويسري على جميع الميزات التي تستخدم HTTP.

الموفّرون المدعومون

Observability

يُتتبَّع نشاط AI function عبر ProfileEvents في ClickHouse: استعلم عن هذه الأحداث:

aiClassify

أُضيف في: v26.4.0 يُصنّف النص المُعطى ضمن إحدى الفئات المتاحة باستخدام موفّر LLM. ترسل الدالة النص مع موجّه تصنيف ثابت وتنسيق استجابة من نوع JSON-schema يقيّد النموذج بحيث يُرجع تسمية واحدة فقط من التسميات المزوّدة. وعندما تُعاد الاستجابة على شكل كائن JSON بالصيغة {"category": "..."}، تُستخرج التسمية ويُعاد نصّها. المعامل الأول هو مجموعة مسماة تحدد الموفّر والنموذج ونقطة النهاية، واختياريًا مفتاح واجهة برمجة تطبيقات. الصياغة
الأسماء البديلة: AIClassify المعاملات
  • collection — اسم مجموعة مسماة تحتوي على بيانات اعتماد الموفّر والتهيئة. String
  • text — النص المطلوب تصنيفه. String
  • categories — قائمة ثابتة بتسميات الفئات المرشحة. Array(String)
  • temperature — درجة حرارة أخذ العينات التي تتحكم في مستوى العشوائية. القيمة الافتراضية: 0.0. Float64
القيمة المُعادة إحدى تسميات الفئات المقدَّمة، أو القيمة الافتراضية لنوع العمود (سلسلة فارغة) إذا فشل الطلب وكان ai_function_throw_on_error معطّلًا. String أمثلة تصنيف المشاعر
Query
Response
تصنيف عمود
Query
Response

aiEmbed

أُضيفت في: v26.6.0 تُنشئ متجه تضمين للنص المحدد باستخدام موفّر الذكاء الاصطناعي المُهيّأ. ترسل الدالة النص إلى نقطة نهاية التضمين المُهيّأة وتُرجع المتجه الناتج بصيغة Array(Float32). ضمن كتلة واحدة من الصفوف، تُجمَّع المُدخلات في دفعات يصل حجمها إلى ai_function_embedding_max_batch_size عنصرًا لكل طلب HTTP لتقليل العبء الإضافي لكل استدعاء. الوسيطة الأولى هي مجموعة مُسمّاة تحدد الموفّر، والنموذج، ونقطة النهاية، ويمكن أن تتضمن مفتاح واجهة برمجة تطبيقات اختياريًا. وتطلب الوسيطة الاختيارية dimensions، عند دعمها من قِبل النموذج (مثل text-embedding-3-* من OpenAI)، متجهًا بالحجم المحدد؛ وإلا فسيُعاد الحجم الأصلي للنموذج. البنية
الوسائط
  • collection — اسم مجموعة مُسمّاة تحتوي على بيانات اعتماد الموفّر والتهيئة. String
  • text — النص المطلوب تضمينه. String
  • dimensions — عدد الأبعاد المستهدف الاختياري لمتجه الإخراج. تعني القيمة 0 أو عدم تحديدها استخدام الحجم الأصلي للنموذج. UInt64
القيمة المُعادة متجه التضمين، أو مصفوفة فارغة إذا كان الإدخال NULL أو فارغًا، أو إذا فشل الطلب وكان ai_function_throw_on_error معطّلًا، أو إذا جرى تجاوز الحصة وكان ai_function_throw_on_quota_exceeded معطّلًا. Array(Float32) أمثلة تضمين سلسلة نصية واحدة
Query
Response
مع أبعاد محددة صراحة
Query
Response
تضمين عمود من النصوص
Query
Response

aiExtract

أُضيف في: v26.4.0 يستخرج معلومات منظَّمة من نص غير منظَّم باستخدام موفّر LLM. يمكن أن تكون الوسيطة الثالثة إما تعليمة بلغة طبيعية حرة الصياغة (مثل 'the main complaint') أو مخططًا مُرمَّزًا بتنسيق JSON بالشكل '{"field_a": "description of field a", "field_b": "description of field b"}'. في وضع التعليمات، تُرجِع الدالة القيمة المستخرجة كسلسلة نصية عادية، أو سلسلة فارغة إذا لم يُعثر على أي شيء. وفي وضع المخطط، تُرجِع الدالة سلسلة كائن JSON تتطابق مفاتيحها مع المخطط المطلوب؛ وتكون الحقول المفقودة null. الوسيطة الأولى هي مجموعة مُسمّاة تحدد الموفّر والنموذج ونقطة النهاية، وبشكل اختياري مفتاح واجهة برمجة تطبيقات. البنية
الأسماء البديلة: AIExtract الوسيطات
  • collection — اسم مجموعة مُسمّاة تحتوي على بيانات اعتماد الموفّر والتهيئة. String
  • text — النص المراد استخراج المعلومات منه. String
  • instruction_or_schema — تعليمة استخراج بصياغة حرة، أو كائن JSON ثابت يصف الحقول المطلوب استخراجها. const String
  • temperature — درجة حرارة أخذ العينات التي تتحكم في مستوى العشوائية. القيمة الافتراضية: 0.0. const Float64
القيمة المُعادة قيمة واحدة مستخرجة (وضع التعليمات) أو سلسلة JSON تمثل كائنًا (وضع المخطط). تُرجِع القيمة الافتراضية لنوع العمود (سلسلة فارغة) إذا فشل الطلب وكان ai_function_throw_on_error معطّلًا. String أمثلة تعليمة بصياغة حرة
Query
Response
استخراج المخطط
Query
Response

aiGenerate

أُضيف في: v26.4.0 ينشئ محتوى نصيًا حرّ الصياغة من موجّه باستخدام موفّر LLM. ترسل الدالة الموجّه إلى موفّر AI المُعدّ وتُرجِع النص المُنشأ. يمكن توفير موجّه نظام اختياري لتوجيه سلوك النموذج (مثل النبرة أو التنسيق أو الدور). إذا لم يتم توفير موجّه نظام، فسيكون موجّه النظام الافتراضي هو: You are a helpful assistant. Provide a clear and concise response. المعامل الأول هو مجموعة مسماة تحدد الموفّر والنموذج ونقطة النهاية، ويمكن أن تتضمن أيضًا مفتاح واجهة برمجة تطبيقات. الصيغة
الأسماء المستعارة: AIGenerate المعاملات
  • collection — اسم مجموعة مسماة تحتوي على بيانات اعتماد الموفّر والتهيئة. String
  • prompt — موجّه المستخدم أو سؤاله الذي يُرسل إلى النموذج. String
  • system_prompt — تعليمة اختيارية ثابتة على مستوى النظام تُوجّه سلوك النموذج (مثل الشخصية أو تنسيق المخرجات)، وتُرسل مع كل موجّه. String
  • temperature — درجة حرارة أخذ العينات التي تتحكم في العشوائية. القيمة الافتراضية: 0.7. Float64
القيمة المُعادة الاستجابة النصية المُولَّدة، أو القيمة الافتراضية لنوع العمود (سلسلة فارغة) إذا أخفق الطلب وكان ai_function_throw_on_error معطّلًا. String أمثلة سؤال بسيط
Query
Response
باستخدام موجّه النظام
Query
Response
تلخيص قيم العمود
Query
Response

aiTranslate

أُضيف في: v26.4.0 يترجم النص المحدد إلى اللغة الهدف المطلوبة باستخدام موفّر LLM. يمكن تمرير تعليمات إضافية للأسلوب أو اللهجة كوسيطة رابعة (مثلًا: 'أبقِ المصطلحات التقنية من دون ترجمة'). الوسيطة الأولى هي مجموعة مُسمّاة تحدد الموفّر، والنموذج، ونقطة النهاية، واختياريًا مفتاح واجهة برمجة تطبيقات. بناء الجملة
الأسماء البديلة: AITranslate الوسيطات
  • collection — اسم مجموعة مُسمّاة تحتوي على بيانات اعتماد الموفّر والتهيئة. String
  • text — النص المراد ترجمته. String
  • target_language — اسم اللغة المستهدفة أو رمز BCP-47 (مثل 'French'، 'es-MX'). String
  • instructions — تعليمات إضافية ثابتة اختيارية للمترجم. String
  • temperature — درجة حرارة أخذ العينات التي تتحكم في مستوى العشوائية. القيمة الافتراضية: 0.3. Float64
القيمة المُعادة النص المترجَم، أو القيمة الافتراضية لنوع العمود (سلسلة فارغة) إذا فشل الطلب وكان ai_function_throw_on_error معطّلًا. String أمثلة الترجمة إلى الفرنسية
Query
Response
الترجمة إلى اليابانية مع إرشادات الأسلوب
Query
Response
آخر تعديل في ١ يوليو ٢٠٢٦