أساسيات الذكاء الاصطناعي, ما هو الذكاء الاصطناعي

استخدام بايثون لأتمتة برومبتات شات جي بي تي

عايز تعزز شغلك على ChatGPT؟ أتمتة بايثون هي سلاحك السري. بكام سطر كود بس، تقدر تعالج مجموعة من الطلبات دفعة واحدة، تجدول التفاعلات، وتنشئ تطبيقات مخصصة تستفيد من قدرات ChatGPT – كل ده مع توفير ساعات من وقت الإدخال اليدوي.

related image

ليه ممكن تحتاج تأتمت ChatGPT باستخدام بايثون

كنت قاعد بنسخ وألصق نفس أنواع الطلبات في ChatGPT حوالي 50 مرة في اليوم زي الهامستر الرقمي اللي بيلف في عجلة. كلنا مرينا بالموقف ده، صح؟ اللحظة اللي بتدرك فيها إنك بتعمل نفس الحاجة مرة ورا مرة وبتفكر “أكيد في طريقة أحسن”. سبويلر أليرت: فعلاً في.

أتمتة بايثون زي ما تكون وظفت مساعد ما بيتعبش وما بيشتكيش من المهام المتكررة. ومين مش عايز كده؟ سواء كنت منشئ محتوى محتاج توليد أفكار بشكل كبير، أو محلل بيانات بيعالج معلومات، أو حتى شخص بيستخدم ChatGPT كتير، الأتمتة ممكن توفرلك وقت قيم وطاقة ذهنية.

خلينا نشوف بالظبط إزاي بايثون ممكن يحول تجربتك مع ChatGPT من شغل يدوي ممل لكفاءة منظمة.

البداية: الاتصال بين بايثون و ChatGPT

قبل ما ندخل في الأتمتة المتقدمة، لازم نفهم أساسيات كيفية تواصل بايثون مع ChatGPT. زي ما تكون بتتعلم إزاي التليفونات بتشتغل قبل ما تحاول تبني مركز اتصالات.

السحر بيحصل من خلال واجهة برمجة تطبيقات OpenAI (API)، اللي هي زي باب رقمي بيسمح لكود البايثون بتاعك إنه يرسل طلبات مباشرة لـ ChatGPT. هتحتاج:

  • مفتاح API من OpenAI (اعتبره زي تصريح الدخول VIP بتاعك)
  • بايثون متثبت على جهازك
  • مكتبة OpenAI لبايثون

تثبيت الحزمة اللازمة سهل جداً – سطر واحد بس في التيرمينال:

pip install openai

بعد كده، الهيكل الأساسي لسكريبت بايثون اللي بيتكلم مع ChatGPT هيبقى شكله كده:

import openai

# حط مفتاح API بتاعك
openai.api_key = "your-api-key-goes-here"

# إنشاء دالة للتفاعل مع ChatGPT
def ask_chatgpt(prompt):
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=[
            {"role": "user", "content": prompt}
        ]
    )
    return response.choices[0].message.content

# مثال للاستخدام
result = ask_chatgpt("What's the capital of France?")
print(result)

5 أمثلة عملية لأتمتة بايثون مع ChatGPT

بعد ما فهمنا الأساسيات، خلينا نستكشف بعض الاستخدامات الفعلية اللي هتخليك تتساءل إزاي عشت من غير أتمتة بايثون.

1. معالجة مجموعة من الطلبات دفعة واحدة

تخيل إنك محتاج تعمل أوصاف لـ 100 منتج مختلف. بدل ما تقعد تنسخ وتلصق لحد ما تتجنن، ممكن تعالجهم كلهم مرة واحدة:

product_names = ["Ergonomic Office Chair", "Wireless Headphones", "Smart Water Bottle"]
descriptions = []

for product in product_names:
    prompt = f"Write a compelling 50-word product description for: {product}"
    description = ask_chatgpt(prompt)
    descriptions.append({product: description})
    
# حفظ في ملف أو قاعدة بيانات
import json
with open("product_descriptions.json", "w") as f:
    json.dump(descriptions, f, indent=4)

2. إنشاء مولد محتوى مجدول

محتاج محتوى سوشيال ميديا يومي؟ اعمل سكريبت يشتغل كل صباح:

import schedule
import time

def generate_daily_content():
    topics = ["industry news", "product tips", "customer success stories"]
    today_topic = topics[time.localtime().tm_wday % len(topics)]
    
    prompt = f"Generate a Twitter thread about {today_topic} in our software development industry"
    content = ask_chatgpt(prompt)
    
    # إرسال للإيميل، حفظ في ملف، أو دفع لمجدول سوشيال ميديا
    with open(f"content_{time.strftime('%Y%m%d')}.txt", "w") as f:
        f.write(content)

# تشغيل كل يوم الساعة 8 صباحاً
schedule.every().day.at("08:00").do(generate_daily_content)

while True:
    schedule.run_pending()
    time.sleep(60)

3. بناء بوت سلاك مدعوم بـ ChatGPT

عايز تدي فريقك إمكانية الوصول لـ ChatGPT مباشرة في سلاك؟ بايثون بيخلي ده ممكن:

from slack_bolt import App
import os

