أنشئ وكلاء الذكاء الاصطناعي باستخدام RapidAPI للبيانات في الوقت الفعلي

أصبح إنشاء العملاء أسهل من أي وقت مضى، ولكن هل فكرت يومًا – كيف يمكننا أن نجعلهم أكثر قوة مما هم عليه بالفعل؟ لقد فكرت مؤخرًا في إحدى الطرق الممكنة – ماذا لو كان لديهم معلومات في الوقت الفعلي حول فئات محددة مثل التمويل والأفلام. سيكون ذلك رائعًا حقًا، أليس كذلك؟ أثناء استكشاف هذا الخيار، وجدت RapidAPI مركزًا لواجهات برمجة التطبيقات (API) التي يمكنها منح الوصول لوكلاء الذكاء الاصطناعي إلى المعلومات في الوقت الفعلي من خلال استدعاء بسيط لواجهة برمجة التطبيقات (API). قررت بعد ذلك إنشاء عدد قليل من الوكلاء الذين يمكنهم الاستفادة من واجهات برمجة التطبيقات هذه لإنشاء وكلاء لعب أدوار أفضل.
في هذه المقالة، أشارك العملية بأكملها لنفس الشيء، بحيث يمكنك متابعتها بسهولة وتكرار النتائج لاستخدامك الخاص. لنبدأ ببعض المعلومات الأساسية –
ما هو RapidAPI؟
RapidAPI هو في الواقع الاسم الأقدم وقد أصبح مؤخرًا Nokia API Hub بعد الاستحواذ. يحتوي على كتالوج لواجهات برمجة التطبيقات حيث يمكننا استخدام واجهات برمجة التطبيقات أو نشرها. ويغطي فئات متنوعة من الأمن السيبراني والأفلام والاتصالات والمزيد. يمكنك استكشاف المزيد حول RapidAPI هنا.
كيفية استخدام واجهات برمجة التطبيقات من RapidAPI؟
1. قم أولاً بتسجيل الدخول/الاشتراك في RapidAPI هنا
2. انتقل إلى صفحة ترخيص المطور وقم بإنشاء ترخيص من النوع “RapidAPI” بالنقر فوق “إضافة ترخيص” في الجزء العلوي الأيمن.
3. ارجع إلى الصفحة الرئيسية لاكتشاف واجهات برمجة التطبيقات وانقر على أي واجهة برمجة تطبيقات تريدها. على سبيل المثال، قمت بالنقر فوق واجهة برمجة تطبيقات أخبار العملات المشفرة هنا.

4. ستشاهد صفحة مثل هذه، كما أن مفتاح API موجود بالفعل في رمز الاختبار. فقط تأكد من ضبط الهدف على “python”:
5. انقر الآن على “الاشتراك في الاختبار” في الجزء العلوي الأيمن وحدد الطبقة المجانية في الوقت الحالي. ثم انقر فوق “اشتراك” بعد النقر فوق “بدء الخطة المجانية”.

6. الآن يمكنك استخدام زر نقطة نهاية الاختبار الموجود في الجزء العلوي الأيمن وسيتم تنفيذ رمز الاختبار ويمكنك الحصول على الرد.

ملحوظة: تتمتع معظم واجهات برمجة التطبيقات بطبقة مجانية سخية ويمكن استخدامها حتى الحدود الشهرية المذكورة.
جعل الوكلاء متكاملين مع RapidAPI
في هذا القسم، سنقوم بإنشاء وكلاء باستخدام وظيفة “create_agent” من langchain.agents وسيتم تشغيل الوكلاء بواسطة OpenAI، وتحديدًا “gpt-5-mini”. لا تتردد في تجربة نماذج مختلفة أو موفري النماذج أو أطر عمل الوكلاء.
شرط أساسي
لتجنب التكرار، سنستخدم نفس مجموعة الواردات ونقوم بتهيئة واجهات برمجة التطبيقات لاستخدامها مع العديد من الوكلاء. وتأكد من الاشتراك في واجهات برمجة التطبيقات الموجودة في الروابط إذا كنت تريد الاختبار معي. سأستخدم أيضًا Google Colab للعرض التجريبي.
اشترك في واجهات برمجة التطبيقات هذه
قم بتكوين Google Colab Notebook
أضف OpenAI API وRapidAPI كـ “OPENAI_API_KEY” و”RAPIDAPI_KEY” في قسم الأسرار على اليسار، ولا تنس تشغيل الوصول إلى دفتر الملاحظات.
المنشآت
!pip install langchain langchain_core langchain_openai -q
الواردات
from google.colab import userdata
import os
import http.client
import json
from langchain_core.tools import tool
from langchain_openai import ChatOpenAI
from langchain.agents import create_agent
مفاتيح واجهة برمجة التطبيقات
os.environ('OPENAI_API_KEY') = userdata.get('OPENAI_API_KEY')
RAPIDAPI_KEY = userdata.get('RAPIDAPI_KEY')
بناء وكيل الأخبار
@tool
def search_news(query: str, limit: int = 10) -> str:
"""Search for real-time news articles based on a query. Returns latest news articles."""
conn = http.client.HTTPSConnection("real-time-news-data.p.rapidapi.com")
headers = {
"x-rapidapi-key": RAPIDAPI_KEY,
"x-rapidapi-host": "real-time-news-data.p.rapidapi.com",
}
conn.request(
"GET",
f"/search?query={query}&limit={limit}&time_published=anytime&country=US&lang=en",
headers=headers,
)
res = conn.getresponse()
data = res.read()
result = json.loads(data.decode("utf-8"))
return json.dumps(result, indent=2)
news_agent = create_agent(
ChatOpenAI(temperature=0, model="gpt-5-mini"),
tools=(search_news),
)
لاحظ أننا نستخدم واجهة برمجة التطبيقات التي توفرها RapidAPI كأداة ونمرر الأداة إلى الوكيل. سيطلب الوكيل المساعدة من الأداة عندما يشعر أن استدعاء الأداة ضروري.
# Test the agent
result = news_agent.invoke({
"messages": ({"role": "user", "content": "Search for latest news about Messi"})
})
print(result("messages")(-1).content)
نتيجة

