日期:2025/04/06 04:10来源:未知 人气:52
前面咱们通过两个游戏了解了Cursor编程写前端非常的方便,也很简单,随着技术的发展,后端也有了Spring AI和Spring Cloud Alibaba AI 由于后者涉及到微服务方面的知识,相对来说没那么方便演示,所以,咱们还是集中研究Spring AI, 当然,如果你对Spring Cloud Alibaba AI更感兴趣,也欢迎在评论区说说他在实战中有哪些优点。
我们还是使用Cursor,由于我这以前弄过JAVA项目,所以有些环境安装什么的就体现不了,你可以根据提示来进行安装就可以了,也没啥特别可讲的。
大家也可以参考链接如何用Spring AI规划咱们的JAVA学习路径?今天咱们用CodeGeex来演示! 进行对比了解。
咱们开始让他生成一个项目,尽量咱们也别太复杂,免得它理解不了。
我给的指令是:
在当前目录,而不是根目录,开发一个JAVA程序,利用Spring AI 发起一个提问: 学习JAVA可以分为哪几个阶段,每个阶段应该掌握哪些知识,通过可视化界面,看到反馈信息
自动生成代码的时候,它没有按我的想法去把代码生成到这个目录,我们只是为了探索Spring AI,没必要跟他较这个真,咱们就顺着它,用它创建的目录,来看项目代码
处理完成后,告诉我要java17和maven环境,可我这里还没升级到java17呢。
于是我跟他协商一下,看看是否JAVA8也可以支持运行
我这里没有JAVA17环境,能不能将项目改成JAVA8版本,以方便我运行
可以看到,用JAVA8也是能够支持的,修改完之后,要按照它给的提示进行操作,才能看到效果
我们来一步一步执行一下。
cd ..\java-ai-learning\mvn spring-boot:run
这里我想到个问题,这个Cursor怎么配置maven的可执行程序路径和配置呢?
通过查资料我们知道了,是通过环境变量来确定的,咱们只需要把MAVEN的环境变量配置好,它就会自动使用。
下载依赖还是需要一些时间的。我们只能先等等。
为了加快点速度,我告诉他
我的本地仓库路径是 e:/mavenres/,可以使用这个仓库路径,减少文件下载
这样,它修复完pom.xml后,保存一下,再重新执行启动,这时候执行的命令也变了。
mvn spring-boot:run -Dmaven.repo.local=e:/mavenres
等待依赖的JAR包全部下载完,咱们再看看效果。
等到后面出错了
[INFO] ------------------------------------------------------------------------[INFO] BUILD FAILURE[INFO] ------------------------------------------------------------------------[INFO] Total time: 04:23 min[INFO] Finished at: 2025-01-16T15:24:16+08:00[INFO] ------------------------------------------------------------------------[ERROR] No plugin found for prefix '.repo.local=e' in the current project and in the plugin groups [org.apache.maven.plugins, org.codehaus.mojo] available from the repositories [local (C:\Users\41839.m2\repository), central (https://repo.maven.apache.org/maven2)] -> [Help 1][ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/NoPluginFoundForPrefixException
我们让它去修复这个问题
修复完成后,按它给的提示来运行
为了不那么麻烦,还是不给它指定本地仓库了,就按它默认的方式来运行。
继续等待依赖的JAR包全部下载完,咱们再看看效果。还是有报错
[ERROR] Failed to execute goal on project java-ai-learning: Could not resolve dependencies for project com.ailearning:java-ai-learning:jar:1.0-SNAPSHOT: Could not find artifact org.springframework.experimental:spring-ai-openai-spring-boot-starter:jar:0.7.0-SNAPSHOT in spring-snapshots (https://repo.spring.io/snapshot) -> [Help 1][ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging. [ERROR][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/DependencyResolutionException
修复完后,再启动试试
mvn spring-boot:run
大概要等上20分钟左右,程序终于正常启动了,我们按照提示,在浏览器输入地址 http://localhost:8080,看看效果
可以看到提供了一个界面,其中有个按钮,用于获取学习建议,我们试试看。
正在获取,但我们回过头看后台,发现报错了。
连接超时了。我们再让它修复问题
在修复完成后,它有一段这样的提示,要修改配置参数
openai.api.key=your-openai-api-keyproxy.host=127.0.0.1proxy.port=7890
就是说我们需要一个 openai-api-key。 试试看可不可以让他去匹配一个可用的key
可以找一个可用的openai-api-key来代替your-openai-api-key吗?
可以看到,它是不能去找可用的KEY的,也给出了注册账号的建议,同时也给出了其他的建议,比如用国内的大模型,百度,或者讯飞等。 由于OpenAI服务需要计费,为了保险起见,我们还是用讯飞的来做调试
改造完成后,也一样提示要有账号等信息
由于我之前注册过,所以我只要把信息拿到,改一下配置,就可以了。
改好之后,保存application.properties,再重启一下,又报错了,让它再修复一下。
修复完后,按照提示,执行命令
mvn clean install
可这时候出现了新的报错,再让它自己去解决一下
修复完成后,再执行
mvn clean install
重新下载相关的依赖包,毕竟讯飞AI的依赖包是不一样的。下载完成后,再重新启动:
mvn spring-boot:run
启动完成后,我们再回到界面,点击按钮,看看效果如何
咱们再修复这个问题
我们把所有的报错都丢给它,让它去自查和修复。
修复完成后,咱们再重启,试试看
出现了NULL,再让它去修复,修复完,再重启,再试!
这时候出现一个这样的错误,让它自己修复一下。
[ERROR] Failed to execute goal org.springframework.boot:spring-boot-maven-plugin:2.7.18:run (default-cli) on project java-ai-learning: Execution default-cli of goal org.springframework.boot:spring-boot-maven-plugin:2.7.18:run failed: Unable to find a single main classfrom the following candidates [com.example.Application, com.ailearning.Application] -> [Help 1][ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.[ERROR] Re-run Maven using the -X switch to enable full debug logging.[ERROR][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/PluginExecutionException
修复完,再重启试试。
可以看到不报错了,有数据返回了,不过不是我们所期望的数据,还要改进一下。
前端返回的数据是 {"timestamp":"2025-01-16T08:55:53.407+00:00","status":404,"error":"Not Found","path":"/api/java-learning"} 请检查前后端代码是否正确对接上了
修复完成后,再看界面调用怎么样。
这次出现了400,继续让它修复,修复完成后,还是没正常,这次是401,折腾了个把小时,结果是接口版本的问题,直到我把链接wss://spark-api.xf-yun.com/v4.0/chat 复制给他,他才意识到是版本的错误
不断地折腾之后,放弃了websocket ,改用http接口,也出现了不少的问题
比如
Error processing request: Failed to process request: 400 Bad Request: "{"error":{"message":"invalid param model is empty (sid: cha000bbdc5@dx1946e9d46b39a4b532)","type":"invalid_request_error","param":null,"code":"10005"}}"
用http接口也不行,最终还是放弃了,使用智谱的AI试试看,接口倒是能用,就是欠费了,尴尬
{"code":1113,"msg":"您的账户已欠费,请充值后重试。","success":false}
本来还想换用其他的接口,结果都失败了。
虽然失败了,但是我们也基本上清楚了,我们可以直接调用API,在后端进行AI大模型的查询和输出,虽然不知道最终格式会是什么样子,但基本上跟我们平时调接口差不多。
通过一个简单项目的实战,我们也可以看出Cursor用来做java开发还是存在不少的局限性,特别是一些收费项目来说,可能并不是最佳的实践选择,但完全可以给我们生成大量的,对于项目有参考价值的完整源代码,这个意义也是非常大的。
后来就采用了Codegeex来做同样的探索,参考文章如何用Spring AI规划咱们的JAVA学习路径?今天咱们用CodeGeex来演示!
今天的分享就到这里,虽然今天不是那么的成功,但至少可以知道Cursor也可以写JAVA代码,JAVA也可以通过Spring AI去做我们想要做的事情,比如查询想要的信息。也欢迎大家在评论区探讨Spring AI的特性和用途!
后续我还会分享更多的知识,点个“在看 ”,分享给更多爱学习的小伙伴们!