返回市场
Azure人工智能旅行代理服务器

Azure人工智能旅行代理服务器

作者:Azure-Samples359 星标更新:2025-11-20

项目介绍

<div align="center"> <img src="./docs/ai-travel-agents-logo.png" alt="" align="center" height="128" /> <h1>代理与MCP编排<br>使用LangChain.js、LlamaIndex.TS<br>和Microsoft Agent Framework!</h1>

加入Microsoft Foundry社区Discord 加入Microsoft Foundry开发者论坛 公告博客文章 <br> 在GitHub Codespaces中打开项目 构建状态 Node版本 TypeScript Java .NET Python 许可证

:star: 要保持更新并收到更改通知,请在GitHub上给这个仓库点赞!

GitHub仓库点赞数 GitHub分叉数 GitHub观察者数

概述架构特性免费本地预览成本估算加入社区

动画展示聊天应用运行情况

免费本地预览应用

</div>

概述

AI旅行代理是一个模块化参考应用程序,利用多个AI代理来增强旅行社的操作。该应用程序展示了如何使用LangChain.jsLlamaIndex.TSMicrosoft Agent Framework编排多个AI代理,以帮助员工处理客户查询、提供目的地推荐以及规划行程。多个MCP(模型上下文协议)服务器,使用Python、Node.js、Java和.NET构建,为代理提供了各种工具和服务,使它们能够无缝协作。

代理名称目的
客户查询理解从客户查询中提取关键偏好
目的地推荐根据客户偏好建议目的地
行程规划创建详细的行程和旅行计划。
回声Ping回显接收到的任何输入(用作MCP服务器示例)。

高级架构

AI旅行代理应用程序的架构设计为模块化和可扩展:

  • 所有组件都使用Docker容器化,以便可以轻松地通过**Azure容器应用**进行部署和管理。
  • 所有代理工具均作为MCP(模型上下文协议)服务器提供,并由MCP客户端调用。
  • MCP服务器使用不同的技术独立实现,如PythonNode.jsJava和**.NET**。
  • 提供三种独立服务的编排选项:LangChain.js(TypeScript/Node.js)、LlamaIndex.TS(TypeScript/Node.js)和Microsoft Agent Framework(Python)。
  • 每个编排器协调代理和MCP客户端之间的交互,使它们能够无缝协作。
  • 使用Aspire仪表板监控应用程序,提供关于代理性能和行为的洞察(通过OpenTelemetry集成)。
<div align="center"> <img src="./docs/ai-travel-agents-architecture-diagram.png" alt="应用程序架构" width="640px" /> </div>

[!NOTE] 新接触模型上下文协议(MCP)?查看我们的免费MCP入门指南

特性

<!-- 注意:这是一个占位符,用于HackerNoon链接,这些链接指向本文档中的旧部分 --> <a id="prerequisites"/> <!-- -->

免费本地预览应用程序

要运行和预览应用程序,请使用Docker模型运行器

[!IMPORTANT] Phi4 14B模型需要大量资源(至少16GB内存和现代CPU或GPU)才能高效运行。 GPU加速仅支持macOS Apple Silicon和Windows上的NVIDIA GPU。 如果您的机器没有足够的资源来本地运行LLMs,您可以使用Microsoft Foundry运行应用程序。请参阅高级设置文档获取更多信息。

一个设置脚本

该脚本将执行以下操作:

  • 检查所需的工具和依赖项
  • 将当前仓库克隆到本地机器
  • 安装API和Web应用的npm依赖项
  • 下载Phi4 14B模型
    • 这将花费一些时间,因为模型很大(约7.80 GB)
  • 构建所有MCP服务器的Docker镜像
  • 配置所有.env文件,以适用于本地AX

要在本地运行应用程序,请确保在运行预览脚本之前安装了以下内容:

  • Git(用于克隆仓库)
  • Node.js(用于UI和API服务)
  • Docker(用于MCP服务器和使用DMR - Docker模型运行器)
    • 确保在Docker Desktop设置中启用**DMR**。
  • Powershell 7+ (pwsh) - 仅限Windows用户。
    • 重要:确保可以从PowerShell终端运行pwsh.exe。如果失败,可能需要升级PowerShell
<details open> <summary>对于Linux和macOS用户</summary>
/bin/bash <(curl -fsSL https://aka.ms/azure-ai-travel-agents-preview)
</details> <br> <details> <summary>对于Windows用户</summary>
iex "& { $(irm https://aka.ms/azure-ai-travel-agents-preview-win) }"
</details> <br>

成本估算

在Azure中配置资源时,要考虑运行应用程序的成本。AI旅行代理样本使用了多个Azure服务,成本会根据您的使用和配置而有所不同。

定价因地区和使用情况而异,因此无法预测确切的成本。 然而,您可以使用Azure定价计算器来估算以下资源的成本。

  • Azure容器应用:消费计划,前2M次执行免费。按每次执行和使用的内存收费。定价
  • Azure容器注册表:前2GB存储免费。按存储的每GB和传输的每GB数据收费。定价
  • Azure OpenAI:标准层,GPT模型。按使用的每1M令牌收费,且每次查询至少使用1K令牌。定价
  • Azure Monitor:前5GB数据摄入免费。之后按每GB摄入收费。定价

[!IMPORTANT] 为了避免不必要的费用,请记得在不再使用时关闭应用程序, 可以通过删除门户中的资源组或运行azd down --purge(见清理)。

快速将样本部署到Azure

  1. 打开终端并导航到项目的根目录。
  2. 通过运行azd auth login进行Azure身份验证。
  3. 运行azd up将应用程序部署到Azure。这将配置Azure资源,部署此样本,包括所有容器,并设置必要的配置。
    • 您将被提示选择资源的基础位置。如果您不确定选择哪个位置,请选择swedencentral
    • 默认情况下,OpenAI资源将部署到swedencentral。您可以通过azd env set AZURE_LOCATION <location>设置不同的位置。目前只接受短名单的位置。该位置列表基于OpenAI模型可用性表,可能会随着可用性的变化而过时。

部署过程将花费几分钟。完成后,您将在终端中看到Web应用的URL。

<div align="center"> <img src="./docs/azd-up.png" alt="azd up命令结果截图" width="600px" /> </div>

现在,您可以在浏览器中打开Web应用并与机器人开始聊天。

清理

要清除此样本创建的所有Azure资源:

  1. 运行azd down --purge
  2. 当询问是否确定继续时,输入y

资源组和所有资源将被删除。

高级设置

要以更高级的本地设置运行应用程序或部署到Azure,请参阅高级设置文档中的故障排除指南。这包括设置Azure容器应用环境、使用本地LLM提供商、配置服务以及将应用程序部署到Azure。

贡献

我们欢迎对AI旅行代理项目做出贡献!如果您有建议、错误修复或新功能,请随时提交拉取请求。有关更多信息,请参阅CONTRIBUTING.md文件。

加入社区

我们鼓励您加入我们的Microsoft Foundry开发者社区,分享您的经验、提问并获得支持:

<div align="center"> 《加入我们的Discord》 <img src="./docs/ai-foundry-developer-community-cta.png" alt="加入我们的Discord" width="1000px" /> </div>