ใ……ใ…Žใ…‡ commited on
Commit
48dc552
ยท
1 Parent(s): 5bcb2a0

feat: add Mermaid architecture diagram to system information section

Browse files
Files changed (1) hide show
  1. CodeWeaver/ui/app.py +48 -2
CodeWeaver/ui/app.py CHANGED
@@ -322,6 +322,52 @@ def create_demo() -> gr.Blocks:
322
  with gr.Accordion("๐Ÿ“Š ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์ƒ์„ธ ๊ธฐ์ˆ  ์ •๋ณด", open=False):
323
  gr.Markdown("""
324
  ### ๐Ÿ—๏ธ ์ง€๋Šฅํ˜• ์—์ด์ „ํŠธ ์•„ํ‚คํ…์ฒ˜
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
325
  CodeWeaver๋Š” ๋‹จ์ˆœํ•œ LLM ํ˜ธ์ถœ์„ ๋„˜์–ด, ์Šค์Šค๋กœ ๊ณ„ํšํ•˜๊ณ  ๊ฒ€์ฆํ•˜๋Š” **LangGraph ๊ธฐ๋ฐ˜ ์ž์œจ ์—์ด์ „ํŠธ**์ž…๋‹ˆ๋‹ค.
326
  - **Planning & Dynamic Routing**: ์งˆ๋ฌธ ์˜๋„๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๋‹จ์ˆœ ๋Œ€ํ™”, ๊ธฐ์ˆ  ์งˆ๋ฌธ, ๋‹ค์ค‘ ์งˆ๋ฌธ์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์ตœ์ ์˜ ๊ฒฝ๋กœ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
327
  - **Map-Reduce**: ๋ณตํ•ฉ์ ์ธ ์งˆ๋ฌธ์„ ๋…๋ฆฝ๋œ ํ•˜์œ„ ์ž‘์—…์œผ๋กœ ๋ถ„ํ•ดํ•˜์—ฌ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ํ›„, ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.
@@ -344,8 +390,8 @@ def create_demo() -> gr.Blocks:
344
 
345
  ### ๐Ÿ› ๏ธ Tech Stack
346
  - **Core**: LangGraph, LangChain, Python 3.12
347
- - **Model**: Google Gemini 2.5 Flash Lite (Reasoning), Jina-Reranker (Evaluation)
348
- - **Retrieval**: Tavily, StackExchange, GitHub API, FastEmbed
349
  - **Infra**: Neon Serverless PostgreSQL (Persistence), Qdrant Cloud (Semantic Cache)
350
  """)
351
 
 
322
  with gr.Accordion("๐Ÿ“Š ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ๋ฐ ์ƒ์„ธ ๊ธฐ์ˆ  ์ •๋ณด", open=False):
