最近有小伙伴在使用 mvn 仓库中的 1.0.0-M6 版本时,已经遇到一些兼容性问题和未知异常。本着更好地维护 spring-ai-hunyuan 仓库,我这几天熬夜更新并整理了对 Spring AI 稳定版(即 1.0.0)的支持。

项目源码地址:

https://github.com/StudiousXiaoYu/spring-ai-hunyuan

当前已支持的功能包括:

Chat(支持流式回答与图片理解)

Embedding (文本向量生成)

混元官方的其他能力我也会逐步实现,欢迎更多小伙伴试用并通过 issue 提出反馈。如果一时联系不上我,也可以直接在相关文章下方留言,我会定期查看并及时回复。

如何使用

环境准备

确保你已安装以下工具:

JDK 17+

Maven 3.8+

腾讯云账号 + HunYuan 秘钥(Secret ID / Secret Key)

创建 Spring Boot 项目并集成

在你的 Spring Boot 项目中添加如下依赖(以 pom.xml 为例):

<dependency>
<groupId>io.github.studiousxiaoyu</groupId>
<artifactId>spring-ai-starter-model-hunyuan</artifactId>
<version>1.0.0</version>
</dependency>

配置 HunYuan 参数

在 application.properties 或 application.yml 中添加 HunYuan 认证信息和模型配置:

spring.ai.hunyuan.secret-id=你的-secret-id
spring.ai.hunyuan.secret-key=你的-secret-key
spring.ai.hunyuan.chat.options.model=hunyuan-pro
spring.ai.hunyuan.embedding.options.model=hunyuan-embedding
spring.ai.hunyuan.embedding.options.dimensions=1024

编写测试代码

使用 ChatClient 发起对话

public class HunYuanService {

    private final ChatClient chatClient;

    public HunYuanService(ChatClient chatClient) {
this.chatClient = ChatClient.builder(chatModel).build();
} public String askQuestion(String question) {
return chatClient.prompt()
.user(question)
.call()
.content();
}
}

控制器示例

@RestController
@RequestMapping("/chat")
public class ChatController { private final HunYuanService hunYuanService; public ChatController(HunYuanService hunYuanService) {
this.hunYuanService = hunYuanService;
} @GetMapping("/q")
public String chat(@RequestParam("text") String text) {
return hunYuanService.askQuestion(text);
}
}

启动并测试

启动 Spring Boot 应用,访问:

http://localhost:8080/chat/q?text=你好

你应该能收到来自 HunYuan Pro 模型的回复。

总结

目前默认模型为HunYuan Pro,如果想要使用其他模型,可以自行配置model参数进行调整。如果觉得有所帮助欢迎star~~

如果还有对Spring AI未上手的小伙伴,可以查看我写的demo示例,仓库地址在:https://github.com/StudiousXiaoYu/spring-ai-courses

这个仓库包含了专栏中各个模块的源码,帮助你深入学习每个环节的内容,快速上手 Spring AI。具体的模块包括:

  • 01-course-quickstart: 快速入门,带你搭建 Spring AI 开发环境,快速了解框架基础。
  • 02-course-prompt: 了解如何高效地与 AI 进行交互,掌握 AI 提示工程的核心技能。
  • 03-course-output: 学习如何处理 AI 输出,并实现更加智能的交互功能。
  • 03-course-image_audio: 涉及图像和音频处理,展示如何将多媒体功能集成到 Spring AI 应用中。
  • 04-course-embedding: 讲解如何使用 Spring AI 进行高效的文本和数据嵌入。
  • 05-course-advisor: 理解 AI 在智能系统中的应用,并学习如何创建智能顾问系统。
  • 06-course-document: 实战操作,处理和解析文档数据,提升开发效率。
  • 07-course-function-call: 深入探讨如何在 Spring AI 中实现的函数调用和数据交互。

