chat-with-your-doc هو تطبيق توضيحي يعزز إمكانيات ChatGPT/GPT-4 و Langchain لتمكين المستخدمين من الدردشة مع مستنداتهم. يستضيف هذا المستودع قاعدة بيانات الكود والتعليمات والموارد اللازمة لإعداد وتشغيل التطبيق.
الهدف الأساسي لهذا المشروع هو تبسيط التفاعل مع المستندات واستخراج معلومات قيمة باستخدام اللغة الطبيعية. تم تصميم هذا المشروع باستخدام Langchain و GPT-4/ChatGPT لتقديم تجربة محادثة سلسة وطبيعية للمستخدم ، بدعم من كل من Azure OpenAI Services و OpenAI

Azure OpenAI Services و OpenAI
اقترح التثبيت على Ubuntu بدلاً من Centos/Debian. انظر العدد رقم 12
للبدء في Chat-with-your-doc ، اتبع هذه الخطوات:
git clone https://github.com/linjungz/chat-with-your-doc.gitchat-with-your-doc : cd chat-with-your-docإنشاء بيئة افتراضية:
python3 -m venv .venv
source .venv/bin/activateتثبيت Depenancies:
pip install -r requirements.txtفي هذا المشروع ، ندعم كل من API من خدمة Openai و Azure Openai. هناك بعض متغيرات EnvironMnet شائعة بالنسبة لبرامج واجهات برمجة التطبيقات في حين أن بعضها فريد من نوعه. يسرد الجدول التالي جميع Vars Env التي مدعومة:
| متغيرات البيئة | خدمة Azure Openai | Openai |
|---|---|---|
| openai_api_base | ✅ | |
| openai_api_key | ✅ | ✅ |
| openai_gpt_deployment_name | ✅ | |
| openai_embedding_deployment_name | ✅ | ✅ |
| chat_model_name | ✅ | |
| request_timeout | ✅ | ✅ |
| vectordb_path | ✅ | ✅ |
| درجة حرارة | ✅ | ✅ |
| chunk_size | ✅ | ✅ |
| chunk_overlap | ✅ | ✅ |
.env في الجذر dir وتعيين متغيرات البيئة في الملف: OPENAI_API_BASE=https://your-endpoint.openai.azure.com
OPENAI_API_KEY=your-key-here
OPENAI_GPT_DEPLOYMENT_NAME=your-gpt-deployment-name
OPENAI_EMBEDDING_DEPLOYMENT_NAME=your-embedding-deployment-name
هنا يمكنك العثور على أسماء النشر لـ GPT والتضمين: 
.env في الجذر dir وتعيين متغير البيئة في الملف: OPENAI_API_KEY=your-key-here
CHAT_MODEL_NAME="gpt-4-0314"
سيؤدي ذلك إلى تهيئة التطبيق استنادًا إلى Streamlit وفتح واجهة المستخدم في متصفح الويب الافتراضي الخاص بك. يمكنك الآن تحميل مستند لإنشاء قاعدة للمعرفة وبدء محادثة معها.
$ streamlit run chat_web_st.py --server.address ' 0.0.0.0 '
Collecting usage statistics. To deactivate, set browser.gatherUsageStats to False.
You can now view your Streamlit app in your browser.
URL: http://0.0.0.0:8501 ` ` `لاحظ أن واجهة المستخدم السابقة التي تم إنشاؤها باستخدام Gradio تم إهمالها ولم تعد محفوظة. يمكنك العثور على الرمز في ملف chat_web.py.
تم تصميم تطبيق CLI لدعم أوامر ingest chat . يتم استخدام Python Library typer لإنشاء واجهة سطر الأوامر.
سيأخذ هذا الأمر المستندات كمدخلات ، وتقسيم النصوص ، وإنشاء التضمينات وتخزينها في متجر Vector FAISS . سيتم تخزين متجر Vector محليًا لاستخدامه لاحقًا للدردشة.

على سبيل المثال ، إذا كنت ترغب في وضع جميع ملفات PDF في الدليل في متجر متجه واحد مسماة surface ، فيمكنك تشغيل:
$ python chat_cli.py ingest --path " ./data/source_documents/*.pdf " --name surfaceلاحظ أنه يجب إرفاق المسار مع علامات اقتباس مزدوجة لتجنب توسيع قذيفة.
سيبدأ هذا الأمر دردشة تفاعلية ، مع المستندات كقاعدة معرفة خارجية في متجر متجه. يمكنك اختيار قاعدة المعرفة التي يجب تحميلها للدردشة.

تم توفير اثنين من مستندات عينة حول السطح في دليل البيانات/source_document وتلتبل بالفعل في index متجر المتجه الافتراضي ، المخزنة في البيانات/Vector_Store. يمكنك تشغيل الأمر التالي لبدء دردشة مع المستندات:
$ python chat_cli.py chatأو يمكنك تحديد متجر المتجهات لتحميله للدردشة:
$ python chat_cli.py chat --name surface يتم الاستفادة من Langchain لبناء سير عمل يتفاعل بسرعة مع Azure GPT-4. يتم استخدام ConversationalRetrievalChain في حالة الاستخدام هذه لدعم سجل الدردشة. يمكنك الرجوع إلى هذا الرابط لمزيد من التفاصيل.
بالنسبة إلى chaintype ، يتم استخدام stuff الافتراضية. لمزيد من التفاصيل ، يرجى الرجوع إلى هذا الرابط
يتم إصدار chat-with-your-doc تحت رخصة معهد ماساتشوستس للتكنولوجيا. انظر ملف LICENSE لمزيد من التفاصيل.