喜提好人卡?混元模型模块独立维护与开源发布

接着我们上次向Spring AI提交的混元模型模块,我已经完成了所有关于混元的聊天对接,并提交了相应的PR描述。提交后,荣获了一张"好人卡",如图所示:

今天,我们决定将之前提交给Spring AI官方的PR重新拿出来,并准备将其独立维护在一个开源仓库中。做出这一决策的原因是Spring AI官方表示将不再继续维护这么多大模型。这一决定其实也有其合理性,因为Spring AI的核心目标是通过简化Java开发智能体的过程来提升开发效率,而不是承担维护多个大型模型的责任。这种偏离了最初目标的做法,可能会导致资源和精力的过度分散,本末倒置了。

好了,废话不多说,今天我们主要的目标是将相关的代码单独提取出来,并推送到maven中央仓库中,确保它可以被广泛使用和管理。

混元

最初我们打算将这个项目命名为spring-ai-tencent,但经过一番思考后,我们发现这个名字可能会带来一些误解。为了避免这种误解,同时确保名称更加简洁明了,我们决定继续使用spring-ai-hunyuan这个名称。这个名称不仅更容易记住,而且不会引发额外的混淆,

提取代码

第一步就是将写入到Spring AI中的混元对接代码都提取出来,最后结果如图所示:

核心模块(core)主要负责与混元的API对接,提供基础的接口和功能。Autoconfigure模块则实现了自动依赖注入功能,使得项目中的相关依赖能够自动装配并正确运行。Starter模块则是专为其他项目提供的依赖包,通过引入Starter模块,其他项目能够快速集成并使用混元模型。

简单测试一下,看下测试用例是否都正常通过了。如图所示:

这个过程相对繁琐且没有太多技术含量,因此直接跳过。值得一提的是,我将项目中的所有包名都统一更改为 io.github.studiousxiaoyu,主要是出于发布到 Maven 中央仓库的考虑。由于在向 Maven 仓库提交时,包名必须遵循一定的规范,因此不可以随意命名,后续会详细解释这一点。

注册mvn账户

接下来,我们需要进行 Maven 账户的注册。可以通过以下官方链接进行注册:central.sonatype.com/

在注册过程中,只需根据官方页面提供的详细指引进行操作即可。由于注册步骤非常直观且有明确的指导,因此在这里就不再详细说明了。

Namespace

接着,我们就需要弄一个命名空间专门存储我们的开源代码,如图所示:

这里你可以有自己的域名也可以,为了方便我这里直接使用的github仓库地址,gitee也是可以的。如图所示:

添加后,他会给你一长串的id,就是我打马赛克的地方。

开源仓库

然后,你将这一长串id复制出来,去自己的github仓库创建一个公共开源的仓库即可。如图所示:

这里不用添加任何文件,空仓库也是没问题的。主要就是他们在验证的时候,看有没有这个仓库地址而已。如图所示:

最后,我们稍等一会儿,他就会验证成功了,如图所示:

秘钥信息

前提准备工作已经顺利完成,接下来只需确保你的本地 Maven 环境中配置好一些必要的秘钥信息,主要包括两个关键部分:GPG 密钥和 Maven 账户密码。这是官方要求的必要步骤,只有配置齐全后,才能顺利进行后续的发布或部署操作。

Gpg

先来申请复杂的gpg,本地必须安装下这个软件:gnupg.org/download/in...

下载的时候,如果有钱就捐,没钱就如图所示:

安装好 GPG 后,由于安装路径没有添加到环境变量中,因此我们需要手动找到 GPG 的安装位置。比如:E:\Program Files (x86)\GnuPG\bin。你可以根据实际安装位置进行调整。

打开cmd命令面板,我们需要生成自己的私钥和公钥:

gpg --gen-key

按照指示创建完成后,再使用命令分发生成的id即可:

gpg --keyserver keyserver.ubuntu.com --send-keys 生成的id

