当前位置: 首页 > wzjs >正文

网站程序 制作个人做网站要注意什么条件

网站程序 制作,个人做网站要注意什么条件,wordpress 修改网址导航,百度移动应用目录 一、前言二、什么是 Tool Calling?三、項目示例1. 创建工具 Bean2. 启动配置3. 注入并使用 ToolCallingChatClient4. 发起调用 四、背后机制解析1. 自动生成 Function Schema2. 调用流程 五、进阶集成:多轮示例 六、总结七、参考 一、前言 LLM&…

在这里插入图片描述

目录

  • 一、前言
  • 二、什么是 Tool Calling?
  • 三、項目示例
    • 1. 创建工具 Bean
    • 2. 启动配置
    • 3. 注入并使用 ToolCallingChatClient
    • 4. 发起调用
  • 四、背后机制解析
    • 1. 自动生成 Function Schema
    • 2. 调用流程
  • 五、进阶集成:
    • 多轮示例
  • 六、总结
  • 七、参考


一、前言

LLM(大语言模型)不只是聊天工具,而是可以调用后端服务、控制系统行为的智能体核心。

Spring AI 借助 Tool Specification 机制与函数调用能力,让 Java Bean 中的函数变成 LLM 可调的“工具”。

本篇将带你掌握:

  • 如何声明 Java 方法为可调用 Tool
  • 如何注册工具并被 LLM 自动发现
  • 如何结合上下文与多轮调用,构建智能任务执行系统

二、什么是 Tool Calling?

Tool Calling 是指:

LLM 在对话过程中,自动选择调用某些外部工具(函数、API、数据库查询等),辅助完成任务。

在 Spring AI 中,只需使用 Spring Boot 3.4+ 与 spring-ai-openai-spring-boot-starter,就能快速构建支持 Tool Calling 的服务。

三、項目示例

这里我们实战构建 IT 助手 Agent

<project xmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><groupId>com.example</groupId><artifactId>spring-ai-tool-calling-demo</artifactId><version>1.0.0</version><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.3</version></parent><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository></repositories><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai</artifactId><version>1.0.0-SNAPSHOT</version></dependency></dependencies>
</project>

1. 创建工具 Bean

package com.example.toolai;import org.springframework.ai.function.annotation.AiFunction;
import org.springframework.ai.function.annotation.AiParam;
import org.springframework.stereotype.Component;@Component
public class ToolFunctions {@AiFunctionpublic Integer add(@AiParam("a") Integer a, @AiParam("b") Integer b) {return a + b;}@AiFunctionpublic String weather(@AiParam("city") String city) {return city + ": 30°C 晴天";}
}

2. 启动配置

application.yml 中加入配置:

spring:ai:openai:api-key: sk-xxxchat:options:model: gpt-4o

3. 注入并使用 ToolCallingChatClient

@Autowired
ToolFunctions tools;@Autowired
OpenAiChatClient baseClient;FunctionCallingChatClient chatClient = new FunctionCallingChatClient(baseClient, List.of(tools));

4. 发起调用


package com.example.toolai;import org.springframework.ai.chat.client.*;
import org.springframework.ai.chat.memory.*;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.Bean;
import java.util.List;@SpringBootApplication
public class ToolCallingApp {public static void main(String[] args) {SpringApplication.run(ToolCallingApp.class, args);}@Beanpublic CommandLineRunner run(OpenAiChatClient baseClient, ToolFunctions tool, ServerOps ops) {return args -> {ChatMemory memory = new InMemoryChatMemory("session-001");FunctionCallingChatClient chatClient = new FunctionCallingChatClient(baseClient, List.of(tool, ops), memory);String userInput = "请问北京的天气是多少度?";ChatResponse response = chatClient.call(userInput);System.out.println("🧠 Response: " + response.getResult().getOutput().getContent());userInput = "那我明天适合跑步吗?";response = chatClient.call(userInput);System.out.println("🧠 Response: " + response.getResult().getOutput().getContent());userInput = "重启一下 CRM 服务";response = chatClient.call(userInput);System.out.println("🧠 Response: " + response.getResult().getOutput().getContent());};}
}

LLM 会自动根据描述调用 weather(city="北京")


四、背后机制解析

1. 自动生成 Function Schema

每个 @AiFunction 都会自动转换为 JSON 格式的 OpenAI 工具定义:

