0


SpringAI初体验之HelloWorld

目录

点我去AIGIS公众号查看本文

前言

  在逛

SpringBoot

页面时突然看到页面上新增了一个

SpringAI

项目,于是试了一下,感觉还行。其实就是封装了各家的

api

调用过程,不过这也是一个好的开始。最近我一直在思考,什么是

AI

时代的程序员?最后得到的答案是可能一个人就是一个开发团队吧。目前

AI

的能力在单个需求方面对程序员都是碾压性的,程序员现在能做的就是理解整个的业务需求,进而合作实现。试想如果未来

AI

能一个人干一个团队的活,那程序员就只需要做业务分析就好了。那时可能谁理解的好,谁就是好的程序员。

1.准备工作

  首先我们需要的是全面的新环境。因为国内很多项目都还是基于

JDK1.8

做的,很多人还用的是

IDEA2019

,这已经完全跟不上时代的潮流了。因此现在我们需要的是:

  1. JDK ≥ 17
  2. IDEA ≥ 2022
  3. OpenAI的key
  4. Fan Qiang

  如果你无法使用

OpenAI

的环境,那么你还可以看看其他的环境,目前

SpringAI

支持的环境有很多了,具体可以查看

https://spring.io/projects/spring-ai

在这里插入图片描述

2.初始化项目

  • 新建项目在这里插入图片描述
  • 勾选WebAI在这里插入图片描述在这里插入图片描述
  • 等待Maven完成安装

如果阿里云的仓库下载失败,就不要死磕了,换成默认的

<repository><id>spring-milestones</id><name>SpringMilestones</name><url>https://repo.spring.io/milestone</url><snapshots><enabled>false</enabled></snapshots></repository>
  • 注意观察pom中的引用
<dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.ai</groupId><artifactId>spring-ai-openai-spring-boot-starter</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency>
  • 新建一个ChatController,代码及其简单
@RestControllerpublicclassChatController{privatefinalOpenAiChatClient chatClient;@AutowiredpublicChatController(OpenAiChatClient chatClient){this.chatClient = chatClient;}@GetMapping("/ai/generate")publicMapgenerate(@RequestParam(value ="message", defaultValue ="Tell me a joke")String message){System.setProperty("http.proxyHost","127.0.0.1");System.setProperty("http.proxyPort","10809");System.setProperty("https.proxyHost","127.0.0.1");System.setProperty("https.proxyPort","10809");System.setProperty("proxySet","true");returnMap.of("generation", chatClient.call(message));}@GetMapping("/ai/generateStream")publicFlux<ChatResponse>generateStream(@RequestParam(value ="message", defaultValue ="Tell me a joke")String message){Prompt prompt =newPrompt(newUserMessage(message));return chatClient.stream(prompt);}}
  • application.properties中配置OpenAi的key在这里插入图片描述
spring.ai.openai.api-key=YOUR_API_KEY
spring.ai.openai.chat.options.model=gpt-3.5-turbo
spring.ai.openai.chat.options.temperature=0.7

目前可以选择的模型有:
在这里插入图片描述

3.解决问题

3.1 Connection Time out 连接超时问题

  这是因为

java

代码里并没有设置开启代理导致的。有些梯子默认就是全局,所以在代码里并不用设置,但是有的梯子不是,需要设置,其实上面的代码里写过了,还有一些人通过

socks5

设置代理,自己选择合适的方式吧。

System.setProperty("http.proxyHost","127.0.0.1");System.setProperty("http.proxyPort","10809");System.setProperty("https.proxyHost","127.0.0.1");System.setProperty("https.proxyPort","10809");System.setProperty("proxySet","true");

如果你不知道你的梯子使用的ip和端口是多少,那么你可以按照这个顺序查看一下:
win10和win11的ip和端口查找方法:右键开始菜单-设置-网络和Internet-代理-手动设置代理

  关于这个问题,我也让

ChatGPT

回答了一下:
在这里插入图片描述

3.2 You exceeded your current quota 额度超限问题

在这里插入图片描述
429问题在

OpenAI

的官网有解释:
在这里插入图片描述
简单来说就是你需要升级为付费账户,或者你的账户额度不够用了,再加钱就是了。

4.访问调用

在这里插入图片描述
还记得我们问的什么问题吗?对,

tell me a joke

在这里插入图片描述
再访问一次,看会不会变化?
在这里插入图片描述
nice,变了,说明有效。

5.总结

  新技术的出现总会让人有种焦虑感,有些人是抵制,有些人拥抱,有些人是无感,有些人是冷漠。但是我想,这可能就是当初电和汽车的出现一样,会毁掉很多人的饭碗,但是同时也会产生很多新的饭碗。因此不要怕,

AI

就是一个工具,程序员应该比很多人更加有机会首先了解并使用

AI

。只要你能坚持不断学习,相信未来的你,一定不会被机器取代,因为机器没得感情。

更多精彩内容见公众号AIGIS

标签: Spring AI HelloWorld

本文转载自: https://blog.csdn.net/xiangshangdemayi/article/details/137680951
版权归原作者 AIGIS. 所有, 如有侵权,请联系我们删除。

“SpringAI初体验之HelloWorld”的评论:

还没有评论