عظيم! لقد صنعنا وكيلنا الأول وهو يبدو جيدًا. يمكنك تجربة مطالبات جديدة إذا أردت.
ملحوظة: يعمل وكيلنا في الغالب عند سؤاله عن شيء ما باستخدام كلمة واحدة فقط (مثال: “رياضة”، “غابة”..إلخ). وذلك لأن الأداة لا تقبل سوى سلسلة واحدة وليس جملة، ولإصلاح هذه المشكلة يمكننا تكوين موجه النظام الخاص بوكيلنا.
وكيل الأوراق المالية
لنقم بإنشاء وكيل أسهم يستخدم واجهة برمجة تطبيقات Yahoo لجلب تفاصيل السهم باستخدام رمز شريط الأسهم لأي سهم معين.
شفرة
@tool
def get_stock_history(symbol: str, interval: str = "1m", limit: int = 640) -> str:
"""Get historical stock price data for a symbol."""
conn = http.client.HTTPSConnection("yahoo-finance15.p.rapidapi.com")
headers = {
"x-rapidapi-key": RAPIDAPI_KEY,
"x-rapidapi-host": "yahoo-finance15.p.rapidapi.com",
}
path = (
f"/api/v2/markets/stock/history?"
f"symbol={symbol}&interval={interval}&limit={limit}"
)
conn.request("GET", path, headers=headers)
res = conn.getresponse()
data = res.read()
result = json.loads(data.decode("utf-8"))
return json.dumps(result, indent=2)
stock_agent = create_agent(
ChatOpenAI(temperature=0, model="gpt-5-mini"),
tools=(get_stock_history),
)
# Example call
result = stock_agent.invoke(
{"messages": ({"role": "user", "content": "Get the last intraday price history for AAPL"})}
)
print(result("messages")(-1).content)
نتيجة

رائع، لقد نجحنا في استرداد مخرجات AAPL (Apple Inc.)، وكانت المعلومات في الوقت الفعلي تمامًا.
وكيل العقارات
الهدف هنا هو إنشاء وكيل باستخدام واجهة برمجة التطبيقات التي تبحث عن العقارات المعروضة للبيع/الإيجار، والوكيل الذي نستخدمه من Zoopla يبحث في العقارات على وجه التحديد في المملكة المتحدة.
شفرة
@tool
def search_properties(
location_value: str,
location_identifier: str = "city",
page: int = 1,
) -> str:
"""
Search for residential properties.
Args:
location_value: The name of the location
(e.g., 'London', 'Manchester', 'E1 6AN').
location_identifier: The category of the location.
- Use 'city' for major cities (default).
- Use 'postal_code' if the user provides a postcode (e.g., 'W1').
- Use 'area' for smaller neighborhoods.
"""
# URL encoding to prevent InvalidURL errors
safe_val = location_value.replace(" ", "%20").replace(",", "%2C")
safe_id = location_identifier.replace(" ", "%20")
conn = http.client.HTTPSConnection("zoopla.p.rapidapi.com")
headers = {
"x-rapidapi-key": RAPIDAPI_KEY,
"x-rapidapi-host": "zoopla.p.rapidapi.com",
}
path = (
f"/properties/v2/list?locationValue={safe_val}"
f"&locationIdentifier={safe_id}"
f"&category=residential&furnishedState=Any"
f"&sortOrder=newest_listings&page={page}"
)
conn.request("GET", path, headers=headers)
res = conn.getresponse()
data = res.read()
result = json.loads(data.decode("utf-8"))
return json.dumps(result, indent=2)
property_agent = create_agent(
ChatOpenAI(temperature=0, model="gpt-5-mini"),
tools=(search_properties),
system_prompt=(
"You are a real-estate expert. When a user asks for a location, "
"infer the 'location_identifier' yourself, usually 'city' or "
"'postal_code'. Do not ask the user for technical identifiers; "
"call the tool immediately."
),
)
result = property_agent.invoke(
{"messages": ({"role": "user", "content": "Search for properties in London, England"})}
)
print(result("messages")(-1).content)
نتيجة

