استخدام نماذج الذكاء الاصطناعي في مشاريع بايثون
تعلّم كيف تدمج نماذج اللغة الكبيرة LLM في مشاريعك ببايثون عبر OpenAI API ومكتبة LangChain، مع أمثلة عمليةٍ مباشرةٍ للفريلانسر.
عدد الكلمات: ~١٩٠٠ · مدة القراءة: ١٠ دقائق
نماذج الذكاء الاصطناعي في مشاريعك ببايثون
كيف تُدمج نماذج اللغة الكبيرة في كودك وتبني أدواتٍ ذكيةً تبيعها للعملاء
ملاحظة للقارئ: هذا المقال مستقلٌّ تماماً ويمكنك تطبيق كل ما فيه دون قراءة مقالاتٍ سابقة. لكن إذا أردت ربط ما ستتعلّمه بخدمةٍ قابلةٍ للبيع، فننصحك بمراجعة مقالتنا: بناء API بسيط ببايثون لبيع خدماتك.
قبل ثلاث سنواتٍ كان دمج الذكاء الاصطناعي في مشروعٍ برمجيٍّ يعني أشهراً من الدراسة وفريق بحثٍ متخصصاً وخوادم بتكلفةٍ باهظة. اليوم، بفضل واجهات برمجة التطبيقات التي تُقدّمها شركات الذكاء الاصطناعي الكبرى، أصبح بإمكان أي مطوّرٍ يعرف بايثون أن يُضيف قدراتٍ لغويةً متقدمةً لمشروعه في ساعة.
نماذج اللغة الكبيرة Large Language Models اختصاراً LLM، هي النماذج التي تقف خلف أدوات مثل شات جي بي تي ChatGPT وكلود Claude وجيميناي Gemini. وما يُثير الاهتمام الحقيقي للفريلانسر هو أن هذه النماذج متاحةٌ برمجياً، أي يمكنك استخدامها داخل كودك البايثوني لتبني أدواتٍ ذكيةً تفعل ما يحتاجه عملاؤك تحديداً. في هذا المقال من منصة ذي يزن، سنتعلم كيف نتعامل مع OpenAI API، ثم سنرتقي خطوةً بتعلّم مكتبة لانغ تشين LangChain التي تُتيح بناء تطبيقاتٍ ذكيةٍ أكثر تعقيداً.
ما الذي يُميّز نماذج اللغة الكبيرة عن البرمجة التقليدية؟
في البرمجة التقليدية تكتب قواعد صريحة: «إذا احتوى النص كلمة X افعل Y». هذا يعمل جيداً حين تعرف كل الحالات الممكنة مسبقاً. لكن اللغة الطبيعية فوضوية وغير متوقعة، وكتابة قواعد لكل احتمالاتها مستحيل.
نماذج اللغة الكبيرة تعمل بطريقةٍ مختلفةٍ جذرياً: تعلّمت من مليارات النصوص البشرية فأصبحت تفهم السياق والنية والمعنى الضمني. أعطها نصاً وقل لها «لخّص هذا»، وستفعل. قل لها «اكتشف المشاعر السلبية في تعليقات العملاء»، وستفعل. قل لها «أجب على سؤال العميل بأسلوب موقعي»، وستفعل.
الفريلانسر الذكي لا يتساءل «هل يمكن للذكاء الاصطناعي أن يفعل X؟» بل يتساءل «ما المشكلة التي يعاني منها عملاؤه وكيف يُوظّف الذكاء الاصطناعي لحلّها؟»
البداية مع OpenAI API: مفتاحٌ واحدٌ يفتح الباب
أكثر واجهات برمجة تطبيقاتٍ للذكاء الاصطناعي شيوعاً واستخداماً اليوم هي OpenAI API التي تُتيح الوصول لنماذج GPT-4o وغيرها. للبدء:
أولاً، أنشئ حساباً على منصة OpenAI وأنشئ مفتاح API من لوحة التحكم. ثانياً، ثبّت المكتبة:
pip install openai
ثالثاً، اكتب أول طلبٍ للنموذج:
from openai import OpenAI
import os
# المفتاح من متغير البيئة — لا تضعه في الكود مباشرة أبداً
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
def ask_ai(prompt: str, system_message: str = "") -> str:
"""دالةٌ مساعدةٌ للتواصل مع النموذج"""
messages = []
if system_message:
messages.append({"role": "system", "content": system_message})
messages.append({"role": "user", "content": prompt})
response = client.chat.completions.create(
model="gpt-4o-mini", # الأسرع والأرخص — كافٍ لمعظم المهام
messages=messages,
temperature=0.7, # 0 = محافظ ومتوقع، 1 = إبداعي ومتنوع
max_tokens=1000
)
return response.choices[0].message.content
# تجربة بسيطة
result = ask_ai("لخّص هذا النص في جملتين: بايثون لغةٌ برمجيةٌ متعددة الاستخدامات...")
print(result)
لاحظ ثلاثة مفاهيم أساسية في هذا الكود:
- رسالة النظام System Message: تُعرّف للنموذج دوره وشخصيته — «أنت محرّرٌ متخصص في المحتوى التقني»، «أنت مساعدٌ لخدمة عملاء شركة X».
- درجة الحرارة Temperature: تتحكم في عشوائية الإجابة. الترجمة والتلخيص يحتاجان درجةً منخفضة (0.2–0.4)، وكتابة المحتوى الإبداعي يحتاج درجةً أعلى (0.7–0.9).
- الحدّ الأقصى للرموز Max Tokens: يتحكم في طول الإجابة ويؤثر على تكلفة الطلب.
مثالٌ عملي أول: أداة تلخيص وتحرير المحتوى
لنبنِ أداةً تفيد المترجمين والمحررين — تأخذ نصاً طويلاً وتُنتج منه ملخصاً وعنواناً جذاباً وثلاثة أسئلةٍ شائعةٍ مقترحة:
from openai import OpenAI
import json
import os
client = OpenAI(api_key=os.environ.get("OPENAI_API_KEY"))
def process_article(article_text: str, language: str = "arabic") -> dict:
"""
معالجة مقالٍ وإنتاج محتوى مساعد منه.
تُرجع قاموساً يحتوي: ملخص، عنوان مقترح، أسئلة شائعة.
"""
system_msg = f"""أنت محرّرٌ محترفٌ متخصصٌ في تحسين المحتوى الرقمي.
اللغة المطلوبة: {language}.
ردودك يجب أن تكون بصيغة JSON صالحة فقط، بدون أي نصٍّ إضافي."""
prompt = f"""حلّل المقال التالي وأنتج:
1. ملخصاً في 3 جملٍ بالضبط
2. عنواناً جذاباً لمحركات البحث SEO (أقل من 60 حرفاً)
3. قائمةً بثلاثة أسئلةٍ شائعةٍ قد يطرحها القارئ بعد قراءة المقال
المقال:
{article_text}
أجب بهذا الشكل JSON فقط:
{{
"summary": "...",
"seo_title": "...",
"faq": ["سؤال 1", "سؤال 2", "سؤال 3"]
}}"""
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": system_msg},
{"role": "user", "content": prompt}
],
temperature=0.3,
response_format={"type": "json_object"} # يضمن ردّاً بصيغة JSON دائماً
)
return json.loads(response.choices[0].message.content)
# تجربة الأداة
sample_article = """
بايثون هي لغةٌ برمجيةٌ عاليةُ المستوى، تتميّز بوضوح قواعدها وسهولة قراءتها.
أُنشئت عام 1991 على يد المبرمج الهولندي غيدو فان روسوم Guido van Rossum...
"""
result = process_article(sample_article)
print(f"الملخص: {result['summary']}")
print(f"عنوان SEO: {result['seo_title']}")
print(f"الأسئلة الشائعة: {result['faq']}")
مثالٌ عملي ثانٍ: روبوت ردٍّ ذكيٍّ على تعليقات العملاء
هذه الأداة تُحلّل تعليق عميلٍ غاضبٍ وتُنتج ردّاً دبلوماسياً احترافياً — خدمةٌ يدفع لها أصحاب المتاجر الإلكترونية جيداً:
def generate_customer_reply(
customer_comment: str,
business_name: str,
tone: str = "professional" # professional, friendly, formal
) -> dict:
"""
تُحلّل تعليق عميلٍ وتُنتج ردّاً مناسباً مع تحليل المشاعر.
"""
system_msg = f"""أنت مدير خدمة عملاء محترفٌ يعمل لدى {business_name}.
أسلوبك: {tone}.
مهمتك: تحليل تعليق العميل ثم صياغة ردٍّ يُعالج مخاوفه ويحافظ على سمعة الشركة."""
prompt = f"""تعليق العميل:
"{customer_comment}"
أنتج ردّاً بهذا الشكل JSON:
{{
"sentiment": "positive/negative/neutral",
"urgency": "high/medium/low",
"main_issue": "وصفٌ موجزٌ للمشكلة الرئيسية",
"suggested_reply": "الردّ الكامل الموجّه للعميل",
"internal_note": "ملاحظةٌ داخليةٌ للفريق حول هذا التعليق"
}}"""
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[
{"role": "system", "content": system_msg},
{"role": "user", "content": prompt}
],
temperature=0.4,
response_format={"type": "json_object"}
)
return json.loads(response.choices[0].message.content)
# مثال
comment = "طلبي وصل متأخراً 5 أيام والمنتج كان مكسوراً! لن أشتري منكم مرةً ثانية."
result = generate_customer_reply(comment, "متجر الإلكترونيات العربي", "friendly")
print(f"المشاعر: {result['sentiment']}")
print(f"الأولوية: {result['urgency']}")
print(f"الردّ المقترح:\n{result['suggested_reply']}")
الارتقاء إلى LangChain: بناء تطبيقاتٍ ذكيةٍ أكثر تعقيداً
مكتبة لانغ تشين LangChain هي إطار عملٍ مبني فوق بايثون يُبسّط بناء تطبيقاتٍ تعتمد على نماذج اللغة الكبيرة. تتألّق تحديداً في ثلاثة سيناريوهات: حين تريد نموذجاً يُجيب من مستنداتٍ خاصة، حين تريده يستخدم أدواتٍ خارجية كالبحث في الويب، وحين تريد بناء عميلٍ ذكيٍّ Agent يتخذ قراراتٍ من تلقاء نفسه.
pip install langchain langchain-openai
مثال LangChain: نموذجٌ يُجيب من ملفاتٍ PDF خاصة بك
هذا هو الاستخدام الأكثر طلباً تجارياً — بناء روبوت محادثةٍ يُجيب على أسئلة عملاء الشركة من وثائقها الداخلية فقط دون الخروج عنها:
pip install langchain-community pypdf faiss-cpu
from langchain_openai import ChatOpenAI, OpenAIEmbeddings
from langchain_community.document_loaders import PyPDFLoader
from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.vectorstores import FAISS
from langchain.chains import RetrievalQA
def build_document_chatbot(pdf_path: str):
"""
يبني روبوتَ محادثةٍ يُجيب من مستندٍ PDF محدد فقط.
مثاليٌّ لكتيّبات المنتجات، السياسات الداخلية، وثائق العقارات، إلخ.
"""
# 1. تحميل وتقسيم الوثيقة إلى قطعٍ صغيرة
loader = PyPDFLoader(pdf_path)
documents = loader.load()
splitter = RecursiveCharacterTextSplitter(
chunk_size=1000, # حجم كل قطعة بالأحرف
chunk_overlap=200 # تداخلٌ بين القطع لتجنّب قطع السياق
)
chunks = splitter.split_documents(documents)
# 2. تحويل القطع إلى تمثيلاتٍ رقمية Embeddings وتخزينها
embeddings = OpenAIEmbeddings()
vector_store = FAISS.from_documents(chunks, embeddings)
# 3. بناء سلسلة الإجابة بالاعتماد على الوثيقة
llm = ChatOpenAI(model="gpt-4o-mini", temperature=0)
qa_chain = RetrievalQA.from_chain_type(
llm=llm,
chain_type="stuff",
retriever=vector_store.as_retriever(search_kwargs={"k": 3}),
return_source_documents=True
)
return qa_chain
# الاستخدام
chatbot = build_document_chatbot("company_policy.pdf")
question = "ما هي سياسة الاسترجاع والاستبدال؟"
result = chatbot.invoke({"query": question})
print(f"الإجابة: {result['result']}")
print(f"المصدر: الصفحة {result['source_documents'][0].metadata.get('page', '?')}")
هذا النظام يُعرف بـ RAG اختصاراً لـ Retrieval-Augmented Generation أي التوليد المعزّز بالاسترجاع. بدلاً من أن يُجيب النموذج من معرفته العامة، يبحث أولاً في وثائقك ثم يُجيب بناءً عليها. لا مزيد من الإجاباتٍ المخترَعة Hallucinations.
مقارنةٌ بين نماذج الذكاء الاصطناعي المتاحة: أيّها تختار؟
| النموذج | الشركة | القوة | الأنسب لـ |
|---|---|---|---|
| GPT-4o mini | OpenAI | سريعٌ ورخيصٌ وكافٍ لمعظم المهام | أدوات إنتاج المحتوى والمهام اليومية |
| GPT-4o | OpenAI | دقةٌ عالية وفهمٌ معقد | التحليل القانوني والمالي والطبي |
| Claude 3.5 Sonnet | Anthropic | كتابةٌ إبداعيةٌ وكودٌ ممتاز | أدوات الكتابة والبرمجة |
| Gemini 1.5 Flash | نافذة سياقٍ ضخمةٌ ومجانيٌّ جزئياً | تحليل المستنداتٍ الطويلة | |
| Llama 3 (محلي) | Meta | مجانيٌّ تماماً ويعمل محلياً | البيانات السرية التي لا تُرسَل للخارج |
التحكم في التكاليف: لا تُفاجأ بفاتورةٍ ضخمة
واجهات برمجة تطبيقات الذكاء الاصطناعي تُحاسَب بالرموز Tokens — كل أربعة أحرفٍ إنكليزية تقريباً يساوي رمزاً واحداً، والكلمة العربية تساوي رمزَين إلى ثلاثة. إليك عاداتٌ برمجيةٌ تُوفّر عليك الكثير:
import hashlib
import json
from functools import lru_cache
# 1. تخزينٌ مؤقتٌ Cache — لا ترسل نفس الطلب مرتين
cache = {}
def cached_ask_ai(prompt: str, model: str = "gpt-4o-mini") -> str:
cache_key = hashlib.md5(f"{model}:{prompt}".encode()).hexdigest()
if cache_key in cache:
print("✅ من الكاش — لا تكلفة إضافية")
return cache[cache_key]
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}],
max_tokens=500
)
result = response.choices[0].message.content
cache[cache_key] = result
return result
# 2. تتبّع التكلفة مع كل طلب
def ask_with_cost_tracking(prompt: str) -> tuple[str, float]:
response = client.chat.completions.create(
model="gpt-4o-mini",
messages=[{"role": "user", "content": prompt}],
max_tokens=500
)
usage = response.usage
# تكلفة gpt-4o-mini: 0.15$/مليون رمز للإدخال، 0.60$/مليون للإخراج
cost = (usage.prompt_tokens * 0.00000015) + (usage.completion_tokens * 0.00000060)
content = response.choices[0].message.content
print(f"💰 تكلفة هذا الطلب: ${cost:.6f} ({usage.total_tokens} رمز)")
return content, cost
خمس أفكارٍ لخدماتٍ قابلةٍ للبيع تعتمد على LLM
لكيلا تبقى في دائرة «أعرف النظرية لكن لا أعرف ما أبني»، إليك أفكاراً عمليةٌ واضحةٌ بأسواقها:
- روبوت دعم عملاء من وثائق الشركة: يُجيب على أسئلة الزوار من سياسات الشركة وكتيّب المنتج. السوق: كل شركةٍ لديها موقعٌ ومنتجات.
- أداة تحسين الـ CV بالذكاء الاصطناعي: تأخذ CV المستخدم ووصف الوظيفة وتُعيد صياغة CV ليتناسب معها. السوق: الباحثون عن عمل في كل مكان.
- مولّد محتوى وسائل التواصل: يأخذ مقالةً أو فكرةً ويُنتج منها تغريداتٍ ومنشوراتٍ على LinkedIn وInstagram مُهيَّأةً لكل منصة. السوق: المدوّنون وأصحاب العلامات التجارية.
- محلّل عقودٍ قانونية بسيطة: يُلخّص عقوداً طويلة ويُبرز البنود الخطيرة. السوق: الشركات الصغيرة التي لا تتحمل تكاليف محامٍ لكل عقد.
- مساعد الترجمة الذكي: يترجم مع مراعاة السياق الثقافي والمجال المتخصص — يُكمل ما تعجز عنه الترجمة الآلية العادية. السوق: المترجمون أنفسهم كأداة إنتاجية.
كل فكرةٍ من هذه الأفكار بُنيت فعلاً كمنتجٍ ويبيع أصحابها اشتراكاتٍ شهرية. الفرق بينك وبينهم ليس المعرفة التقنية — فقد أصبحت لديك — بل الإقدام على البناء.
خلاصة المقال والخطوة القادمة
اليوم تجاوزنا حاجزاً كبيراً: لم نعد نستخدم الذكاء الاصطناعي كمستخدمين عبر واجهاتٍ جاهزة، بل أصبحنا نُوظّفه برمجياً داخل أكوادنا. تعلمنا كيف نتعامل مع OpenAI API، كيف نُهيكل الأوامر لإنتاج JSON منظّم، كيف نبني نظام RAG بـ LangChain لمستنداتٍ خاصة، وكيف نتحكم في التكلفة. أمام كل مطوّر بايثون يقرأ هذه السطور مساحةٌ واسعةٌ لم تُكتشف بعد.
الخطوة التالية الموصى بها:
دمجنا الذكاء الاصطناعي في مشاريعنا — والخطوة الطبيعية التالية هي تطبيق ذلك على مجالٍ يُهم الفريلانسر مباشرةً: أتمتة إنشاء المحتوى وتحسين محركات البحث SEO. في المقال القادم نبني أداةً متكاملةً تُنتج محتوىً جاهزاً للنشر ومحسّناً لمحركات البحث انطلاقاً من كلمةٍ مفتاحيةٍ واحدة.
تابع معنا المقال الرابع عشر: أتمتة كتابة المحتوى وتحسين SEO ببايثون والذكاء الاصطناعي.
المراجع والمصادر:
- التوثيق الرسمي لـ OpenAI API: OpenAI API Documentation
- التوثيق الرسمي لمكتبة LangChain: LangChain Python Documentation
- دليل أسعار OpenAI: OpenAI Pricing
- شرح تقنية RAG على موقع Pinecone: What is RAG? — Pinecone


