دوال الذكاء الاصطناعي تجريبية. اضبط
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).
التهيئة
ai_function_credentials.
مثال على تعليمة لإنشاء مجموعة مُسمّاة تتضمن بيانات اعتماد الموفّر:
ai_function_credentials، للجلسة أو لاستعلام واحد:
ai_function_credentials فارغة (وهو الإعداد الافتراضي)، يتم طرح استثناء.
معلمات المجموعة المسماة
| المعلمة | النوع | الافتراضي | الوصف |
|---|---|---|---|
provider | String | — | موفّر النموذج. القيم المدعومة: 'openai' و'anthropic'. انظر الملاحظة أدناه. |
endpoint | String | — | عنوان URL لنقطة نهاية واجهة برمجة التطبيقات. |
model | String | — | اسم النموذج (مثل 'gpt-4o-mini' و'text-embedding-3-small'). |
api_key | String | — | مفتاح المصادقة الخاص بالموفّر. اختياري: عند عدم تحديده، لا يُرسَل ترويس المصادقة، مما يتيح الاستهداف لخوادم متوافقة مع OpenAI لا تتطلب مصادقة. |
max_tokens | UInt64 | 1024 | الحد الأقصى لعدد الرموز الناتجة لكل استدعاء لواجهة برمجة التطبيقات. |
api_version | String | — | سلسلة إصدار واجهة برمجة التطبيقات. تستخدمها Anthropic ('2023-06-01'). |
يمكن استخدام أي واجهة برمجة تطبيقات متوافقة مع OpenAI (مثل vLLM وOllama وLiteLLM) عبر ضبط
provider = 'openai' وتوجيه endpoint إلى خدمتك.إعدادات على مستوى الاستعلام
ai_function_credentials. وتَرِد الإعدادات الأخرى المتعلقة بالذكاء الاصطناعي في الإعدادات تحت البادئة ai_function_.
الاستخدام مع أعمدة DEFAULT وMATERIALIZED
ai_function_credentials عند تقييم التعبير الافتراضي، وليس عند تعريف العمود. ولا يُخزَّن اسم المجموعة ضمن تعريف العمود:
expression ثلاثة أمور: يجب ضبط allow_experimental_ai_functions وai_function_credentials، ويجب أن يكون لدى المستخدم الذي يُجري التقييم امتياز GRANT NAMED COLLECTION على المجموعة المسماة (ويؤدي حلّ بيانات الاعتماد إلى إجراء فحص وصول لـ NAMED COLLECTION). ويؤدي غياب أيٍّ منها إلى ظهور استثناء (SUPPORT_IS_DISABLED، أو خطأ بيانات اعتماد فارغة، أو ACCESS_DENIED).
يُقيَّم عمود DEFAULT عند INSERT، لذا يجب ضبط كلا الإعدادين في الجلسة أو الاستعلام الذي ينفّذ الإدراج:
MATERIALIZED عند INSERT مثل عمود DEFAULT، كما يُعاد احتسابه أيضًا بواسطة عمليات mutation مثل ALTER TABLE ... MATERIALIZE COLUMN. تعمل عمليات mutation خارج جلسة المستخدم ولا ترث عبارة SETTINGS الخاصة بالاستعلام، لكنها ترث الإعدادات من profile إعدادات. اضبط كلا الإعدادين في profile إعدادات، وامنح NAMED COLLECTION لمالك الجدول، لكي تنجح إعادة الاحتساب الناتجة عن عمليات mutation.
تقييد مضيفات نقطة النهاية
endpoint في مجموعة مسماة للذكاء الاصطناعي وجهةً خارجية يتصل بها الخادم باستخدام هويته الخاصة، وقد يتضمن — إذا جرى تحديده — api_key الخاص بالمجموعة المسماة في رؤوس الطلب. افتراضيًا، يسمح ClickHouse بأي مضيف. لحصر الدوال في مجموعة محددة من الموفّرين، اضبط remote_url_allow_hosts في إعدادات الخادم، على سبيل المثال:
الموفّرون المدعومون
| الموفّر | قيمة provider | وظائف الدردشة | ملاحظات |
|---|---|---|---|
| OpenAI | 'openai' | نعم | الموفّر الافتراضي. |
| Anthropic | 'anthropic' | نعم | يستخدم نقطة النهاية /v1/messages. |
Observability
| ProfileEvent | Description |
|---|---|
AIAPICalls | عدد طلبات HTTP المُرسلة إلى موفّر الذكاء الاصطناعي. |
AIInputTokens | إجمالي رموز الإدخال المستهلَكة. |
AIOutputTokens | إجمالي رموز الإخراج المستهلَكة. |
AIRowsProcessed | عدد الصفوف التي تلقّت نتيجة. |
AIRowsSkipped | عدد الصفوف التي جرى تخطيها (تم تجاوز الحصة، أو حدث خطأ مع ai_function_throw_on_error = 0). |
aiClassify
{"category": "..."}، تُستخرج التسمية ويُعاد نصّها.
تُؤخذ بيانات اعتماد الموفّر والتهيئة من المجموعة المسماة المحددة بواسطة الإعداد ai_function_credentials.
الصياغة
AIClassify
المعاملات
text— النص المطلوب تصنيفه.Stringcategories— قائمة ثابتة بتسميات الفئات المرشحة.Array(String)temperature— درجة حرارة أخذ العينات التي تتحكم في مستوى العشوائية. القيمة الافتراضية:0.0.Float64
ai_function_throw_on_error معطّلًا. String
أمثلة
تصنيف المشاعر
Query
Response
Query
Response
aiEmbed
Array(Float32).
ضمن كتلة واحدة من الصفوف، تُجمَّع المُدخلات في دفعات يصل حجمها إلى
ai_function_embedding_max_batch_size
عنصرًا لكل طلب HTTP لتقليل العبء الإضافي لكل استدعاء.
تُؤخذ بيانات اعتماد الموفّر والتهيئة من المجموعة المُسمّاة المحددة بواسطة الإعداد ai_function_credentials.
وتطلب الوسيطة الاختيارية dimensions، عند دعمها من قِبل النموذج (مثل text-embedding-3-* من OpenAI)،
متجهًا بالحجم المحدد؛ وإلا فسيُعاد الحجم الأصلي للنموذج.
البنية
text— النص المطلوب تضمينه.Stringdimensions— عدد الأبعاد المستهدف الاختياري لمتجه الإخراج. تعني القيمة0أو عدم تحديدها استخدام الحجم الأصلي للنموذج.UInt64
ai_function_throw_on_error معطّلًا، أو إذا جرى تجاوز الحصة وكان ai_function_throw_on_quota_exceeded معطّلًا. Array(Float32)
أمثلة
تضمين سلسلة نصية واحدة
Query
Response
Query
Response
Query
Response
aiExtract
'the main complaint') أو
مخططًا مُرمَّزًا بتنسيق JSON بالشكل '{"field_a": "description of field a", "field_b": "description of field b"}'.
في وضع التعليمات، تُرجِع الدالة القيمة المستخرجة كسلسلة نصية عادية، أو سلسلة فارغة إذا لم يُعثر على أي شيء.
وفي وضع المخطط، تُرجِع الدالة سلسلة كائن JSON تتطابق مفاتيحها مع المخطط المطلوب؛ وتكون الحقول المفقودة null.
تُؤخذ بيانات اعتماد الموفّر والتهيئة من مجموعة مُسمّاة المحددة بواسطة الإعداد ai_function_credentials.
البنية
AIExtract
الوسيطات
text— النص المراد استخراج المعلومات منه.Stringinstruction_or_schema— تعليمة استخراج بصياغة حرة، أو كائن JSON ثابت يصف الحقول المطلوب استخراجها.const Stringtemperature— درجة حرارة أخذ العينات التي تتحكم في مستوى العشوائية. القيمة الافتراضية:0.0.const Float64
ai_function_throw_on_error معطّلًا. String
أمثلة
تعليمة بصياغة حرة
Query
Response
Query
Response
aiGenerate
You are a helpful assistant. Provide a clear and concise response.
تُؤخذ بيانات اعتماد الموفّر والتهيئة من المجموعة المسماة المحددة بواسطة الإعداد ai_function_credentials.
الصيغة
AIGenerate
المعاملات
prompt— موجّه المستخدم أو سؤاله الذي يُرسل إلى النموذج.Stringsystem_prompt— تعليمة اختيارية ثابتة على مستوى النظام تُوجّه سلوك النموذج (مثل الشخصية أو تنسيق المخرجات)، وتُرسل مع كل موجّه.Stringtemperature— درجة حرارة أخذ العينات التي تتحكم في العشوائية. القيمة الافتراضية:0.7.Float64
ai_function_throw_on_error معطّلًا. String
أمثلة
سؤال بسيط
Query
Response
Query
Response
Query
Response
aiTranslate
'أبقِ المصطلحات التقنية من دون ترجمة').
تُؤخذ بيانات اعتماد الموفّر والتهيئة من المجموعة المُسمّاة المحددة عبر الإعداد ai_function_credentials.
بناء الجملة
AITranslate
الوسيطات
text— النص المراد ترجمته.Stringtarget_language— اسم اللغة المستهدفة أو رمز BCP-47 (مثل'French'،'es-MX').Stringinstructions— تعليمات إضافية ثابتة اختيارية للمترجم.Stringtemperature— درجة حرارة أخذ العينات التي تتحكم في مستوى العشوائية. القيمة الافتراضية:0.3.Float64
ai_function_throw_on_error معطّلًا. String
أمثلة
الترجمة إلى الفرنسية
Query
Response
Query
Response