1212 </p >
1313</div >
1414
15+
1516---
1617
18+ ### ** 关于作者**
19+
20+ - ** 深耕领域** :大语言模型开发 / RAG 知识库 / AI Agent 落地 / 模型微调
21+ - ** 技术栈** :Python | RAG (LangChain / Dify + Milvus) | FastAPI + Docker
22+ - ** 工程能力** :专注模型工程化部署、知识库构建与优化,擅长全流程解决方案
23+
24+ > ** 「让 AI 交互更智能,让技术落地更高效」**
25+ > 欢迎技术探讨与项目合作,解锁大模型与智能交互的无限可能!
26+
27+ ---
1728# 【开源发布】MermaidTrace: 让你的 Python 代码逻辑"看"得见
29+ ---
1830
1931<p align =" center " >
20- <img src =" .. /images/logo.png" alt =" MermaidTrace Logo " width =" 600 " >
32+ <img src =" https://gitee.com/xt765/mermaid-trace/raw/main/docs /images/logo.png" alt =" MermaidTrace Logo " width =" 600 " >
2133</p >
2234
23- ---
35+ < p align = " center " >< strong >让复杂的调用链一目了然。一行代码,将复杂的执行逻辑转化为清晰的 Mermaid 时序图。</ strong ></ p >
2436
2537## 当你在凌晨两点调试递归调用时
2638
@@ -47,7 +59,7 @@ flowchart LR
4759 A[添加装饰器] --> B[运行代码]
4860 B --> C[自动生成时序图]
4961 C --> D[实时预览]
50-
62+
5163 style C fill:#e8f5e9
5264```
5365
@@ -67,20 +79,20 @@ flowchart TB
6779 subgraph 输入[你的代码]
6880 A[Python 函数]
6981 end
70-
82+
7183 subgraph MermaidTrace[处理过程]
7284 B[装饰器拦截] --> C[记录调用事件]
7385 C --> D[构建调用链]
7486 D --> E[生成 Mermaid 语法]
7587 end
76-
88+
7789 subgraph 输出[可视化结果]
7890 E --> F[时序图]
7991 E --> G[交互式预览]
8092 end
81-
93+
8294 A --> B
83-
95+
8496 style B fill:#e3f2fd
8597 style F fill:#fff3e0
8698```
@@ -95,7 +107,7 @@ flowchart TB
95107
96108MermaidTrace 内置了一个功能强大的 Web 预览服务器,让你可以直观地查看生成的时序图:
97109
98- ![ Master Preview] ( .. /images/master_preview.png)
110+ ![ Master Preview] ( https://gitee.com/xt765/mermaid-trace/raw/main/docs /images/master_preview.png)
99111
100112** 主要特性** :
101113
@@ -124,16 +136,16 @@ from mermaid_trace import trace, trace_class
124136@trace_class
125137class OrderService :
126138 """ 订单服务类"""
127-
139+
128140 def process_order (self , order_id : int ) -> dict :
129141 """ 处理订单"""
130142 self .validate_order(order_id)
131143 return self .create_order(order_id)
132-
144+
133145 def validate_order (self , order_id : int ) -> bool :
134146 """ 验证订单"""
135147 return order_id > 0
136-
148+
137149 def create_order (self , order_id : int ) -> dict :
138150 """ 创建订单"""
139151 return {" order_id" : order_id, " status" : " created" }
@@ -151,15 +163,15 @@ mermaid-trace serve flow.mmd
151163
152164这会启动一个本地服务器,自动打开浏览器,展示生成的时序图:
153165
154- ![ Master Preview] ( .. /images/master_preview.png)
166+ ![ Master Preview] ( https://gitee.com/xt765/mermaid-trace/raw/main/docs /images/master_preview.png)
155167
156168``` mermaid
157169sequenceDiagram
158170 participant Caller
159171 participant OrderService
160172 participant validate_order
161173 participant create_order
162-
174+
163175 Caller->>OrderService: process_order
164176 OrderService->>validate_order: validate_order
165177 validate_order-->>OrderService: True
@@ -183,25 +195,25 @@ from typing import List
183195@trace
184196class RAGPipeline :
185197 """ RAG 检索管道"""
186-
198+
187199 def __init__ (self ):
188200 self .retriever = VectorRetriever()
189201 self .reranker = Reranker()
190202 self .context_builder = ContextBuilder()
191-
203+
192204 async def query (self , question : str ) -> dict :
193205 # 查询改写
194206 refined_query = await self .refine_query(question)
195-
207+
196208 # 向量检索
197209 documents = await self .retriever.search(refined_query)
198-
210+
199211 # 重排序
200212 ranked_docs = await self .reranker.rerank(documents, question)
201-
213+
202214 # 构建上下文
203215 context = self .context_builder.build(ranked_docs)
204-
216+
205217 return {" query" : question, " context" : context}
206218```
207219
@@ -214,7 +226,7 @@ sequenceDiagram
214226 participant VectorRetriever
215227 participant Reranker
216228 participant ContextBuilder
217-
229+
218230 main->>RAGPipeline: query
219231 RAGPipeline->>RAGPipeline: refine_query
220232 RAGPipeline->>VectorRetriever: search
@@ -236,10 +248,10 @@ from mermaid_trace import trace_class
236248@trace_class
237249class LLMAgent :
238250 """ LLM Agent"""
239-
251+
240252 def __init__ (self ):
241253 self .tools = {" search" : self .search, " calculator" : self .calculator}
242-
254+
243255 async def run (self , query : str ) -> str :
244256 for i in range (3 ):
245257 action = await self .decide(query)
@@ -257,7 +269,7 @@ sequenceDiagram
257269 participant LLMAgent
258270 participant search
259271 participant calculator
260-
272+
261273 main->>LLMAgent: run
262274 LLMAgent->>LLMAgent: decide
263275 LLMAgent-->>LLMAgent: {tool: search}
@@ -286,7 +298,7 @@ app = FastAPI()
286298class DatabaseService :
287299 async def get_user (self , user_id : int ) -> dict :
288300 return {" id" : user_id, " name" : f " User { user_id} " }
289-
301+
290302 async def get_orders (self , user_id : int ) -> list :
291303 return [{" id" : i} for i in range (3 )]
292304
@@ -363,7 +375,7 @@ flowchart LR
363375 A[代码变更] --> B[自动重新运行]
364376 B --> C[生成新时序图]
365377 C --> D[浏览器自动刷新]
366-
378+
367379 style D fill:#fff3e0
368380```
369381
@@ -375,7 +387,7 @@ flowchart LR
375387
376388## 与 LangChain 的集成
377389
378- ![ Master Preview] ( .. /images/master_preview.png)
390+ ![ Master Preview] ( https://gitee.com/xt765/mermaid-trace/raw/main/docs /images/master_preview.png)
379391
380392MermaidTrace 提供了 LangChain 的专用处理器:
381393
0 commit comments