دوال الذكاء الاصطناعي تجريبية. اضبط
allow_experimental_ai_functions لتمكينها.قد تُرجع دوال الذكاء الاصطناعي مخرجات غير متوقعة. وتعتمد النتيجة بدرجة كبيرة على جودة الموجّه والنموذج المستخدم.
- فرض الحصص: حدود لكل استعلام على الرموز (
ai_function_max_input_tokens_per_query,ai_function_max_output_tokens_per_query) واستدعاءات واجهة برمجة التطبيقات (ai_function_max_api_calls_per_query). - إعادة المحاولة مع زيادة تدريجية في التأخير: تتم إعادة محاولة الإخفاقات العابرة (
ai_function_max_retries) باستخدام تأخير أُسّي متزايد (ai_function_retry_initial_delay_ms).
الإعداد
aiGenerate, aiClassify, aiExtract, aiTranslate) مقابل الدالة aiEmbed، إذ تتطلب نقاط نهاية مختلفة وتستخدم عادةً نماذج مختلفة.
مثال على تعليمة لإنشاء مجموعة مُسمّاة تحتوي على بيانات اعتماد الموفّر، إحداهما مع نقطة نهاية للدردشة والأخرى مع نقطة نهاية للتضمين:
معلمات المجموعة المسماة
يمكن استخدام أي واجهة برمجة تطبيقات متوافقة مع OpenAI (مثل vLLM وOllama وLiteLLM) عبر ضبط
provider = 'openai' وتوجيه endpoint إلى خدمتك.اختيار بيانات الاعتماد
- مفتاح
credentialsفي خريطة المَعلمات الخاصة بها، إن وُجد؛ - وإلا، إعداد بيانات الاعتماد الافتراضي المنطبق:
ai_function_text_default_credentialsلدوال النص (aiGenerateوaiClassifyوaiExtractوaiTranslate);ai_function_embedding_default_credentialsللدالةaiEmbed.
خريطة المعلمات
Map(String, String) من المعلمات في النهاية. جميع القيم سلاسل نصية (ضع الأرقام بين علامتَي اقتباس، مثل '0.2'). تُرفض المفاتيح غير المعروفة. وإذا كان المفتاح موجودًا، فإنه يتجاوز القيمة المناظرة في المجموعة المُسمّاة؛ أما إذا لم يكن موجودًا، فيُستخدَم ما في المجموعة المُسمّاة (بالنسبة إلى model/max_tokens) أو القيمة الافتراضية المضمّنة. والاستثناء هو aiEmbed، إذ يأخذ model بوصفه وسيطة موضعية مطلوبة (aiEmbed(text, model[, params])) ويُرجع خطأ إذا جرى تعيينه بدلًا من ذلك في خريطة المعلمات أو المجموعة المُسمّاة.
المعلمات التالية مشتركة بين جميع دوال الذكاء الاصطناعي:
وتقبل كل دالة أيضًا معلمات إضافية خاصة بها (مثل
max_tokens وtemperature وsystem_prompt وinstructions وdimensions). راجع المرجع الخاص بكل دالة أدناه لمعرفة المعلمات التي تقبلها وقيمها الافتراضية.
إعدادات على مستوى الاستعلام
ai_function_.
تقييد مضيفات نقطة النهاية
endpoint في مجموعة مسماة للذكاء الاصطناعي وجهةً خارجية يتصل بها الخادم باستخدام هويته الخاصة، وقد يتضمن — إذا جرى تحديده — api_key الخاص بالمجموعة المسماة في رؤوس الطلب. افتراضيًا، يسمح ClickHouse بأي مضيف. لحصر الدوال في مجموعة محددة من الموفّرين، اضبط remote_url_allow_hosts في إعدادات الخادم، على سبيل المثال:
أمان النقل (HTTP مقابل HTTPS)
endpoint. لا يوجد تشفير على مستوى التطبيق لحمولة الطلب؛ إذ تعتمد حماية البيانات أثناء النقل بالكامل على هذا الـ scheme:
https://— يستخدم الاتصال TLS. يُشفَّر جسم الطلب (النص المُدخل، والتوجيهات) وapi_keyفي headers الطلب أثناء النقل، كما يجري التحقق من certificate الخاصة بالموفّر. استخدم هذا مع أي موفّر بعيد.http://— الاتصال غير مشفَّر. يُرسَل جسم الطلب وapi_keyبصيغة مكشوفة. استخدم هذا فقط مع موفّر موثوق على private network (مثل instance محلي منvLLMأوOllama).
endpoint من نوع http:// وتُرسَل البيانات من دون تشفير. لا يوجد حاليًا إعداد server-side يرفض نقاط نهاية AI ذات النص المكشوف — إذ يقيّد remote_url_allow_hosts مضيف الوجهة فقط ولا يفحص scheme الخاص بعنوان URL، لذا فإن endpoint من نوع http:// والموجَّه إلى مضيف مسموح به يمر أيضًا. ولضمان نقل مشفَّر، اضبط مجموعات مُسمّاة باستخدام نقاط نهاية https://.
لاحظ أنه في كلتا الحالتين يتلقى الموفّر بيانات الإدخال بصيغة مكشوفة بعد إنهاء TLS؛ إذ لا يحمي TLS البيانات إلا على مسار الشبكة بين الخادم والموفّر.
الموفّرون المدعومون
Observability
استعلم عن هذه الأحداث:
aiClassify
{"category": "..."}، تُستخرج التسمية ويُعاد نصّها.
تُؤخذ بيانات الاعتماد (وهي مجموعة مسماة تحدد الموفّر والنموذج ونقطة النهاية، واختياريًا مفتاح واجهة برمجة تطبيقات)
من المفتاح credentials في خريطة المعاملات الاختيارية، أو من الإعداد
ai_function_text_default_credentials إذا لم تتضمنه الخريطة.
البنية
AIClassify
الوسيطة
text— النص المطلوب تصنيفه.Stringcategories— قائمة ثابتة بتسميات الفئات المرشحة.Array(String)params—Map(String, String)ثابت اختياري للمعلمات. المفاتيح الخاصة بالدالة:temperature(درجة حرارة أخذ العينات التي تتحكم في مستوى العشوائية؛ القيمة الافتراضية0.0) وmax_tokens(الحد الأقصى لعدد الرموز المُخرجة في كل استدعاء؛ القيمة الافتراضية1024). كما تنطبق أيضًا المعلمات العامةcredentialsوmodel(راجع الدالة).Map(String, String)
ai_function_throw_on_error معطّلًا. String
أمثلة
تصنيف المشاعر
Query
Response
Query
aiEmbed
Array(Float32).
ضمن كتلة واحدة من الصفوف، تُجمَّع المدخلات في دفعات يصل حجمها إلى
ai_function_embedding_max_batch_size
إدخالًا لكل طلب HTTP لتقليل الأعباء الإضافية لكل استدعاء.
تُؤخذ بيانات الاعتماد (مجموعة مسماة تحدد الموفّر ونقطة النهاية، وبشكل اختياري مفتاح واجهة برمجة تطبيقات)
من المفتاح credentials في خريطة المعلمات، أو من الإعداد
ai_function_embedding_default_credentials عندما لا تتضمنه الخريطة. لاحظ أن aiEmbed يستخدم
إعدادًا منفصلًا لبيانات الاعتماد الافتراضية عن دوال النص، لأن نقطة نهاية تضمين تختلف
عن نقطة نهاية الدردشة.
تكون model وسيطة موضعية مطلوبة (قيمة ثابتة من نوع String). وعلى خلاف دوال النص،
لا يقرأ aiEmbed قيمة model من المجموعة المسماة أو من خريطة المعلمات. وأي مجموعة مسماة
تعرّف model تُرفَض بدلًا من تجاهلها بصمت.
تطلب المعلمة الاختيارية dimensions، عند دعمها من قِبل النموذج (مثل text-embedding-3-* من OpenAI’s)،
متجهًا بالحجم المحدد؛ وإلا فسيُعاد الحجم الأصلي للنموذج.
البنية
text— النص المراد تحويله إلى تضمين.Stringmodel— اسم نموذج التضمين.const Stringparams—Map(String, String)ثابت اختياري للمعلمات. مفتاح خاص بهذه الدالة:dimensions(عدد أبعاد متجه الإخراج المطلوب؛ تعني القيمة0أو عدم تحديده استخدام الحجم الأصلي للنموذج). وينطبق أيضًا المعامل العامcredentials(راجع دوال الذكاء الاصطناعي).Map(String, String)
ai_function_throw_on_error معطّلًا، أو إذا تم تجاوز الحصة وكان ai_function_throw_on_quota_exceeded معطّلًا. Array(Float32)
أمثلة
تضمين سلسلة نصية واحدة (يمكن حذف credentials إذا كان الإعداد ai_function_embedding_default_credentials مضبوطًا)
Query
Query
Query
aiExtract
'the main complaint') أو
مخططًا مُرمَّزًا بتنسيق JSON بالشكل '{"field_a": "description of field a", "field_b": "description of field b"}'.
في وضع التعليمات، تُرجِع الدالة القيمة المستخرجة كسلسلة نصية عادية، أو سلسلة فارغة إذا لم يُعثر على أي شيء.
وفي وضع المخطط، تُرجِع الدالة سلسلة كائن JSON تتطابق مفاتيحها مع المخطط المطلوب؛ وتكون الحقول المفقودة null.
تُؤخذ بيانات الاعتماد (وهي مجموعة مُسمّاة تحدد الموفّر والنموذج ونقطة النهاية، وبشكل اختياري مفتاح واجهة برمجة تطبيقات)
من المفتاح credentials في خريطة المعلمات الاختيارية، أو من الإعداد
ai_function_text_default_credentials عندما لا تتضمن الخريطة هذا المفتاح.
البنية
AIExtract
الوسيطات
text— النص المراد استخراج المعلومات منه.Stringinstruction_or_schema— تعليمة استخراج بصياغة حرة، أو كائن JSON ثابت يصف الحقول المطلوب استخراجها.const Stringparams—Map(String, String)ثابت اختياري للمعلمات. المفاتيح الخاصة بالدالة هي:temperature(درجة حرارة أخذ العينات التي تتحكم في مستوى العشوائية؛ الافتراضي0.0) وmax_tokens(الحد الأقصى لرموز الإخراج في كل استدعاء؛ الافتراضي1024). كما تنطبق أيضًا المعلمات العامةcredentialsوmodel(راجع دوال الذكاء الاصطناعي).Map(String, String)
ai_function_throw_on_error معطّلًا. String
أمثلة
تعليمة بصياغة حرة
Query
Response
Query
aiGenerate
credentials في خريطة المعلمات الاختيارية، أو من الإعداد
ai_function_text_default_credentials عندما لا تتضمنه الخريطة.
يمكن لخريطة المعلمات الاختيارية أيضًا تعيين system_prompt (تعليمة توجّه سلوك النموذج،
مثل النبرة، والتنسيق، والدور)، وtemperature، وmax_tokens، وmodel. إذا لم يتم تعيين system_prompt،
فالقيمة الافتراضية هي: You are a helpful assistant. Provide a clear and concise response.
البنية
AIGenerate
الوسيطات
prompt— الموجّه أو السؤال الذي يُرسله المستخدم إلى النموذج.Stringparams— قيمة ثابتة اختيارية من النوعMap(String, String)للمعلمات. المفاتيح الخاصة بالدالة هي:temperature(درجة حرارة التوليد التي تتحكم في العشوائية؛ والقيمة الافتراضية0.7)، وmax_tokens(الحد الأقصى لعدد الرموز المميّزة في المخرجات لكل استدعاء؛ والقيمة الافتراضية1024)، وsystem_prompt(تعليمة ثابتة على مستوى النظام لتوجيه سلوك النموذج؛ والقيمة الافتراضية موجّه عام للمساعد). كما تنطبق أيضًا المعلمتان الشائعتانcredentialsوmodel(راجع دوال الذكاء الاصطناعي).Map(String, String)
ai_function_throw_on_error معطّلًا. String
أمثلة
سؤال بسيط
Query
Response
Query
Query
aiTranslate
instructions في خريطة المعلمات (على سبيل المثال: 'الإبقاء على المصطلحات التقنية دون ترجمة').
تُؤخذ بيانات الاعتماد (مجموعة مسماة تحدد الموفّر والنموذج ونقطة النهاية، ومفتاح واجهة برمجة تطبيقات اختياريًا)
من المفتاح credentials في خريطة المعلمات الاختيارية، أو من
الإعداد ai_function_text_default_credentials إذا لم تتضمنه الخريطة.
البنية
AITranslate
الوسيطات
text— النص المراد ترجمته.Stringtarget_language— اسم اللغة الهدف أو رمز BCP-47 لها (مثل'French'و'es-MX').Stringparams—Map(String, String)ثابت اختياري للمعلمات. المفاتيح الخاصة بهذه الدالة هي:temperature(درجة حرارة أخذ العينات التي تتحكم في العشوائية؛ والقيمة الافتراضية0.3)، وmax_tokens(الحد الأقصى لعدد التوكنات الناتجة في كل استدعاء؛ والقيمة الافتراضية1024)، وinstructions(تعليمات إضافية للمترجم تتعلق بالأسلوب أو اللهجة). كما تنطبق أيضًا المعلمتان الشائعتانcredentialsوmodel(راجع دوال الذكاء الاصطناعي).Map(String, String)
ai_function_throw_on_error معطّلًا. String
أمثلة
الترجمة إلى الفرنسية
Query
Response
Query