أدوات OpenAI
محول OpenAI يمكّن نماذج GPT من التفاعل مع Asset Core من خلال استدعاء الدوال، باستخدام نفس واجهة الأدوات مثل المحولات الأخرى.
المتطلبات المسبقة
- تشغيل خدمات Asset Core
- الوصول إلى واجهة برمجة التطبيقات OpenAI
- بايثون أو راست للتكامل
الخطوة 1 - الحصول على تعريفات الأدوات
المحول يوفر تعريفات أدوات متوافقة مع OpenAI:
إرشادات إضافية:
نبرة: رسمية سجل: تقني
سياق:
- المجال: بنية تحتية للبلوك تشين
- الجمهور: مهندسو الأمن وقادة البنية التحتية
- الغرض: وثائق تقنية
- اللغة: ar
- الاتجاه: من اليمين إلى اليسار
قيود:
- استخدام لغة محايدة من حيث الجنس
- الحفاظ على أسماء العلامات التجارية
- الحفاظ على الدقة التقنية
- ضمان أن تبقى علامات الترقيم والترقيم ملائمة من حيث الاتجاه
- الحفاظ على أسماء العلامات التجارية والمصطلحات دون ترجمة
الحفاظ على هذه المصطلحات بالضبط (لا تترجم): Asset Core، Asset‑Core، CSP، API، Docker، ECS، daemon، L1، L2، L3، OpenGraph، GitHub، Astro، TypeScript، JavaScript، ℤ، ℤ²، ℤ³، ℝ²، ℝ³، 0D، 1D، 2D، 3D
use assetcore_adapters::openai::tools::OpenAiToolDefinition;
let tools = OpenAiToolDefinition::all();
في بايثون، ستقوم بتنسيق هذه كمتطلبات دالة لواجهة برمجة التطبيقات OpenAI.
الخطوة 2 - تحديد الأدوات لـ OpenAI
أدوات التنسيق لواجهة برمجة تطبيقات إكمال محادثات OpenAI:
إرشادات إضافية:
النبرة: رسمية السجل: تقني
السياق:
- المجال: بنية تحتية للبلوكشين
- الجمهور: مهندسو الأمان وقادة البنية التحتية
- الغرض: وثائق تقنية
- اللغة: ar
- الاتجاه: RTL
القيود:
- استخدام لغة محايدة للجنس
- الحفاظ على أسماء العلامات التجارية
- الحفاظ على الدقة التقنية
- ضمان أن تظل علامات الترقيم والترقيم مناسبة للاتجاه RTL
- الاحتفاظ بأسماء العلامات التجارية والمصطلحات المعجمية دون ترجمة
الحفاظ على هذه المصطلحات بالضبط (لا تترجم): Asset Core، Asset‑Core، CSP، API، Docker، ECS، daemon، L1، L2، L3، OpenGraph، GitHub، Astro، TypeScript، JavaScript، ℤ، ℤ²، ℤ³، ℝ²، ℝ³، 0D، 1D، 2D، 3D
tools = [
{
"type": "function",
"function": {
"name": "assetcore_commit",
"description": "Submit a transaction to Asset Core",
"parameters": {
"type": "object",
"properties": {
"operations": {
"type": "array",
"items": {
"type": "object",
"properties": {
"op": {"type": "string"},
"args": {"type": "object"}
},
"required": ["op", "args"]
},
"description": "List of operations to execute"
},
"idempotency_key": {
"type": "string",
"description": "Optional deduplication key"
}
},
"required": ["operations"]
}
}
},
{
"type": "function",
"function": {
"name": "assetcore_write_health",
"description": "Check Asset Core write daemon health",
"parameters": {"type": "object", "properties": {}}
}
}
]
الخطوة 3 - تنفيذ استدعاءات الأدوات
عند عودة GPT لاستدعاء أداة، قم بتنفيذها ضد Asset Core:
import httpx
import json
async def execute_tool(tool_name: str, arguments: dict) -> str:
if tool_name == "assetcore_commit":
async with httpx.AsyncClient() as client:
response = await client.post(
"http://localhost:8080/v1/commit",
json=arguments
)
return response.text
elif tool_name == "assetcore_write_health":
async with httpx.AsyncClient() as client:
response = await client.get(
"http://localhost:8080/v1/health"
)
return response.text
else:
return json.dumps({"error": f"Unknown tool: {tool_name}"})
الخطوة 4 - إكمال حلقة المحادثة
دمج مع واجهة برمجة التطبيقات OpenAI:
from openai import OpenAI
client = OpenAI()
messages = [
{"role": "user", "content": "Create a container with ID 1001"}
]
response = client.chat.completions.create(
model="gpt-4",
messages=messages,
tools=tools,
tool_choice="auto"
)
# Check for tool calls
if response.choices[0].message.tool_calls:
for tool_call in response.choices[0].message.tool_calls:
result = await execute_tool(
tool_call.function.name,
json.loads(tool_call.function.arguments)
)
# Add tool result to messages
messages.append({
"role": "tool",
"tool_call_id": tool_call.id,
"content": result
})
# Get final response
final_response = client.chat.completions.create(
model="gpt-4",
messages=messages
)
الخطوة 5 - استخدم منفذ Rust
إرشادات إضافية:
للتطبيقات المكتوبة بلغة Rust، استخدم المنفذ المدمج:
إرشادات إضافية:
use assetcore_adapters::openai::executor::OpenAiToolExecutor;
use assetcore_adapters::http_client::DaemonClient;
let client = DaemonClient::new(
"http://localhost:8080",
"http://localhost:8081"
);
let executor = OpenAiToolExecutor::new(client);
// Execute a tool call
let result = executor.execute(
"assetcore_commit",
serde_json::json!({
"operations": [
{
"op": "CreateContainer",
"args": {
"container_id": 1001,
"kind": "Standard"
}
}
]
})
).await?;
استكشاف الأخطاء وإصلاحها
حجج دالة غير صالحة
قد يولد GPT حججًا لا تتطابق مع المخطط. تحقق من الصحة قبل التنفيذ وارجع برسائل خطأ واضحة.
تحديد معدل الطلب
OpenAI لديها حدود للسرعة. قم بتنفيذ التراجع وإعادة المحاولة للاستخدام في الإنتاج.
ترتيب استدعاء الأدوات
قد يطلب GPT استدعاءات متعددة للأدوات بشكل متوازي. التزامات Asset Core تسير بشكل تسلسلي؛ نفذها بالترتيب.
الخطوات التالية
- نظرة عامة على الوكلاء - الهندسة والتصميم
- MCP Integration - بروتوكول بديل
- Gemini - دمج نموذج جوجل