واجهة برمجة تطبيقات PERPLEXITY · دليل تعليمي بلغة بايثون · 2026
يوضح لك هذا الدليل التعليمي لواجهة برمجة التطبيقات (API) Perplexity كيفية إنشاء برنامج نصي بلغة بايثون يعرض إجابة تتضمن مصادر ويب قابلة للنقر. استخدم واجهة برمجة التطبيقات (API) الخاصة بالوكيل لإرسال سؤال، وقراءة الإجابة، ومطابقة علامات الاقتباس الواردة فيها مع معرّفات المصادر، وتصدير ملف Markdown يمكنك مراجعته.
وسنستخدم سؤالًا واحدًا طوال الوقت: كيف ينبغي لمشروع صغير مكتوب بلغة بايثون أن يستخدم البيئات الافتراضية ويدير التبعيات؟ ابدأ بطلب أساسي، ثم أضف تحليل مصدر البيانات وفلاتر المجال. تحتاج إلى معرفة أساسية بلغة Python وحساب مطور Perplexity مع إعداد الفوترة الخاصة بواجهة برمجة التطبيقات (API).
إذا كنت تستخدم الذكاء الاصطناعي أيضًا في الأبحاث والكتابة اليومية،, Perplexity على GlobalGPT يتيح الوصول إلى هذه الميزات ضمن مساحة عمل متكاملة تعتمد على الذكاء الاصطناعي، مما يقلل من الحاجة إلى التبديل بين أدوات منفصلة. ويُعد مسار عمل المستهلك هذا منفصلاً عن مفتاح المطور وفوترة واجهة برمجة التطبيقات (API) المستخدمة هنا.
إجابة سريعة: استخدم سريع الإعداد المسبق للوكيل للحصول على أول إجابة مستندة إلى الويب، اقرأ response.output_text للحصول على الإجابة، واقرأ نتائج_البحث عنصر في response.output بالنسبة للمصادر. قم بمطابقة كل علامة مضمنة بمصدر ما بناءً على القيمة التي تُرجعها id. يعني الاقتباس أن “الإجابة تشير إلى هذه النتيجة”؛ وهو لا يضمن أن الصفحة تثبت صحة كل ادعاء.
حالة المثال: تتوافق صيغة الطلب مع الوثائق الرسمية التي تم التحقق منها في 28 سبتمبر 2026. وقد تم اختبار أداة المساعدة في الاستشهاد باستخدام بيانات نموذجية غير متصلة بالإنترنت؛ ولم يتم تنفيذ أي طلبات مدفوعة على واجهة برمجة التطبيقات (API) في إطار هذا البرنامج التعليمي. وتُعد السجلات المصدرية الموضحة في الرسم التوضيحي أمثلة توضيحية.

