يستخدم هذا التطبيق LLM (نموذج اللغة الكبير) GPT-4o الذي يتم الوصول إليه عبر OpenAI API لإنشاء نص بناءً على إدخال المستخدم. يتم استخدام إدخال المستخدم لاسترداد المعلومات ذات الصلة من قاعدة البيانات ومن ثم يتم استخدام المعلومات المستردة لإنشاء النص. يجمع هذا الأسلوب بين قوة المحولات والوصول إلى المستندات المصدرية.
في هذا التطبيق بالذات يتم البحث في قاعدة البيانات لأكثر من 1000 موقع عن معلومات تتعلق بشخص معين. التحدي الحقيقي هنا هو أن الشخص الذي تم البحث عنه "Michał Żarnecki" يظهر في سياقين مختلفين كشخصين مختلفين بنفس الاسم. الهدف ليس فقط العثور على معلومات محددة ولكن أيضًا فهم السياق وتجنب الأخطاء مثل خلط المعلومات حول شخصين مختلفين يحملان نفس الاسم.
لقد وصفت المفاهيم المستخدمة في هذا التطبيق بمزيد من التفاصيل في المقالة على موقع Medium.com https://medium.com/@michalzarnecki88/a-guide-to-using-llm-retrieval-augmented-generation-with-php-3bff25ce6616
للإعداد، يجب عليك أولاً تثبيت Docker وDocker Compose https://docs.docker.com/compose/install/
التشغيل في CLI: cd app/src && composer install
نموذج لغة الإعداد - اختر من بين الخيارات أدناه: الخيار مع OpenAI API
"A" مع نموذج مجاني عبر ollama API3 المحلي
"ب" مع OpenAI API
الخيار B أبسط ويتطلب موارد أقل لوحدة المعالجة المركزية وذاكرة الوصول العشوائي، لكنك تحتاج إلى مفتاح OpenAI API https://platform.openai.com/settings/profile?tab=api-keys
يتطلب الخيار أ المزيد من موارد وحدة المعالجة المركزية وذاكرة الوصول العشوائي، ولكن يمكنك تشغيله محليًا باستخدام واجهة برمجة تطبيقات ollama. بالنسبة لهذا الخيار، من الجيد أن يكون لديك GPU.
اتبع الإرشادات الخاصة بالخيار المفضل A أو B أدناه:
إذا كنت ترغب في إعداد ollama محليًا، فيرجى استخدام التعليمات الموجودة أسفل هذا الملف، ولكن في حالة استخدام عامل الإرساء فلن تكون هناك حاجة إليه.
*توفر شركة Olma واجهة برمجة التطبيقات المحلية التي تخدم LLMs: "ابدأ العمل مع نماذج اللغات الكبيرة." https://ollama.com/
docker-compose up
*تلميح: يحتاج البرنامج النصي إلى تحويل المستندات المصدر أولاً، الأمر الذي قد يستغرق حتى 30 دقيقة. إذا كنت تريد توفير بعض الوقت، فما عليك سوى إزالة جزء من المستندات من التطبيق/src/documents.
انتظر حتى ينتهي إعداد الحاويات - سترى في سجلات وحدة التحكم:
php-app | Loaded documents complete
php-app | Postgres is ready - executing command
php-app | [Sat Nov 02 11:32:28.365214 2024] [core:notice] [pid 1:tid 1] AH00094: Command line: 'apache2 -D FOREGROUND'
يمكنك استخدام التطبيق كواجهة برمجة التطبيقات (API) باستخدام الطلبات على النحو التالي:
الخيار أ:
curl -d '{"prompt":"what is result of 2+2?"}' -H "Content-Type: application/json" -X POST http://127.0.0.1:2037/processOllama.php?api
الخيار ب OpenAI GPT:
curl -d '{"prompt":"what is result of 2+2?"}' -H "Content-Type: application/json" -X POST http://127.0.0.1:2037/processGpt.php?api
قم بتشغيل docker Interactive docker exec -it php-app sh
تشغيل في CLI: php minicli rag
اطرح سؤالاً
##### INPUT:
What is the result of 2 + 2?
##### RESPONSE:
The result of 2 + 2 is 4.
##### INPUT:
what is specialization of Michał Żarnecki based on his website content
##### RESPONSE:
Michał Żarnecki is a programmer and lecturer specializing in several key areas related to modern software development and data-driven technologies.
His expertise includes:
1. **Programming Languages**: Python, PHP, JavaScript.
2. **AI and Machine Learning**: Designing systems and solutions related to artificial intelligence and machine learning.
3. **Data Mining and Big Data**: Extracting valuable insights from large datasets.
4. **Natural Language Processing (NLP)**: Working on systems that understand and generate human language.
5. **Software Development Frameworks**: Utilizing various tools and frameworks such as Streamlit, TensorFlow, PyTorch, and langchain.
6. **Database Systems**: Implementing and working with databases like PostgreSQL, Elasticsearch, Neo4j, and others.
His portfolio highlights projects such as an AI chatbot for analyzing company documents and a self-driving vehicle based on TensorFlow and Raspberry Pi.
Additionally, he has contributed to conferences and created e-learning courses focused on machine learning, underscoring his dual role as a developer and educator.
##### INPUT:
Is Michał Żarnecki programmer the same person as Michał Żarnecki audio engineer?
##### RESPONSE:
Based on the information provided, it appears that Michał Żarnecki the programmer and Michał Żarnecki the audio engineer are not the same person.
Here’s why:
1. **Fields of Expertise**:
- Michał Żarnecki, the audio engineer, was a well-known operator and reżyser dźwięku (sound director) in Poland, with notable contributions to the Polish film industry, as mentioned in the Wikipedia excerpt.
- Michal Żarnecki, the programmer, has a portfolio focused on programming in Python, PHP, and JavaScript, with projects related to AI, machine learning, data mining, and software development.
2. **Lifespan**:
- Michał Żarnecki the audio engineer was born on November 12, 1946, and passed away on November 21, 2016.
- The projects listed in Michał Żarnecki the programmer’s portfolio date from 2014 to 2016, which would be conflicting if he had passed away in 2016 and was actively working in those years.
3. **Occupational Focus**:
- The audio engineer has a career documented in film sound engineering and education.
- The programmer’s career is centered around software development, mobile applications, ERP systems, and consulting in technology.
Given the distinct differences in their professional domains, timelines, and expertise, it is highly unlikely that they are the same individual
المفهوم الأساسي:
مزيد من التفاصيل عن المهووسين:
لتسريع تحميل المستندات أو استخدام المزيد منها لاسترجاعها بشكل أفضل، قم بمعالجة قيمة $skipFirstN في app/src/service/DocumentLoader.php:20
بعد إجراء تغييرات على البرامج النصية PHP، قم بإعادة إنشاء عامل الإرساء باستخدام الأوامر:
docker-compose rm
docker rmi -f php-rag
docker-compose up
تأتي مواقع الويب المستخدمة لملء قاعدة بيانات المتجهات من مجموعة بيانات "تصنيف مواقع الويب" على مؤلف Kaggle: رابط Hetul Mehta: https://www.kaggle.com/datasets/hetulmehta/website-classification?resource=download
المقالات / المستودعات ذات الصلة:
https://medium.com/mlearning-ai/create-a-chatbot-in-python-with-langchain-and-rag-85bfba8c62d2
https://github.com/Krisseck/php-rag
https://ollama.com/download
ollama pull llama3:latest
ollama pull mxbai-embed-large
ollama list
NAME ID SIZE MODIFIED
mxbai-embed-large:latest 468836162de7 669 MB 7 seconds ago
llama3:latest 365c0bd3c000 4.7 GB 17 seconds ago
ollama serve
app/src/loadDocuments.php
(افتراضي) يرجى إعلامي إذا وجدت أي مشكلات أو أشياء تحتاج إلى تحسينها. يمكنك الاتصال بي على عنوان البريد الإلكتروني [email protected]. لا تتردد في الإبلاغ عن الأخطاء واقتراح ترقيات في طلبات السحب.