مقدمة
GPT4Free هي مكتبة بايثون مفتوحة المصدر توفر الوصول إلى مجموعة من نماذج اللغة القوية من خلال عدد من المزودين. تعمل كمجموعة واجهات برمجية إثبات المفهوم التي تُظهر طلبات الذكاء الاصطناعي متعددة المزودين مع ميزات مثل توقيت الطلبات، توزيع الحمل، والتحكم بالتدفق. تمكن هذه المكتبة المطورين من استخدام نماذج لغوية مختلفة لتوليد النصوص، بما في ذلك إصدارات GPT-3.5 وGPT-4، دون الحاجة إلى مفاتيح واجهة برمجية رسمية في العديد من الحالات.
سيرشدك هذا البرنامج التعليمي خلال عملية التثبيت والإعداد وطرق استخدام مكتبة gpt4free، موضحًا لك كيفية الاستفادة من قدراتها في مختلف المهام الخاصة بتوليد النصوص المعتمدة على الذكاء الاصطناعي.
الاعتبارات القانونية
باستخدامك لهذه مكتبة أو أي كود متعلق بها، فإنك توافق على الإشعار القانوني المقدم من قبل المطورين. الكاتب الأصلي غير مسؤول عن استخدام هذه المكتبة ولا يقر به. كما أن الكاتب ليس مسؤولًا عن أي نسخ، أو تفرعات، أو إعادة رفع قام بها مستخدمون آخرون، أو أي شيء آخر يتعلق بـ GPT4Free.
تعتبر GPT4Free بشكل أساسي إثباتًا لمفهوم تطوير حزمة واجهة برمجية مع طلبات عدة مزودين. قد يؤدي استخدام هذه المكتبة لتجاوز الواجهات البرمجية الرسمية إلى انتهاك شروط خدمة مزودين مختلفين. قبل نشر أي حل يعتمد على هذه المكتبة في بيئة إنتاج، تأكد من أنك تملك التصريح المناسب والامتثال لشروط خدمة كل مزود تنوي استخدامه.

قبل الغوص في تفاصيل التنفيذ، يُستحسن أن نذكر أنه يمكنك استخدام Apidog كبديل ممتاز ل Postman لاختبار واجهات برمجية مع gpt4free. Apidog هي منصة شاملة لتطوير الواجهات البرمجية تقدم مزايا مثل تصميم الواجهات البرمجية، وتصحيح الأخطاء، والاختبار الآلي، والتوثيق.
عند العمل مع واجهة gpt4free، يمكن لـ Apidog مساعدتك في:
- إرسال طلبات إلى نقاط نهاية API
- اختبار تكوينات معاملات مختلفة
- تصوير بيانات الاستجابة
- إنشاء وحفظ مجموعات من طلبات API للاستخدام المستقبلي
كيفية تثبيت GPT4Free
المتطلبات السابقة
- بايثون 3.10 أو أعلى (موصى به)
- جوجل كروم (مطلوب للمزودين الذين يحتاجون إلى webdriver)
طرق تثبيت GPT4Free
الطريقة 1: استخدام PyPI
للتثبيت الكامل مع جميع الميزات:
pip install -U g4f[all]
للتثبيتات الجزئية:
# لمزود دردشة OpenAI
pip install -U g4f[openai]
# لواجهة برمجة التطبيقات
pip install -U g4f[api]
# للواجهة الرسومية
pip install -U g4f[gui]
# لتوليد الصور
pip install -U g4f[image]
# للمزودين الذين يحتاجون إلى webdriver
pip install -U g4f[webdriver]
# لدعم البروكسي
pip install -U aiohttp_socks
الطريقة 2: من مستودع GitHub

# استنساخ المستودع
git clone https://github.com/xtekky/gpt4free.git
# الانتقال إلى دليل المشروع
cd gpt4free
# إنشاء بيئة افتراضية (موصى به)
python3 -m venv venv
# تنشيط البيئة الافتراضية
# على ويندوز:
.\venv\Scripts\activate
# على macOS وLinux:
source venv/bin/activate
# تثبيت المتطلبات الدنيا
pip install -r requirements-min.txt
# أو تثبيت جميع المتطلبات
pip install -r requirements.txt
الطريقة 3: استخدام Docker