- ما هي واجهة برمجة التطبيقات (API) Perplexity التي ينبغي عليك استخدامها؟
- الخطوة 1: الحصول على مفتاح API وتهيئة بيئة Python
- الخطوة 2: إرسال أول طلب لك بشأن التأريض من المصدر
- الخطوة 3: استخلاص الإجابة ومطابقتها مع مصادرها
- الخطوة 4: تحسين النتيجة باستخدام عوامل تصفية البحث
- الخطوة 5: حفظ إجابة كاملة مع مصادر قابلة للنقر عليها
- البث المباشر والإخراج المنظم
- التكاليف والأخطاء الشائعة
- الانتقال من درس تعليمي قديم في برنامج Sonar
- الأسئلة الشائعة
دليل واجهة برمجة التطبيقات (API) لـ Perplexity: اختر واجهة برمجة التطبيقات المناسبة
هذه واجهات للمطورين. وقد يقوم منتج الدردشة بتقديم إمكانيات مشابهة بطريقة مختلفة؛ نظرة عامة لدينا على ميزات Perplexity يصف التجربة التي يواجهها المستخدم.
"الحيرة" دليل البدء السريع الرسمي لواجهة برمجة التطبيقات (API) تصنف منتجاتها المخصصة للمطورين حسب المهمة التي تحتاج إلى إنجازها. اختر أصغر سطح ينتج البيانات التي يحتاجها تطبيقك فعليًّا.
| واجهة برمجة التطبيقات | أفضل ملاءمة | ما يتلقاه الكود الخاص بك |
|---|---|---|
| الوكيل | إجابة مكتملة تستند إلى البحث على الإنترنت أو أدوات أخرى | بنود المخرجات المكتوبة، ونص الإجابة، وسجلات نتائج البحث |
| بحث | سيقوم تطبيقك تلقائيًا بترتيب النتائج أو تصفيتها أو تلخيصها | نتائج البحث دون مطالبة Perplexity بكتابة الإجابة النهائية |
| جهاز التوجيه | توجيه الطلبات إلى النموذج المناسب | إجابة نموذجية تم اختيارها عبر جهاز التوجيه |
| التضمينات | الاسترجاع الدلالي وفهرس RAG | المتجهات الخاصة بطبقة البحث الخاصة بك |
يختار هذا البرنامج التعليمي خيار «Agent» لأن النتيجة التي تريدها هي إجابة كاملة مع مصادرها. وللاطلاع على سير عمل البحث بشكل عام، راجع دليلنا الخاص بـ استخدام Perplexity في الأبحاث.
نبذة عن Sonar: التيار نظرة عامة على الهجرة يذكر أن ميزة «Sonar Chat Completions» لا تزال مدعومة، ويوصي باستخدام «Agent» في جميع المشاريع الجديدة. ولذلك، يستخدم هذا الدليل التعليمي «Agent». لا تستنتج أن التكامل القديم قد توقف عن العمل استنادًا إلى الموعد النهائي المذكور في دليل تعليمي قديم.
الخطوة 1: الحصول على مفتاح API وتهيئة بيئة Python
إنشاء المفتاح وإعداد الفواتير
افتح وحدة التحكم في واجهة برمجة التطبيقات Perplexity, ، اختر أو أنشئ المشروع الذي ستستخدمه، وقم بتكوين إعدادات الفوترة الخاصة بواجهة برمجة التطبيقات (API)، ثم أنشئ مفتاحًا. احتفظ به على جانب الخادم. يتم احتساب تكاليف واجهات برمجة التطبيقات الخاصة بالمطورين بشكل منفصل عن اشتراكات المستخدمين؛ لذا تحقق من رصيد مشروعك قبل إرسال الطلبات.
تثبيت حزمة تطوير التطبيقات (SDK) الرسمية
python -m venv .venv
# macOS/Linux: اختر أمر التنشيط هذا
source .venv/bin/activate
# Windows PowerShell: استخدم هذا الأمر بدلاً من ذلك
.venv\Scripts\Activate.ps1
python -m pip install --upgrade perplexityai
استخدم Python 3.10 أو إصدار أحدث لتشغيل الكود أدناه. قم بتنشيط البيئة باستخدام الأمر الخاص بنظام التشغيل الخاص بك، ثم قم بتثبيت SDK. إذا قام PowerShell بحظر التنشيط، فاستخدم .venv\Scripts\python.exe بدلاً من بايثون للتثبيت وتنفيذ البرنامج النصي.
اسم الحزمة هو perplexityai, ، في حين أن استيراد لغة بايثون هو حيرة. استخدم بيئة افتراضية حتى لا تؤثر متطلبات هذا البرنامج التعليمي على مشروع آخر.
يستخدم المثال سؤالاً متعلقاً بالبرمجة لأن ادعاءاته يمكن التحقق منها بالرجوع إلى الوثائق المحفوظة. دليلنا إلى Perplexity للتشفير يوضح المكان الذي يتناسب فيه الدعم البحثي مع قيامك باختبار الكود بنفسك.
قم بتعيين مفتاح واجهة برمجة التطبيقات (API) كمتغير بيئة
# macOS/Linux
export PERPLEXITY_API_KEY="أدخل مفتاحك هنا"
# Windows PowerShell
$env:PERPLEXITY_API_KEY = "أدخل مفتاحك هنا"
يقرأ SDK ما يلي: PERPLEXITY_API_KEY عند إنشاء العميل. لا تقم بلصق المفتاح في دفتر ملاحظات، أو إضافته إلى Git، أو إرساله إلى متصفح. إذا كنت تستخدم ملف .env محليًّا، فاحرص على إبقاء هذا الملف خارج نطاق التحكم في الإصدارات وقم بتحميله باستخدام مكتبة متغيرات البيئة التي اخترتها.

