استدعاء الأدوات
صِف دوالّك، فيقرر النموذج متى يستدعيها وبأي قيم. أنت تنفّذ الدالة على خادمك، ثم ترسل نتيجتها ليكمل الرد.
عرّف الأداة
tools = [{ "type": "function", "function": { "name": "get_order_status", "description": "Look up an order by its number", "parameters": { "type": "object", "properties": {"order_id": {"type": "string"}}, "required": ["order_id"], }, },}]resp = client.chat.completions.create( model="optes-1.0", messages=[{"role": "user", "content": "وين وصل طلبي رقم 4471؟"}], tools=tools,)call = resp.choices[0].message.tool_calls[0]print(call.function.name, call.function.arguments)# -> get_order_status {"order_id": "4471"}const tools = [{ type: "function", function: { name: "get_order_status", description: "Look up an order by its number", parameters: { type: "object", properties: { order_id: { type: "string" } }, required: ["order_id"], }, },}];const resp = await client.chat.completions.create({ model: "optes-1.0", messages: [{ role: "user", content: "وين وصل طلبي رقم 4471؟" }], tools,});const call = resp.choices[0].message.tool_calls[0];أرسل النتيجة
نفّذ الدالة بنفسك، ثم أضف رد النموذج ورسالة من نوع tool تحمل النتيجة، وأرسل الطلب مرة ثانية:
Python
messages.append(resp.choices[0].message)messages.append({ "role": "tool", "tool_call_id": call.id, "content": '{"status": "في الطريق", "eta": "اليوم قبل 6 مساءً"}',})final = client.chat.completions.create(model="optes-1.0", messages=messages, tools=tools)print(final.choices[0].message.content)التحكم بالاستدعاء
tool_choice: auto (الافتراضي) يترك القرار للنموذج، وnone يمنعه، وrequired يلزمه باستدعاء أداة، أو حدّد دالة بعينها. وعندما يستدعي النموذج أداة يكون finish_reason هو tool_calls.
لا تنفّذ ما يطلبه النموذج دون تحقق: عامل معاملات الأداة كمدخلات مستخدم، وتحقق من صلاحيتها قبل أي عملية تغيّر بيانات أو تنفق مالاً.
الأسعار بالدولار الأمريكي، وهي أوّلية حتى الإطلاق. الواجهة البرمجية والتسجيل والمفاتيح تُفتح يوم الإطلاق.