大数跨境

使用 Cloud Run 上的 Gemini API 构建聊天应用程序

使用 Cloud Run 上的 Gemini API 构建聊天应用程序 索引目录
2025-04-01
0
导读:👩‍🏫 我们正在建造什么?我们将构建一个基于 Web 的聊天界面,该界面连接到 Gemini API 并返回对话响应。

👩‍🏫 我们正在建造什么?

我们将构建一个基于 Web 的聊天界面,该界面连接到 Gemini API 并返回对话响应。我们的应用将在 CLoud Run 上运行,我们将使用 Cloud Build 和 Artifact Registry 对其进行容器化和部署。

在本教程结束时,您将:

  • 设置与 gemini API 对话的 Python web 应用

  • 使用 Docker 容器化你的应用

  • 使用 Google Cloud 工具将应用部署到 Cloud Run

  • 开始思考如何将 LLM 融入到自己的项目中

因此,少想一些HAL,多想一些SmarterChild。🤖💬让我们开始吧!

📝 先决条件

首先,您需要确保您已具备:

  • Google Cloud 项目

  • CLIgcloud安装并验证

  • 安装 Docker

  • 您的项目上已启用 Vertex AI API

  • 💻可选:使用Cloud Shell获得完全配置的环境

⚙️ 步骤 1:克隆聊天应用模板

首先,让我们下载一个预先构建的 Python Flask 应用程序:

  
  
  
git clone https://github.com/ChloeCodesThings/chat-app-demo
cd chat-app-demo

您会看到我们的应用程序具有:

  • app.py- Flask 路线和 Gemini API 逻辑

  • index.html- 基本的聊天用户界面

  • Dockerfile- 有关如何构建容器的说明

🐳📁 第 2 步:使用 Cloud Build 构建 Docker 映像

首先,您需要设置一些环境变量:

  
  
  
export PROJECT_ID=$(gcloud config get-value project)
export REGION=us-central1
export AR_REPO=chat-app-repo
export SERVICE_NAME=chat-gemini-app

创建 Artifact Registry 存储库:

  
  
  
gcloud artifacts repositories create $AR_REPO \
--repository-format=docker \
--location=$REGION

然后构建并推送镜像:

  
  
  
gcloud builds submit --tag $REGION-docker.pkg.dev/$PROJECT_ID/$AR_REPO/$SERVICE_NAME

🚀 第 3 步:部署到 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 的URL 。打开它即可与 Gemini 聊天!

🔎✨ 第 4 步:Gemini 集成的工作原理

让我们看一下后端逻辑。在 app.py 中,这就是神奇的事情发生的地方:

  
  
  
from vertexai.preview.language_models import ChatModel

def create_session():
chat_model = ChatModel.from_pretrained("gemini-2.0-flash")
chat = chat_model.start_chat()
return chat

def response(chat, message):
result = chat.send_message(message)
return result.text

因此,每次用户提交消息时,我们的应用程序都会:

  • 开始新的聊天会话

  • 向 Gemini 模型发送消息

  • 以 JSON 形式返回响应

🤸‍♀️好的,让我们尝试一下吧!

输入问题,例如:

“什么是 Google Cloud Platform?”

...您将获得由 LLM 生成的上下文响应。

🎯 下一步是什么?

耶,我们做到了!🥳 这仅仅是个开始!在以后的帖子中,我们将介绍:

  • 增强聊天用户界面

  • 保持会话持久

  • 使用系统提示来塑造 Gemini 的反应

  • 使用 Firebase Auth 或 API Gateway 保护您的端点


【声明】内容源于网络
0
0
索引目录
索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
内容 444
粉丝 0
索引目录 索引目录是一家专注于医疗、技术开发、物联网应用等领域的创新型公司。我们致力于为客户提供高质量的服务和解决方案,推动技术与行业发展。
总阅读12
粉丝0
内容444