لقد حصلنا على الخصائص الحقيقية كمخرجات، لكنها كانت غير واضحة لأسباب واضحة.
وكيل توصية الفيلم
سيتمكن هذا الوكيل من الوصول إلى واجهات برمجة التطبيقات (API) الأعلى تقييمًا والأسوأ تصنيفًا كأدوات وسنقوم بتكوين موجه النظام لاختيار الأداة التي سيتم استخدامها بناءً على المطالبة.
@tool
def get_top_rated_movies() -> str:
"""
Fetch the list of top-rated English movies on IMDb.
Use this when the user wants a recommendation or a "good" movie.
"""
conn = http.client.HTTPSConnection("imdb236.p.rapidapi.com")
headers = {
"x-rapidapi-key": RAPIDAPI_KEY,
"x-rapidapi-host": "imdb236.p.rapidapi.com",
}
conn.request("GET", "/api/imdb/top-rated-english-movies", headers=headers)
res = conn.getresponse()
# Decode and return raw JSON for the agent to process
return res.read().decode("utf-8")
@tool
def get_lowest_rated_movies() -> str:
"""
Fetch the list of lowest-rated movies on IMDb.
Use this when the user asks for "bad" movies or movies to avoid.
"""
conn = http.client.HTTPSConnection("imdb236.p.rapidapi.com")
headers = {
"x-rapidapi-key": RAPIDAPI_KEY,
"x-rapidapi-host": "imdb236.p.rapidapi.com",
}
conn.request("GET", "/api/imdb/lowest-rated-movies", headers=headers)
res = conn.getresponse()
return res.read().decode("utf-8")
movie_agent = create_agent(
ChatOpenAI(temperature=0, model="gpt-5-mini"),
tools=(get_top_rated_movies, get_lowest_rated_movies),
system_prompt=(
"You are an expert movie critic. Your goal is to help users find movies "
"based on quality. If a user asks for something 'good', 'recommended', "
"or 'classic', call get_top_rated_movies. If a user asks for something "
"'bad', 'terrible', or 'lowest rated', call get_lowest_rated_movies. "
"Both tools require no parameters. Summarize the results in a friendly "
"way in a single sentence."
),
)
# Example usage
result = movie_agent.invoke(
{
"messages": (
{
"role": "user",
"content": "I'm in the mood for a really terrible movie, what's the worst out there?",
}
)
}
)
print(result("messages")(-1).content)
نتيجة
If you want truly awful, IMDb’s lowest-rated picks include Daniel der
Zauberer (Daniel the Wizard) and Smolensk — both hovering around a 1.2
average rating and perfect if you’re after a
“so-bad-it’s-fascinating” watch.
عظيم! لقد نجحنا في إنشاء وكيل يمكنه الوصول إلى أدوات متعددة ويمكنه اقتراح الأفلام ذات التصنيف العالي أو الأسوأ تقييمًا.
خاتمة
من خلال دمج واجهات برمجة التطبيقات في الوقت الفعلي مع الوكلاء، يمكننا تجاوز الاستجابات الثابتة وبناء أنظمة تبدو ذكية حقًا. تجعل RapidAPI هذا التكامل بسيطًا وقابلاً للتطوير عبر المجالات. ومن المهم أيضًا أن نختار الأدوات المناسبة ونقوم أيضًا بضبط الوكيل للعمل بشكل متناغم مع الأداة. على سبيل المثال، يمكن أن تعطي العديد من واجهات برمجة التطبيقات خطأ أثناء وجود علامات الاقتباس أو المسافات المفردة في الوسيطة. كما تقدم RapidAPI دعم MCP عبر واجهات برمجة التطبيقات الخاصة بها، والتي يمكن استكشافها في الجهود المستمرة لإنشاء وكلاء أفضل.
الأسئلة المتداولة
ج: تتيح واجهة برمجة التطبيقات (API) لأنظمة البرامج المختلفة التواصل من خلال تبادل الطلبات والاستجابات المنظمة عبر نقاط نهاية محددة.
ج. يوفر RapidAPI نظامًا أساسيًا موحدًا لاكتشاف الآلاف من واجهات برمجة التطبيقات في الوقت الفعلي واختبارها والاشتراك فيها ودمجها.
ج. تمنح واجهات برمجة التطبيقات الوكلاء إمكانية الوصول إلى البيانات في الوقت الفعلي، مما يتيح الاستجابات الديناميكية بدلاً من الاعتماد فقط على المعرفة الثابتة بالنموذج.
أ. يستخدم الوكيل الفعال مطالبات واضحة وأدوات محددة جيدًا وتنسيق الإدخال المناسب والأخطاء أ. التعامل مع التنفيذ الموثوق.
قم بتسجيل الدخول لمواصلة القراءة والاستمتاع بالمحتوى الذي ينظمه الخبراء.
Source link



