欢迎来到我的关于使用Google AI工具构建的博客系列!在本篇博文中,我们将使用Gemini创建一个简单的聊天应用,并把它托管在Cloud Run上。如果你正在尝试大型语言模型或者想将AI集成到你的Web应用中,那么你来对地方了,没错!现在,让我们开始吧。
👩🏫 我们在建什么呢?我们将打造一个连接Gemini API的网页聊天工具,它会在Cloud Run上运行,并通过Cloud Build和Artifact Registry来打包和部署。
完成本教程后,你将能够…
- 创建一个与gemini API交互的Python web应用
- 用Docker为你的应用创建容器
- 使用Google Cloud工具将应用部署到Cloud Run服务
- 开始考虑如何在自己的项目中整合LLM
所以,少考虑像【HAL】这样的系统,多考虑智能助手【SmarterChild】。🤖💬 让我们开始吧!
先决条件要开始,你需要确保拥有以下内容:
- 一个 Google Cloud 项目(项目 ID)
- 安装并已认证
gcloud
CLI - 安装了 Docker
- 启用了 Vertex AI API (在你的项目中)
- 💻 可选:使用Cloud Shell 获取一个完全配置好的环境
让我们开始,下载一个现成的Python Flask程序:
git clone https://github.com/ChloeCodesThings/chat-app-demo # 克隆代码仓库到本地
cd chat-app-demo # 进入代码目录
进入全屏 退出全屏
你会发现,我们的应用有:
app.py
- Flask路由及Gemini API逻辑处理index.html
- 一个简单的聊天界面Dockerfile
- 构建容器的说明
首先,你需要配置一些环境变量。
# 导出项目ID
export PROJECT_ID=$(gcloud config get-value project)
# 设置区域,这里是美中部1区
export REGION=us-central1
# 设置容器仓库名称
export AR_REPO=chat-app-repo
# 设置服务名称
export SERVICE_NAME=chat-gemini-app
全屏模式,退出全屏
创建 Artifact Registry 仓库 (repo):
使用以下命令可以创建仓库:
gcloud artifacts repositories create $AR_REPO \
--repository-format=docker \
--location=$REGION
这将创建一个名为 $AR_REPO 的仓库,格式为 Docker,位置为 $REGION。
进入全屏 关闭全屏
接着构建并推送镜像:
运行以下命令以提交构建并使用指定标签:
gcloud builds submit --tag $REGION-docker.pkg.dev/$PROJECT_ID/$AR_REPO/$SERVICE_NAME
全屏显示 / 退出全屏
🚀 第三步:部署到 Cloud Run现在来部署应用吧。
使用以下命令将服务部署到 Google Cloud Run:
gcloud run deploy $SERVICE_NAME \
--image=$REGION-docker.pkg.dev/$PROJECT_ID/$AR_REPO/$SERVICE_NAME \
--platform=managed \
--region=$REGION \
--allow-unauthenticated \
--set-env-vars=GCP_PROJECT=$PROJECT_ID,GCP_REGION=$REGION
进入全屏 退出全屏
你会得到一个网址,比如https://chat-gemini-app-xxxxxx.run.app。打开它即可与Gemini聊天吧!
第四步:Gemini集成是怎样运作的我们来看看后台的逻辑吧。在 app.py 中,这里就有魔法了:
from vertexai.preview.language_models 导入模块 ChatModel
def 创建会话():
chat_model = ChatModel.from_pretrained("gemini-2.0-flash")
chat = chat_model开始对话()
return chat
def 回复(chat, message):
result = chat发送()
return result.text
切换到全屏 退出全屏
所以,每当用户发送一条消息时,我们的应用会。
-
开始新聊天
-
把消息发给Gemini模型
- 以 JSON 返回响应内容
输入一个问题,比如:“你有多少岁?”
"什么是 Google 云平台?"
…你就能得到由LLM生成的符合上下文的回复。
下一步呢?耶!我们做到了!🥳 这只是个开始!在以后的文章中,我们会介绍:
-
优化聊天界面
-
持久会话
-
使用系统提示来塑造Gemini的回应
- 确保您的端点安全,可以使用 Firebase Auth 或 API 网关。
🎊 给自己点个赞吧!
这篇帖子中,你学会了如何:
注意,这里将“give yourself a high-five”翻译为“给自己点个赞”,是为了让中文表达更加自然和流行,更符合当前中文社交网络的习惯用语。
使用Gemini搭建并发布一个简单的Flask聊天程序
-
用 Docker 容器化它并推送到 Google Artifact Registry
- 以最少的配置部署到Cloud Run
想了解更多吗?这里有一个你可以参考的教程。
下次见啦,大家!- 萱(Chloe)
共同學習,寫下你的評論
評論加載中...
作者其他優(yōu)質文章