متوسط
⏱ ٤٥ دقيقة قراءة
© بوابة الذكاء الاصطناعي ٢٠٢٦-٠٤-١٠
تعلم كيفية بناء قاعدة بيانات متجهات باستخدام Claude وChatGPT API لتعزيز استرجاع البيانات وتفاعل المستخدم.
المتطلبات الأساسية
- Python ٣.٩ أو أعلى
- مفتاح API لـ OpenAI وClaude
- فهم أساسي لقواعد بيانات المتجهات والتضمينات
ما الذي نبنيه
في هذا الدرس، سنقوم بإنشاء قاعدة بيانات متجهات باستخدام Claude وChatGPT APIs. ستقوم هذه القاعدة بتخزين التضمينات المولدة من مدخلات المستخدم، مما يتيح استرجاع وتصنيف المعلومات بكفاءة. النتيجة النهائية هي نظام قوي قادر على التعامل مع عمليات البحث الدلالية وتعزيز نماذج اللغة الكبيرة بتوليد معزز بالاسترجاع (RAG).
سيسمح النظام للمستخدمين بإدخال استفسارات والحصول على معلومات ذات صلة بالسياق من خلال مقارنة التضمينات الخاصة باستفساراتهم مع تلك المخزنة في قاعدة البيانات. هذا مفيد بشكل خاص في التطبيقات مثل روبوتات الدردشة، التوصيات الشخصية، والأدوات المتقدمة للذكاء الاصطناعي.
الإعداد والتثبيت
سنقوم بتثبيت المكتبات اللازمة وإعداد بيئة التطوير الخاصة بنا. يتضمن ذلك مكتبات للتفاعل مع APIs وإدارة التضمينات.
pip install openai chromadb flaskبعد ذلك، نحتاج إلى تكوين متغيرات البيئة لتخزين مفاتيح API بأمان.
# .env file
OPENAI_API_KEY=your_openai_api_key
CLAUDE_API_KEY=your_claude_api_key
الخطوة ١: إعداد الخلفية باستخدام Flask
سنبدأ بإنشاء تطبيق Flask الذي سيتولى معالجة طلبات واستجابات API. ستعمل هذه الخلفية كوسيط بين استفسارات المستخدم وقاعدة بيانات المتجهات الخاصة بنا.
from flask import Flask, request, jsonify
import openai
import os app = Flask(__name__)
openai.api_key = os.getenv("OPENAI_API_KEY")
@app.route('/query', methods=['POST'])
def query():
data = request.json
query_text = data['query']
response = openai.Embedding.create(input=query_text, model="text-embedding-ada-002")
embedding = response['data'][0]['embedding']
return jsonify({'embedding': embedding})
if __name__ == '__main__':
app.run(debug=True)
يقوم هذا الكود بإعداد خادم Flask أساسي مع نقطة نهاية واحدة `/query`. عند إرسال طلب POST إلى هذه النقطة، يتم إنشاء تضمين للنص المقدم باستخدام API الخاص بـ OpenAI.
الخطوة ٢: إنشاء قاعدة بيانات المتجهات باستخدام Chroma
الآن، سنقوم بإعداد Chroma، وهي قاعدة بيانات متجهات، لتخزين وإدارة التضمينات الخاصة بنا. سيمكننا ذلك من إجراء عمليات بحث عن التشابه بكفاءة.
from chromadb import Client client = Client()
collection = client.create_collection(name="embeddings")
def add_to_database(embedding, metadata):
collection.add(embedding=embedding, metadata=metadata)
نقوم بتهيئة عميل Chroma وإنشاء مجموعة باسم “embeddings”. ستسمح لنا وظيفة `add_to_database` بتخزين التضمينات مع أي بيانات وصفية ذات صلة.
الخطوة ٣: دمج Claude لتحسين الاستفسارات
سنقوم بدمج Claude لتحسين عملية استفسار المستخدم، مما يوفر استجابات أكثر ملاءمة للسياق.
import requests CLAUDE_ENDPOINT = "https://api.claude.ai/query"
def enhance_query(query):
response = requests.post(CLAUDE_ENDPOINT, json={'query': query}, headers={'Authorization': f'Bearer {os.getenv("CLAUDE_API_KEY")}'})
return response.json()['enhanced_query']
ترسل هذه الوظيفة استفسارًا إلى API الخاص بـ Claude، الذي يقوم بتحسينه عن طريق إضافة المزيد من السياق أو تصحيحه للحصول على نتائج أفضل.
اختبار تنفيذك
لاختبار تنفيذنا، سنرسل استفسارًا نموذجيًا عبر API الخاص بـ Flask ونتأكد من أن التضمين مخزن وقابل للاسترجاع بشكل صحيح من Chroma.
import requests response = requests.post('http://localhost:5000/query', json={'query': 'What is the latest AI development?'})
print(response.json())
توقع الحصول على مخرجات تحتوي على متجه التضمين، مما يشير إلى معالجة وتخزين ناجحين.
ما الذي يجب بناؤه بعد ذلك
- تنفيذ واجهة مستخدم للتفاعل مع قاعدة بيانات المتجهات.
- توسيع النظام للتعامل مع المدخلات متعددة الوسائط مثل الصور والصوت باستخدام التضمينات متعددة الوسائط.
- دمج نماذج الذكاء الاصطناعي الإضافية لتعزيز فهم الاستفسارات وتوليد الاستجابات.