手把手教你在 Spring 中使用 AI 对接 ChatGPT

推荐一个AI网站,免费使用豆包AI模型,快去白嫖👉海鲸AI

一、前言

在人工智能领域,大模型的应用越来越广泛。Spring AI 作为一个强大的工具,为开发人员提供了便捷的方式来对接和使用各种大模型。本文将详细介绍如何在 Spring 项目中对接 ChatGPT,并提供相关的代码示例。

二、Spring AI 介绍

2.1 什么是 Spring AI

Spring AI 是 Spring 框架的扩展,提供了对人工智能和机器学习的支持。它简化了大模型的集成和使用,使开发人员能够更轻松地构建智能应用。

2.2 Spring AI 的特点

  • 易于集成:通过简单的配置和依赖管理,轻松将大模型集成到 Spring 项目中。
  • 多样性支持:支持多种大模型,如聊天模型、文本到图像模型、音频转文本等。
  • 灵活的配置:可以根据需求进行灵活的配置,适应不同的应用场景。
  • 高效的性能:优化了模型的执行效率,提升应用的性能。

2.3 Spring AI 为开发带来的便利

  • 减少代码量:无需编写复杂的模型集成代码,节省开发时间。
  • 提高开发效率:借助 Spring 的强大功能,快速构建智能应用。
  • 易于维护:统一的配置和管理方式,使项目更易于维护。

2.4 Spring AI 应用领域

2.4.1 聊天模型

使用聊天模型与用户进行自然语言交互,提供智能客服、聊天机器人等功能。

2.4.2 文本到图像模型

将文本描述转换为图像,实现图像生成、设计等应用。

2.4.3 音频转文本

将音频文件转换为文本,用于语音识别、语音助手等场景。

2.4.4 嵌入大模型使用

将大模型嵌入到其他应用中,提供智能分析、预测等功能。

2.4.5 矢量数据库支持

与矢量数据库结合,实现高效的相似性搜索和推荐系统。

2.4.6 用于数据工程 ETL 框架

在数据工程中,使用 Spring AI 进行数据预处理、特征提取等操作。

三、Spring AI 对接 ChatGPT

3.1 前置准备

  • 注册 OpenAI 账号并获取 API 密钥。

3.2 添加依赖

在项目的 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>com.github.basereality</groupId>
    <artifactId>spring-ai-core</artifactId>
    <version>0.1.0</version>
</dependency>
<dependency>
    <groupId>com.github.basereality</groupId>
    <artifactId>spring-ai-openai</artifactId>
    <version>0.1.0</version>
</dependency>

3.3 接入流程

3.3.1 配置文件

application.properties 文件中添加以下配置:

spring.ai.openai.api-key=your-api-key

3.3.2 增加一个测试接口

创建一个控制器类,添加一个测试接口:

@RestController
public class ChatController {

    @Autowired
    private OpenAiChatClient openAiChatClient;

    @GetMapping("/chat")
    public String chat(String message) {
        return openAiChatClient.call(message);
    }
}

3.3.3 接口测试

启动项目,访问 http://localhost:8080/chat?message=Hello,将得到 ChatGPT 的回复。

3.4 OpenAiChatClient 使用

3.4.1 call 使用 Prompt 传递参数方式 1

String response = openAiChatClient.call(new Prompt("Hello"));

3.4.2 call 使用 Prompt 传递参数 2

Prompt prompt = new Prompt("Hello");
prompt.addMessage(new Message("user", "How are you?"));
String response = openAiChatClient.call(prompt);

3.5 OpenAiImageClient 使用

String response = openAiImageClient.generateImage("A cat sitting on a mat");

3.5.1 其他参数传递使用情况

可以通过 ImageRequest 对象设置其他参数,如图片大小、质量等。

3.6 OpenAiAudioTranscriptionClient 使用

String audioPath = "/path/to/audio/file";
String response = openAiAudioTranscriptionClient.transcribe(audioPath);

3.7 OpenAiAudioSpeechClient 使用

String text = "Hello, world!";
String audioPath = "/path/to/audio/file";
openAiAudioSpeechClient.synthesize(text, audioPath);

四、Spring AI 对接 Ollama

4.1 Ollama 介绍

Ollama 是一个开源的大语言模型,支持多种模型的部署和使用。

4.2 Ollama 本地部署

4.2.1 下载安装包

前往 Ollama 官方网站下载适合你操作系统的安装包。

4.2.2 执行安装

根据安装包的指引进行安装。

4.2.3 Ollama 部署千问大模型

详细步骤可参考 Ollama 官方文档。

4.2.4 补充说明

根据实际情况进行配置和调整。

4.3 Spring Ai 接入 Ollama

4.3.1 引入 Ollama 依赖

在项目的 pom.xml 文件中添加以下依赖:

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
    <groupId>com.github.basereality</groupId>
    <artifactId>spring-ai-core</artifactId>
    <version>0.1.0</version>
</dependency>
<dependency>
    <groupId>com.github.basereality</groupId>
    <artifactId>spring-ai-ollama</artifactId>
    <version>0.1.0</version>
</dependency>

4.3.2 添加配置文件

application.properties 文件中添加以下配置:

spring.ai.ollama.url=http://localhost:11434

4.3.3 使用 Ollama 聊天 api

@RestController
public class ChatController {

    @Autowired
    private OllamaChatClient ollamaChatClient;

    @GetMapping("/ollama/chat")
    public String chat(String message) {
        return ollamaChatClient.call(message);
    }
}

五、写在文末

通过以上步骤,我们成功地在 Spring 项目中对接了 ChatGPT 和 Ollama 大模型。在实际应用中,可以根据具体需求选择合适的模型,并结合 Spring AI 的强大功能,构建出更加智能和高效的应用。

希望本文能够帮助你理解和掌握 Spring AI 对接大模型的方法。如果你有任何疑问或建议,请随时留言。

以上代码示例仅为演示目的,实际使用中请根据自己的需求进行相应的修改和调整。同时,确保在使用大模型时遵守相关的法律和规定,并注意保护用户的隐私和数据安全。

  • 24
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值