成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

超實用!用FunctionCall實現快遞AI助手

人工智能 其他數據庫
昨天晚上直播,我們用 RAG(Retrieval-Augmented Generation,檢索增強生成)實現了數據庫 AI 助手,今天我們準備換一個技術使用 function call 來實現快遞 AI 助手。

昨天晚上直播,我們用 RAG(Retrieval-Augmented Generation,檢索增強生成)實現了數據庫 AI 助手,今天我們準備換一個技術使用 function call 來實現快遞 AI 助手。

執行效果

快遞 AI 助手的業務邏輯很清晰,就是我通過 LLM 大語言模型的對話來查詢我的快遞詳情,例如,我問 AI 我有幾個“運送中”的快遞,他把這些快遞查詢并展示出來,效果如下圖所示:

圖片圖片

什么是 function call?

定義: Function Call(也稱為 Tool Call)它允許大模型與一組 API 或工具進行交互,從而增強其功能。

也就是說 Function Call 和 RAG、MCP 等類似都是用于增強 AI 能力邊界的

function call 執行流程

執行流程如下:

圖片圖片

其中,Tool 既為 Function Call。

當然如果你上圖看的不是很懂的話,也可以參考阿里云提供的 function call 的工作流程:

快遞 AI 助手實現

具體實現步驟:

  1. 添加大模型依賴
  2. 配置大模型參數
  3. 創建 function call
  4. 調用 function call 實現快遞查詢

接下來,我們一步步來看,我們以阿里云的百煉(通義千問)大模型對接為例。

1.添加大模型依賴

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-starter-model-openai</artifactId>
</dependency>

2.配置大模型參數

spring:
  ai:
    openai:
      base-url: https://dashscope.aliyuncs.com/compatible-mode/
      api-key: ${ALIYUN-AK}
      chat:
        options:
          model: deepseek-v3

3.創建 function call

這里就不連接數據庫查詢快遞信息了,生成級別需要連接數據庫,這里演示效果,構建測試數據即可,如下代碼所示:

import org.springframework.ai.tool.annotation.Tool;

import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;

publicclass ExpressService {

    @Tool(description = "用于查詢我的快遞")
    public List<Express> getExpress(String state) {
        // 生成測試數據
        List<Express> data = getData();
        // 根據狀態過濾(如果state為null或空則返回全部)
        return state == null || state.isEmpty()
                ? data
                : data.stream()
                .filter(e -> e.state().equalsIgnoreCase(state))
                .collect(Collectors.toList());
    }

    /**
     * 生成測試快遞數據
     */
    private List<Express> getData() {
        List<Express> data = new ArrayList<>();
        LocalDateTime now = LocalDateTime.now();
        data.add(new Express(1001L, "北京", "西安", now.minusDays(12), "已簽收"));
        data.add(new Express(1002L, "廣州", "西安", now.minusDays(12), "已簽收"));
        data.add(new Express(1003L, "杭州", "西安", now.minusDays(3), "運送中"));
        data.add(new Express(1004L, "深圳", "西安", now.minusDays(3), "運送中"));
        data.add(new Express(1005L, "南京", "西安", now.minusDays(1), "待發貨"));
        return data;
    }


    /**
     * 快遞類
     *
     * @param id
     * @param from
     * @param to
     * @param createtime
     * @param state
     */
    record Express(long id, String from, String to,
                   LocalDateTime createtime, String state) {
    }
}

4.調用 function call

調用大模型可以使用 ChatModel 和 ChatClient,這里使用 ChatClient 調用:

@RequestMapping("/tool")
public Flux<String> tool(@RequestParam("msg") String msg) {
    return chatClient.prompt(msg)
            .tools(new ExpressService(),
                    new DateTimeTools())
            .stream().content();
}

最終執行效果如下:

圖片圖片

小結

大模型應用開發是以后程序開發的主流方向,他也會巔峰以往的開發形式,早早掌握大模型的開發知識,對于后期漲薪或找工作都有巨大的幫助。程序員群體注定是一個活到老學到老的群體,因為學習的本質在于擴展自己的能力邊界,讓自己變得更值錢,所以各位動起來,讓我們一起擁抱這場 AI 盛宴吧。

責任編輯:武曉燕 來源: 磊哥和Java
相關推薦

2024-07-11 15:26:23

2019-05-21 15:28:00

Tomcat腳本權限

2023-11-02 10:14:50

TinykeysWeb應用

2024-08-12 08:41:40

2023-05-05 17:11:11

前端Mousetrap方式

2023-08-09 12:21:58

軟件工具AI

2024-11-15 11:30:58

2018-09-27 14:14:36

Infor AI

2024-01-04 15:09:03

蜜蜂AI助手鴻蒙操作系統

2022-05-25 08:21:15

2020-08-31 08:25:06

Python時間模塊開發

2025-06-06 00:00:00

JavaHTTPMCP

2022-03-03 10:49:46

Python自動追蹤代碼

2023-11-09 11:31:43

GitHub開發

2019-01-14 12:28:21

華為云

2025-05-23 10:41:00

2025-04-21 08:13:58

ChatGPTAINLP

2021-02-20 08:55:58

PythonGitHub互聯網

2023-01-29 09:18:14

ScrollendJavaScript事件
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产欧美日韩综合精品一 | 久久精品一 | 亚洲精品视频免费观看 | 九九爱这里只有精品 | 91成人免费看片 | 2一3sex性hd| 久久亚洲天堂 | 一区二区三区四区免费视频 | 日韩成人在线观看 | 在线观看不卡av | 中文字幕日韩一区 | 91大神xh98xh系列全部 | 欧美日韩精品 | 99pao成人国产永久免费视频 | 成人一区精品 | 国内精品视频免费观看 | 亚洲三区在线观看 | 日韩91 | 日韩久久精品 | 久久国产精品一区二区三区 | 成年女人免费v片 | 欧美日韩精品 | 成人毛片视频免费 | 亚洲精品乱码久久久久久蜜桃 | 色本道| 成人在线视频免费观看 | 欧美三区在线观看 | 香蕉视频一区二区 | 国产中文区二幕区2012 | 久久久久国产一区二区三区 | 粉嫩一区二区三区四区公司1 | 中文字幕一区在线观看视频 | 91资源在线 | 91大神xh98xh系列全部 | 午夜男人的天堂 | 色一情一乱一伦一区二区三区 | 国产a级毛片 | 亚洲综合久久久 | 精品一区二区三区在线观看 | 久久精品欧美一区二区三区不卡 | 国内精品久久久久 |