Mistral-入门指南-五-

Mistral 入门指南(五)

原文:Learn Mistral

译者:飞龙

协议:CC BY-NC-SA 4.0

你现在已直接从 Python 完成了身份验证,完成了本地环境与 Vertex AI 之间的桥接。你的脚本现在可以与云端的 Mistral 模型交互,而无需依赖基于浏览器的工作流或笔记本环境。

初始化变量

现在是定义工作变量的时间。在这一步中,你将初始化模型设置,例如 MODEL、PROJECT_ID 和 LOCATION,确保你的脚本针对正确的资源进行推理。执行以下步骤:

  1. 定义推理脚本将使用的关键变量。这些包括模型标识符、项目 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"
  1. 该脚本包含一个名为 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")
  1. 取消脚本底部调用 validate_configuration() 的行的注释并运行文件。这将确认你的环境配置正确并准备好请求:
validate_configuration()
  1. 然后运行脚本:
python3 ./ch11_ws_step3_4.py

如果一切设置正确,将不会产生错误,你已准备好进行推理。

你现在已经定义并验证了脚本与 Mistral 模型交互的关键变量。

现在配置已经确定,是时候触发第一次模型调用了。在下一步中,你将构建推理请求并使用 mistralai SDK 将发送到 Vertex AI——获取 Mistral 模型的实时响应。

调用推理请求

现在所有准备工作已就绪,让我们使用 Python SDK 首次调用 Mistral 模型:

  1. 打开 ./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()
  1. 在,你使用令牌、区域和项目 ID 设置了 MistralGoogleCloud 客户端。该对象将用于与 Vertex AI API 通信:
client = MistralGoogleCloud(
    access_token=access_token,
    region=LOCATION,
    project_id=PROJECT_ID
)
  1. 在 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)
  1. 如果发生任何错误——例如令牌无效或模型配置错误——此 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}")
  1. 现在执行脚本查看模型的运行情况:
python3 ./ch11_ws_step3_5.py

如果配置正确,这将打印出 Mistral 模型对你问题给出的简洁回答。

你现在已仅使用 Python 代码成功对 Mistral 发起了同步推理调用。Vertex AI 返回的响应确认你的设置是正确且有效的。此工作流反映了大多数生产系统如何使用 Mistral 进行一次性查询或响应生成。

调用流式请求

接下来,你将探索流式响应——模型输出逐个标记(token)并实时交付。这对于对话式应用程序或你想为用户提供渐进反馈的情况非常理想。

让我们深入研究流式交互:

  1. 为了结束工作研坊的这个实践部分,我们将测试流式推理。这允许模型在生成标记时立即返回标记,对于响应式界面和对话流非常理想。打开 ./Chapter-11/ch11_ws_step3_6.py 文件开始。

  2. 我们首先导入所需的工具——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
  1. 然后我们获取一个新的访问令牌,并使用它创建一个 MistralGoogleCloud 客户端实例,就像同步示例一样:
access_token = get_gcloud_access_token()
client = MistralGoogleCloud(
    access_token=access_token,
    region=LOCATION,
    project_id=PROJECT_ID
)
  1. 在 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)
  1. 如果出现问题——例如令牌过期或无法访问端点——异常将被捕获并打印错误:
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}")
  1. 为了看到流式响应的运行情况,在终端中运行脚本:
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/Newsletter_QR_Code.png

https://github.com/OpenDocCN/freelearn-dl-zh/tree/master/docs/learn-mistral/img/Packt_Logo_New1.png

packtpub.com

订阅我们的在线数字图书馆,即可访问超过 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,我们想听听你的想法!如果你是从亚马逊购买的这本书,请点击此处直接进入该书亚马逊页面,并在购买网站上分享你的反馈。你的评论对我们和技术社区至关重要,并将帮助我们确保提供优质的内容。

posted @ 2026-09-25 20:43  绝不原创的飞龙  阅读(3)  评论(0)    收藏  举报