{"type": "function","function": {"name": "add","parameters": {"type": "object","properties": {"a": {"type": "integer"},"b": {"type": "integer"}},"required": ["a", "b"]}}
}

2. 调用流程

在这里插入图片描述


五、进阶集成:

可以结合 Memory 实现上下文追踪

Spring AI 提供 ChatMemory 接口,可保存历史上下文,如下例所示。

ChatMemory memory = new InMemoryChatMemory("session-001");
FunctionCallingChatClient chatClient = new FunctionCallingChatClient(baseClient, List.of(tools), memory);

多轮示例

用户:北京天气如何?

用户:那我明天适合跑步吗?(使用上轮结果)


六、总结

通过 Tool Calling,Spring AI 让你只用一个注解,就能将本地方法暴露为 LLM 的智能工具。

企业可以基于此快速构建数据接口封装、流程驱动服务、自动化运维系统等。

七、参考

《Java驱动AI革命:Spring AI八篇进阶指南——从架构基础到企业级智能系统实战》
在这里插入图片描述


文章转载自:

http://1mk5F32I.gfjgq.cn
http://KDWVZB34.gfjgq.cn
http://IMAm1ZhI.gfjgq.cn
http://ROWric00.gfjgq.cn
http://tNAo4SXu.gfjgq.cn
http://FNgrjyhp.gfjgq.cn
http://q4OFn6L9.gfjgq.cn
http://EbSVifn4.gfjgq.cn
http://nSzAqfxJ.gfjgq.cn
http://OFHG0N5L.gfjgq.cn
http://YzqXe5Hi.gfjgq.cn
http://VQfUEGfZ.gfjgq.cn
http://7KkxgmhT.gfjgq.cn
http://B67X5PlR.gfjgq.cn
http://osEdFe6s.gfjgq.cn
http://HIUJhHpr.gfjgq.cn
http://FSCL0Cfh.gfjgq.cn
http://vhsCbTmg.gfjgq.cn
http://DKaXxUmE.gfjgq.cn
http://r9eE9Gvw.gfjgq.cn
http://HnptoOrb.gfjgq.cn
http://iZFBNCB6.gfjgq.cn
http://R0L0RF0c.gfjgq.cn
http://cB5toeGE.gfjgq.cn
http://rfWTHMzc.gfjgq.cn
http://AUyKMMOw.gfjgq.cn
http://xWpMuTPQ.gfjgq.cn
http://eCBNkEje.gfjgq.cn
http://s0Wh9Chq.gfjgq.cn
http://5RDsxrRs.gfjgq.cn
http://www.dtcms.com/wzjs/609711.html

相关文章:

  • jsp网站开发的环境配置高德地图开发平台
  • 做网站能挣钱不360建筑网个人信息怎么改
  • 做个网站要钱吗wordpress模板网站模板
  • 各大网站搜索引擎入口WordPress自己写主题
  • 中国建设银行 英文网站广告设计与制作工资一般多少
  • 旅游投资公司网站建设ppt模板百度做免费推广的步骤
  • 成都开发网站建设广告创意设计竞赛
  • 做论坛网站要多少配置的服务器网站建设群发广告词
  • 大连凯杰建设有限公司网站在网站上做教学直播平台多少钱
  • 网站开发与网页制作难不难网站主题和风格
  • 北京市网站公司wordpress首页文章轮播
  • 南京做网站的公司排名安装wordpress教程
  • 用小程序做视频网站微信小程序需要服务器吗
  • 新手做网页做那个网站简单网页微信版网址
  • 住房和城乡建设部网站进不去网站怎么做图片转链
  • 在家做网站或ps挣钱接活中国企业网
  • 省市网站建设考核标准要求东莞模板建站平台
  • 企业网站建设应遵守的原则页面设置怎么设置
  • 建网站要备案公司如何建设一个网站
  • 网站开发要点做视频网站要多大的主机
  • 石家庄做外贸网站建设手机端企业网站源码
  • 苏州网络公司建网站头条广告入口
  • 励志网站源码手机网站按那个尺寸做
  • 商品推广软文范例300字产品的seo是什么意思
  • 站长之家0seo站群系统
  • 国外做化工产品的网站凡科建站做的网站有什么短板
  • 免费源码资源源码站诺德中心做网站
  • 建设公司的网站首页宝安区城市建设局网站
  • wordpress制作小说网站模板下载wordpress获得留言
  • 网站模板类型社交网站开发意义