最近有小伙伴在使用 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. Bringing machine 'default' up with 'virtualbox' provider... Your VM has become "inaccessible." Unfortunately, this is a critical error with VirtualBox that Vagrant can not cleanly recover from.

    启动虚拟机报错 vagrant up Bringing machine 'default' up with 'virtualbox' provider...Your VM has become &qu ...

  2. 插入排序(LOW)

    博客地址:https://www.cnblogs.com/zylyehuo/ # _*_coding:utf-8_*_ def insert_sort(li): for i in range(1, l ...

  3. 2D小游戏--猜对应卡牌(unity)

    博客地址:https://www.cnblogs.com/zylyehuo/ 项目名称 guess_card_game 参考源码链接: https://www.manning.com/books/un ...

  4. Win7共享账号切换程序

    服务器共享目录需要多账号登录时,需要重启电脑才可切换不同账号登 为了不重启电脑就可立即切换不同账号登,特意写了此款软件, 下载: 链接:https://pan.baidu.com/s/1g_4SCXl ...

  5. 深入掌握Map的这8个操作方法,让代码更简洁优雅

    Map 是我们经常使用的数据结构接口,它的子类 HashMap.ConcurrentHashMap 也是我们使用比较频繁的集合. 了解了 Map 接口中的方法,也就相当于知道了其子类中的可用方法,管它 ...

  6. 【虚拟机】VirtualBox设置共享文件夹

    VirtualBox设置共享文件夹 1.选中你要设置的虚拟机,点设置 2.共享文件夹,点右边的加号,设置一个共享文件夹路径,选择其他, 3.选一个你知道的位置,比如我的在E盘的共享文件夹下面 4.选好 ...

  7. AspNetCore Json序列化设置

    AspNetCore 中的Json序列化处理已经默认使用Newtonsoft.Json库了... 比如像MVC中: public I 不过使用过程中会发现一些问题,其实这算默认设置吧: Json序列化 ...

  8. leetcode每日一题:k-avoiding 数组的最小总和

    引言 ​ 今天是本次开始坚持leetcode每日1题的第10天,也算是迈出了一小步. 题目 2829. k-avoiding 数组的最小总和 给你两个整数 n 和 k . 对于一个由 不同 正整数组成 ...

  9. Web前端入门第 30 问:CSS 文本与字体样式常用属性

    CSS 盒模型是基石,文本和字体则是盒子内容的重要组成部分.毕竟清水房有了,软装也得跟上啊. 字体常用属性 font-family 定义字体类型(如: Arial, "Microsoft Y ...

  10. 快速理解 MCP 与 A2A 协议的关系,它们如何协作构建复杂AI系统

    近期关于MCP协议的讨论非常热门,主要因为通过MCP协议通过标准化接口为 AI 应用与外部数据源建立统一交互通道,这使得大模型可以与外部数据源或工具进行交互,从而实现各种专业场景下的智能应用.关于如何 ...