الخطوة 2: إرسال أول طلب لك بشأن التأريض من المصدر
دليل البدء السريع لواجهة برمجة تطبيقات الوكيل (Agent API) الوثائق المنشور https://api.perplexity.ai/v1/agent. يقوم عميل Python الخاص به بتغليف الطلب باستخدام client.responses.create(). . سريع يُفعّل الإعداد المسبق البحث على الويب بشكل افتراضي، مما يجعل المثال الأول موجزًا.
from perplexity import Perplexity
client = Perplexity()
question = (
"كيف ينبغي لمشروع صغير بلغة بايثون استخدام البيئات الافتراضية "
"وإدارة التبعيات؟"
)
response = client.responses.create(
preset="fast",
input=question,
)
print(response.output_text)
احفظ المقتطف باسم first_request.py, ، ثم قم بتشغيل بايثون first_request.py في نفس نافذة الأوامر التي قمت فيها بتعيين المفتاح. في حالة نجاح الاستدعاء، يجب أن يُعرض نص إجابة غير فارغ. إذا كنت بحاجة إلى دليل على النتيجة، فانتقل إلى خطوة استخراج المصدر؛ فالنص وحده لا يُعد فحصًا كاملاً.
خاصية الراحة نص_الإخراج يقدم لك نص الإجابة النهائية. احتفظ أيضًا بكامل كائن الرد: فسجلات المصدر وتفاصيل الاستخدام موجودة في النص المكتوب، وليست في الفقرة المطبوعة وحدها.
نفس الطلب باستخدام cURL
curl https://api.perplexity.ai/v1/agent \
-H "Authorization: Bearer $PERPLEXITY_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"preset": "fast",
"input": "كيف ينبغي لمشروع صغير بلغة Python استخدام البيئات الافتراضية وإدارة التبعيات؟"
}'
يستخدم مثال cURL هذا صيغة لغة Bash الخاصة بنظامي macOS وLinux أو أي شل متوافق مع Bash. يؤدي كل تشغيل إلى إرسال طلب آخر خاضع للفوترة. لا تستخدمه إلا عندما تحتاج إلى فصل مشكلة تتعلق بنقطة النهاية عن مشكلة تتعلق بلغة Python؛ ولا تقم بتشغيل كل إصدار لمجرد متابعة الخطوات.
ما يعادل ذلك في جافا سكريبت من جانب الخادم
يتضمن Node.js 18+ ما يلي جلب, ، لذا فإن اختبار «سموك» من جانب الخادم لا يحتاج إلى مكتبة إضافية. اقرأ النص الخام المخرجات العناصر الموجودة في استجابة JSON؛ توفر حزمة SDK الخاصة بلغة Python طريقة مريحة نص_الإخراج ملحق.
const res = await fetch("https://api.perplexity.ai/v1/agent", {
method: "POST",
headers: {
Authorization: `Bearer ${process.env.PERPLEXITY_API_KEY}`,
"Content-Type": "application/json"
},
body: JSON.stringify({
preset: "fast",
input: "كيف ينبغي لمشروع Python صغير استخدام البيئات الافتراضية وإدارة التبعيات؟"
})
});
if (!res.ok) throw new Error(`Perplexity HTTP ${res.status}`);
console.log(await res.json());
الخطوة 3: استخلاص الإجابة ومطابقتها مع مصادرها
الإرشادات الرسمية بشأن الإشادة يفصل النص النثري عن سجلات الأدلة الخاصة به. تصل المصادر في شكل المخرجات عنصر من النوع نتائج_البحث. اقرأ ذلك المقال النتائج ومطابقة كل علامة مرجع مع النتيجة id. تحتوي النتيجة على عنوان وعنوان URL؛ يجب معالجة القيم المفقودة قبل عرضها.

