使用 RAG 和 Locust 对 Python 聊天应用进行负载测试

本文提供了将检索扩充生成 (RAG) 模式与 Locust(一种常用的开源负载测试工具)配合使用,在 Python 聊天应用程序上执行负载测试的过程。 负载测试的主要目标是确保聊天应用程序中的预期负载不超过当前 Azure OpenAI 服务每分钟事务(TPM)配额。 通过在负载过大的情况下模拟用户行为,可以识别应用程序中的潜在瓶颈和可伸缩性问题。 此过程对于确保聊天应用程序保持响应和可靠至关重要,即使遇到大量用户请求也是如此。

注释

本文使用一个或多个 AI 应用模板作为本文中的示例和指南的基础。 AI 应用模板提供易于部署的维护良好的参考实现。 使用它们可以确保为您的 AI 应用提供一个高质量的起点。

先决条件

打开负载测试示例应用

负载测试以 Locust 测试的形式在 Python 聊天应用解决方案中。 返回到该文章,部署解决方案,然后使用该开发容器开发环境完成以下步骤。

运行测试

  1. 安装 Locust 包以进行负载测试:

    python -m pip install locust
    
  2. 启动 Locust,它使用 Locust 测试文件 locustfile.py。 可以在存储库的根目录中找到它。 该示例包含一个 ChatUser 类,用于模拟用户提问并从聊天应用中接收答案。

    locust ChatUser
    
  3. 打开正在运行的 Locust 网站,例如 http://localhost:8089

  4. 在 Locust 网站中输入以下值。

    资产 价值
    用户数 20
    增加 1
    Host https://<YOUR-CHAT-APP-URL>.azurewebsites.net

    显示“Locust 测试”的屏幕截图,其中填充了值。

  5. 选择 “启动群 ”以启动测试。

  6. 选择 “图表 ”以观察测试进度。

    测试运行期间的 Locust 图表屏幕截图。

清理资源

完成负载测试后,清理资源。 本文中创建的 Azure 资源将计费给 Azure 订阅。 如果你预计将来不需要这些资源,请将其删除,以避免产生更多费用。 删除本文特定的资源后,请记住返回到其他聊天应用程序的教程,并按照清理步骤进行。

返回到聊天应用相关的文章以清理这些资源。

获取帮助

如果使用此负载测试器时遇到问题,请将问题添加到存储库 的问题 网页。