# تهيئة تطبيق سلاك
app = App(token=os.environ["SLACK_BOT_TOKEN"])

@app.message("!ask")
def handle_message(message, say):
    # استخراج السؤال (كل حاجة بعد !ask)
    question = message['text'].replace("!ask", "").strip()
    
    # الحصول على رد من ChatGPT
    response = ask_chatgpt(question)
    
    # الرد في قناة سلاك
    say(f"Answer: {response}")

4. أتمتة تحليل البيانات باستخدام ChatGPT

دمج pandas للتعامل مع البيانات و ChatGPT للتحليل المفيد:

import pandas as pd

# تحميل البيانات
df = pd.read_csv("customer_feedback.csv")

# تحليل الاتجاهات باستخدام ChatGPT
sample_feedback = "n".join(df["feedback"].sample(20).tolist())
prompt = f"""Analyze these customer feedback samples and identify:
1. Common themes or issues
2. Sentiment trends
3. Potential product improvement areas

Feedback samples:
{sample_feedback}"""

analysis = ask_chatgpt(prompt)
print(analysis)

5. إنشاء مساعد بحث مخصص

بناء أداة تقدر تبحث في مواضيع متعددة وتنظم النتائج:

def research_topic(topic, questions):
    research = {}
    
    # الحصول على نظرة عامة
    research["overview"] = ask_chatgpt(f"Provide a comprehensive overview of {topic}")
    
    # طرح أسئلة محددة
    research["details"] = {}
    for question in questions:
        research["details"][question] = ask_chatgpt(f"Regarding {topic}: {question}")
    
    return research

# مثال للاستخدام
ai_research = research_topic("Artificial Intelligence Ethics", [
    "What are the main concerns about bias in AI?",
    "How can transparency be improved in AI systems?",
    "What regulations exist globally for AI?"
])

# حفظ البحث في ملف ماركداون
with open("ai_ethics_research.md", "w") as f:
    f.write(f"# Research: AI Ethicsnn")
    f.write(f"## Overviewnn{ai_research['overview']}nn")
    
    f.write(f"## Detailed Findingsnn")
    for question, answer in ai_research["details"].items():
        f.write(f"### {question}nn{answer}nn")

تقنيات متقدمة: ما بعد الأتمتة الأساسية

بعد ما تتقن الأساسيات، في عالم كامل من الإمكانيات المتقدمة في انتظارك. التقنيات دي ممكن تخلي الأتمتة بتاعتك أكثر قوة:

  • إدارة السياق: الاحتفاظ بتاريخ المحادثة عبر تفاعلات متعددة للحصول على ردود أكثر تماسكاً
  • ضبط المعاملات: تعديل temperature و top_p وإعدادات أخرى للتحكم في الإبداع مقابل الدقة
  • معالجة الأخطاء: تنفيذ كتل try/except قوية للتعامل مع حدود معدل API ومشاكل الاتصال
  • تدفق الردود: استخدام وضع التدفق للحصول على النتائج في الوقت الفعلي بدل انتظار الردود الكاملة

هنا مثال سريع لإدارة السياق:

def chat_with_history(new_message, conversation_history=[]):
    # إضافة الرسالة الجديدة للتاريخ
    conversation_history.append({"role": "user", "content": new_message})
    
    # الحصول على رد من ChatGPT
    response = openai.ChatCompletion.create(
        model="gpt-3.5-turbo",
        messages=conversation_history
    )
    
    # استخراج محتوى الرد
    assistant_message = response.choices[0].message
    
    # إضافة رد المساعد للتاريخ
    conversation_history.append({"role": assistant_message.role, "content": assistant_message.content})
    
    return assistant_message.content, conversation_history

المشاكل الشائعة وكيفية تجنبها

حتى أفضل سكريبتات الأتمتة ممكن تواجه مشاكل. هنا بعض المشاكل الشائعة وإزاي تحلها:

  • حدود المعدل: OpenAI عندها حدود لاستدعاء API. نفذ تراجع أسي للمحاولات المتكررة.
  • حدود التوكن: كل نموذج له الحد الأقصى لطول السياق. قسم المهام الكبيرة لأجزاء يمكن إدارتها.
  • إدارة التكلفة: استدعاءات API بتكلف فلوس. نفذ ميزانية ومراقبة لتجنب الفواتير المفاجئة.
  • تباين الاستجابة: ChatGPT ممكن يكون غير متوقع. استخدم رسائل النظام والطلبات الدقيقة للحصول على نتائج متسقة.

هنا طريقة بسيطة للتعامل مع حدود المعدل:

import time
import random

def ask_chatgpt_with_retry(prompt, max_retries=5):
    retries = 0
    while retries < max_retries:
        try:
            return ask_chatgpt(prompt)
        except openai.error.RateLimitError:
            wait_time = (2 ** retries) + random.random()
            print(f"Rate limited. Retrying in {wait_time:.2f} seconds...")
            time.sleep(wait_time)
            retries += 1
    
    raise Exception("Max retries exceeded.")

طلب ممكن تستخدمه النهاردة

عايز تبدأ تبني أتمتة ChatGPT خاصة بيك؟ هنا طلب يساعدك تصمم السكريبت المثالي لاحتياجات