استدعاء وظيفة مساعدي Azure OpenAI
تدعم واجهة برمجة تطبيقات المساعدين استدعاء الدالة، والذي يسمح لك بوصف بنية الدالات إلى مساعد ثم إرجاع الدالات التي تحتاج إلى استدعاء جنبا إلى جنب مع وسيطاتها.
إشعار
- يمكن للبحث عن الملفات استيعاب ما يصل إلى 10000 ملف لكل مساعد - 500 مرة أكثر من ذي قبل. وهو سريع، ويدعم الاستعلامات المتوازية من خلال عمليات البحث متعددة مؤشرات الترابط، وميزات محسنة لإعادة الإرسال وإعادة كتابة الاستعلام.
- مخزن المتجهات هو كائن جديد في واجهة برمجة التطبيقات. بمجرد إضافة ملف إلى مخزن متجهات، يتم تحليله تلقائيا، وتقسيمه، ودمجه، ويكون جاهزا للبحث فيه. يمكن استخدام مخازن المتجهات عبر المساعدين ومؤشرات الترابط، مما يبسط إدارة الملفات والفوترة.
- لقد أضفنا دعما للمعلمة
tool_choice
التي يمكن استخدامها لفرض استخدام أداة معينة (مثل البحث في الملفات أو مترجم التعليمات البرمجية أو وظيفة) في تشغيل معين.
دعم استدعاء الدالة
النماذج المدعومة
تحتوي صفحة النماذج على أحدث المعلومات حول المناطق/النماذج حيث يتم دعم المساعدين.
لاستخدام جميع ميزات استدعاء الدالة بما في ذلك الدوال المتوازية، تحتاج إلى استخدام نموذج تم إصداره بعد 6 نوفمبر 2023.
إصدارات واجهة برمجة التطبيقات
2024-02-15-preview
2024-05-01-preview
مثال تعريف الدالة
إشعار
- لقد أضفنا دعما للمعلمة
tool_choice
التي يمكن استخدامها لفرض استخدام أداة معينة (مثلfile_search
أوcode_interpreter
أوfunction
) في تشغيل معين. - تنتهي صلاحية عمليات التشغيل بعد عشر دقائق من الإنشاء. تأكد من إرسال مخرجات الأداة قبل انتهاء الصلاحية هذا.
- يمكنك أيضا إجراء استدعاء دالة باستخدام تطبيقات Azure Logic
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-02-15-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
assistant = client.beta.assistants.create(
instructions="You are a weather bot. Use the provided functions to answer questions.",
model="gpt-4-1106-preview", #Replace with model deployment name
tools=[{
"type": "function",
"function": {
"name": "getCurrentWeather",
"description": "Get the weather in location",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
"unit": {"type": "string", "enum": ["c", "f"]}
},
"required": ["location"]
}
}
}, {
"type": "function",
"function": {
"name": "getNickname",
"description": "Get the nickname of a city",
"parameters": {
"type": "object",
"properties": {
"location": {"type": "string", "description": "The city and state e.g. San Francisco, CA"},
},
"required": ["location"]
}
}
}]
)
قراءة الدالات
عند بدء تشغيل مع رسالة مستخدم تقوم بتشغيل الدالة، سيدخل تشغيل حالة معلقة. بعد المعالجة، سيدخل التشغيل حالة requires_action التي يمكنك التحقق منها عن طريق استرداد Run.
{
"id": "run_abc123",
"object": "thread.run",
"assistant_id": "asst_abc123",
"thread_id": "thread_abc123",
"status": "requires_action",
"required_action": {
"type": "submit_tool_outputs",
"submit_tool_outputs": {
"tool_calls": [
{
"id": "call_abc123",
"type": "function",
"function": {
"name": "getCurrentWeather",
"arguments": "{\"location\":\"San Francisco\"}"
}
},
{
"id": "call_abc456",
"type": "function",
"function": {
"name": "getNickname",
"arguments": "{\"location\":\"Los Angeles\"}"
}
}
]
}
},
...
إرسال مخرجات الدالة
يمكنك بعد ذلك إكمال تشغيل عن طريق إرسال إخراج الأداة من الدالة (الوظائف) التي تستدعيها. tool_call_id
مرر المشار إليه في required_action
الكائن أعلاه لمطابقة الإخراج مع كل استدعاء دالة.
from openai import AzureOpenAI
client = AzureOpenAI(
api_key=os.getenv("AZURE_OPENAI_API_KEY"),
api_version="2024-02-15-preview",
azure_endpoint = os.getenv("AZURE_OPENAI_ENDPOINT")
)
run = client.beta.threads.runs.submit_tool_outputs(
thread_id=thread.id,
run_id=run.id,
tool_outputs=[
{
"tool_call_id": call_ids[0],
"output": "22C",
},
{
"tool_call_id": call_ids[1],
"output": "LA",
},
]
)
بعد إرسال مخرجات الأداة، سيدخل Run الحالة queued
قبل متابعة التنفيذ.
(راجع أيضًا )
- مرجع واجهة برمجة تطبيقات المساعدين
- تعرف على المزيد حول كيفية استخدام المساعدين مع دليل الكيفية الخاص بالمساعدين.
- عينات واجهة برمجة تطبيقات مساعدي Azure OpenAI
الملاحظات
https://aka.ms/ContentUserFeedback.
قريبًا: خلال عام 2024، سنتخلص تدريجيًا من GitHub Issues بوصفها آلية إرسال ملاحظات للمحتوى ونستبدلها بنظام ملاحظات جديد. لمزيد من المعلومات، راجعإرسال الملاحظات وعرضها المتعلقة بـ