Mistral-入门指南-五-
Mistral 入门指南(五)
译者:飞龙
你现在已直接从 Python 完成了身份验证,完成了本地环境与 Vertex AI 之间的桥接。你的脚本现在可以与云端的 Mistral 模型交互,而无需依赖基于浏览器的工作流或笔记本环境。
初始化变量
现在是定义工作变量的时间。在这一步中,你将初始化模型设置,例如 MODEL、PROJECT_ID 和 LOCATION,确保你的脚本针对正确的资源进行推理。执行以下步骤:
- 定义推理脚本将使用的关键变量。这些包括模型标识符、项目 ID、区域以及你发送请求的端点。打开位于
./Chapter-11/ch11_ws_33_4.py的文件,所有的配置都在这里集中编辑:
# 如果需要,请替换为你喜欢的模型
MODEL = "mistral-small-2503"
# 如果需要,请替换为你偏好的项目 ID
PROJECT_ID = "learnmistral"
# 请替换为你的位置
LOCATION = "us-central1"
ENDPOINT = f"https://{LOCATION}-aiplatform.googleapis.com"
- 该脚本包含一个名为
validate_configuration()的函数,检查MODEL和PROJECT_ID等变量是否已设置。如果缺失,它将抛出清晰且可操作的错误消息:
def validate_configuration():
if not PROJECT_ID:
raise ValueError("Please set PROJECT_ID")
if not MODEL:
raise ValueError("Please set MODEL")
- 取消脚本底部调用
validate_configuration()的行的注释并运行文件。这将确认你的环境配置正确并准备好请求:
validate_configuration()
- 然后运行脚本:
python3 ./ch11_ws_step3_4.py
如果一切设置正确,将不会产生错误,你已准备好进行推理。
你现在已经定义并验证了脚本与 Mistral 模型交互的关键变量。
现在配置已经确定,是时候触发第一次模型调用了。在下一步中,你将构建推理请求并使用 mistralai SDK 将发送到 Vertex AI——获取 Mistral 模型的实时响应。
调用推理请求
现在所有准备工作已就绪,让我们使用 Python SDK 首次调用 Mistral 模型:
- 打开
./Chapter-11/ch11_ws_step3_5.py文件。以下是用于发送提示并打印模型响应的完整代码:
from mistralai_gcp import MistralGoogleCloud
from ch11_ws_step3_3 import get_gcloud_access_token
from ch11_ws_step3_4 import MODEL, PROJECT_ID, LOCATION
access_token = get_gcloud_access_token()
client = MistralGoogleCloud(
access_token=access_token,
region=LOCATION,
project_id=PROJECT_ID
)
try:
resp = client.chat.complete(
model=f"{MODEL}",
messages=[
{
"role": "user",
"content": "谁是最好的法国画家?用一个短句回答",
}
],
)
print(resp.choices[0].message.content)
except Exception as e:
print(f"发生了一个错误: {e}")
print(f"[debug] access_token: {access_token}")
print(f"[debug] MODEL: {MODEL}")
print(f"[debug] PROJECT_ID: {PROJECT_ID}")
print(f"[debug] LOCATION: {LOCATION}")
接下来,我们导入所需的模块。这些行导入了 SDK 客户端、你的访问令牌辅助函数以及你之前定义的环境变量:
from mistralai_gcp import MistralGoogleCloud
from ch11_ws_step3_3 import get_gcloud_access_token
from ch11_ws_step3_4 import MODEL, PROJECT_ID, LOCATION
然后我们获取访问令牌。此行使用你的辅助函数从已身份验证的 Google Cloud 会话中获取访问令牌:
access_token = get_gcloud_access_token()
- 在,你使用令牌、区域和项目 ID 设置了
MistralGoogleCloud客户端。该对象将用于与 Vertex AI API 通信:
client = MistralGoogleCloud(
access_token=access_token,
region=LOCATION,
project_id=PROJECT_ID
)
- 在
try块内部,此代码向模型发送了一个单一提示(prompt)并打印响应。消息格式反映了典型的基于系统的系统:
resp = client.chat.complete(
model=f"{MODEL}",
messages=[
"role": "user",
"content": "Who is the best French painter? in one short sentence",
}],
)
print(resp.choices[0].message.content)
- 如果发生任何错误——例如令牌无效或模型配置错误——此
except块将打印错误和所有关键变量以帮助你快速调试:
except Exception as e:
print(f"An error occurred: {e}")
print(f"[debug] access_token: {access_token}")
print(f"[debug] MODEL: {MODEL}")
print(f"[debug] PROJECT_ID: {PROJECT_ID}")
print(f"[debug] LOCATION: {LOCATION}")
- 现在执行脚本查看模型的运行情况:
python3 ./ch11_ws_step3_5.py
如果配置正确,这将打印出 Mistral 模型对你问题给出的简洁回答。
你现在已仅使用 Python 代码成功对 Mistral 发起了同步推理调用。Vertex AI 返回的响应确认你的设置是正确且有效的。此工作流反映了大多数生产系统如何使用 Mistral 进行一次性查询或响应生成。
调用流式请求
接下来,你将探索流式响应——模型输出逐个标记(token)并实时交付。这对于对话式应用程序或你想为用户提供渐进反馈的情况非常理想。
让我们深入研究流式交互:
-
为了结束工作研坊的这个实践部分,我们将测试流式推理。这允许模型在生成标记时立即返回标记,对于响应式界面和对话流非常理想。打开
./Chapter-11/ch11_ws_step3_6.py文件开始。 -
我们首先导入所需的工具——Mistral 客户端、访问令牌函数以及我们之前定义的配置值:
from mistralai_gcp import MistralGoogleCloud
from ch11_ws_step3_3 import get_gcloud_access_token
from ch11_ws_step3_4 import MODEL, PROJECT_ID, LOCATION
- 然后我们获取一个新的访问令牌,并使用它创建一个
MistralGoogleCloud客户端实例,就像同步示例一样:
access_token = get_gcloud_access_token()
client = MistralGoogleCloud(
access_token=access_token,
region=LOCATION,
project_id=PROJECT_ID
)
- 在
try块内部,向模型发送了一个流式请求。提示与之前相同,但stream()方法逐部分返回结果。for循环遍历每个标记块并将其立即打印到终端:
stream = client.chat.stream(
model=f"{MODEL}",
max_tokens=1024,
messages=[
{
"role": "user",
"content": "Who is the best French painter? One short sentence.",
}
],
)
for chunk in stream:
print(chunk.data.choices[0].delta.content)
- 如果出现问题——例如令牌过期或无法访问端点——异常将被捕获并打印错误:
except Exception as e:
print(f"An error occurred: {e}")
print(f"[debug] access_token: {access_token}")
print(f"[debug] MODEL: {MODEL}")
print(f"[debug] PROJECT_ID: {PROJECT_ID}")
print(f"[debug] LOCATION: {LOCATION}")
- 为了看到流式响应的运行情况,在终端中运行脚本:
python3 ./ch11_ws_step3_6.py
你应该能看到响应逐渐出现,模拟来自模型的实时输出流。
..
许多人认为 Claude Monet 是最伟大的画家之一。
现在,你已经使用 Python 和Vertex AI SDK在你自己的环境中实现了同步和流式推理请求。从实用的角度来看,你的工作坊之旅到此画上了句号——并为你以后独立构建交互式、可扩展的 AI 驱动应用做好了准备。
总结
你刚刚完成了一段令人深刻的实战旅程——这段经历将 Mistral 从一个概念转变为你开发环境中的工作部分。从 Google Cloud 的设置和 API 配置开始,你构建了坚实的基础,然后自信地进入 Colab 进行了快速实验。
但这一章真正的亮点是你在VS Code中的工作。你搭建了专用的 Python 环境,通过Google Cloud CLI进行了身份验证,并编写了整洁、模块化的代码来运行同步和流式推理请求。你创建的每一个脚本都让你更接近真实生产系统中的工作流。你处理了凭据、结构化负载、管理了错误,并见证了 Mistral 按需生成响应——这一切都在你的终端中完成。
这不仅仅是一次引导式演示;它是一次构建自己工具箱的体验。你现在拥有了可重用的组件、经过测试的工作流,以及对如何有针对且精确地将语言模型引入项目的深层理解。
无论你是选择继续探索高级功能,还是直接将这些技能应用到自己的应用中,你都赢得了这种信心。你不仅能够使用 AI,你还准备好构建它、塑造它并扩展它。这是一个非常强大的起点。
课外活动
现在你已经完成了核心工作坊,正处于进一步探索的绝佳位置。无论你是对更强大的模型感到好奇,还是寻求具有完全控制权的自托管,以下课外活动都将挑战你的技能,并开启在 Vertex AI 及其他平台上使用 Mistral 的新可能:
1. 使用 Mistral Large 探索高级功能
如果你准备好尝试更强大的模型,请返回Model Garden并启用Mistral Large而不是小版本。启用后,滚动查看从模型卡片链接的自动生成的Google Colab笔记本。它包含了以下扩展功能,例如:
-
代码生成
-
FiM提示词处理 -
具有结构化输入和模式感知输出的函数调用
这些章节展示了 Mistral 增强的推理和结构化能力,并让你有机会与更细致的提示词和场景进行交互。笔记本已绑定到你的项目,因此你可以直接开始实验。
2. 在 Text Generation Inference (TGI) 上部署 Mistral 7B 或 8B
对于寻求自托管设置的用户,尝试通过Google Cloud或Hugging Face的基础设施使用Text Generation Inference(TGI) 部署Mistral 7B Instruct或Ministral 8B Instruct。这是一个高级工作流,包括:
-
准备运行 TGI 器的
docker-compose.yml文件(GitHub 上提供了示例) -
模型上传到
Google Artifact Registry或另一个可存储位置 -
为你的模型创建并暴露端点
-
在启用 GPU 的虚拟机上启动服务(你可能需要提前向
Google Cloud申请 GPU 配额)
确保你的Hugging FaceAPI 令牌激活状态,并且你的账户已获得使用所选 Mistral 许可。此令牌将允许Google Cloud在部署期间从 Hugging Face 拉取模型镜像。
这些可选挑战对于想要深入研究的开发者来说是理想的——无论是为了探索生产托管、性能基准测试,还是为了解锁仅留给更大模型的功能。每条路径都提供了关于 Mistral 如何在真实系统中使用的不同视角。将其视为你实验和成长的开放领域。
订阅获取免费电子书
新框架、演进的架构、研究发布、生产分析——AI_Distilled将噪音过滤掉,为亲手操作 LLM 和生成式 AI 系统的工程师和研究人员提供每周简报。现在订阅即可获得一本免费电子书,以及帮助你保持专注和掌握信息的每周见解。
访问packt.link/TRO5B订阅或扫描下方的二维码。
https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/learn-mistral/img/Packt_Logo_New1.png
订阅我们的在线数字图书馆,即可访问超过 7,000 本书和视频,并获得行业领先的工具,帮助你规划个人发展并提升职业。欲了解更多信息,请访问我们的网站。
为什么要订阅?
-
通过来自 4,000 多名行业专业人士实用电子书和视频,减少学习时间,增加编码时间
-
通过专为为你定制的技能计划提升你的学习效果
-
每月获得一本免费电子书或视频
-
全文搜索,方便访问关键信息
-
内容可以复制、粘贴、打印和添加书签
在 www.packtpub.com,你还可以阅读免费技术文章合集,订阅一系列免费新闻邮件,并获得 Packt 书籍和电子书的独家折扣和优惠。
你可能喜欢的其他书籍
如果你喜欢这本书,你可能对 Packt 的其他书籍感兴趣:
https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/learn-mistral/img/9781836200079.jpg
LLM Engineer's Handbook
Paul I muchin, Maxime Labonne
ISBN: 978-1-83620-007-9
-
实现健壮的数据管道并管理 LLM 训练周期
-
在实战示例的帮助下创建自己的 LLM 并进行精炼
-
通过深入核心 MLOps 原理(如编排器和提示词监控)开始 LLMOps
-
执行监督微调
-
使用
AWS和其他工具部署端到端 LLM 解决方案 -
设计可扩展的模块化 LLM 系统
-
通过构建功能和推理管道学习
RAG应用
https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/learn-mistral/img/978180323753.jpg
Building Agentic Systems
Ananjan Biswas, Wrick Talukdar
ISBN: [未提供原文完整 ISBN]
-
掌握生成式 AI 和智能代理系统的核心原理
-
理解智能代理如何在动态环境中运行、推理和适应
-
使智能代理能够分析自己的操作并进行即兴处理
-
实现代理利用外部工具并规划任务的任务
-
应用增强 AI 透明度和可靠性的方法
-
探索智能代理跨行业的落地
Packt 正在寻找像你这样的作者
如果你对成为 Packt 作者感兴趣,请访问 authors.packtpub.com 并立即申请。我们与数千像你这样的开发者合作,帮助他们向全球社区分享见解。你可以提交通用申请、申请我们正在招募特定主题,或提交自己的想法。
分享你的想法
现在你读完了Mistral,我们想听听你的想法!如果你是从亚马逊购买的这本书,请点击此处直接进入该书亚马逊页面,并在购买网站上分享你的反馈。你的评论对我们和技术社区至关重要,并将帮助我们确保提供优质的内容。

浙公网安备 33010602011771号