مرجع واجهة برمجة تطبيقات REST لنموذج الأساس
توفر هذه المقالة معلومات واجهة برمجة التطبيقات العامة لواجهات برمجة تطبيقات نموذج Databricks Foundation والنماذج التي تدعمها. تم تصميم واجهات برمجة تطبيقات نموذج الأساس لتكون مشابهة لواجهة برمجة تطبيقات REST الخاصة ب OpenAI لتسهيل ترحيل المشاريع الحالية. تقبل كل من نقاط نهاية الدفع لكل رمز مميز ومعدل النقل المقدم نفس تنسيق طلب واجهة برمجة تطبيقات REST.
النهايه
يحتوي كل نموذج دفع لكل رمز مميز على نقطة نهاية واحدة، ويمكن للمستخدمين التفاعل مع نقاط النهاية هذه باستخدام طلبات HTTP POST. يمكن إنشاء نقاط نهاية معدل النقل المتوفرة باستخدام واجهة برمجة التطبيقات أو واجهة مستخدم الخدمة. تدعم نقاط النهاية هذه أيضا نماذج متعددة لكل نقطة نهاية لاختبار A/B، طالما أن كلا النموذجين المقدمين يعرضان نفس تنسيق واجهة برمجة التطبيقات. على سبيل المثال، كلا النموذجين هما نماذج دردشة.
تستخدم الطلبات والاستجابات JSON، تعتمد بنية JSON الدقيقة على نوع مهمة نقطة النهاية. تدعم نقاط نهاية الدردشة والإكمال استجابات الدفق.
تدعم أحمال عمل الدفع لكل رمز مميز نماذج معينة، راجع النماذج المدعومة للدفع لكل رمز مميز لتلك النماذج وتنسيقات واجهة برمجة التطبيقات المقبولة.
الاستخدام
تتضمن usage
الاستجابات رسالة فرعية تبلغ عن عدد الرموز المميزة في الطلب والاستجابة. تنسيق هذه الرسالة الفرعية هو نفسه عبر جميع أنواع المهام.
الحقل | نوع | الوصف |
---|---|---|
completion_tokens |
رقم صحيح | عدد الرموز المميزة التي تم إنشاؤها. غير مضمن في تضمين الاستجابات. |
prompt_tokens |
رقم صحيح | عدد الرموز المميزة من موجه (مطالبات) الإدخال. |
total_tokens |
رقم صحيح | عدد الرموز المميزة الإجمالية. |
بالنسبة لنماذج مثل llama-2-70b-chat
مطالبة المستخدم يتم تحويلها باستخدام قالب مطالبة قبل تمريرها إلى النموذج. بالنسبة لنقاط نهاية الدفع لكل رمز مميز، قد تتم أيضا إضافة مطالبة النظام. prompt_tokens
يتضمن كل النص الذي أضافه خادمنا.
مهمة الدردشة
تم تحسين مهام الدردشة لإجراء محادثات متعددة الأدوار مع نموذج. يصف كل طلب المحادثة حتى الآن، حيث messages
يجب أن يتناوب الحقل بين user
الأدوار و assistant
، وينتهي برسالة user
. توفر استجابة النموذج الرسالة التالية assistant
في المحادثة.
طلب الدردشة
الحقل | Default | النوع | الوصف |
---|---|---|---|
messages |
قائمة ChatMessage | مطلوب. قائمة بالرسائل التي تمثل المحادثة الحالية. | |
max_tokens |
nil |
عدد صحيح أكبر من صفر أو nil ، والذي يمثل اللانهاية |
الحد الأقصى لعدد الرموز المميزة التي يجب إنشاؤها. |
stream |
true |
Boolean | قم ببث الاستجابات مرة أخرى إلى عميل للسماح بنتائج جزئية للطلبات. إذا تم تضمين هذه المعلمة في الطلب، يتم إرسال الاستجابات باستخدام معيار الأحداث المرسلة من الخادم. |
temperature |
1.0 |
تعويم في [0,2] | درجة حرارة أخذ العينات. 0 هي قيم حتمية والقيم الأعلى تقدم المزيد من العشوائية. |
top_p |
1.0 |
تعويم في (0,1] | حد الاحتمال المستخدم لأخذ عينات النواة. |
top_k |
nil |
عدد صحيح أكبر من صفر أو nil ، والذي يمثل اللانهاية |
يحدد عدد الرموز المميزة k الأكثر احتمالا لاستخدامها لتصفية أعلى k. قم بتعيين هذه القيمة إلى 1 لجعل المخرجات محددة. |
stop |
[] | سلسلة أو قائمة[سلسلة] | يتوقف النموذج عن إنشاء المزيد من الرموز المميزة عند مواجهة أي من التسلسلات في stop . |
n |
1 | عدد صحيح أكبر من الصفر | تقوم واجهة برمجة التطبيقات بإرجاع n إكمال الدردشة المستقلة عند n تحديدها. يوصى به لأحمال العمل التي تولد إكمالات متعددة على نفس الإدخال لتحقيق كفاءة استدلال إضافية وتوفير في التكاليف. متوفر فقط لنقاط نهاية معدل النقل المتوفرة. |
tool_choice |
nil |
سلسلة أو ToolChoiceObject | يستخدم فقط بالتزامن مع tools الحقل. tool_choice يدعم مجموعة متنوعة من سلاسل الكلمات الأساسية مثل auto و required و none . auto يعني أنك تسمح للنموذج بتحديد أي أداة (إن وجدت) ذات صلة للاستخدام. مع auto إذا كان النموذج لا يعتقد أن أيا من الأدوات في tools ذات الصلة، ينشئ النموذج رسالة مساعد قياسي بدلا من استدعاء أداة. required يعني أن النموذج يختار الأداة الأكثر صلة في tools ويجب أن ينشئ استدعاء أداة. none يعني أن النموذج لا ينشئ أي استدعاءات أداة وبدلا من ذلك يجب إنشاء رسالة مساعد قياسية. لفرض استدعاء أداة باستخدام أداة معينة محددة في tools ، استخدم ToolChoiceObject. بشكل افتراضي، إذا تم tools tool_choice = "auto" ملء الحقل . وإلا، يتم tools تعيين الحقل افتراضيا إلى tool_choice = "none" |
tools |
nil |
عنصر الأدوات | قائمة tools يمكن للنموذج الاتصال بها. حاليا، function هو النوع الوحيد المدعوم tool ويتم دعم 32 وظيفة كحد أقصى. |
ChatMessage
الحقل | نوع | الوصف |
---|---|---|
role |
السلسلة | مطلوب. دور كاتب الرسالة. يمكن أن يكون "system" أو "assistant" "user" أو ."tool" |
content |
السلسلة | محتوى الرسالة. مطلوب لمهام الدردشة التي لا تتضمن استدعاءات الأدوات. |
tool_calls |
قائمة "ToolCall" | قائمة tool_calls التي أنشأها النموذج. يجب أن يكون لها role ك "assistant" ولا مواصفات للحقل content . |
tool_call_id |
السلسلة | عندما role يكون هو "tool" ، المعرف المقترن ToolCall بالرسالة التي تستجيب لها. يجب أن تكون فارغة للخيارات الأخرى role . |
system
يمكن استخدام الدور مرة واحدة فقط، كرسالة أولى في محادثة. يتجاوز مطالبة النظام الافتراضية للنموذج.
ToolCall
اقتراح إجراء استدعاء أداة من قبل النموذج. راجع استدعاء الدالة على Azure Databricks.
الحقل | نوع | الوصف |
---|---|---|
id |
السلسلة | مطلوب. معرف فريد لاقتراح استدعاء الأداة هذا. |
type |
السلسلة | مطلوب. يتم دعم "function" فقط. |
function |
FunctionCallCompletion | مطلوب. استدعاء دالة يقترحه النموذج. |
FunctionCallCompletion
الحقل | نوع | الوصف |
---|---|---|
name |
السلسلة | مطلوب اسم الدالة التي أوصى بها النموذج. |
arguments |
الكائن | مطلوب. وسيطات للدالة كقاموس JSON متسلسل. |
ToolChoiceObject
راجع استدعاء الدالة على Azure Databricks.
الحقل | نوع | الوصف |
---|---|---|
type |
السلسلة | مطلوب. نوع الأداة. حاليا، يتم دعم فقط "function" . |
function |
الكائن | مطلوب. كائن يحدد الأداة التي يجب استدعاء النموذج {"type": "function", "function": {"name": "my_function"}} حيث "my_function هو اسم FunctionObject في tools الحقل. |
ToolObject
راجع استدعاء الدالة على Azure Databricks.
الحقل | نوع | الوصف |
---|---|---|
type |
السلسلة | مطلوب. نوع الأداة. حاليا، يتم دعم فقط function . |
function |
FunctionObject | مطلوب. تعريف الدالة المقترنة بالأداة. |
FunctionObject
الحقل | نوع | الوصف |
---|---|---|
name |
السلسلة | مطلوب. اسم الدالة التي سيتم استدعاؤها. |
description |
الكائن | مطلوب. الوصف التفصيلي للدالة. يستخدم النموذج هذا الوصف لفهم صلة الدالة بالمطالبة وإنشاء استدعاءات الأداة بدقة أعلى. |
parameters |
الكائن | المعلمات التي تقبلها الدالة، الموضحة كعنصر مخطط JSON صالح. إذا تم استدعاء الأداة، فإن استدعاء الأداة مناسب لمخطط JSON المقدم. يحدد حذف المعلمات دالة دون أي معلمات. يقتصر عدد properties المفاتيح على 15 مفتاحا. |
استجابة الدردشة
بالنسبة للطلبات غير المتدفقة، تكون الاستجابة كائن إكمال دردشة واحد. بالنسبة لطلبات الدفق، تكون الاستجابة text/event-stream
هي حيث يكون كل حدث كائن جزء إكمال. بنية المستوى الأعلى للإكمال والكائنات المكتملة متطابقة تقريبا: يحتوي فقط choices
على نوع مختلف.
الحقل | نوع | الوصف |
---|---|---|
id |
السلسلة | معرف فريد لإكمال الدردشة. |
choices |
List[ChatCompletionChoice] أو List[ChatCompletionChunk] (streaming) | قائمة بنصوص إكمال الدردشة. n يتم إرجاع الخيارات إذا n تم تحديد المعلمة. |
object |
السلسلة | نوع الكائن. يساوي إما "chat.completions" لعدم الدفق أو "chat.completion.chunk" للبث. |
created |
رقم صحيح | الوقت الذي تم فيه إنشاء إكمال الدردشة بالثوان. |
model |
السلسلة | إصدار النموذج المستخدم لإنشاء الاستجابة. |
usage |
الاستخدام | بيانات تعريف استخدام الرمز المميز. قد لا يكون موجودا في استجابات الدفق. |
ChatCompletionChoice
الحقل | نوع | الوصف |
---|---|---|
index |
رقم صحيح | فهرس الاختيار في قائمة الخيارات التي تم إنشاؤها. |
message |
ChatMessage | رسالة إكمال دردشة تم إرجاعها بواسطة النموذج. سيكون assistant الدور . |
finish_reason |
السلسلة | سبب توقف النموذج عن إنشاء الرموز المميزة. |
ChatCompletionChunk
الحقل | نوع | الوصف |
---|---|---|
index |
رقم صحيح | فهرس الاختيار في قائمة الخيارات التي تم إنشاؤها. |
delta |
ChatMessage | جزء رسالة إكمال الدردشة من الاستجابات المتدفقة التي تم إنشاؤها من النموذج. يتم ضمان role تعبئة المجموعة الأولى فقط. |
finish_reason |
السلسلة | سبب توقف النموذج عن إنشاء الرموز المميزة. سيتم ملء هذه المجموعة الأخيرة فقط. |
مهمة الإكمال
مهام إكمال النص هي لإنشاء استجابات لمطالبة واحدة. على عكس الدردشة، تدعم هذه المهمة المدخلات المجمعة: يمكن إرسال مطالبات مستقلة متعددة في طلب واحد.
طلب الإكمال
الحقل | Default | النوع | الوصف |
---|---|---|---|
prompt |
سلسلة أو قائمة[سلسلة] | مطلوب. المطالبة (المطالبات) للنموذج. | |
max_tokens |
nil |
عدد صحيح أكبر من صفر أو nil ، والذي يمثل اللانهاية |
الحد الأقصى لعدد الرموز المميزة التي يجب إنشاؤها. |
stream |
true |
Boolean | قم ببث الاستجابات مرة أخرى إلى عميل للسماح بنتائج جزئية للطلبات. إذا تم تضمين هذه المعلمة في الطلب، يتم إرسال الاستجابات باستخدام معيار الأحداث المرسلة من الخادم. |
temperature |
1.0 |
تعويم في [0,2] | درجة حرارة أخذ العينات. 0 هي قيم حتمية والقيم الأعلى تقدم المزيد من العشوائية. |
top_p |
1.0 |
تعويم في (0,1] | حد الاحتمال المستخدم لأخذ عينات النواة. |
top_k |
nil |
عدد صحيح أكبر من صفر أو nil ، والذي يمثل اللانهاية |
يحدد عدد الرموز المميزة k الأكثر احتمالا لاستخدامها لتصفية أعلى k. قم بتعيين هذه القيمة إلى 1 لجعل المخرجات محددة. |
error_behavior |
"error" |
"truncate" أو "error" |
للمهلات والأخطاء التي تم تجاوزها بطول السياق. أحد: "truncate" (إرجاع أكبر عدد ممكن من الرموز المميزة) و "error" (إرجاع خطأ). يتم قبول هذه المعلمة فقط عن طريق الدفع لكل نقاط نهاية الرمز المميز. |
n |
1 | عدد صحيح أكبر من الصفر | تقوم واجهة برمجة التطبيقات بإرجاع n إكمال الدردشة المستقلة عند n تحديدها. يوصى به لأحمال العمل التي تولد إكمالات متعددة على نفس الإدخال لتحقيق كفاءة استدلال إضافية وتوفير في التكاليف. متوفر فقط لنقاط نهاية معدل النقل المتوفرة. |
stop |
[] | سلسلة أو قائمة[سلسلة] | يتوقف النموذج عن إنشاء المزيد من الرموز المميزة عند مواجهة أي من التسلسلات في stop . |
suffix |
"" |
السلسلة | سلسلة ملحقة بنهاية كل اكتمال. |
echo |
false |
Boolean | إرجاع المطالبة مع الإكمال. |
use_raw_prompt |
false |
Boolean | إذا true ، فمرر prompt مباشرة إلى النموذج دون أي تحويل. |
استجابة الإكمال
الحقل | نوع | الوصف |
---|---|---|
id |
السلسلة | معرف فريد لإكمال النص. |
choices |
إكمال التعليمات | قائمة بإكمال النص. لكل مطالبة يتم تمريرها، n يتم إنشاء الخيارات إذا n تم تحديدها. الافتراضي n هو 1. |
object |
السلسلة | نوع الكائن. يساوي "text_completion" |
created |
رقم صحيح | الوقت الذي تم فيه إنشاء الإكمال بالثوان. |
usage |
الاستخدام | بيانات تعريف استخدام الرمز المميز. |
CompletionChoice
الحقل | نوع | الوصف |
---|---|---|
index |
رقم صحيح | فهرس المطالبة في الطلب. |
text |
السلسلة | الإكمال الذي تم إنشاؤه. |
finish_reason |
السلسلة | سبب توقف النموذج عن إنشاء الرموز المميزة. |
مهمة التضمين
تعيين مهام تضمين سلاسل الإدخال في تضمين المتجهات. يمكن تجميع العديد من المدخلات معا في كل طلب.
تضمين الطلب
الحقل | نوع | الوصف |
---|---|---|
input |
سلسلة أو قائمة[سلسلة] | مطلوب. نص الإدخال المراد تضمينه. يمكن أن تكون سلسلة أو قائمة سلاسل. |
instruction |
السلسلة | تعليمات اختيارية لتمريرها إلى نموذج التضمين. |
التعليمات اختيارية ومحددة بشكل كبير. على سبيل المثال، لا يوصي مؤلفو BGE بأي إرشادات عند فهرسة المجموعات ويوصيون باستخدام التعليمات "Represent this sentence for searching relevant passages:"
لاستعلامات الاسترداد. تدعم نماذج أخرى مثل Instructor-XL مجموعة واسعة من سلاسل التعليمات.
استجابة تضمينات
الحقل | نوع | الوصف |
---|---|---|
id |
السلسلة | معرف فريد للتضمين. |
object |
السلسلة | نوع الكائن. "list" يساوي . |
model |
السلسلة | اسم نموذج التضمين المستخدم لإنشاء التضمين. |
data |
EmbeddingObject | عنصر التضمين. |
usage |
الاستخدام | بيانات تعريف استخدام الرمز المميز. |
EmbeddingObject
الحقل | نوع | الوصف |
---|---|---|
object |
السلسلة | نوع الكائن. "embedding" يساوي . |
index |
رقم صحيح | فهرس التضمين في قائمة التضمينات التي تم إنشاؤها بواسطة النموذج. |
embedding |
List[Float] | متجه التضمين. سيعيد كل نموذج متجه حجم ثابت (1024 ل BGE-Large) |
الموارد الإضافية
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