هذه التفاصيل الأخيرة مهمة. لا تفترض أن “المرجع 1” هو دائمًا العنصر الأول في المصفوفة بعد أن تضيف أداة أخرى عنصرًا. قم بإنشاء عملية بحث باستخدام المعرّف، ثم حدد العلامات التي تظهر فعليًّا في الإجابة.
def field(obj, name, default=None):
return obj.get(name, default) if isinstance(obj, dict) else getattr(obj, name, default)
def source_index(output):
sources = {}
for item in output or []:
if field(item, "type") != "search_results":
continue
for result in field(item, "results", []) or []:
sid, url = field(result, "id"), field(result, "url")
if sid is None:
continue
key = str(sid)
if key in sources and field(sources[key], "url") != url:
raise ValueError(f"تعارض عناوين URL لمعرف المصدر {key}")
sources[key] = result
return sources
sources = source_index(response.output)
print(sources.get("7")) # معرف المصدر، وليس الموضع 7 في المصفوفة
النص الكامل الوارد أدناه يتعرف على [1] و [web:1], ، وهي نماذج الاستشهاد الموثقة للإعدادات المسبقة الشائعة. تتعامل الأداة المساعدة المذكورة أعلاه مع كائنات SDK والقواميس على حد سواء، وترفض عناوين URL المتعارضة المخصصة لنفس المعرّف. كما أنها لا تعيد ترقيم النتائج ولا تحاول تخمين المصدر المفقود.
للاطلاع على مناقشة أكثر شمولاً حول جودة الاستشهادات، انظر دليل دقة الاقتباس في Perplexity. يُعد الاستشهاد سجلاً للتتبع؛ ولا يزال تطبيقك بحاجة إلى سياسة تتناول الصفحات القديمة وعناوين URL المكررة والادعاءات غير المدعومة.
على سبيل المثال، إذا احتوى المصفوفة المُرجعة على المعرّف 2 متبوعًا بالمعرّف 7، فإن العلامة [7] يجب أن يرتبط بالمعرّف رقم 7. إذا ظهر نفس عنوان URL تحت المعرّفين رقم 7 و9، فيمكنك عرض هذا العنوان مرة واحدة مع الاحتفاظ بكلا المعرّفين. إذا لم يظهر المعرّف رقم 8 مطلقًا، فاحتفظ بـ [8] إظهاره ووضع علامة عليه باعتباره غير مطابق.

