Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

java-ai-tech/spring-ai-summary

Repository files navigation

中文 English document Spring AI Summary Visitors

Spring AI Summary 是基于原生 Spring AI 框架的模块化示例工程集合,通过清晰的代码示例和详细文档,帮助开发者快速掌握 Spring AI 的核心功能。

👥 适合人群

Spring AI Summary 面向对 Spring AI 框架感兴趣的开发者,无论是初学者还是有经验的工程师,都可以通过本项目快速了解框架的核心功能,并将其应用到实际项目中。 通过 Spring AI Summary,你可以:

  • 掌握 Spring AI 的核心概念和功能。
  • 学习如何构建高效的 AI 应用。
  • 获取最新的技术动态和实践经验。

加入社区 🎯 扫码加群主微信(备注:Spring AI),一起探索 Spring AI 的无限可能!

社区交流群

📖 学习路径

如果你是第一次接触 Spring AI,建议先阅读 Spring AI 官方文档 以了解框架的基本概念和使用方法。然后可以通过本项目的各个模块进行实践,逐步深入理解框架的核心功能。

推荐学习顺序:

  1. 📚 Spring AI 官方文档 - 了解基础概念
  2. 💬 spring-ai-chat - 聊天应用开发(必选起点)
  3. 🔧 spring-ai-tool-calling - 工具调用能力
  4. 🧠 spring-ai-vector - 向量数据库集成
  5. 🚀 MCP/RAG/AGENT - 高级应用模式

👇下面开启 Spring AI 之旅吧〜

🚀 快速开始

⚙️ 环境要求

依赖项 版本/要求 说明
SpringBoot 3.3.6 -
Spring AI 1.0.0 -
JDK 21+ -
Maven 3.6+ 强烈推荐使用 mvnd 代替 mvn
Docker (用于运行 Milvus、Nacos 等)

1. 🧬 克隆项目

# 克隆项目到本地
git clone https://github.com/java-ai-tech/spring-ai-summary.git
# 进入项目并编译
cd spring-ai-summary && mvn clean compile -DskipTests

如果遇到 Maven 依赖下载慢的问题,可以尝试使用国内的 Maven 镜像源,如阿里云、清华大学等;运行过程中如果有其他任何问题,可以扫码加入上面的微信群进行咨询交流〜〜〜

2. 🛠️ 配置环境变量

对于每个模块的 resource 文件夹下的 application.yml/application.properties 文件,根据你的需求配置相应的 API 密钥。如 spring-ai-chat-deepseek 模块:

# 示例:deepseek 模块配置
spring.ai.deepseek.api-key=${spring.ai.deepseek.api-key}
spring.ai.deepseek.base-url=https://api.deepseek.com
spring.ai.deepseek.chat.completions-path=/v1/chat/completions
spring.ai.deepseek.chat.options.model=deepseek-chat

将你的 spring.ai.deepseek.api-key 替换为实际的 API 密钥即可启动运行。关于如何申请 api key ,可以移步项目 Wiki 页面进行查看。

💡 安全提示:使用环境变量存储 API 密钥,避免代码泄露。申请密钥指南

3. ▶️ 运行示例

完成上述步骤后,你可以选择运行不同的示例模块来体验 Spring AI 的功能。如启动运行 spring-ai-chat-deepseek 模块(具体端口可以根据你自己的配置而定):

