ملحوظة: لتشغيل Gemini API Endpoints محليًا، قم أولاً بإعداد حساب google vertex ai الخاص بك https://cloud.google.com/sdk/docs/initializing
تم تصميم تطبيق Travel Assistant هذا لاختبار البنية الكاملة القابلة للتطوير لتطبيقات الذكاء الاصطناعي التوليدية.
لقد استكشفنا على نطاق واسع استدعاء وظائف Gemini pro، وفتح ميزات يوم تطوير الذكاء الاصطناعي. تم تطوير الخدمات باستخدام إطار عمل FastAPI ويتم تشغيل Frontend Frontier باستخدام NextJS 14 بالإضافة إلى تقنية Streamlit لمطوري لغة python النقية.
يتم تشغيل الخرائط المدعومة بالذكاء الاصطناعي باستخدام "Google Maps javascript API" لـ NextJS و"Plotly with MapBox" لـ Streamlit.
في هذا الفيديو، قمت بشرح البنية العامة وخط أنابيب Gemini pro Streaming API وبنية استدعاء الوظائف.
Gemmini => الواجهة الخلفية لـ fastapi => الواجهة الأمامية لـ nextjs (استجابة متدفقة بالكامل)
انسخ المستودع إلى جهازك المحلي:
أعد تسمية .env.template إلى .env وأضف مفاتيح API وعناوين URL لقاعدة البيانات هناك. أنشئ مشكلة أو لا تتردد في مراسلتي إذا واجهت أي مشكلة أثناء إعداد التطبيق
قم بتثبيت حزم بايثون المطلوبة:
backend -> src
. pip install -r requirements.txt
ابدأ تشغيل خادم FastAPI عن طريق تشغيل:
uvicorn main:app
اختبر الواجهة الخلفية مباشرة عن طريق تقديم طلب POST التالي في PostMan أو أي برنامج اختبار API.
http://localhost:8000/travel_assistant?prompt="Share 2 places to visit in UAE"
تأكد من تشغيل كل من خدمات الواجهة الأمامية والخلفية في وقت واحد حتى يعمل التطبيق بشكل صحيح.
app.py
. streamlit run app.py
الوصول إلى الواجهة الأمامية على: http://localhost:8501/
انتقل إلى nextjs dir، وقم بتشغيل pnpm install وpnpm dev
اسحب صور عامل الميناء وقم بتشغيلها هناك
مع تشغيل كل من خدمات الواجهة الأمامية والخلفية، يمكنك الوصول إلى تطبيق Streamlit في متصفح الويب الخاص بك والتفاعل مع ميزات مساعد السفر.
لنقم أولاً بإنشاء صورة عامل إرساء وتشغيل الواجهة الأمامية باستخدام حاوية تعمل من هذه الصورة.
بعد ذلك، سنقوم بدفع الصورة ونشر الواجهة الخلفية لدينا على Google Run
docker build -t travel_ai_service .
بالنسبة لمستخدمي Mac M2، استخدم هذا الأمر بدلاً من ذلك: docker buildx build --platform linux/amd64 -t <Image Name> .
صور عامل الميناء
docker run --env-file .env -d --name 2bd90a3c026f -p 80:80 travel_ai_assistant
docker tag travel_ai_assistant mjunaidca/travel_ai_assistant:latest
docker push mjunaidca/travel_ai_assistant:latest
من خلال كلي
gcloud run deploy ai-travel-assistant --image mjunaidca/travel_ai_assistant:latest
ثم انتقل إلى Google Cloud وانقر على "Edit & Deply New Revision"
أضف متغيرات البيئة الخاصة بك وقم بتغيير المنفذ من 8080 إلى 80 (هذا ما قمنا بتكوينه في ملف dockerfile).
أو يمكنك زيارة Google Run مباشرةً والنقر على "إنشاء خدمة". املأ التفاصيل لنشر صورة عامل الإرساء الخاصة بك
أولاً، قم بلصق عنوان URL في المتصفح وسترى النص ""أعلى هنا"". بعد ذلك، قم باستبداله بـ Streamlit
احصل على مفاتيح واجهة برمجة تطبيقات Google Cloud Project Service. قم بتنزيلها بتنسيق json وقم بتخزينها في دليل الواجهة الخلفية.
نقوم بتمريرها في وقت التشغيل بعد إنشاء الصورة لتشغيل الحاوية محليًا.
قم دائمًا بتضمينها في .gitignore و.dockerignore. ، لقد كشفت عن طريق الخطأ مركز عامل الإرساء قبل ***
docker build -t travel_ai_service .
بالنسبة لمستخدمي Mac M2، استخدم هذا الأمر بدلاً من ذلك:
docker buildx build --platform linux/amd64 -t mjunaidca/travel_ai_assistant:v1 .
صور عامل الميناء
docker run --env-file .env -d --name travel_ai_assistant -p 80:80 -v /Users/mjs/Documents/GitHub/genai_fastapi/travel_ai_service/backend/travel-ai-gauth.json:/app/travel-ai-gauth.json -e GOOGLE_APPLICATION_CREDENTIALS=/app/travel-ai-gauth.json mjunaidca/travel_ai_assistant:v1```
4. Test Locally and then Push it on Docker Hub
Is API Working?
http://localhost:80
Are Gemini Endpoints Working?
http://localhost/gemini_streaming_travel_ai/?query=%22hello%22
http://localhost/gemini_streaming_travel_ai/mapstate
For OpenAi it's Post request using postman
http://localhost:80/travel_assistant/?prompt="Share 2 places to visit in UAE"
دفع عامل الإرساء mjunaidca/travel_ai_assistant:v1
5. Deply your service on Google Cloud
Through Cli
تشغيل gcloud نشر ai-travel-assistant --image mjunaidca/travel_ai_assistant: الأحدث
ثم انتقل إلى Google Cloud وانقر على "Edit & Deply New Revision"
أضف متغيرات البيئة الخاصة بك وقم بتغيير المنفذ من 8080 إلى 80 (هذا ما قمنا بتكوينه في ملف dockerfile).
أو يمكنك زيارة Google Run مباشرةً والنقر على "إنشاء خدمة". املأ التفاصيل لنشر صورة عامل الإرساء الخاصة بك
أولاً، قم بلصق عنوان URL في المتصفح وسترى النص ""أعلى هنا"". بعد ذلك، قم باستبداله بـ Streamlit
لماذا لا vercel: مهلة التحريض الافتراضية لـ Vercel هي 10.01 ثانية. باستخدام الحافة يمكننا زيادتها إلى 25 ثانية، وفوق ذلك باستخدام البث يمكننا زيادتها إلى وقت لا نهائي.
هنا متوسط وقت الاستجابة مع استدعاء الوظائف هو 30-40 ثانية، لذا فإن خطتي هي إرساء هذا ونشره على Google Cloud أيضًا.
docker buildx build --platform linux/amd64 -t nextjs_travel_ai .
docker images
docker run --env-file .env -d --name 4f04288c45a8 -p 3000:8000 nextjs_travel_ai
verify the containor is running and no error occured
docker ps
docker tag nextjs_travel_ai mjunaidca/nextjs_travel_ai:latest
docker push mjunaidca/nextjs_travel_ai:latest
gcloud run deploy nextjs-travel-ai --image mjunaidca/nextjs_travel_ai:latest
المساهمات في هذا المشروع هي موضع ترحيب. للمساهمة:
git checkout -b feature-branch
).git commit -am 'Add some feature'
).git push origin feature-branch
).تم ترخيص هذا المشروع بموجب ترخيص MIT - راجع ملف LICENSE.md للحصول على التفاصيل.
لأية أسئلة أو تعليقات إضافية، يرجى الاتصال بمشرفي المشروع.
استمتع باستكشاف العالم باستخدام تطبيق Travel Assistant!
استمتع بتجربة مساعد السفر الافتراضي الخاص بك!