الخطوة 4: تحسين النتيجة باستخدام عوامل تصفية البحث
بمجرد أن يعمل الطلب الأساسي، قم بتحديد نطاق البحث عندما يكون لسؤالك حدود واضحة من حيث المرجع الموثوق. بالنسبة لتعبئة حزم Python، تُعد وثائق اللغة ودليل التعبئة نقاط انطلاق أفضل من أي دليل تعليمي عشوائي.
response = client.responses.create(
preset="fast",
input=(
"كيف ينبغي لمشروع صغير بلغة بايثون استخدام البيئات الافتراضية "
"وإدارة التبعيات؟ اذكر الإرشادات التي تستخدمها."
),
tools=[
{
"type": "web_search",
"filters": {
"search_domain_filter": [
"docs.python.org",
"packaging.python.org",
]
},
}
],
)
يُدرج المرشح ضمن إعدادات أداة البحث على الويب. كما تصف وثائق الترحيل أيضًا filter_search_recency للأسئلة التي تتطلب سرعة في الإجابة. استخدم معيار «الحداثة» عندما يعتمد السؤال على الإصدارات أو الأخبار الحديثة؛ فقد يؤدي الجمع بين مجال ضيق جدًّا وتاريخ محدد إلى عدم توفر أدلة كافية.
لطرح سؤال حول الإصدارات التي صدرت خلال الشهر الماضي، أضف "search_recency_filter": "month" بجانب مرشح_البحث_حسب_النطاق. استبعدها من مثال البيئة الافتراضية: فقد يكون تاريخ نشر الوثائق المستقرة أقدم. إذا قمت بالتبديل من نموذج محدد مسبقًا إلى نموذج تم اختياره مباشرةً، فقم بتضمين أداة البحث على الويب بشكل صريح.
قارن بين النتائج المُصفاة وغير المُصفاة أثناء مرحلة التطوير. إذا تغيرت الإجابة، فسجل السبب: فقد يؤدي أحد المرشحات إلى إزالة سياق مفيد، أو قد يؤدي إلى إزالة صفحات ذات مصداقية منخفضة كانت تشتت انتباه النموذج. وهذا قرار يتعلق بالجودة، وليس ضمانًا بأن كل صفحة متبقية صحيحة.
إذا كان تطبيقك يحتاج فقط إلى الروابط والمقتطفات المرتبة، فاستدعِ الدالة واجهة برمجة تطبيقات البحث وقم بإجراء التوليف بنفسك. فهذا الفصل يمكن أن يسهل عملية المراجعة والتخزين المؤقت. ولإجراء مقارنة أوسع نطاقًا مع Google، انظر كيف يختلف Perplexity عن Google.
الخطوة 5: حفظ إجابة كاملة مع مصادر قابلة للنقر عليها
احفظ ما يلي باسم perplexity_tutorial.py. وهو برنامج مستقل بذاته: فهو يتضمن أداة المساعدة الخاصة بالمصدر، ويطبق مرشح نطاق وثائق بايثون، ويحول علامات الاقتباس المتطابقة إلى روابط، ويجمع عناوين URL المكررة دون فقدان معرّفاتها، ويحفظ استجابة SDK الكاملة جنبًا إلى جنب مع ملف Markdown.
from pathlib import Path
from collections import defaultdict
from urllib.parse import urlsplit
import json
import re
QUESTION = (
"How should a small Python project use virtual environments "
"and manage dependencies?"
)
# Supports the documented [1] and [web:1] forms in prose answers.
CITATION_RE = re.compile(r"(?<!!)\[(?:web:)?(\d+)\](?!\()")
def field(obj, name, default=None):
return obj.get(name, default) if isinstance(obj, dict) else getattr(obj, name, default)
def source_index(output):
sources = {}
for item in output or []:
if field(item, "type") != "search_results":
continue
for result in field(item, "results", []) or []:
sid, url = field(result, "id"), field(result, "url")
if sid is None:
continue
key = str(sid)
if key in sources and field(sources[key], "url") != url:
raise ValueError(f"Conflicting URLs for source ID {key}")
sources[key] = result
return sources
def safe_url(value):
if not isinstance(value, str):
return None
parsed = urlsplit(value)
if parsed.scheme not in ("http", "https") or not parsed.netloc:
return None
# Protect a Markdown angle-bracket destination.
return value.replace("<", "%3C").replace(">", "%3E").replace(" ", "%20")
def md_label(value):
return re.sub(r"([\\\[\]<>])", r"\\\1", str(value).replace("\n", " "))
def export_markdown(answer, output, question=QUESTION):
sources = source_index(output)
cited = list(dict.fromkeys(CITATION_RE.findall(answer)))
missing = [
sid for sid in cited
if sid not in sources or not safe_url(field(sources[sid], "url"))
]
def link(match):
sid = match.group(1)
url = safe_url(field(sources.get(sid, {}), "url"))
return f"[{match.group(0)[1:-1]}](<{url}>)" if url else match.group(0)
# Keep every ID when the same URL appears under different IDs.
grouped = defaultdict(list)
titles = {}
for sid in cited:
source = sources.get(sid, {})
url = safe_url(field(source, "url"))
if url:
grouped[url].append(sid)
titles.setdefault(url, field(source, "title") or url)
lines = ["# Source-grounded answer", "", question, "",
CITATION_RE.sub(link, answer), "", "## Cited sources", ""]
for url, ids in grouped.items():
lines.append(f"- IDs {', '.join(ids)}: [{md_label(titles[url])}](<{url}>)")
if missing:
lines.append("- Unmatched or unusable source IDs: " + ", ".join(missing))
if not cited:
lines.append("- No recognized inline citations; evidence not verified.")
lines.extend(["", "Source links require review; matching IDs does not verify claims."])
return "\n".join(lines) + "\n"
def main():
from perplexity import Perplexity
response = Perplexity().responses.create(
preset="fast",
input=QUESTION,
tools=[{"type": "web_search", "filters": {
"search_domain_filter": ["docs.python.org", "packaging.python.org"]
}}],
)
answer = response.output_text or ""
if not answer.strip():
raise RuntimeError("No answer text returned; inspect response status and errors.")
Path("perplexity-response.json").write_text(
response.model_dump_json(indent=2), encoding="utf-8"
)
Path("perplexity-answer.md").write_text(
export_markdown(answer, response.output), encoding="utf-8"
)
print("Saved perplexity-answer.md and perplexity-response.json")
if __name__ == "__main__":
main()
تشغيل python perplexity_tutorial.py من دليل مشروعك. ويقوم بكتابة perplexity-answer.md و perplexity-response.json هناك، حيث يتم استبدال الملفات السابقة بتلك التي تحمل الأسماء نفسها. يحتوي ملف Markdown على السؤال والإجابة المرتبطة به والمصادر المذكورة وأي معرّفات غير متطابقة. أما ملف JSON فيحتفظ بالمخرجات المعادة وطريقة الاستخدام لأغراض التشخيص.
يستهدف المحلل الصيغ الموثقة ذات العلامة الواحدة في النصوص النثرية. وهو ليس محللًا كاملًا لـ Markdown: إذا كان تطبيقك يتطلب استخدام Markdown بشكل تعسفي، أو أمثلة برمجية، أو اقتباسات مثل [1,2], ، أضف مُعالجًا يدعم قواعد الصياغة واختبارات لهذا التنسيق. لا تقم بإعادة تفسير العلامات غير المألوفة دون إشعار.
تحقق مما إذا كانت الصفحة المرتبطة تدعم الإجابة
في هذا المثال، تحقق مما إذا كانت الوثائق المشار إليها تشرح بالفعل موضوع عزل البيئة وتثبيت المكونات التبعية. فالرابط المؤدي إلى الصفحة الرئيسية لـ Python أقل فائدة من القسم ذي الصلة في الوثائق. وإذا أوصت إحدى الإجابات باستخدام أمر معين، فتحقق من نظام التشغيل وإصدار Python قبل تنفيذه. يدعي مارك أن النص المشار إليه لا يدعم تصنيف «لم يتم حله».
أضف إخراجًا متدفقًا أو منظمًا عند الحاجة
البث المباشر
يعمل البث المباشر على تحسين زمن الاستجابة الملحوظ في واجهة الدردشة. ويوثق دليل ترحيل الوكلاء أحداث التغييرات النصية مثل response.output_text.delta. قم بعرض تلك التغييرات فور وصولها، ولكن احرص أيضًا على جمع عناصر الرد النهائي حتى تتمكن واجهة المستخدم من عرض المصادر بعد اكتمال الرد. فالتدفق النصي وحده لا يُعد قائمة بالمصادر.
ما يلي هو عرض نصي فقط. احتفظ بالتصدير غير المتدفق للسجل المصدر الأول الكامل؛ حيث يجب أن يقوم تطبيق البث الإنتاجي أيضًا بجمع أحداث الأداة/المخرجات والتعامل مع عمليات التشغيل المتوقفة أو الفاشلة.
stream = client.responses.create(
preset="fast", input=question, stream=True
)
for event in stream:
if event.type == "response.output_text.delta":
print(event.delta, end="", flush=True)
المخرجات المنظمة
استخدم استجابة منظمة عندما يحتاج الكود التالي إلى حقول مثل إجابة, ملاحظة بشأن الثقة و أسئلة_المتابعة. احتفظ بمعرّفات المصدر كحقل منفصل أو احتفظ بإخراج «Agent» الأصلي حتى لا يخفي مخططك البيانات. تحقق من صحة المخطط باستخدام حالات الاختبار الخاصة بك قبل الاعتماد عليه في سير العمل.
يحتفظ مرجع الهجرة بما يلي تنسيق_الرد مع النوع: "json_schema" للحصول على مخرجات منظمة. حدد الحقول الإلزامية ومنع الخصائص غير المتوقعة حيثما كان ذلك مناسبًا. تركز عمليات التحقق من صحة المخطط على الشكل وليس على الصحة: فلا يزال يتعين أن تُحل معرّفات المصدر إلى السجلات الفعلية المُرجعة، كما أن علامة الثقة المكتوبة بواسطة النموذج لا تُعد مقياسًا للدقة.
تكاليف واجهة برمجة التطبيقات (API) لـ Perplexity والأخطاء الشائعة
صفحة الأسعار الرسمية لـ Perplexity, ، تم التحقق منه في 28 سبتمبر 2026، يفصل رموز نماذج الوكلاء عن عمليات استدعاء الأدوات. وفيما يلي رسوم الأدوات/البحث بالدولار الأمريكي. الـ سريع الإعداد المسبق للوكيل و search_type: "fast" هناك خيارات تكوين مختلفة؛ فلا تستنتج معدل البحث من اسم الإعداد المسبق.
| الإجراء القابل للفوترة | الدولار الأمريكي للسهم الواحد | دولار أمريكي لكل 1,000 |
|---|---|---|
| البحث القياسي على الويب بواسطة الوكيل | $0.0025 | $2.50 |
| استدعاء «البحث السريع عن الوكيل» | $0.001 | $1.00 |
| جلب عنوان URL للوكيل | $0.0005 | $0.50 |
| طلب ناجح لواجهة برمجة التطبيقات (API) للبحث | $0.005 | $5.00 |
| واجهة برمجة التطبيقات (API) للبحث باستخدام ميزة «البحث السريع» | $0.001 | $1.00 |