重要通知:spring-ai-hunyuan 已兼容 Spring AI 稳定版!的更多相关文章

  1. 兼容 Spring Boot 1.x 和 2.x 配置类参数绑定的工具类 SpringBootBindUtil

    为了让我提供的通用 Mapper 的 boot-starter 同时兼容 Spring Boot 1.x 和 2.x,增加了这么一个工具类. 在 Spring Boot 中,能够直接注入 XXProp ...

  2. 在已有spring的基础上集成hibernate

    1.导入hibernate的包和spring的包    hibernate3.hibernate-jpa-2.0-api-.必须的包,log4j,log4j配置文件  1.1 导入Spring的依赖包 ...

  3. TOMCAT7不兼容spring boot 2.0

    找不到这个类,找不到那个类... Spring Boot 2.0 (and Spring Framework 5 upon which it builds) requires a Servlet 3. ...

  4. Spring框架系列(4) - 深入浅出Spring核心之面向切面编程(AOP)

    在Spring基础 - Spring简单例子引入Spring的核心中向你展示了AOP的基础含义,同时以此发散了一些AOP相关知识点; 本节将在此基础上进一步解读AOP的含义以及AOP的使用方式.@pd ...

  5. 译自如何将Spring Cloud应用程序从Spring Boot 1.2迁移到1.3

    前言 笔者第三个Spring Cloud(版本为Spring Boot 1.2)类项目升级最新版本时遇到不少问题,本文内容是作者翻译Spring Cloud官网一位国外友人文章产生. 原文地址: Mi ...

  6. spring boot 2.0.3+spring cloud (Finchley)6、配置中心Spring Cloud Config

    https://www.cnblogs.com/cralor/p/9239976.html Spring Cloud Config 是用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持, ...

  7. Spring实战(十)Spring AOP应用——为方法引入新功能、为对象引入新方法

    切面最基本的元素是通知和切点,切点用于准确定位应该在什么地方应用切面的通知. 1.Spring借助AspectJ的切点表达式语言来定义Spring切面 在Spring中,要使用AspectJ的切点表达 ...

  8. Spring学习(十)Spring知识点汇总

    一.基础概念 Q:Spring是什么? 定义:Spring是一个轻量级的IoC(控制反转)和AOP容器框架. 目的:用于简化企业应用程序的开发,使得开发者只需要关心业务需求. 常见的配置方式: 基于X ...

  9. Spring学习(二)--Spring的IOC

    1.依赖反转模式 依赖反转:高层次的模块不应该依赖于低层次的模块,两者都应该依赖于抽象接口.抽象接口不应该依赖于具体实现.而具体实现则应该依赖于抽象接口. 在面向对象编程领域中,依赖反转原则(Depe ...

  10. Spring源码-AOP部分-Spring是如何对bean实现AOP代理的

    实验环境:spring-framework-5.0.2.jdk8.gradle4.3.1 历史文章 Spring源码-IOC部分-容器简介[1] Spring源码-IOC部分-容器初始化过程[2] S ...

随机推荐

  1. 执行Django 的迁移命令报错[1193, Unknown system variable default_storage_engine]

    在学习""编写你的第一个 Django 应用程序,第2部分"时候,遇到一个问题. 执行迁移命令 python manage.py makemigrations polls ...

  2. Docker容器详解

    [] 容器(Container)是一种轻量级的虚拟化技术,它通过操作系统级的虚拟化,将应用程序及其依赖环境打包在一起,确保应用程序可以在任何环境中一致运行.与虚拟机不同,容器共享宿主操作系统的内核,而 ...

  3. 我最常用的 Visual Studio 2022 扩展插件推荐:生产力必备工具

    Visual Studio 2022作为微软推出的一款功能强大的IDE,业界称之为"宇宙第一IDE".它以出色的性能.丰富的内置功能和对多种编程语言的支持,深受开发者喜爱.然而,随 ...

  4. 推荐8款 .NET 开源、免费、实用的 Windows 效率软件

    前言 今天大姚给大家推荐8款基于 .NET 开源.免费.实用的 Windows 效率软件,开发工作提升利器,希望可以帮助到有需要的小伙伴. DevToys DevToys是一个专门为开发者设计的Win ...

  5. 【软件】Ubuntu下QT的安装和使用

    [软件]Ubuntu下QT的安装和使用 零.前言 QT是应用得比较广泛的程序框架,是因为其跨平台特性比较好,且用C/C++作为开发语言,性能也比较好,故本文介绍如何安装和使用QT,用的版本是QT 6. ...

  6. Audio DSP boot 过程

    在智能手机或智能手表等SoC上通常有一块专门的audio DSP(简称ADSP)来做音频处理.要做音频处理,ADSP首先要被boot起来.本文以CEVA BX2为例来讲讲ADSP的boot过程. 在上 ...

  7. ReadWriteLock:读写锁

    一. /* * 1. ReadWriteLock : 读写锁 * * 写写/读写 需要"互斥" * 读读 不需要互斥 * */ public class TestReadWrite ...

  8. python之“if __name__=="__main__"”的代表的意思和用法

    创建下方脚本A def print_sum(a): print(a) print_sum(20) if __name__=="__main__": print("test ...

  9. Mybatis 框架课程第四天

    目录 1 Mybatis 延迟加载策略 1.1 何为延迟加载 1.2 实现需求 1.3 使用 assocation 实现延迟加载 1.3.1 账户的持久层 DAO 接口 1.3.2 账户的持久层映射文 ...

  10. servlet 读取表单数据

    通过post和get两种方式提交表单数据. form.html <!DOCTYPE html> <html lang="en"> <head> ...