Примечание. Чтобы локально запустить конечные точки Gemini API, сначала настройте свою учетную запись Google Vertex AI https://cloud.google.com/sdk/docs/initializing
Это приложение Travel Assistant предназначено для тестирования полной масштабируемой архитектуры генеративных приложений искусственного интеллекта.
Мы подробно изучили вызов функций Gemini Pro и возможности Open AI dev Day. Сервисы разрабатываются с использованием инфраструктуры FastAPI, а Frontend Frontier работает на NextJS 14, а также оптимизирован для разработчиков, использующих чистый Python.
Карты на базе искусственного интеллекта оснащены «Javascript API Google Maps» для NextJS и «Plotly with MapBox» для потокового освещения.
В этом видео я рассказываю об общей архитектуре, конвейере потокового API Gemini Pro и архитектуре вызова функций.
gemmini => серверная часть fastapi => интерфейс nextjs (полностью потоковый ответ)
Клонируйте репозиторий на свой локальный компьютер:
Переименуйте .env.template в .env и добавьте туда свои ключи API и URL-адреса базы данных. Создайте проблему или напишите мне, если у вас возникнут какие-либо проблемы при настройке приложения.
Установите необходимые пакеты Python:
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, запустите 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
Через Cli
gcloud run deploy ai-travel-assistant --image mjunaidca/travel_ai_assistant:latest
Затем перейдите в Google Cloud и нажмите «Редактировать и добавить новую версию».
Добавьте переменные среды и измените порт с 8080 на 80 (это то, что мы настроили в файле docker).
Или вы можете напрямую посетить Google Run и нажать «Создать сервис». Заполните данные, чтобы развернуть образ Docker.
Сначала пройдите по URL-адресу в браузере, и вы увидите текст «вверх здесь». Затем замените его наstreamlit
Получите ключи API службы Google Cloud Project. Загрузите их в формате json и сохраните во внутреннем каталоге.
Мы передаем их во время выполнения после создания образа для локального запуска контейнера.
Всегда включайте их в .gitignore и .dockerignore. ,я раньше случайно выставил им Docker Hub ***
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"
docker push mjunaidca/travel_ai_assistant:v1
5. Deply your service on Google Cloud
Through Cli
gcloud run Deploy ai-travel-assistant --image mjunaidca/travel_ai_assistant:latest
Затем перейдите в Google Cloud и нажмите «Редактировать и добавить новую версию».
Добавьте переменные среды и измените порт с 8080 на 80 (это то, что мы настроили в файле docker).
Или вы можете напрямую посетить Google Run и нажать «Создать сервис». Заполните данные, чтобы развернуть образ Docker.
Сначала пройдите по URL-адресу в браузере, и вы увидите текст «вверх здесь». Затем замените его наstreamlit
Почему бы не использовать Vercel: время ожидания активации Vercel по умолчанию составляет 10,01 секунды. Используя Edge, мы можем увеличить его до 25 секунд, а с помощью потоковой передачи мы можем увеличить время до бесконечности.
Здесь среднее время отклика при вызове функции составляет 30-40 секунд, поэтому я планирую закрепить и развернуть это также в облаке Google.
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!
Наслаждайтесь своим виртуальным помощником по путешествиям!