مثال: تكلفة 1,000 عملية استدعاء قياسية للبحث على الويب بالإضافة إلى 1,000 عملية استرداد لعناوين URL $3.00 كرسوم أدوات ($2.50 + $0.50)، قبل رموز النماذج أو الرسوم الأخرى. هذا يمثل عبء عمل افتراضي، وليس تكلفة مقاسة لهذا البرنامج التعليمي. قد يستدعي طلب واحد من الوكيل عدة أدوات. عند توفرها، قم بفحص الاستخدام.التكلفة.التكلفة_الإجمالية بشأن الرد المكتمل.
| الأعراض | ما الذي يجب التحقق منه أولاً |
|---|---|
| 401 أو 403 | اسم متغير البيئة، وصلاحية المفتاح، ووصول الحساب، وما إذا كان الطلب يصل إلى نقطة النهاية الحالية. |
| خطأ في الفوترة أو الحصة | رصيد واجهة برمجة التطبيقات (API)، وإعدادات الدفع، ورسوم النماذج/الأدوات، وحدود الحساب. لا تعني خطة المستهلك Perplexity تلقائيًا توفر رصيد واجهة برمجة التطبيقات (API). |
| 429 | حدود المعدل وسلوك إعادة المحاولة. استخدم التراجع الأسي المحدود وتجنب إعادة إرسال طلب تم دفع ثمنه دون تمييز. |
| انتهى الوقت المحدد | إعدادات مسار الشبكة، وحجم موجه الإدخال، وعدد الأدوات، ومهلة انتظار العميل. قم بتسجيل معرّف الطلب إذا كانت حزمة SDK توفره، ولكن لا تقم أبدًا بتسجيل المفتاح. |
| لا توجد مصادر مطابقة للإجابة | افحص المادة الخام response.output, ، وصيغة الاقتباس ومعرّفات المصادر؛ قم بوضع علامة «غير متحقق منه» على الإجابة بدلاً من اختلاق الروابط. |
تقوم واجهة برمجة تطبيقات البحث (API) بفوترة الطلبات الناجحة، بما في ذلك تلك التي لا تُرجع أي نتائج؛ ولا تتضمن تكلفة الطلب أي رسوم إضافية على الرموز. تعتمد تكاليف الوكيل على رموز النماذج والأدوات. يجب الفصل بين وحدات الفوترة هذه عند مقارنة سير عمل الإجابة بسير عمل البحث فقط.
لإجراء مقارنة بين ميزانيات واجهات برمجة التطبيقات (API)، فإن دليل تكاليف واجهة برمجة التطبيقات (API) لـ Perplexity تقدم معلومات إضافية، في حين تظل صفحة الأسعار الرسمية هي المرجع المعتمد لمعرفة الأسعار الحالية.
الانتقال من درس تعليمي قديم في برنامج Sonar
لا تزال العديد من نتائج البحث تعرض الشكل القديم لـ «إكمالات الدردشة». ويستخدم دليل ترحيل الوكلاء تخطيطًا مفاهيميًّا مباشرًا. إذا كنت تقارن تسميات نموذج المستهلك بالإعدادات المسبقة لواجهة برمجة التطبيقات (API)، فيمكنك الرجوع إلى شرحنا حول ما يستخدمه LLM Perplexity يقدم هذا السياق، لكنه لا يُعد بديلاً عن وثائق واجهة برمجة تطبيقات الوكيل (Agent API).
| نمط سونار قديم | نمط واجهة برمجة تطبيقات الوكيل |
|---|---|
الرسائل | الإدخال |
نموذج | الإعداد المسبق |
choices[0].message.content | نص_الإخراج |
| الافتراضات القديمة المتعلقة بمصفوفات الاستشهادات | نتائج_البحث عنصر الإخراج والمطابقة بناءً على المعرّف |
| معلمات البحث في الطلب | tools=[{"type":"web_search","filters":{...}}] |
اقرأ البث المباشر نظرة عامة على الهجرة و تفاصيل الهجرة قبل تغيير كود الإنتاج. تعتبر التعيينات المحددة مسبقًا نقطة انطلاق، وليست ضمانًا بأن النماذج القديمة والجديدة ستنتج نفس المستوى من الجودة أو زمن الاستجابة أو التكلفة.
الأسئلة الشائعة
هل واجهة برمجة التطبيقات Perplexity مجانية؟
تخضع واجهات برمجة التطبيقات (API) لنظام الدفع الفوري وفقًا لوثائق «البداية السريعة» و«التسعير» الحالية. لا تفترض أن الاشتراك الاستهلاكي أو الإصدار التجريبي أو الرصيد الترويجي يجعل كل طلب على واجهة برمجة التطبيقات مجانيًّا.
هل أحتاج إلى Perplexity Pro لاستخدام واجهة برمجة التطبيقات (API)؟
يُعد الوصول إلى واجهة برمجة التطبيقات (API) وخطة «Pro» للمستهلكين منتجين منفصلين. قم بإنشاء بيانات اعتماد واجهة برمجة التطبيقات (API) وتحقق من فواتير واجهة برمجة التطبيقات (API) الخاصة بحساب المطور الذي تنوي استخدامه.
هل يجب أن أستخدم واجهة برمجة تطبيقات الوكيل (Agent API) أم واجهة برمجة تطبيقات البحث (Search API)؟
اختر «الوكيل» (Agent) عندما تريد إجابة جاهزة وموثقة مع مصادرها. اختر «البحث» (Search) عندما يتعين أن يتولى تطبيقك مهام التصنيف والتصفية والتوليف. يمكنك دمج «البحث» مع نموذجك الخاص إذا كنت بحاجة إلى تحكم دقيق في كل خطوة من خطوات التوليد.
هل يمكنني استدعاء Perplexity من JavaScript؟
نعم. استخدم مثال Node.js من جانب الخادم المذكور أعلاه أو حزمة SDK الرسمية لـ JavaScript. احتفظ بالمفتاح على الخادم. عند قراءة ملف JSON الخام، افحص عناصر الإخراج المحددة النوع وطبق قواعد تعيين معرّف المصدر نفسها.
هل يُضمن صحة الاستشهادات التي تستخدم صيغة Perplexity؟
لا. فالتحويل المرجعي يوضح لك النتيجة التي تشير إليها الإجابة. ولا يزال يتعين على تطبيقك أو المراجع التحقق من حداثة المعلومات ومصداقيتها، وما إذا كانت الصفحة تدعم الادعاء المذكور بالضبط.
لماذا لم يعثر محلل البيانات الخاص بي على أي مصادر؟
افحص أنواع عناصر النتائج الأولية، وتأكد من إجراء البحث على الويب، وتحقق مما إذا كان التعبير النمطي الخاص بك يتطابق مع صيغة الاقتباس المحددة مسبقًا في الإعدادات. إذا لم تظهر أي علامة، فاحفظ الإجابة على أنها «غير متحقق منها» وقم بالتحقق من الطلب بدلاً من إضافة رابط تخميني.
هل يمكن لمفتاح API GlobalGPT أن يحل محل مفتاح API Perplexity؟
GlobalGPT هي منصة عمل شاملة تعتمد على الذكاء الاصطناعي مخصصة للاستخدام اليومي. ويُعد الاشتراك فيها والوصول إلى النماذج فيها منفصلين عن حساب المطور Perplexity ومفتاح واجهة برمجة التطبيقات (API) ورصيد واجهة برمجة التطبيقات (API)؛ ويستخدم هذا البرنامج التعليمي الخاص بلغة Python حساب المطور.
قائمة مراجعة عملية للإطلاق
- قم بإنشاء مفتاح من جانب الخادم وتأكيد الفوترة الخاصة بواجهة برمجة التطبيقات (API).
- تشغيل الإصدار الأساسي
سريعيرجى تقديم الطلب قبل إضافة عوامل التصفية أو بدء البث. - قم بتخزين الرد الكامل، وليس فقط نص الإجابة الظاهر.
- قم بمطابقة علامات الاستشهاد مع معرّفات المصادر التي تم إرجاعها، ووضع علامة على العلامات غير المطابقة.
- راجع الصفحات المشار إليها للتأكد من مدى دعمها للادعاءات، ومدى حداثتها، ووجود عناوين URL مكررة.
- يرجى إعادة مراجعة وثائق «Live Agent» ووثائق التسعير ووثائق الترحيل قبل بدء النشر.
لديك الآن النمط الأساسي لتكامل موثوق لواجهة برمجة التطبيقات (API) بنمط Perplexity: اطرح سؤالاً محدداً، ودع واجهة برمجة التطبيقات الخاصة بالوكيل (Agent API) تقوم بالبحث، واحتفظ بالإجابة والأدلة معاً، واجعل كل مرجع قابلاً للتدقيق. ومن هنا، أضف التخزين المؤقت، وإعادة المحاولة، وقواعد المراجعة الخاصة بك في إطار نفس سير العمل الخاص بمعرف المصدر (source-ID).



