靈碼產品演示:軟件工程架構分析

作者:了哥

演示目的

  1. 演示靈碼對于整個復雜軟件工程項目的架構分析能力,輸出項目的軟件系統架構圖。

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

演示準備

  1. 克隆工程地址到本地(需提前安裝好 git 工具, 建議本地配置 brew):
git?clone?https://github.com/duffqiu/bookinfo.git

(為了體現不是模型已有的知識,所以有些更改。)

  1. 安裝最新的 VS Code:https://code.visualstudio.com/

  2. 在 VS Code 的插件市場安裝最新的靈碼插件

備注:也可以直接使用靈碼 IDE(https://lingma.aliyun.com/download)

  1. 在 VS Code 的插件市場安裝最新的 plantuml 插件(需要配置更新最新的 plantuml 的 jar 包,這個配置自行搜索,這里不做過多介紹)。或者直接使用 plantuml 的 web 頁面:https://www.plantuml.com/plantuml/

演示步驟

  1. 在 VS Code 里打開工程的目錄

image

  1. 打開靈碼,使用 agent 模式,模型選擇“qwen3-code”

image

  1. 開始分析工程

輸入?prompt

“請詳細分析下工程,并用plantuml給出系統架構圖的描述”

得到一個分析后的架構描述的 plantuml 文件:

image

  1. 打開文件,然后用 plantuml 插件展示圖

image

最后得到一個工程的架構視圖:新版的 Qwen3 Coder 模型。

image

  1. 調整架構圖,輸入 prompt
“請只保留微服務和數據層”

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

image

  1. 再深度分析微服務間的交互

Prompt:

請用plantuml畫出各個微服務交互的時序圖,輸出到文件action.uml

這個時候可能沒有分析出 reviews 這個微服務不同的版本的情況,所以再深入和模型交互。

Prompt:

需要增加描述不同的reviews版本的處理過程

最后得到微服務的時序交互圖。

image

  1. 分析具體的 API

打開工程里的 java 文件:

image

選擇這個文件作為上下文。

image

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等)
    響應:
{"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對象
  • 當評分服務不可用時,評分對象將包含一個錯誤:
    "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環境變量決定。

依賴項

  • 評分服務(啟用時)- 用于檢索圖書評分
  • 各種追蹤系統(可選)- 用于分布式追蹤

用戶可以設置一個自己的模版,然后作為上下文給大模型按照這個模版進行推理。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/pingmian/97766.shtml
繁體地址,請注明出處:http://hk.pswp.cn/pingmian/97766.shtml
英文地址,請注明出處:http://en.pswp.cn/pingmian/97766.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

銀河麒麟部署mysql8.0并連接應用

?客戶需在國產化銀河麒麟系統中部署軟件應用,使用mysql8.0數據庫。機器放置了兩三年,里面命令工具和依賴都不太全。而且客戶環境不聯網,只能采用離線部署的方式。部署過程中踩了很多坑,也用到很多資源,記錄一下。 過…

GitAgent-面壁智能聯合清華大學發布的大模型智能體應用框架

本文轉載自:https://www.hello123.com/gitagent ** 一、🔍 GitAgent 框架:大模型智能體的工具箱革命 GitAgent 是由面壁智能與清華大學自然語言處理實驗室聯合研發的創新型框架,旨在解決大模型智能體在復雜任務中的工具擴展瓶頸…

靈碼產品演示:Maven 示例工程生成

作者:輕眉 演示主題:由 AI 自動生成 0 到 1 的電商訂單 Java 項目 演示目的 面向 Java 零基礎的用戶,通過靈碼的產品能力(如提示詞、編碼智能體、項目 Rules 和 SQLite MCP 服務、單元測試)自動生成 0 到 1 的電商訂單…

AI編程從0-1開發一個小程序

小伙伴們,今天我們利用AI實現從0到1開發一個小程序!需求交給AI: 我們只要說出自己的開發思路,具體需求交給AI完成!輸入提示詞:個人開發的小程序 能開發哪些好備案,用戶喜歡使用的 AI給出…

DDoS高防IP是什么? DDoS攻擊會暴露IP嗎?

DDoS高防IP是什么?高防IP是指一種網絡安全服務,主要用于防御DDoS攻擊。隨著技術的發展,黑客進行網絡攻擊的強度也在加大,所以我們要做好網絡防護,及時預防DDoS攻擊。DDoS高防IP是什么?DDoS高防IP是指基于IP…

k8s事件驅動運維利器 shell operator

Shell-Operator 概述 Shell-Operator 是 Kubernetes 的一個工具,用于通過 shell 腳本擴展集群功能。它允許用戶編寫簡單的腳本(Bash、Python 等)來響應 Kubernetes 事件(如資源變更、定時任務),無需編譯復…

(二)文件管理-文件權限-chmod命令的使用

文章目錄1. 命令格式2. 基本用法2.1 符號模式2.2 八進制數字模式3. 高級用法3.1 遞歸操作3.2 參考權限3.3 特殊權限位(Setuid, Setgid, Sticky Bit)3.4 X 特殊執行權限4. 注意事項4.1權限與所有權4.2 Root 權限4.3 安全風險4.4 -R 的風險4.5 目錄的執行權限1. 命令格式 chmod …

醫院預約掛號腳本

醫院預約掛號腳本 功能介紹 本腳本是一個用 Python 編寫的醫院預約掛號程序,支持以下功能: 自動預約:通過api交互選擇醫院、科室、醫生和時間段。自動監控:持續檢查指定醫生的號源狀態,發現可預約時段時自動嘗試預約。…

.NET駕馭Word之力:理解Word對象模型核心 (Application, Document, Range)

在使用MudTools.OfficeInterop.Word庫進行Word文檔自動化處理時,深入理解Word對象模型的核心組件是至關重要的。Word對象模型提供了一套層次化的結構,使開發者能夠通過編程方式控制Word應用程序、文檔以及文檔內容。本章將詳細介紹Word對象模型中最核心的…

Kotlin在醫療大健康域的應用實例探究與編程剖析(上)

一、引言 1.1 研究背景與意義 在當今數字化時代,醫療行業正經歷著深刻的變革。隨著信息技術的飛速發展,尤其是人工智能、大數據、物聯網等新興技術的廣泛應用,醫療行業數字化轉型已成為必然趨勢。這種轉型旨在提升醫療服務的效率和質量,優化醫療資源配置,為患者提供更加…

AI智能體的應用前景

AI智能體的應用前景正從技術探索邁向規模化落地的關鍵階段,其發展動力源于大模型能力的突破、行業需求的深化以及商業化模式的創新。以下是基于最新技術動態和行業實踐的深度解析: 一、技術突破:從「有腦無手」到「知行合一」 大模型的進化顯著提升了智能體的多模態交互與…

高系分四:網絡分布式

目錄一、我的導圖和思考二、大模型對我導圖的評價優點可優化之處三、大模型對這章節的建議一、網絡知識范疇(一)網絡基礎理論(二)局域網與廣域網(三)網絡安全(四)網絡性能優化&#…

Day24_【深度學習(1)—概念】

一、AI、ML、DL基本關系 機器學習是實現人工智能的途徑,深度學習是機器學習的一種方法。人工智能 (AI)↓ 機器學習 (ML) —— 讓機器從數據中學習規律↓ 深度學習 (DL) —— 使用深層神經網絡的機器學習方法二、深度學習與機器學習概念深度學習(Deep Lea…

VTK基礎(01):VTK中的基本概念

VTK中的基本概念 1.三維場景中的基本要素 三維場景的基本要素包含:燈光、相機、顏色和紋理映射 (1)燈光vtkLight 光的本質是特定頻段的電磁波,所以燈光的本質是特定頻段(可見光頻段)的電磁波發射器;依據發射可見光頻段…

LeetCode 2348.全0子數組的數目

給你一個整數數組 nums ,返回全部為 0 的 子數組 數目。 子數組 是一個數組中一段連續非空元素組成的序列。 示例 1: 輸入:nums [1,3,0,0,2,0,0,4] 輸出:6 解釋: 子數組 [0] 出現了 4 次。 子數組 [0,0] 出現了 2 次。…

【wpf】從 DataContext 到依賴屬性:WPF 自定義控件 ImageView 的優化之路

從 DataContext 到依賴屬性:WPF 自定義控件 ImageView 的優化之路 最近我在做一個 WPF 項目,需要封裝一個 ImageView 控件,用來顯示圖像并處理鼠標交互。 在實際開發中,我遇到了一系列和 數據綁定 有關的問題: 控件需要…

人力資源管理的思維方式學習筆記2

戰略人力資源管理的思維方式——北京師范大學政府管理學院——王建民 教授3.1.理念:人力資源是第一戰略資源 我們先來了解海爾集團公司實施發展戰略的情況。海爾集團創立于1984年,根據官方網站的介紹,目前是一家全球領先的美好生活解決方案服…

汽車網絡安全 CyberSecurity ISO/SAE 21434 測試之一

一、什么是網絡安全? 在智能網聯和自動駕駛技術進入汽車行業之前,功能安全 一直是汽車開發的核心。 簡單來說,功能安全的目標是確保車輛的系統在出現故障時,不會對人、環境或者設備造成危害。比如,剎車失靈了&#xff…

力扣(LeetCode) ——217. 存在重復元素(C++)

題目:217. 存在重復元素 示例1: 輸入: nums [1,2,3,1] 輸出: true 解釋: 元素 1 在下標 0 和 3 出現。 示例2: 輸入: nums [1,2,3,4] 輸出: false 解釋: 所有元素都…

Redis 高可用與集群原理

Redis 高可用與集群原理1. 前言 Redis 單機雖然高性能,但一旦節點宕機,數據丟失或服務不可用問題會非常嚴重。為了解決這一問題,Redis 提供了 主從復制、哨兵(Sentinel)、Cluster 集群 等高可用機制。 這一篇文章我們重…