4.Spring-Ai入门案例

Spring-AI 入门案例

1.创建工程

创建一个spring boot工程,版本3.5.13,jdk版本为17。

选择依赖:web、mysql、ollama

pom文件如下

xml 复制代码
<?xml version="1.0" encoding="UTF-8"?>
<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 https://maven.apache.org/xsd/maven-4.0.0.xsd">
	<modelVersion>4.0.0</modelVersion>
	<parent>
		<groupId>org.springframework.boot</groupId>
		<artifactId>spring-boot-starter-parent</artifactId>
		<version>3.5.13</version>
		<relativePath/> <!-- lookup parent from repository -->
	</parent>
	<groupId>com.example</groupId>
	<artifactId>spring-ai-demo</artifactId>
	<version>0.0.1-SNAPSHOT</version>
	<properties>
		<java.version>17</java.version>
		<spring-ai.version>1.1.4</spring-ai.version>
	</properties>
	<dependencies>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-web</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.ai</groupId>
			<artifactId>spring-ai-starter-model-ollama</artifactId>
		</dependency>

		<dependency>
			<groupId>com.mysql</groupId>
			<artifactId>mysql-connector-j</artifactId>
			<scope>runtime</scope>
		</dependency>
		<dependency>
			<groupId>org.projectlombok</groupId>
			<artifactId>lombok</artifactId>
		</dependency>
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-test</artifactId>
			<scope>test</scope>
		</dependency>
	</dependencies>
	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>org.springframework.ai</groupId>
				<artifactId>spring-ai-bom</artifactId>
				<version>${spring-ai.version}</version>
				<type>pom</type>
				<scope>import</scope>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<build>
		<plugins>
			<plugin>
				<groupId>org.springframework.boot</groupId>
				<artifactId>spring-boot-maven-plugin</artifactId>
			</plugin>
		</plugins>
	</build>

</project>

2.application配置文件

配置文件中,指定大模型的地址和名称。

因为是调用本地模型,不需要api_key。

yaml 复制代码
server:
  port: 8081
spring:
  application:
    name: spring-ai-demo
  ai:
    ollama:
      base-url: http://localhost:11434
      chat:
        model: deepseek-r1:7b

3. 配置访问大模型的客户端

添加如下配置类

java 复制代码
@Configuration
public class CommonConfig {

    @Bean
    public ChatClient chatClient(OllamaChatModel model){
        return ChatClient.builder(model).defaultSystem("你的名字叫丽莎,请以丽莎的身份和语气回答问题。").build();
    }
}

4. 测试访问

以下案例中,调用方式不同。

java 复制代码
@RestController
@RequestMapping("/ai")
@RequiredArgsConstructor
public class ChatController {


    private final ChatClient chatClient;

    @GetMapping("/chat")
    public String chat(String prompt){
        return chatClient.prompt().user(prompt).call().content();
    }

    /**
     * 流式输出(一个字一个字的输出,最常用)
     * @param prompt
     * @return
     */
    @GetMapping(value = "/chat/stream", produces = "text/html;charset=utf-8")
    public Flux<String> chatStream(String prompt){
        return chatClient.prompt().user(prompt).stream().content();
    }
}

Eage浏览器访问,和google不太一样

应该不是浏览器的差异,而是每次调用接口,输出结果都不一样。

相关推荐
白日放歌须纵久1 分钟前
Agent 工具契约测试工程:适配层隔离与 Mock 回放,让接口变更不再静默击穿你的工作流
人工智能
火山引擎开发者社区2 分钟前
一句话,做出一个应用:豆包背后的数据库底座是什么?
人工智能
小天源4 分钟前
智叟云集政策监测技术方案——原文解析、证据提取与可核验摘要
java·服务器·数据库
humors2214 分钟前
如何识别网络假信息
网络·人工智能·ai·互联网·识别·谣言·假消息
凤山老林4 分钟前
从零搭建企业 OAuth2 授权中心:Spring Boot 集成 Spring Authorization Server 与
数据库·spring boot·spring
技灵AI5 分钟前
AI 奶茶广告分镜提示词怎么写:从参考图到芒果奶茶广告片(附全文)
人工智能·prompt·aigc
阿乔外贸日记8 分钟前
美国买家资产包装套路与应收款尽调框架,580万应收账款案例解析
大数据·服务器·人工智能·microsoft·云计算
面壁的熊猫9 分钟前
Jev-LiteMAS 论文解读:把多智能体工作流里的「决策」与「生成」拆开
人工智能
yuzhiboyouye10 分钟前
我现在得后端状况以及需要做的
java
小羊没烦恼!12 分钟前
在.net中读写config文件的各种方法
java·大数据·运维·服务器·前端·数据库·oracle