AI在线 AI在线

借助Spring AI,快速为AI Agent搭建API网关

作者:
2025-04-16 01:00
本文教大家如何实现一个API网关,以便AI代理(AI Agents)能够访问REST API服务。 一、工具与 AI 代理:大语言模型的得力助手 工具或函数是大语言模型(LLM)用于从提示中识别函数调用的机制。 大语言模型擅长生成自然语言文本,这对人类而言十分友好,但机器需要的是特定答案,二者需求不同。

本文教大家如何实现一个API网关,以便AI代理(AI Agents)能够访问REST API服务。

图片

一、工具与 AI 代理:大语言模型的得力助手 

工具或函数是大语言模型(LLM)用于从提示中识别函数调用的机制。

大语言模型擅长生成自然语言文本,这对人类而言十分友好,但机器需要的是特定答案,二者需求不同。此时,工具就发挥了重要作用,它能协助大语言模型返回函数调用描述,而非人类化的文本。目前,多数模型都支持工具的使用,在实际运用时,需将函数模式融入提示中,示例如下:

复制
{
    "messages": [
        {
            "role": "user",
            "content": "Give me hotels in Madrid"
        }
    ],
    "tools": [
        {
            "type": "function",
            "function": {
                "name": "getHotelsByDestination",
                "description": "Get hotels for a given destination",
                "parameters": {
                    "type": "object",
                    "properties": {
                        "destination": {
                            "type": "string",
                            "description": "Destination where hotels are located e.g. Madrid, Paris"
                        }
                    }
                }
            }
        }
    ]
}

工具的主要使用者是AI代理,它们被赋予一组工具,通过执行相应动作来完成任务。

二、基于 OpenAPI 规范,定义 AI 工具 

OpenAPI 是专门用于描述 Web 服务或 REST API 服务所暴露操作的规范。想要让 AI 代理能够调用 Web 服务,只需把 API 的 OpenAPI 规范与 AI 工具进行映射即可。

图片

三、使用Spring AI搭建 API 网关 

这里使用Spring AI提供的库,用Java实现一个API网关,将注册的Web服务映射到人工智能工具。以下图表展示了API网关的主要用例:服务注册和请求处理。

图片

从本质上讲,API 网关可以看作是一个 AI 代理,它借助网关中注册的 REST API 服务来完成各类任务。

3.1 使用Spring AI实现工具功能

Spring AI支持调用类方法或函数的工具,但由于我们需要调用REST API,所以需要实现一种新的工具类型。我们将其命名为 OpenAPIToolCallback,它会实现 Spring AI 规定的 ToolCallback 接口。OpenAPIToolCallback 承担以下职责:

  • 将OpenAPI规范映射到工具定义。
  • 向大语言模型提供函数定义。
  • 使用大语言模型确定的输入调用REST API。

3.2 使用Spring AI实现 AI 代理

执行任务的代理采用简单的 ReAct 代理,它会不断调用 REST API,直至任务完成。这个代理会配备一组依据已注册 REST API 服务的 OpenAPI 规范定义的工具。

3.3 配置MCP协议

Spring AI实现了MCP协议,并提供了Spring Boot启动器来设置MCP服务器。API网关将使用Spring的MCP Server Boot Starter来暴露MCP协议,MCP服务器将利用已注册的REST API服务来处理请求 —— 记住,API会与OpenAPIToolCallback类型的工具进行映射。

四、API 网关使用指南 

  1. 注册服务:在 application.yaml 文件中配置 REST API 服务的 URL。网关会根据服务的 OpenAPI 规范,为每个操作注册对应的工具。
复制
formentor:
  ai:
    services:
      # 用于预订酒店的“booking”服务
      - "http://localhost:8080/v3/api-docs.yaml"
      # 用于获取酒店信息的“product”服务
      - "http://localhost:8082/v3/api-docs.yaml"

2.启动大语言模型:目前,API网关支持由Ollama服务器提供的模型,也可以使用云服务提供商的模型。

复制
ollama serve
# 拉取llama3.1:8b模型(如有必要)
ollama pull llama3.1:8b

3.启动API网关:作为Spring Boot服务,可以使用Maven的spring-boot插件启动。

复制
cd ai-api-gateway
mvn spring-boot:run

4.向API网关发送请求

复制
# 获取马德里的可用酒店
curl --location 'http://localhost:7001/invoke?m=Give me hotels in Madrid'
# 获取2025年8月5日在卡斯蒂利亚酒店入住5晚的价格
curl --location 'http://localhost:7001/invoke?m=How much does it cost 5 night in Hotel Castilla for 2025/08/05'

通过上述步骤,我们成功构建了一个能让AI代理访问REST API服务的API网关。从工具与AI代理的协作原理,到OpenAPI规范的运用、Spring AI的技术实现,再到实际的使用方法,每个环节紧密相连。

希望本文能为大家在相关领域的探索提供有益参考,助力大家在AI与API融合的实践中取得更多成果,挖掘更多应用可能。

相关标签:

相关资讯

如何使用 Gemini API 构建视频字幕生成器

译者 | 崔皓审校 | 重楼开篇在本教程中,你将使用 Google 的 Gemini API 构建人工智能驱动的字幕生成器。 我们将创建一个名为“AI-Subtitle-Generator”的项目,该项目的前端使用 React,后端使用 Express。 准备好了吗?
12/23/2024 8:00:00 AM
崔皓

AI创业踩坑!YC合伙人警告:“仅仅在业务中调用OpenAI API,并不会改变创业公司的命运!”,建议创始人来湾区定居

编辑 | 伊风出品 | 51CTO技术栈(微信号:blog51cto)“创业者们仍然需要做的基本工作,才能让技术为客户创造价值。 如果你不做这些,仅仅把你的想法转向调用OpenAI的东西,并不会改变你作为创业公司的命运。 ”AI赋予了一个人进化成“超级个体”的机会,也让许多“一人公司”等小团队实现高收入神话。
2/3/2025 1:18:01 PM
伊风

在 TKE 上部署 AI 大模型(以DeepSeek-R1为例)

概述本文介绍如何在 TKE 上部署 AI 大模型,以 DeepSeek-R1 为例。 部署思路使用 Ollama 运行 AI 大模型,再通过 OpenWebUI 暴露一个聊天交互的界面,OpenWebUI 会调用 ollama 提供的 API 来与大模型交互。 Ollama 与 OpenWebUI 介绍Ollama 是一个运行大模型的工具,可以看成是大模型领域的 Docker,可以下载所需的大模型并暴露 API。
2/6/2025 10:18:45 AM
I am roc roc