接着在setting.xml中写好自己写的秘钥,注意不是生成的id。

xml 复制代码
<server>
    <id>gpg.passphrase</id>
    <passphrase>秘钥</passphrase>
</server>

gpg.passphrase是固定的,写好后,进行deploy时会校验这个值。你不用修改成其他的id

如果你没配置这个字段值的话,每次deploy时都会提示如下弹窗让你输入。如图所示:

mvn账户秘钥

在进行申请之前,首先需要在我们项目的 pom.xml 依赖文件中配置好该插件的信息。在配置时,特别需要注意 publishingServerId 属性中的值是可以根据需要进行修改的。具体修改成什么值,需要确保与 Maven 中的 settings.xml 配置文件中的相关值一致。

xml 复制代码
<build>
    <plugins>
        <plugin>
          <groupId>org.sonatype.central</groupId>
          <artifactId>central-publishing-maven-plugin</artifactId>
          <version>0.7.0</version>
          <extensions>true</extensions>
          <configuration>
            <publishingServerId>central</publishingServerId>
          </configuration>
        </plugin>
    </plugins>
</build>

那么mvn中的setting配置文件写的秘钥,我们也需要申请,官方地址如下:central.sonatype.com/account

点击如图所示,生成相关的秘钥信息。如账户和密码。

紧接着我们就需要在mvn中的setting配置文件添加如下信息:

xml 复制代码
<settings>
  <servers>
    <server>
      <id>central</id>
      <username><!-- your token username --></username>
      <password><!-- your token password --></password>
    </server>
  </servers>
</settings>

没错的,这里的id对应的就是pom文件中的publishingServerId值。

发布

在完成所有相关信息的配置后,我们就可以执行 mvn deploy 指令来开始部署操作。此时,系统将进行一些处理,稍等片刻,当控制台显示部署成功的消息后,我们就可以前往以下网址:central.sonatype.com/publishing/...

在这个页面上查看我们刚刚推送的 Maven 依赖包是否成功上传并且已被正确发布。效果如图所示:

小结

在本篇文章中,我们详细介绍了将混元模型模块从Spring AI迁移并独立维护的全过程。

首先,介绍了项目命名的思考与调整,选择了更符合开源规范的spring-ai-hunyuan作为最终名称。接着,我们展示了如何提取并整理代码,包括核心模块、自动配置模块和Starter模块的构建。重点还包括了如何在Maven中央仓库上注册账户、配置GPG密钥、申请Maven账户秘钥等细节步骤,确保代码能够顺利发布和管理。

最终,我们通过执行 mvn deploy 命令完成了依赖包的上传,成功将项目推送至Maven中央仓库,为广大开发者提供了一个稳定且可扩展的开源解决方案。

相关推荐
北极象几秒前
Go主要里程碑版本及其新增特性
开发语言·后端·golang
lyrhhhhhhhh33 分钟前
Spring框架(1)
java·后端·spring
喝养乐多长不高2 小时前
Spring Web MVC基础理论和使用
java·前端·后端·spring·mvc·springmvc
莫轻言舞2 小时前
SpringBoot整合PDF导出功能
spring boot·后端·pdf
玄武后端技术栈3 小时前
什么是死信队列?死信队列是如何导致的?
后端·rabbitmq·死信队列
老兵发新帖4 小时前
NestJS 框架深度解析
后端·node.js
码出钞能力5 小时前
对golang中CSP的理解
开发语言·后端·golang
金融数据出海6 小时前
黄金、碳排放期货市场API接口文档
java·开发语言·spring boot·后端·金融·区块链
豌豆花下猫6 小时前
Python 潮流周刊#101:Rust 开发的 Python 类型检查工具(摘要)
后端·python·ai
gxn_mmf7 小时前
典籍知识问答模块AI问答功能feedbackBug修改+添加对话名称修改功能
前端·后端·bug