# دليل تكامل BANKT API: الربط السهل والسريع مع نموذج Lomia Pro 2
---
## المقدمة
في عالم التطوير البرمجي الحديث، أصبحت واجهات برمجة التطبيقات (APIs) العمود الفقري لأي نظام يعتمد على الذكاء الاصطناعي. وتُقدم **BANKT** حلاً متكاملاً وسهل الاستخدام للمطورين الراغبين في دمج قدرات الذكاء الاصطناعي في تطبيقاتهم. ما يجعل BANKT مميزاً هو توافقه **الكامل بنسبة 100% مع OpenAI SDK**، مما يعني أن المطورين الذين اعتادوا على استخدام OpenAI يمكنهم الانتقال إلى BANKT دون تعلم أي شيء جديد.
هذا الدليل الشامل سيأخذك في رحلة كاملة من التسجيل والحصول على مفتاح API، إلى تنفيذ أمثلة عملية بلغات برمجية متعددة، مع شرح تفصيلي للنماذج المتاحة وأسعارها وحدود الاستخدام.
---
## القسم الأول: البدء مع BANKT API
### 1.1 ما هو BANKT API؟
**BANKT API** هي واجهة برمجة تطبيقات RESTful تُتيح للمطورين الوصول إلى مجموعة من نماذج الذكاء الاصطناعي المتقدمة، أبرزها **Lomia Pro 2** - النموذج الأسرع في العالم. تتميز هذه الواجهة ببساطتها وتوافقها الكامل مع معايير OpenAI، مما يُسهل عملية التكامل بشكل كبير.
### 1.2 التسجيل وإنشاء API Key
للبدء في استخدام BANKT API، اتبع الخطوات التالية:
**الخطوة 1:** قم بزيارة الموقع الرسمي:
```
https://bankt.ria.bio/
```
**الخطوة 2:** انقر على زر **"Get Started"** أو **"Sign Up"**
**الخطوة 3:** أنشئ حساباً جديداً باستخدام بريدك الإلكتروني أو سجل دخولك إذا كان لديك حساب موجود.
**الخطوة 4:** من لوحة التحكم (Dashboard)، انتقل إلى قسم **API Keys**
**الخطوة 5:** انقر على **"Create New API Key"** لإنشاء مفتاح جديد
**الخطوة 6:** احفظ مفتاح API في مكان آمن - لن تتمكن من رؤيته مرة أخرى!
---
## القسم الثاني: معلومات الاتصال الأساسية
### 2.1 Base URL
جميع طلبات API تُرسل إلى العنوان الأساسي التالي:
```
https://bankt.ria.bio/api/bankt/v1
```
### 2.2 نقطة النهاية للدردشة (Chat Endpoint)
```
POST https://bankt.ria.bio/api/bankt/v1/chat/completions
```
### 2.3 التحقق من الهوية (Authentication)
يتم التحقق من الهوية باستخدام **Bearer Token** في ترويسة الطلب:
```
Authorization: Bearer YOUR_API_KEY
```
---
## القسم الثالث: النماذج المتاحة
### 3.1 قائمة النماذج الـ 12
توفر BANKT مجموعة متنوعة من النماذج لتناسب مختلف الاحتياجات والميزانيات:
| Model ID | الاسم | السرعة | السعر/طلب |
|----------|-------|--------|-----------|
| `lomai-pro-2` | **Lomia Pro 2** | 0.12 ثانية | $0.003 |
| `lomai-pro` | Lomia Pro | 1.2 ثانية | $0.002 |
| `lomai-mini` | Lomia Mini | 0.8 ثانية | $0.001 |
| `bankt-1.0` | BANKT 1.0 | 1.5 ثانية | $0.002 |
| `bankt-0.9` | BANKT 0.9 | 1.3 ثانية | $0.001 |
| `fakhr` | Fakhr | 1.4 ثانية | $0.002 |
| `majd` | Majd | 1.3 ثانية | $0.002 |
| `hikma` | Hikma | 1.3 ثانية | $0.002 |
| `azm` | Azm | 1.4 ثانية | $0.002 |
| `nour` | Nour | 1.2 ثانية | $0.001 |
| `sanad` | Sanad | 1.3 ثانية | $0.001 |
| `qimma` | Qimma | 1.1 ثانية | $0.002 |
### 3.2 اختيار النموذج المناسب
| حالة الاستخدام | النموذج المُوصى به | السبب |
|----------------|---------------------|-------|
| الردود الفورية | `lomai-pro-2` | أسرع نموذج (0.12 ثانية) |
| الاستخدام المتكرر | `lomai-mini` أو `nour` | أقل تكلفة ($0.001) |
| المهام المعقدة | `lomai-pro` | توازن بين السرعة والجودة |
| المحتوى العربي | `fakhr`, `majd`, `hikma` | مُحسّنة للغة العربية |
---
## القسم الرابع: أمثلة البرمجة
### 4.1 استخدام cURL
أسهل طريقة لاختبار API هي استخدام cURL من سطر الأوامر:
```bash
curl https://bankt.ria.bio/api/bankt/v1/chat/completions \
-H "Content-Type: application/json" \
-H "Authorization: Bearer YOUR_API_KEY" \
-d '{
"model": "lomai-pro-2",
"messages": [{"role": "user", "content": "Hello!"}],
"stream": false
}'
```
#### شرح المعاملات:
| المعامل | القيمة | الوصف |
|---------|--------|-------|
| `model` | `"lomai-pro-2"` | اسم النموذج المُستخدم |
| `messages` | مصفوفة | سلسلة الرسائل في المحادثة |
| `stream` | `false` | تعطيل البث المباشر للحصول على الرد كاملاً |
---
### 4.2 استخدام Python مع OpenAI SDK
بما أن BANKT متوافق 100% مع OpenAI SDK، يمكنك استخدام نفس المكتبة التي تستخدمها مع OpenAI:
#### التثبيت:
```bash
pip install openai
```
#### مثال البث المباشر (Streaming):
```python
from openai import OpenAI
# إنشاء العميل مع إعدادات BANKT
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://bankt.ria.bio/api/bankt/v1"
)
# إرسال طلب مع البث المباشر
stream = client.chat.completions.create(
model="lomai-pro-2",
messages=[{"role": "user", "content": "Hello!"}],
stream=True
)
# طباعة الرد تدريجياً
for chunk in stream:
print(chunk.choices[0].delta.content or "", end="")
```
#### مثال بدون بث (Non-streaming):
```python
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://bankt.ria.bio/api/bankt/v1"
)
response = client.chat.completions.create(
model="lomai-pro-2",
messages=[
{"role": "system", "content": "أنت مساعد ذكي تتحدث العربية."},
{"role": "user", "content": "ما هي عاصمة الجزائر؟"}
],
stream=False
)
print(response.choices[0].message.content)
```
#### مثال محادثة متعددة الرسائل:
```python
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://bankt.ria.bio/api/bankt/v1"
)
# سجل المحادثة
messages = [
{"role": "system", "content": "أنت مساعد برمجي خبير."},
{"role": "user", "content": "اكتب لي دالة Python لحساب مضروب عدد."},
]
response = client.chat.completions.create(
model="lomai-pro-2",
messages=messages,
stream=False
)
print(response.choices[0].message.content)
# إضافة رد النموذج للمحادثة
messages.append({"role": "assistant", "content": response.choices[0].message.content})
# سؤال متابعة
messages.append({"role": "user", "content": "ما هو التعقيد الزمني لهذه الدالة؟"})
response = client.chat.completions.create(
model="lomai-pro-2",
messages=messages,
stream=False
)
print(response.choices[0].message.content)
```
---
### 4.3 استخدام JavaScript / TypeScript
#### باستخدام Fetch API:
```javascript
const res = await fetch("https://bankt.ria.bio/api/bankt/v1/chat/completions", {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": "Bearer YOUR_API_KEY"
},
body: JSON.stringify({
model: "lomai-pro-2",
messages: [{ role: "user", content: "Hello!" }],
stream: true
})
});
const reader = res.body.getReader();
const decoder = new TextDecoder();
while (true) {
const { done, value } = await reader.read();
if (done) break;
console.log(decoder.decode(value));
}
```
#### مثال كامل مع Node.js:
```javascript
// bankt-example.js
const API_KEY = "YOUR_API_KEY";
const BASE_URL = "https://bankt.ria.bio/api/bankt/v1";
async function chatCompletion(messages, model = "lomai-pro-2", stream = false) {
const response = await fetch(`${BASE_URL}/chat/completions`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${API_KEY}`
},
body: JSON.stringify({
model: model,
messages: messages,
stream: stream
})
});
if (!response.ok) {
throw new Error(`HTTP error! status: ${response.status}`);
}
return response;
}
// استخدام بدون بث
async function main() {
const messages = [
{ role: "system", content: "أنت مساعد ذكي." },
{ role: "user", content: "مرحباً! كيف يمكنني البدء في تعلم البرمجة؟" }
];
const response = await chatCompletion(messages, "lomai-pro-2", false);
const data = await response.json();
console.log("الرد:", data.choices[0].message.content);
console.log("الاستخدام:", data.usage);
}
main().catch(console.error);
```
#### مثال مع البث المباشر (Streaming):
```javascript
async function streamChat(messages, model = "lomai-pro-2") {
const response = await fetch(`${BASE_URL}/chat/completions`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${API_KEY}`
},
body: JSON.stringify({
model: model,
messages: messages,
stream: true
})
});
const reader = response.body.getReader();
const decoder = new TextDecoder();
let fullContent = "";
while (true) {
const { done, value } = await reader.read();
if (done) break;
const chunk = decoder.decode(value);
const lines = chunk.split("\n").filter(line => line.startsWith("data: "));
for (const line of lines) {
const data = line.slice(6);
if (data === "[DONE]") continue;
try {
const parsed = JSON.parse(data);
const content = parsed.choices[0]?.delta?.content || "";
fullContent += content;
process.stdout.write(content);
} catch (e) {
// تجاهل أخطاء التحليل
}
}
}
console.log("\n\n--- الرد الكامل ---");
console.log(fullContent);
return fullContent;
}
```
---
## القسم الخامس: معاملات الطلب
### 5.1 المعاملات الأساسية
| المعامل | النوع | مطلوب | الوصف |
|---------|------|-------|-------|
| `model` | string | نعم | معرف النموذج (مثل `lomai-pro-2`) |
| `messages` | array | نعم | مصفوفة الرسائل في المحادثة |
| `stream` | boolean | لا | تفعيل البث المباشر (افتراضي: false) |
### 5.2 بنية رسالة
كل رسالة في المصفوفة تحتوي على:
```json
{
"role": "user|assistant|system",
"content": "محتوى الرسالة"
}
```
| الدور | الوصف |
|-------|-------|
| `system` | تعليمات النظام للمساعد |
| `user` | رسالة المستخدم |
| `assistant` | رد المساعد السابق |
---
## القسم السادس: الأخطاء والحدود
### 6.1 حدود الاستخدام (Rate Limits)
| نوع الحساب | الحد |
|------------|------|
| **مجاني** | 10 طلبات إجمالية |
| **مدفوع** | 200 طلب/دقيقة |
### 6.2 رموز الأخطاء
| الرمز | المعنى | الحل |
|-------|--------|------|
| **401** | مفتاح API غير صالح | تحقق من صحة المفتاح |
| **402** | لا توجد رصيد | اشحن رصيدك أو قم بالترقية |
| **429** | تم تجاوز الحد المسموح | انتظر قبل إرسال طلبات جديدة |
### 6.3 معالجة الأخطاء في Python
```python
import openai
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://bankt.ria.bio/api/bankt/v1"
)
try:
response = client.chat.completions.create(
model="lomai-pro-2",
messages=[{"role": "user", "content": "Hello!"}]
)
print(response.choices[0].message.content)
except openai.AuthenticationError:
print("خطأ: مفتاح API غير صالح")
except openai.RateLimitError:
print("خطأ: تم تجاوز حد الطلبات المسموح")
except openai.APIConnectionError:
print("خطأ: فشل الاتصال بالخادم")
except Exception as e:
print(f"خطأ غير متوقع: {e}")
```
### 6.4 معالجة الأخطاء في JavaScript
```javascript
async function safeChatCompletion(messages) {
try {
const response = await fetch(`${BASE_URL}/chat/completions`, {
method: "POST",
headers: {
"Content-Type": "application/json",
"Authorization": `Bearer ${API_KEY}`
},
body: JSON.stringify({
model: "lomai-pro-2",
messages: messages
})
});
if (response.status === 401) {
throw new Error("مفتاح API غير صالح");
} else if (response.status === 402) {
throw new Error("لا يوجد رصيد كافٍ");
} else if (response.status === 429) {
throw new Error("تم تجاوز حد الطلبات");
} else if (!response.ok) {
throw new Error(`خطأ HTTP: ${response.status}`);
}
return await response.json();
} catch (error) {
console.error("خطأ:", error.message);
throw error;
}
}
```
---
## القسم السابع: أفضل الممارسات
### 7.1 الأمان
| النصيحة | الوصف |
|---------|-------|
| ✅ لا تخزن API Key في الكود المصدري | استخدم متغيرات البيئة |
| ✅ استخدم HTTPS دائماً | لحماية البيانات أثناء النقل |
| ✅ قيّد استخدام المفتاح | اضبط حدود الاستخدام من لوحة التحكم |
| ✅ أدر المفاتيح بحكمة | أنشئ مفاتيح منفصلة لكل مشروع |
### 7.2 الأداء
```python
import os
from openai import OpenAI
# استخدام متغيرات البيئة
client = OpenAI(
api_key=os.environ.get("BANKT_API_KEY"),
base_url="https://bankt.ria.bio/api/bankt/v1"
)
# اختيار النموذج المناسب حسب الحاجة
def get_response(prompt, fast=True):
model = "lomai-pro-2" if fast else "lomai-pro"
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
```
### 7.3 إعادة المحاولة مع التراجع الأسي
```python
import time
import openai
def chat_with_retry(messages, max_retries=3):
for attempt in range(max_retries):
try:
response = client.chat.completions.create(
model="lomai-pro-2",
messages=messages
)
return response
except openai.RateLimitError:
if attempt < max_retries - 1:
wait_time = (attempt + 1) * 2 # 2, 4, 6 ثواني
print(f"انتظار {wait_time} ثانية قبل إعادة المحاولة...")
time.sleep(wait_time)
else:
raise
```
---
## القسم الثامن: حالات الاستخدام
### 8.1 روبوت محادثة (Chatbot)
```python
from openai import OpenAI
client = OpenAI(
api_key="YOUR_API_KEY",
base_url="https://bankt.ria.bio/api/bankt/v1"
)
def chatbot():
messages = [
{"role": "system", "content": "أنت مساعد ذكي ودود. تجيب بإيجاز ووضوح."}
]
print("مرحباً! أنا المساعد الذكي. اكتب 'خروج' للإنهاء.")
while True:
user_input = input("\nأنت: ")
if user_input.lower() == "خروج":
print("إلى اللقاء!")
break
messages.append({"role": "user", "content": user_input})
response = client.chat.completions.create(
model="lomai-pro-2",
messages=messages,
stream=True
)
print("المساعد: ", end="")
full_response = ""
for chunk in response:
content = chunk.choices[0].delta.content or ""
print(content, end="", flush=True)
full_response += content
messages.append({"role": "assistant", "content": full_response})
print()
if __name__ == "__main__":
chatbot()
```
### 8.2 تلخيص النصوص
```python
def summarize_text(text, max_words=100):
response = client.chat.completions.create(
model="lomai-mini", # نموذج اقتصادي
messages=[
{"role": "system", "content": f"لخص النص التالي في أقصى {max_words} كلمة."},
{"role": "user", "content": text}
]
)
return response.choices[0].message.content
```
### 8.3 تحليل المشاعر
```python
def analyze_sentiment(text):
response = client.chat.completions.create(
model="lomai-pro-2",
messages=[
{"role": "system", "content": "حلل مشاعر النص وأجب بكلمة واحدة: إيجابي/سلبي/محايد"},
{"role": "user", "content": text}
]
)
return response.choices[0].message.content
```
---
## الخاتمة
يُوفر **BANKT API** حلاً مثالياً للمطورين الباحثين عن دمج قدرات الذكاء الاصطناعي في تطبيقاتهم بسرعة وسهولة. فمع التوافق الكامل مع OpenAI SDK، وتوفر 12 نموذجاً متنوعاً، وأسعار تنافسية تبدأ من **$0.001 للطلب**، يُعد BANKT خياراً ممتازاً للمشاريع الصغيرة والكبيرة على حد سواء.
إن سرعة **Lomia Pro 2** الاستثنائية (0.12 ثانية فقط) تجعله الخيار الأمثل للتطبيقات التي تتطلب استجابات في الوقت الحقيقي، بينما توفر النماذج الأخرى خيارات اقتصادية للمهام الأقل إلحاحاً.
---
## ملخص سريع
| العنصر | القيمة |
|--------|--------|
| **Base URL** | `https://bankt.ria.bio/api/bankt/v1` |
| **التوافق** | 100% مع OpenAI SDK |
| **عدد النماذج** | 12 نموذج |
| **أسرع نموذج** | `lomai-pro-2` (0.12 ثانية) |
| **أرخص نموذج** | `lomai-mini`, `nour`, `sanad` ($0.001) |
| **حد مجاني** | 10 طلبات |
| **حد مدفوع** | 200 طلب/دقيقة |
| **التسجيل** | [bankt.ria.bio](https://bankt.ria.bio/) |