ai_query دالة

ينطبق على: وضع علامة Databricks SQL وضع علامة Databricks Runtime

هام

هذه الميزة في المعاينة العامة.

استدعاء نقطة نهاية خدمة نموذج Azure Databricks موجودة وتحليلها وإرجاع استجابتها.

المتطلبات

  • هذه الدالة غير متوفرة على Azure Databricks SQL Classic.
  • يتم تمكين الاستعلام عن واجهات برمجة التطبيقات لنموذج الأساس بشكل افتراضي. للاستعلام عن نقاط النهاية التي تخدم نماذج مخصصة أو نماذج خارجية، قم بتمكين الذكاء الاصطناعي_Query للنماذج المخصصة والنماذج الخارجية في واجهة مستخدم معاينات Databricks.
  • لا تستخدم قناة مستودع DLT الحالية أحدث إصدار Databricks Runtime الذي يدعم ai_query(). pipelines.channel قم بتعيين في خصائص الجدول لاستخدام 'preview' ai_query(). راجع أمثلة لاستعلام عينة.

إشعار

  • في Databricks Runtime 14.2 وما فوق، يتم دعم هذه الدالة في دفاتر ملاحظات Databricks، بما في ذلك دفاتر الملاحظات التي يتم تشغيلها كمهمة في سير عمل Databricks.
  • في Databricks Runtime 14.1 وما دونه، هذه الدالة غير مدعومة في دفاتر ملاحظات Databricks.

بناء الجملة

للاستعلام عن نقطة نهاية تخدم نموذجا خارجيا أو نموذجا تأسيسيا:

ai_query(endpointName, request)

للاستعلام عن نقطة نهاية خدمة نموذج مخصص:

ai_query(endpointName, request, returnType)

الوسيطات

  • endpointName: سلسلة حرفية، اسم نقطة نهاية خدمة النموذج الذكاء الاصطناعي الفسيفساء الموجودة في نفس مساحة العمل للادعاءات. يجب أن يكون لدى المحدد إذن CAN QUERY على نقطة النهاية.
  • request: تعبير، الطلب المستخدم لاستدعاء نقطة النهاية.
    • إذا كانت نقطة النهاية عبارة عن نموذج خارجي يخدم نقطة نهاية أو نقطة نهاية واجهات برمجة تطبيقات نموذج Databricks Foundation، يجب أن يكون الطلب سلسلة.
    • إذا كانت نقطة النهاية هي نموذج مخصص يخدم نقطة النهاية، يمكن أن يكون الطلب عمودا واحدا أو تعبير بنية. يجب أن تتطابق أسماء حقول البنية مع أسماء ميزات الإدخال المتوقعة بواسطة نقطة النهاية.
  • returnType: تعبير، نوع الإرجاع المتوقع من نقطة النهاية. يشبه هذا معلمة المخطط في الدالة from_json، والتي تقبل كلا من تعبير سلسلة أو استدعاء الدالة schema_of_json. مطلوب للاستعلام عن نقطة نهاية خدمة نموذج مخصص.

المرتجعات

الاستجابة التي تم تحليلها من نقطة النهاية.

الأمثلة

للاستعلام عن نقطة نهاية خدمة نموذج خارجي:

> SELECT ai_query(
    'my-external-model-openai-chat',
    'Describe Databricks SQL in 30 words.'
  ) AS summary

  "Databricks SQL is a cloud-based platform for data analytics and machine learning, providing a unified workspace for collaborative data exploration, analysis, and visualization using SQL queries."

للاستعلام عن نموذج أساسي مدعوم من قبل واجهات برمجة تطبيقات نموذج Databricks Foundation:

> SELECT *,
  ai_query(
    'databricks-meta-llama-3-1-70b-instruct',
    "Can you tell me the name of the US state that serves the provided ZIP code? zip code: " || pickup_zip
    )
  FROM samples.nyctaxi.trips
  LIMIT 10

اختياريا، يمكنك أيضا إجراء التفاف لاستدعاء ai_query() في UDF لاستدعاء الدالة كما يلي:

> CREATE FUNCTION correct_grammar(text STRING)
  RETURNS STRING
  RETURN ai_query(
    'databricks-llama-2-70b-chat',
    CONCAT('Correct this to standard English:\n', text));
> GRANT EXECUTE ON correct_grammar TO ds;
- DS fixes grammar issues in a batch.
> SELECT
    * EXCEPT text,
    correct_grammar(text) AS text
  FROM articles;

للاستعلام عن نقطة نهاية خدمة نموذج مخصص:


> SELECT text, ai_query(
    endpoint => 'spam-classification-endpoint',
    request => named_struct(
      'timestamp', timestamp,
      'sender', from_number,
      'text', text),
    returnType => 'BOOLEAN') AS is_spam
  FROM messages

> SELECT ai_query(
    'weekly-forecast',
    request => struct(*),
    returnType => 'FLOAT') AS predicted_revenue
  FROM retail_revenue

> SELECT ai_query(
    'custom-llama-2-7b-chat',
    request => named_struct("messages",
        ARRAY(named_struct("role", "user", "content", "What is ML?"))),
    returnType => 'STRUCT<candidates:ARRAY<STRING>>')

  {"candidates":["ML stands for Machine Learning. It's a subfield of Artificial Intelligence that involves the use of algorithms and statistical models to enable machines to learn from data, make decisions, and improve their performance on a specific task over time."]}

مثال استعلام لتعيين قناة DLT للمعاينة:

> create or replace materialized view
    ai_query_mv
    TBLPROPERTIES('pipelines.channel' = 'PREVIEW') AS
  SELECT
    ai_query("databricks-dbrx-instruct", text) as response
  FROM
    messages