مساعد GenAI يعتمد على Langchain + Streamlit + Azure Cosmos DB لـ MongoDB (vCore) + Docker.
المؤلفون:
تم الاختبار على Linux Ubuntu 20.04 (قد يحتاج إلى تعديلات للأنظمة الأخرى).
الحد الأدنى لمتطلبات الأجهزة فقط لنشر تطبيق AI Assistant وإنشاء قاعدة بيانات Vector (باستثناء تطبيق PanKB DB وETL وAI Assistant):
متطلبات النظام:
يمكن أن تستغرق عملية تعداد قاعدة البيانات ما يصل إلى 90-150 دقيقة. يعتمد ذلك على خادم DEV وتكوينات المجموعة المقسمة لقاعدة بيانات Cosmos. حجم تخزين MongoDB للمجموعة المأهولة هو ~ 1.0 جيجا بايت، بما في ذلك. الفهارس.
يرجى ملاحظة القيود والاعتبارات التالية:
قم بإنشاء ملف .env بالتنسيق التالي:
## Do not put this file under version control!
OPENAI_API_KEY=<insert the API key here without quotes>
COHERE_API_KEY=<insert the API key here without quotes>
TOGETHER_API_KEY=<insert the API key here without quotes>
GOOGLE_API_KEY=<insert the API key here without quotes>
ANTHROPIC_API_KEY=<insert the API key here without quotes>
REPLICATE_API_TOKEN=<insert the API key here without quotes>
VOYAGE_API_KEY=<insert the API key here without quotes>
## MongoDB-PROD (Azure Cosmos DB for MongoDB) Connection String
# Had to multiply maxIdleTimeMS by 10 to handle
# urllib3.exceptions.ProtocolError:
# ("Connection broken: ConnectionResetError(104, 'Connection reset by peer')", ConnectionResetError(104, 'Connection reset by peer'))
MONGODB_CONN_STRING = "<insert the connection string here with quotes>"
ليس من الضروري تنفيذ البرنامج النصي لقاعدة البيانات في حاوية عامل إرساء. ويمكن القيام بذلك بالأوامر التالية:
# install all the requirements and dependencies
pip3 install -r requirements.txt
# Run the script with two command line arguments:
# the name of the folder containing the documents to feed to the LLM
# and
# the name of the MongoDB collection that will contain the vector DB
python3 make_vectordb.py ./Paper_all pankb_vector_store
أمر إنشاء صورة عامل الإرساء وإعادة إنشاء حاوية عامل الإرساء باستخدام تطبيق Streamlit بداخلها:
docker compose up -d --build --force-recreate
ليس من الضروري تنفيذ تطبيق الإرساء المبسط في tmux . سيكون دائمًا جاهزًا للعمل حتى بعد إعادة تشغيل الجهاز الافتراضي (يتم تحقيقه باستخدام خيار restart: always
في ملف إنشاء عامل الإرساء).
يمكن التحقق من حالة حاوية عامل الإرساء باستخدام الأمر التالي:
docker ps
يجب أن ينتج الأمر تقريبًا. المخرجات التالية من بين أمور أخرى في حالة النشر الناجح:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
54d89d7c4fad pankb_llm:latest "streamlit run strea…" 10 minutes ago Up 10 minutes 0.0.0.0:8501->8501/tcp, :::8501->8501/tcp pankb-llm