0
点赞
收藏
分享

微信扫一扫

Avalonia的第三方UI库Material.Avalonia详细教程

前言

在这里插入图片描述
无意间看到关于彦林老师在刚刚结束的2024云栖大会上关于Spring AI Alibaba的汇报,由于我在校期间会经常使用LangChain框架基于Python语言搭建智能体应用,结合本人现在也从事Java研发工作,对这种基于Spring开发范式搭建AI应用的框架非常感兴趣,于是结合现有公开的资料,完成了基于Spring AI Alibaba的demo项目部署工作,记录一些踩的坑,欢迎感兴趣的同学一起研究学习。

声明:本文涉及的链接、图片、代码及相关资料均从公开渠道获取或为个人知识积累,请勿未经本人允许随意复制转载!

资源地址

  • Spring AI Alibaba官网
  • Spring AI Alibaba项目地址
  • 阿里云百炼平台

简介

Spring AI Alibaba是什么?

Spring Al Alibaba开源项目基于Spring Al构建,是阿里云通义系列模
型及服务在Java Al应用开发领域的最佳实践,提供高层次的AI API抽
象与云原生基础设施集成方案,帮助开发者快速构建AI应用。

Spring AI Alibaba提供哪些能力?

  • 专属Spring开发者的Al框架:基于Spring Al官方开源项目,原生支持Spring Boot体系,为你的Bean带来生成式Al能力。
  • Model,Prompt,RAG,Tools:兼具提示词模板、函数调用、格式化输出等低层次抽象与RAG、智能体、对话记忆等高层次抽象。
  • 阿里云大模型与云原生最佳实践:通义系列AI模型驱动,深度集成云原生API网关、模版管理、Serverless、可观测等云原生应用基础设施。

Spring AI Alibaba架构图

在这里插入图片描述

Spring AI Alibaba未来规划

  • Prompt Template管理
  • 事件驱动的AI应用程序
  • 更多Vector Database支持
  • 函数计算等部署模式
  • 可观测性建设
  • AI代理节点开发能力,如滤网、限流、多模型切换等
  • 开发者工具集

实战部署

一、下载项目

  • IDEA导入

在这里插入图片描述

  • 命令行导入
git clone --depth=1 https://github.com/alibaba/spring-ai-alibaba.git

二、添加依赖并注入

总的来说,使用 Spring AI Alibaba 开发应用与使用普通 Spring Boot 没有什么区别,只需要增加 spring-ai-alibaba-starter 依赖,将 ChatClient Bean 注入就可以实现与模型聊天了。

在项目中加入 spring-ai-alibaba-starter 依赖。

<dependency>
	<groupId>com.alibaba.cloud.ai</groupId>
	<artifactId>spring-ai-alibaba-starter</artifactId>
	<version>1.0.0-M2</version>
</dependency>

为 Spring Bean 注入 ChatClient


@RestController
public class ChatController {

	private final ChatClient chatClient;

	public ChatController(ChatClient.Builder builder) {
		this.chatClient = builder.build();
	}

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

三、运行项目

1、开通模型调用服务

阿里云百炼大模型服务平台
在这里插入图片描述

2、获取合法的 API-KEY

获取API-KEY

在这里插入图片描述

3、设置 AI_DASHSCOPE_API_KEY 环境变量

# 设置环境变量
export AI_DASHSCOPE_API_KEY="REPLACE-WITH-VALID-API-KEY"
# 查看环境变量
echo ${AI_DASHSCOPE_API_KEY}

4、启动示例项目应用

./mvnw compile exec:java -Dexec.mainClass="com.alibaba.cloud.ai.example.helloworld.HelloWorldExampleApplication"

四、注意事项

问题1:zsh:command not found: mvn?

# 配置 Maven
vim ~/.bash_profile

export MAVEN_HOME=/Library/Maven/apache-maven-3.9.7
export PATH=$MAVEN_HOME/bin:$PATH

source ~/.bash_profile

mvn -version

在这里插入图片描述

问题2:zsh: no such file or directory: ./mvnw?

# 生成 mvnw 文件和相关的脚本
mvn clean compile
mvn wrapper:wrapper

问题3:引入spring-cloud-alibaba-ai依赖找不到?

在这里插入图片描述

注意:由于 spring-ai 相关依赖包还没有发布到中央仓库,如出现 spring-ai-core 等相关依赖解析问题,需要在项目的 pom.xml 依赖中加入如下仓库配置。

<repositories>
	<repository>
		<id>spring-milestones</id>
		<name>Spring Milestones</name>
		<url>https://repo.spring.io/milestone</url>
		<snapshots>
			<enabled>false</enabled>
		</snapshots>
	</repository>
	<repository>
		<id>spring-snapshots</id>
		<name>Spring Snapshots</name>
		<url>https://repo.spring.io/snapshot</url>
		<releases>
			<enabled>false</enabled>
		</releases>
	</repository>
</repositories>

如果maven配置了阿里云镜像,需要在maven配置文件中进行屏蔽配置:

# 修改maven配置文件
cd ~/.m2
vim settings.xml
<!--阿里云仓库-->
<!--修改:<mirrorOf>*</mirrorOf>-->
<mirror>
	<id>aliyunmaven</id>
	<mirrorOf>*,!spring-milestones</mirrorOf>
	<name>阿里云公共仓库</name>
	<url>https://maven.aliyun.com/repository/public</url>
</mirror>

问题4:JDK版本与项目Modules不一致?

在这里插入图片描述

Project版本为JDK 1.8

# JVM配置
sudo vi ~/.bash_profile

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
export PATH=$JAVA_HOME/bin:$PATH

source ~/.bash_profile

java -version

在这里插入图片描述
项目Modules为JDK 17
在这里插入图片描述
启动项目需要更换Project版本为JDK 17

  • JDK17下载
    在这里插入图片描述

  • IDEA更改
    在这里插入图片描述
    在这里插入图片描述
    在这里插入图片描述

  • 命令更改

export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.0.12.jdk/Contents/Home

问题5:API-KEY无效?

在这里插入图片描述

  • 检查AI_DASHSCOPE_API_KEY是否已配置
# 设置环境变量
export AI_DASHSCOPE_API_KEY="REPLACE-WITH-VALID-API-KEY"
# 查看环境变量
echo ${AI_DASHSCOPE_API_KEY}
  • 确保已开通模型调用服务,并处于主业务空间下具备API-Key权限。
    • 获取API-KEY
    • 将API-KEY配置到环境变量
    • 如何使用业务空间
    • 子业务空间的模型调用
      在这里插入图片描述

五、应用示例

在这里插入图片描述
访问本地启动链接,向通义模型提问并得到回答。

 http://localhost:8080/ai/chat?input=你是谁?

在这里插入图片描述

 http://localhost:8080/ai/chat?input=简单介绍一下阿里云?

在这里插入图片描述

参考资料

  • Spring AI Alibaba官网
  • Spring AI Alibaba项目地址
  • 阿里云百炼平台
  • Spring Cloud Alibaba专家答疑
举报

相关推荐

0 条评论