自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

借助Spring AI,快速為AI Agent搭建API網(wǎng)關(guān)

人工智能
希望本文能為大家在相關(guān)領(lǐng)域的探索提供有益參考,助力大家在AI與API融合的實踐中取得更多成果,挖掘更多應(yīng)用可能。

本文教大家如何實現(xiàn)一個API網(wǎng)關(guān),以便AI代理(AI Agents)能夠訪問REST API服務(wù)。

圖片圖片

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

工具或函數(shù)是大語言模型(LLM)用于從提示中識別函數(shù)調(diào)用的機(jī)制。

大語言模型擅長生成自然語言文本,這對人類而言十分友好,但機(jī)器需要的是特定答案,二者需求不同。此時,工具就發(fā)揮了重要作用,它能協(xié)助大語言模型返回函數(shù)調(diào)用描述,而非人類化的文本。目前,多數(shù)模型都支持工具的使用,在實際運用時,需將函數(shù)模式融入提示中,示例如下:

{
    "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代理,它們被賦予一組工具,通過執(zhí)行相應(yīng)動作來完成任務(wù)。

二、基于 OpenAPI 規(guī)范,定義 AI 工具 

OpenAPI 是專門用于描述 Web 服務(wù)或 REST API 服務(wù)所暴露操作的規(guī)范。想要讓 AI 代理能夠調(diào)用 Web 服務(wù),只需把 API 的 OpenAPI 規(guī)范與 AI 工具進(jìn)行映射即可。

圖片

三、使用Spring AI搭建 API 網(wǎng)關(guān) 

這里使用Spring AI提供的庫,用Java實現(xiàn)一個API網(wǎng)關(guān),將注冊的Web服務(wù)映射到人工智能工具。以下圖表展示了API網(wǎng)關(guān)的主要用例:服務(wù)注冊和請求處理。

圖片圖片

從本質(zhì)上講,API 網(wǎng)關(guān)可以看作是一個 AI 代理,它借助網(wǎng)關(guān)中注冊的 REST API 服務(wù)來完成各類任務(wù)。

3.1 使用Spring AI實現(xiàn)工具功能

Spring AI支持調(diào)用類方法或函數(shù)的工具,但由于我們需要調(diào)用REST API,所以需要實現(xiàn)一種新的工具類型。我們將其命名為 OpenAPIToolCallback,它會實現(xiàn) Spring AI 規(guī)定的 ToolCallback 接口。OpenAPIToolCallback 承擔(dān)以下職責(zé):

  • 將OpenAPI規(guī)范映射到工具定義。
  • 向大語言模型提供函數(shù)定義。
  • 使用大語言模型確定的輸入調(diào)用REST API。

3.2 使用Spring AI實現(xiàn) AI 代理

執(zhí)行任務(wù)的代理采用簡單的 ReAct 代理,它會不斷調(diào)用 REST API,直至任務(wù)完成。這個代理會配備一組依據(jù)已注冊 REST API 服務(wù)的 OpenAPI 規(guī)范定義的工具。

3.3 配置MCP協(xié)議

Spring AI實現(xiàn)了MCP協(xié)議,并提供了Spring Boot啟動器來設(shè)置MCP服務(wù)器。API網(wǎng)關(guān)將使用Spring的MCP Server Boot Starter來暴露MCP協(xié)議,MCP服務(wù)器將利用已注冊的REST API服務(wù)來處理請求 —— 記住,API會與OpenAPIToolCallback類型的工具進(jìn)行映射。

四、API 網(wǎng)關(guān)使用指南 

  1. 注冊服務(wù):在 application.yaml 文件中配置 REST API 服務(wù)的 URL。網(wǎng)關(guān)會根據(jù)服務(wù)的 OpenAPI 規(guī)范,為每個操作注冊對應(yīng)的工具。
formentor:
  ai:
    services:
      # 用于預(yù)訂酒店的“booking”服務(wù)
      - "http://localhost:8080/v3/api-docs.yaml"
      # 用于獲取酒店信息的“product”服務(wù)
      - "http://localhost:8082/v3/api-docs.yaml"

2.啟動大語言模型:目前,API網(wǎng)關(guān)支持由Ollama服務(wù)器提供的模型,也可以使用云服務(wù)提供商的模型。

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

3.啟動API網(wǎng)關(guān):作為Spring Boot服務(wù),可以使用Maven的spring-boot插件啟動。

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

4.向API網(wǎng)關(guān)發(fā)送請求

# 獲取馬德里的可用酒店
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'

通過上述步驟,我們成功構(gòu)建了一個能讓AI代理訪問REST API服務(wù)的API網(wǎng)關(guān)。從工具與AI代理的協(xié)作原理,到OpenAPI規(guī)范的運用、Spring AI的技術(shù)實現(xiàn),再到實際的使用方法,每個環(huán)節(jié)緊密相連。

希望本文能為大家在相關(guān)領(lǐng)域的探索提供有益參考,助力大家在AI與API融合的實踐中取得更多成果,挖掘更多應(yīng)用可能。

責(zé)任編輯:武曉燕 來源: Java學(xué)研大本營
相關(guān)推薦

2024-11-05 16:47:27

2025-02-03 16:58:39

2024-12-23 06:10:00

RustRigAI Agent

2024-12-10 09:15:39

2025-03-31 08:35:00

數(shù)據(jù)AI工具

2023-06-19 09:01:17

2022-04-07 14:41:27

5G人工智能工業(yè) 4.0

2024-08-20 07:47:12

AI零代碼網(wǎng)關(guān)

2024-11-20 11:47:01

2022-09-09 16:12:53

人工智能機(jī)器學(xué)習(xí)autoML

2024-11-05 09:32:47

2025-03-05 18:45:26

RAG人工智能專業(yè)化

2024-03-06 14:57:00

AI比賽

2024-09-20 11:30:14

2025-01-07 15:07:13

2024-07-31 15:50:38

2024-07-30 11:21:17

TTSAIAgent

2025-03-18 07:21:07

點贊
收藏

51CTO技術(shù)棧公眾號