偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

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

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

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

圖片圖片

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

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

大語(yǔ)言模型擅長(zhǎng)生成自然語(yǔ)言文本,這對(duì)人類而言十分友好,但機(jī)器需要的是特定答案,二者需求不同。此時(shí),工具就發(fā)揮了重要作用,它能協(xié)助大語(yǔ)言模型返回函數(shù)調(diào)用描述,而非人類化的文本。目前,多數(shù)模型都支持工具的使用,在實(shí)際運(yùn)用時(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代理,它們被賦予一組工具,通過(guò)執(zhí)行相應(yīng)動(dòng)作來(lái)完成任務(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提供的庫(kù),用Java實(shí)現(xiàn)一個(gè)API網(wǎng)關(guān),將注冊(cè)的Web服務(wù)映射到人工智能工具。以下圖表展示了API網(wǎng)關(guān)的主要用例:服務(wù)注冊(cè)和請(qǐng)求處理。

圖片圖片

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

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

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

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

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

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

3.3 配置MCP協(xié)議

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

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

  1. 注冊(cè)服務(wù):在 application.yaml 文件中配置 REST API 服務(wù)的 URL。網(wǎng)關(guān)會(huì)根據(jù)服務(wù)的 OpenAPI 規(guī)范,為每個(gè)操作注冊(cè)對(duì)應(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.啟動(dòng)大語(yǔ)言模型:目前,API網(wǎng)關(guān)支持由Ollama服務(wù)器提供的模型,也可以使用云服務(wù)提供商的模型。

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

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

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

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

# 獲取馬德里的可用酒店
curl --location 'http://localhost:7001/invoke?m=Give me hotels in Madrid'
# 獲取2025年8月5日在卡斯蒂利亞酒店入住5晚的價(jià)格
curl --location 'http://localhost:7001/invoke?m=How much does it cost 5 night in Hotel Castilla for 2025/08/05'

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

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

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

2024-11-05 16:47:27

2025-09-10 08:03:10

2025-07-11 03:10:00

LLMRAGAI

2025-02-03 16:58:39

2025-05-08 02:10:00

SpringAIAPI

2022-04-07 14:41:27

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

2025-03-31 08:35:00

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

2025-08-04 00:00:00

2024-12-23 06:10:00

RustRigAI Agent

2023-06-19 09:01:17

2024-12-10 09:15:39

2025-07-23 09:21:03

2022-09-09 16:12:53

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

2024-08-20 07:47:12

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

2024-11-20 11:47:01

2025-03-05 18:45:26

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

2025-08-04 02:55:00

AIAgent架構(gòu)

2025-05-09 06:30:52

點(diǎn)贊
收藏

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