323
  gr.Markdown("""
324
  ### ๐Ÿ—๏ธ ์ง€๋Šฅํ˜• ์—์ด์ „ํŠธ ์•„ํ‚คํ…์ฒ˜
325
+
326
+ #### ์‹œ์Šคํ…œ ์•„ํ‚คํ…์ฒ˜ ๋‹ค์ด์–ด๊ทธ๋žจ
327
+
328
+ ```mermaid
329
+ graph TD
330
+ %% ์Šคํƒ€์ผ ์ •์˜
331
+ classDef startend fill:#f9f,stroke:#333,stroke-width:2px;
332
+ classDef process fill:#e1f5fe,stroke:#0277bd,stroke-width:2px;
333
+ classDef decision fill:#fff9c4,stroke:#fbc02d,stroke-width:2px;
334
+ classDef subgraph_style fill:#f3e5f5,stroke:#7b1fa2,stroke-width:2px,stroke-dasharray: 5 5;
335
+
336
+ START((START)):::startend --> CreatePlan[Create Plan]:::process
337
+
338
+ %% Map (Fan-out) ๋‹จ๊ณ„
339
+ CreatePlan --"Single (1x)"--> SQS_Wrapper
340
+ CreatePlan --"Multi (Map: Nx)"--> SQS_Wrapper
341
+
342
+ %% ์„œ๋ธŒ๊ทธ๋ž˜ํ”„ (๋ณต์ œ๋˜๋Š” ์˜์—ญ ํ‘œํ˜„)
343
+ subgraph SQS_Wrapper ["Parallel Execution (Send API)"]
344
+ direction TB
345
+ SQS[Single Question Subgraph]:::subgraph_style
346
+ end
347
+
348
+ %% Reduce (Fan-in) ๋‹จ๊ณ„
349
+ SQS_Wrapper --> Combine[Reduce: Combine Answers]:::process
350
+ Combine --> END((END)):::startend
351
+
352
+ %% ์„œ๋ธŒ๊ทธ๋ž˜ํ”„ ์ƒ์„ธ ๋กœ์ง
353
+ subgraph "Single Question Subgraph Details"
354
+ Analyze[Analyze Question]:::process
355
+
356
+ Analyze -->|General Chat| DirectGen[Generate Answer]:::process
357
+ Analyze -->|History Context| HistoryGen[Generate w/ History]:::process
358
+ Analyze -->|Technical| CheckCache[Check Cache]:::decision
359
+
360
+ CheckCache -->|Hit| ReturnCache[Return Cached Answer]:::process
361
+ CheckCache -->|Miss| SearchParallel[Search: SO / GitHub / Docs]:::process
362
+
363
+ SearchParallel --> Evaluate[Evaluate & Rerank]:::decision
364
+
365
+ Evaluate -->|Good| FinalGen[Generate Answer]:::process
366
+ Evaluate -->|Poor| Refine[Refine Query]:::process
367
+ Refine --> SearchParallel
368
+ end
369
+ ```
370
+
371
  CodeWeaver๋Š” ๋‹จ์ˆœํ•œ LLM ํ˜ธ์ถœ์„ ๋„˜์–ด, ์Šค์Šค๋กœ ๊ณ„ํšํ•˜๊ณ  ๊ฒ€์ฆํ•˜๋Š” **LangGraph ๊ธฐ๋ฐ˜ ์ž์œจ ์—์ด์ „ํŠธ**์ž…๋‹ˆ๋‹ค.
372
  - **Planning & Dynamic Routing**: ์งˆ๋ฌธ ์˜๋„๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๋‹จ์ˆœ ๋Œ€ํ™”, ๊ธฐ์ˆ  ์งˆ๋ฌธ, ๋‹ค์ค‘ ์งˆ๋ฌธ์œผ๋กœ ๋ถ„๋ฅ˜ํ•˜๊ณ  ์ตœ์ ์˜ ๊ฒฝ๋กœ๋กœ ์‹คํ–‰ํ•ฉ๋‹ˆ๋‹ค.
373
  - **Map-Reduce**: ๋ณตํ•ฉ์ ์ธ ์งˆ๋ฌธ์„ ๋…๋ฆฝ๋œ ํ•˜์œ„ ์ž‘์—…์œผ๋กœ ๋ถ„ํ•ดํ•˜์—ฌ ๋ณ‘๋ ฌ ์ฒ˜๋ฆฌ ํ›„, ๊ฒฐ๊ณผ๋ฅผ ํ•˜๋‚˜๋กœ ํ†ตํ•ฉํ•ฉ๋‹ˆ๋‹ค.
 
390
 
391
  ### ๐Ÿ› ๏ธ Tech Stack
392
  - **Core**: LangGraph, LangChain, Python 3.12
393
+ - **Model**: Google Gemini 2.5 Flash Lite, Jina-Reranker (Evaluation)
394
+ - **Retrieval**: Tavily, StackOverflow, GitHub API, FastEmbed
395
  - **Infra**: Neon Serverless PostgreSQL (Persistence), Qdrant Cloud (Semantic Cache)
396
  """)
397