# سحب صورة Docker
docker pull hlohaus789/g4f
# تشغيل الحاوية
docker run -p 8080:8080 -p 1337:1337 -p 7900:7900 --shm-size="2g" hlohaus789/g4f:latest
لنسخة خفيفة (متوافقة مع كل من x64 و arm64):
# إنشاء الدلائل اللازمة
mkdir -p ${PWD}/har_and_cookies ${PWD}/generated_images
chown -R 1000:1000 ${PWD}/har_and_cookies ${PWD}/generated_images
# تشغيل صورة Docker الخفيفة
docker run \
-p 1337:1337 \
-v ${PWD}/har_and_cookies:/app/har_and_cookies \
-v ${PWD}/generated_images:/app/generated_images \
hlohaus789/g4f:latest-slim \
/bin/sh -c 'rm -rf /app/g4f && pip install -U g4f[slim] && python -m g4f --debug'
كيفية استخدام GPT4Free مع أساسيات بايثون
توليد النصوص مع ChatCompletion
مثال بسيط
import g4f
# تمكين تسجيل الأخطاء (اختياري)
g4f.debug.logging = True
# تعطيل التحقق من الإصدار التلقائي (اختياري)
g4f.debug.version_check = False
# استجابة عادية (غير متدفقة)
response = g4f.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "مرحبًا، كيف حالك اليوم؟"}]
)
print(response)
استجابة متدفقة
import g4f
# بث الاستجابة
response = g4f.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "اكتب قصة قصيرة عن روبوت."}],
stream=True
)
for message in response:
print(message, end='', flush=True)
استخدام مزود محدد
import g4f
# قائمة بجميع المزودين العاملين المتاحين
providers = [provider.__name__ for provider in g4f.Provider.__providers__ if provider.working]
print("المزودون المتاحون:", providers)
# استخدام مزود محدد
response = g4f.ChatCompletion.create(
model="gpt-3.5-turbo",
provider=g4f.Provider.Aichat,
messages=[{"role": "user", "content": "اشرح الحوسبة الكمية بطريقة بسيطة."}]
)
print(response)
استخدام واجهة برمجة التطبيقات للعميل
نهج أكثر حداثة باستخدام واجهة برمجة التطبيقات للعميل:
from g4f.client import Client
# إنشاء مثيل للعميل
client = Client()
# توليد النص باستخدام إكمالات الدردشة
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": "مرحبًا"}],
web_search=False
)
print(response.choices[0].message.content)
توليد الصورة
from g4f.client import Client
# إنشاء مثيل للعميل
client = Client()
# توليد صورة
response = client.images.generate(
model="flux",
prompt="قط سيامي أبيض",
response_format="url"
)
print(f"رابط الصورة المولدة: {response.data[0].url}")
مصادقة المزود
بعض المزودين يتطلبون ملفات تعريف الارتباط أو رموز الوصول للمصادقة:
from g4f import set_cookies
# تعيين ملفات تعريف الارتباط ل Bing
set_cookies(".bing", {"_U": "قيمة ملف تعريف الارتباط"})
# تعيين رمز الوصول ل OpenAI Chat
set_cookies("chat.openai.com", {"access_token": "قيمة الرمز"})
استخدام أتمتة المتصفح
للمزودين الذين يتطلبون تفاعل المتصفح:
import g4f
from undetected_chromedriver import Chrome, ChromeOptions
# تكوين خيارات Chrome
options = ChromeOptions()
options.add_argument("--incognito")
# تهيئة WebDriver Chrome
webdriver = Chrome(options=options, headless=True)
try:
# استخدام المتصفح لعدة طلبات
for idx in range(5):
response = g4f.ChatCompletion.create(
model=g4f.models.default,
provider=g4f.Provider.MyShell,
messages=[{"role": "user", "content": f"أعطني فكرة #{idx+1} لتطبيق موبايل."}],
webdriver=webdriver
)
print(f"فكرة {idx+1}:", response)
finally:
# دائمًا أغلق المتصفح عند الانتهاء
webdriver.quit()
دعم غير متزامن
لتحسين الأداء مع الطلبات المتعددة:
import g4f
import asyncio
# تحديد المزودين للاستخدام
providers = [
g4f.Provider.Aichat,
g4f.Provider.ChatBase,
g4f.Provider.Bing,
g4f.Provider.GptGo
]
async def run_provider(provider):
try:
response = await g4f.ChatCompletion.create_async(
model=g4f.models.default,
messages=[{"role": "user", "content": "ما اسمك؟"}],
provider=provider,
)
print(f"{provider.__name__}:", response)
except Exception as e:
print(f"{provider.__name__}:", e)
async def run_all():
calls = [run_provider(provider) for provider in providers]
await asyncio.gather(*calls)
# تشغيل جميع المزودين بشكل غير متزامن
asyncio.run(run_all())
دعم البروكسي وتجاوز المهلة
للتعامل مع قيود الشبكة:
import g4f
# استخدام مع بروكسي محدد ووقت انتظار ممتد
response = g4f.ChatCompletion.create(
model=g4f.models.default,
messages=[{"role": "user", "content": "كيف يمكنني تحسين كود بايثون الخاص بي؟"}],
proxy="http://host:port", # أو socks5://user:pass@host:port
timeout=120 # بالثواني
)
print("النتيجة:", response)
يمكنك أيضًا تعيين بروكسي عالمي عبر متغير البيئة:
export G4F_PROXY="http://host:port"
تشغيل الواجهة الرسومية مع GPT4Free
تشتمل GPT4Free على واجهة ويب لتسهيل التفاعل:
from g4f.gui import run_gui
run_gui()
بدلاً من ذلك، استخدم سطر الأوامر:
# بدء تشغيل خادم Flask
python -m g4f.cli gui --port 8080 --debug
# أو بدء تشغيل خادم FastAPI
python -m g4f --port 8080 --debug
ستكون الواجهة الويب متاحة على http://localhost:8080/chat/
استخدام واجهة برمجة التطبيقات للتداخل مع GPT4Free
توفر GPT4Free واجهة برمجة تطبيقات متوافقة مع OpenAI للتكامل مع أدوات أخرى:
# تشغيل خادم API
from g4f.api import run_api
run_api()
أو عبر سطر الأوامر:
g4f-api
# أو
python -m g4f.api.run
ثم الاتصال به باستخدام عميل Python لـ OpenAI:
from openai import OpenAI
client = OpenAI(
# اختياري: تعيين رمز Hugging Face الخاص بك من أجل التضمينات
api_key="YOUR_HUGGING_FACE_TOKEN",
base_url="http://localhost:1337/v1"
)
# استخدمه مثل عميل OpenAI الرسمي
chat_completion = client.chat.completions.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "اكتب قصيدة عن شجرة"}],
stream=True,
)
for token in chat_completion:
content = token.choices[0].delta.content
if content is not None:
print(content, end="", flush=True)
نماذج ومزودات GPT4Free المدعومة
تدعم GPT4Free مزودين متعددين بقدرات متنوعة. بعض المزودين يدعمون GPT-4، والبعض الآخر يدعم GPT-3.5، وبعضهم يدعم نماذج بديلة.
مزودو GPT-4
- بينج (g4f.Provider.Bing)
- GeekGpt (g4f.Provider.GeekGpt)
- GptChatly (g4f.Provider.GptChatly)
- Liaobots (g4f.Provider.Liaobots)
- Raycast (g4f.Provider.Raycast)
مزودو GPT-3.5
- AItianhu (g4f.Provider.AItianhu)
- AItianhuSpace (g4f.Provider.AItianhuSpace)
- AiAsk (g4f.Provider.AiAsk)
- Aichat (g4f.Provider.Aichat)
- ChatBase (g4f.Provider.ChatBase)
- ChatForAi (g4f.Provider.ChatForAi)
- ChatgptAi (g4f.Provider.ChatgptAi)
- والمزيد...
نماذج أخرى
- Bard (Palm من جوجل)
- DeepInfra
- HuggingChat
- Llama2
- OpenAssistant
استنتاج
توفر مكتبة gpt4free التي تعمل بلغة بايثون مجموعة رائعة من القدرات للوصول إلى نماذج لغة متنوعة دون الحاجة إلى مفاتيح واجهة برمجة التطبيقات الرسمية في العديد من الحالات. من خلال توفير واجهة موحدة للعديد من المزودين، تتيح للمطورين تجربة نماذج لغة مختلفة ومقارنة أدائها.
في حين أن هذه المكتبة تعتبر بشكل أساسي إثباتًا لمفهوم ويمكن أن تكون لها تبعات قانونية عند الاستخدام في الإنتاج، إلا أنها تعد أداة قيّمة للتعلم حول قدرات الذكاء الاصطناعي، واختبار المشاريع الصغيرة، وفهم كيفية عمل نماذج اللغة المختلفة.
تذكر أن تستخدم هذه المكتبة بشكل مسؤول، مع احترام شروط الخدمة الخاصة بالمزودين وكونك واعيًا للاعتبارات الأخلاقية حول استخدام الذكاء الاصطناعي. بالنسبة للتطبيقات الإنتاجية، يُوصى بشدة باستخدام واجهات برمجة التطبيقات الرسمية مع المصادقة والتراخيص المناسبة.
المكتبة تحت التطوير النشط، لذا تحقق من مستودع GitHub والتوثيق لأحدث الميزات والمزودين وأفضل الممارسات. مع استمرار تطور مجال الذكاء الاصطناعي بسرعة، تساعد أدوات مثل gpt4free في إضفاء الطابع الديمقراطي على الوصول إلى التكنولوجيا الحديثة، مما يتيح لمزيد من المطورين التجربة والتعلم من هذه النماذج القوية.