2025年06月04日T14:18:43.939+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [ main] c.g.ai.chat.deepseek.DsChatApplication : Starting DsChatApplication using Java 21.0.2 with PID 88446 (/Users/glmapper/Documents/projects/glmapper/spring-ai-summary/spring-ai-chat/spring-ai-chat-deepseek/target/classes started by glmapper in /Users/glmapper/Documents/projects/glmapper/spring-ai-summary)
2025年06月04日T14:18:43.941+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [ main] c.g.ai.chat.deepseek.DsChatApplication : The following 1 profile is active: "deepseek"
2025年06月04日T14:18:44.469+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat initialized with port 8081 (http)
2025年06月04日T14:18:44.475+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [ main] o.apache.catalina.core.StandardService : Starting service [Tomcat]
2025年06月04日T14:18:44.476+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [ main] o.apache.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.33]
2025年06月04日T14:18:44.501+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [ main] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
2025年06月04日T14:18:44.502+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [ main] w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 533 ms
2025年06月04日T14:18:44.962+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [ main] o.s.b.a.e.web.EndpointLinksResolver : Exposing 14 endpoints beneath base path '/actuator'
2025年06月04日T14:18:44.988+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port 8081 (http) with context path '/'
2025年06月04日T14:18:44.997+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [ main] c.g.ai.chat.deepseek.DsChatApplication : Started DsChatApplication in 1.215 seconds (process running for 1.637)
2025年06月04日T14:18:45.175+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [on(2)-127.0.0.1] o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
2025年06月04日T14:18:45.175+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [on(2)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
2025年06月04日T14:18:45.176+08:00 INFO 88446 --- [spring-ai-chat-deepseek] [on(2)-127.0.0.1] o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms

如果出现上述类似的启动日志,那么恭喜你,启动成功啦 🎉🎉🎉🎉🎉....,你已经打开了 Spring AI 的大门,接下来就可以开始探索各种功能模块了;启动完成后,可以通过 cUrl、HTTPie 或 Postman 等工具进行测试。

curl localhost:8081/api/deepseek/chatWithMetric?userInput="你是谁?"

结果如下:

成功标志 🎉:看到类似响应即表示运行成功!

运行结果

# completion tokens
http://localhost:8081/actuator/metrics/ai.completion.tokens
# prompt tokens
http://localhost:8081/actuator/metrics/ai.prompt.tokens
# total tokens
http://localhost:8081/actuator/metrics/ai.total.tokens

ai.completion.tokens 为例,结果如下:

{
 "name": "ai.completion.tokens",
 "measurements": [
 {
 "statistic": "COUNT",
 "value": 34
 }
 ],
 "availableTags": []
}

关于其他模块的使用方法和配置,可以查看 Wiki 页面或各模块的 README.md 文件。

📚 学习资料(持续更新中)

以下是一些推荐的学习资源:

官方也有一个学习资料汇总,但主要是汇总的国外的一些资料,所以本项目更聚焦在汇总了一些国内的学习资源,供大家参考。

技术社区

项目系列

博客系列

视频系列

优质论文

大家如果有好的文章或资源,也欢迎提交 PR 或 Issue 进行补充和完善。下面开发和贡献指南。

🔧 开发指南(代码、文档)

首先,非常欢迎各位提交任何形式的贡献,包括但不限于代码、文档、测试、代码注释等等。但在提交贡献之前请遵循如下流程:

贡献代码

  1. Fork 项目

如下图所示, fork 仓库到你个人仓库 how-to-fork.png

  1. Clone 你个人仓库代码

    # 在 GitHub 上 Fork 项目
    # 克隆你的 Fork 仓库
    git clone https://github.com/your-username/spring-ai-summary.git
    cd spring-ai-summary
  2. 创建特性分支

    # 创建并切换到新的特性分支
    git checkout -b feature/your-feature-name
  3. 开发规范

    • 遵循项目的代码风格和命名规范
    • 确保代码通过所有测试(如有)
    • 更新相关文档
  4. 提交代码

    # 添加修改的文件
    git add .
    # 提交代码
    git commit -m "feat: add new feature"
    # 推送到你的 Fork 仓库
    git push origin feature/your-feature-name
  5. 创建 Pull Request

    • 在 GitHub 上创建 Pull Request
    • 填写 PR 描述,说明改动内容和原因
    • 等待代码审查和合并

📝 注意事项

  1. API 密钥安全

    • 建议使用环境变量存储 API 密钥,避免泄露风险
    • 切勿在代码仓库中硬编码密钥
    • 定期轮换密钥,提升安全性
  2. Token 使用

    • 持续监控 Token 消耗,避免超额
    • 设置合理的 Token 限制,防止滥用
    • 推荐实现缓存机制,提升响应速度与成本控制

📄 License & 说明

  • 1、本项目采用 MIT 许可证。详见 LICENSE 文件。 另外本项目仅供学习和研究使用,不适用于生产环境,请勿将样例工程直接用于生产环境。使用时请遵守相关模型的使用条款和条件。
  • 2、本项目的所有代码和文档均由 glmapper 独立开发和维护,欢迎大家提出意见和建议,如果对你有帮助,请给个 Star 支持一下哦!如果你有任何问题或建议,请在 GitHub 上提交 Issue 或 PR,或者通过这里联系我。后续我将进一步将关于 spring ai 的相关技术文章同步发布到本仓库和个人微信公众号:磊叔的技术博客,也欢迎扫码关注。

微信公众号

🙏 致谢

本项目是一个完全开源项目,主要目的是汇聚更多优质的 Spring AI 相关的学习资源,当然相关学习资源主要来源于网络,如有侵权,请联系删除!!!;在此也对参与开源贡献和所有在技术社区分享技术的朋友们表示衷心的感谢!

Star History

Star History Chart

Releases

No releases published

Packages

No packages published

Contributors 7

AltStyle によって変換されたページ (->オリジナル) /