亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

AI 架構(gòu)圖生成實(shí)戰(zhàn):基于 XML 中間格式的可編輯系統(tǒng)設(shè)計(jì)

AI 架構(gòu)圖生成實(shí)戰(zhàn):基于 XML 中間格式的可編輯系統(tǒng)設(shè)計(jì) 1. 這個(gè)項(xiàng)目到底要解決什么問(wèn)題項(xiàng)目代號(hào)叫 next-draw.io AI 架構(gòu)圖。當(dāng)時(shí)起這個(gè)名字沒(méi)有綁定任何具體商業(yè)產(chǎn)品就是 next下一代加 draw繪圖加 io輸入輸出三個(gè)詞的組合。真正做起來(lái)之后才發(fā)現(xiàn)這名字歪打正著點(diǎn)中了架構(gòu)圖工具最核心的三個(gè)痛點(diǎn)怎么把輸入變成輸出怎么降低畫圖門檻怎么讓圖能持續(xù)迭代維護(hù)。這個(gè)項(xiàng)目的目標(biāo)是讓 AI 根據(jù)一段需求描述甚至一段代碼直接生成一份結(jié)構(gòu)化、可繼續(xù)編輯的系統(tǒng)架構(gòu)圖而不是給一張只能看、不能改的靜態(tài)圖片。如果你和我一樣經(jīng)歷過(guò)“開會(huì)前兩小時(shí)還在手動(dòng)補(bǔ)箭頭”“新同學(xué)入職讀架構(gòu)文檔讀到懷疑人生”“代碼改了三輪圖還是半年前那版”這些場(chǎng)景那你應(yīng)該知道這類工具缺得有多離譜。1.1 架構(gòu)圖為什么總是畫不出來(lái)先說(shuō)最扎心的現(xiàn)實(shí)不是大家不會(huì)畫圖而是畫圖的成本收益嚴(yán)重失衡。手動(dòng)拖拽一個(gè)框、填一個(gè)名字看起來(lái)只要十秒鐘但一張完整的系統(tǒng)架構(gòu)圖光節(jié)點(diǎn)就有二三十個(gè)連線幾十條還要分組、標(biāo)注、調(diào)色、對(duì)齊。等你終于把框擺好、線連完需求已經(jīng)變了于是你開始新一輪拖動(dòng)、縮放、對(duì)齊。這種重復(fù)勞動(dòng)極其消耗耐心所以大部分團(tuán)隊(duì)的架構(gòu)圖要么畫得很淺要么根本不更新。更深一層的問(wèn)題是架構(gòu)圖應(yīng)該是“持久資產(chǎn)”但實(shí)際上它往往成為“一次性產(chǎn)物”。真正的系統(tǒng)在演進(jìn)接口在變化模塊在拆分合并而圖不會(huì)自己跟著變。于是技術(shù)文檔里的架構(gòu)圖經(jīng)常成為面試官最喜歡問(wèn)的“哪張圖才是對(duì)的”的笑話。這個(gè)項(xiàng)目要解決的就是讓架構(gòu)圖可以像代碼一樣被生成、被版本管理、被自動(dòng)化檢查和更新。換句話說(shuō)把畫圖從“手工建?!弊兂伞鞍胱詣?dòng)編譯”。1.2 next-draw.io 的核心目標(biāo)我在設(shè)計(jì)目標(biāo)時(shí)給自己列了四條硬性要求少一條都會(huì)讓項(xiàng)目失去價(jià)值首先輸入要低門檻。用戶可以直接寫一句人話比如“用戶端通過(guò)網(wǎng)關(guān)訪問(wèn)后端服務(wù)后端服務(wù)依賴訂單庫(kù)和用戶庫(kù)”也可以粘貼一段代碼目錄甚至給一份接口清單。工具要做的是理解這些信息而不是要求用戶先學(xué)會(huì)某種復(fù)雜的建模語(yǔ)法。其次輸出必須可編輯。AI 畫完圖人還要改。所以生成結(jié)果不能是位圖不能是一張 PNG而應(yīng)該是帶有節(jié)點(diǎn)、連線、分組、樣式屬性的文本格式方便用戶在已有基礎(chǔ)上繼續(xù)調(diào)整。第三結(jié)果必須能入庫(kù)協(xié)作。架構(gòu)圖要放進(jìn) git 這類版本管理系統(tǒng)里每次改動(dòng)都能清晰對(duì)比哪些模塊新增了哪些依賴被刪掉了。圖片格式做不了這件事只有文本化、結(jié)構(gòu)化格式能勝任。第四要支持迭代修復(fù)。AI 第一次生成的結(jié)果總是會(huì)有點(diǎn)偏差要么漏了一個(gè)模塊要么把邊連錯(cuò)了。工具需要有自檢和重試機(jī)制讓用戶說(shuō)一句“再檢查一下網(wǎng)關(guān)和鑒權(quán)服務(wù)的關(guān)系”就能做局部修正而不是整張推倒重來(lái)。有了這四條后面所有技術(shù)選型都圍繞它們展開。你會(huì)發(fā)現(xiàn)大部分設(shè)計(jì)取舍其實(shí)都是被這些目標(biāo)倒逼出來(lái)的。2. 整體設(shè)計(jì)思路先選對(duì)路線再談實(shí)現(xiàn)2.1 三條技術(shù)路線我為什么選 XML 中間格式做 AI 生成架構(gòu)圖輸出格式是第一個(gè)要拍板的決策。我認(rèn)真對(duì)比過(guò)三條路線各有各的坑。第一條路線是讓 AI 直接生成圖片。這個(gè)最直觀模型用一張 PNG 或者 SVG 把圖畫出來(lái)。但問(wèn)題非常明顯坐標(biāo)、文字準(zhǔn)確度不可控節(jié)點(diǎn)邊界經(jīng)常糊成一團(tuán)而且生成結(jié)果完全不可編程、不可 diff用戶想改一個(gè)字都得重新生成。這就違背了“可編輯”和“可入庫(kù)”兩條核心目標(biāo)。第二條路線是生成文本描述類的 DSL 圖表。這類語(yǔ)法適合簡(jiǎn)單流程圖寫起來(lái)也很快但對(duì)企業(yè)級(jí)系統(tǒng)架構(gòu)圖來(lái)說(shuō)表達(dá)能力偏弱。泳道、分組、跨層依賴、復(fù)雜樣式都要靠各種技巧去湊。而且 DSL 本身是一個(gè)大生態(tài)將來(lái)想擴(kuò)展自定義組件成本會(huì)越來(lái)越高。第三條路線是生成結(jié)構(gòu)化的繪圖 XML 中間格式。XML 聽(tīng)起來(lái)老氣但它有不可替代的好處本質(zhì)上描述的是一張數(shù)據(jù)表節(jié)點(diǎn)是行邊是關(guān)系樣式是屬性。解析容易校驗(yàn)容易擴(kuò)展也容易。我把 AI 直接生成最終繪圖格式作為遠(yuǎn)期目標(biāo)但在當(dāng)下階段項(xiàng)目?jī)?nèi)部先定義一套精簡(jiǎn)的 XML 中間結(jié)構(gòu)讓模型把“實(shí)體”“關(guān)系”“分組”“樣式”語(yǔ)義化地表達(dá)出來(lái)后續(xù)再加一層薄薄的轉(zhuǎn)換器把它映射成真正能導(dǎo)入第三方工具做可視化的文件。三條路線的對(duì)比我實(shí)測(cè)下來(lái)是這樣輸出形態(tài)成本可編輯性入庫(kù)存檔復(fù)雜圖支持位圖/矢量圖低差基本重畫差二進(jìn)制無(wú)法 diff差文字經(jīng)常錯(cuò)文本 DSL中中文本可改中diff 但語(yǔ)義弱中分組交叉很費(fèi)勁XML 中間結(jié)構(gòu)高強(qiáng)節(jié)點(diǎn)屬性全保留強(qiáng)結(jié)構(gòu)化 diff 清晰高能帶分組和自定義屬性如果你見(jiàn)過(guò)網(wǎng)頁(yè) HTML 和最終渲染結(jié)果之間的關(guān)系就很容易理解我的選擇。HTML 不是給你直接看的最終畫面它是一種中間結(jié)構(gòu)瀏覽器拿到之后做布局、樣式、繪制。XML 架構(gòu)圖也是這樣AI 只負(fù)責(zé)把“網(wǎng)頁(yè)語(yǔ)義”寫好布局和繪制交給后面的引擎兩者解耦之后每一邊都能做好自己擅長(zhǎng)的事。2.2 核心工作流拆解整個(gè)項(xiàng)目流程被我拆成五個(gè)步驟順序是固定的缺一步都會(huì)多米諾骨牌式崩塌。第一步輸入處理。把用戶輸入的需求文本、代碼結(jié)構(gòu)、接口清單統(tǒng)一拼接成一條結(jié)構(gòu)化 prompt。這一步看起來(lái)簡(jiǎn)單但實(shí)際上大部分生成質(zhì)量都取決于 prompt 里有沒(méi)有把“什么是節(jié)點(diǎn)、什么是邊、什么是分組”定義清楚。第二步結(jié)構(gòu)生成。把 prompt 發(fā)給大模型要求它返回 XML 中間結(jié)構(gòu)。注意不是讓它返回示意圖而是返回一張有節(jié)點(diǎn)、有邊、有分組的結(jié)構(gòu)化數(shù)據(jù)。模型的角色被限定為“信息抽取器”而不是“畫家”。第三步解析清洗。大模型輸出不可能次次完美可能帶 markdown 包裹可能在 XML 里混入解釋文字可能節(jié)點(diǎn) id 不唯一。這一步要用腳本把原始輸出提取出來(lái)解析成內(nèi)存對(duì)象并且對(duì)不合法內(nèi)容做修正或丟棄。第四步布局計(jì)算。拿到節(jié)點(diǎn)和邊的信息之后我并不直接用模型建議的坐標(biāo)而是把實(shí)體關(guān)系交給一個(gè)獨(dú)立的分層布局引擎重新計(jì)算每個(gè)節(jié)點(diǎn)的位置。這一步能避免大量“節(jié)點(diǎn)疊在一起”“連線橫穿所有模塊”的慘案。第五步渲染回寫。把布局之后的節(jié)點(diǎn)坐標(biāo)、寬高、樣式、分組信息寫回到與第三方工具兼容的繪圖 XML 文件。用戶在畫圖界面打開就能看到一張完整圖拖一拖就能繼續(xù)調(diào)整。這個(gè)流程相當(dāng)于把 AI 的能力限制在“理解關(guān)系和生成結(jié)構(gòu)”上而把需要確定性的活交給算法。實(shí)踐證明這樣分工的成功率遠(yuǎn)高于“一步到位”的做法。2.3 模塊劃分與數(shù)據(jù)流項(xiàng)目代碼按職責(zé)劃分成六個(gè)模塊各自只做一件事提示詞管理模塊負(fù)責(zé)拼 prompt內(nèi)部維護(hù)幾個(gè)版本的模板可以針對(duì)文本輸入、代碼輸入、多輪修正輸入分別調(diào)用不同的模板片段。解析模塊負(fù)責(zé)把模型返回的字符串變成 Python 對(duì)象里面有容錯(cuò)邏輯比如自動(dòng)補(bǔ)全缺失的結(jié)束標(biāo)簽、剔除多余的解釋文本。實(shí)體標(biāo)準(zhǔn)化模塊負(fù)責(zé)統(tǒng)一命名和 id。模型有時(shí)候會(huì)把“User Service”和“用戶服務(wù)”當(dāng)成兩個(gè)不同實(shí)體這個(gè)模塊負(fù)責(zé)做大小寫歸一、同義詞合并確保同一個(gè)真實(shí)系統(tǒng)只有一個(gè)節(jié)點(diǎn)。布局引擎模塊接收標(biāo)準(zhǔn)化后的實(shí)體關(guān)系輸出坐標(biāo)和尺寸。它的算法不需要多豪華但必須穩(wěn)定不能因?yàn)檩斎腠樞蜃兓妥寛D整體亂跳。渲染寫回模塊負(fù)責(zé)把內(nèi)存模型映射成最終 XML 文本包括節(jié)點(diǎn)坐標(biāo)、樣式顏色、分組層級(jí)。最后是自檢回讀模塊生成完畢之后重新解析一遍 XML統(tǒng)計(jì)節(jié)點(diǎn)數(shù)、邊數(shù)、孤立節(jié)點(diǎn)數(shù)量低于閾值就自動(dòng)重新生成一次。這一層守衛(wèi)非常管用它能攔截大量“看似生成了實(shí)際結(jié)構(gòu)是壞的”情況。數(shù)據(jù)流是單向的文本進(jìn)中間結(jié)構(gòu)生成清洗標(biāo)準(zhǔn)化布局渲染最后落盤。每一步的輸出都是下一步的輸入所有中間格式都必須嚴(yán)格校驗(yàn)這能避免錯(cuò)誤在后端被放大。3. 核心實(shí)現(xiàn)細(xì)節(jié)從提示詞到可編輯圖3.1 一個(gè)穩(wěn)定的提示詞模板先說(shuō)結(jié)論提示詞不要寫太多花哨的廢話重點(diǎn)是把“信息格式”講清楚。我踩過(guò)一個(gè)大坑最初讓模型“發(fā)揮創(chuàng)意”結(jié)果十個(gè)結(jié)果十個(gè)結(jié)構(gòu)都不帶重樣的。后來(lái)我把提示詞收斂成固定模板效果立刻穩(wěn)定。我現(xiàn)在用的是類似下面這種結(jié)構(gòu)你是一名系統(tǒng)架構(gòu)信息抽取器。 請(qǐng)把用戶輸入轉(zhuǎn)換為可編輯架構(gòu)圖的中間描述。 中間描述格式要求 diagram group idg1 label接入層/ node idn1 label用戶端 groupg1 typeclient/ node idn2 label網(wǎng)關(guān)服務(wù) groupg1 typeservice/ storage idn3 label用戶數(shù)據(jù)庫(kù) typedatabase/ edge fromn1 ton2 labelHTTPS/ edge fromn2 ton3 labelJDBC/ /diagram 約束 1. node、storage、group 的 id 必須全局唯一。 2. edge 只能引用已經(jīng)存在的 id。 3. type 只能取 client、service、storage、message、external 五種。 4. 不要輸出任何解釋文字只輸出 XML。這個(gè)模板把“游戲規(guī)則”先定死讓模型只做填鴨式抽取??雌饋?lái)沒(méi)什么技術(shù)含量但非常有效。type 限定為五種是有意為之因?yàn)楹蠖说念伾托螤罹褪前催@五種類型去映射的類型越少系統(tǒng)越好維護(hù)。關(guān)于輸入部分我會(huì)在模板后面動(dòng)態(tài)追加用戶原始描述同時(shí)提醒模型“不要給用戶描述里沒(méi)提到的東西編造依賴關(guān)系”。這個(gè)提醒很關(guān)鍵沒(méi)有它模型就會(huì)腦補(bǔ)出一堆現(xiàn)實(shí)中并不存在的中間件圖一多簡(jiǎn)直沒(méi)法看。3.2 解析和清洗模型輸出不是金標(biāo)準(zhǔn)模型返回的文本再干凈也必須經(jīng)過(guò)一道容錯(cuò)清洗。最常見(jiàn)的狀況是它把 XML 放在 markdown 代碼塊里有些還帶 xml 標(biāo)簽有些則直接裸輸出。我的第一步是用正則把代碼塊里的內(nèi)容抽出來(lái)。import re def extract_xml(raw: str) - str: # 先嘗試匹配帶 標(biāo)記的代碼塊 pattern r(?:xml|XML)?\s*(.*?) match re.search(pattern, raw, re.S) if match: return match.group(1).strip() # 沒(méi)有代碼塊時(shí)嘗試直接找 diagram 開頭的內(nèi)容 match re.search(rdiagram[\s\S]*/diagram, raw, re.S) if match: return match.group(0) return raw拿到 XML 字符串之后再用標(biāo)準(zhǔn)庫(kù)的 ElementTree 解析成內(nèi)存樹。解析這一步經(jīng)常掛掉原因也確實(shí)有意思模型會(huì)輸出類似diagram標(biāo)簽沒(méi)閉合、屬性值沒(méi)加引號(hào)、邊引用了不存在的 id。所以解析后必須立刻做一輪結(jié)構(gòu)校驗(yàn)。我通常在解析后打一份“結(jié)構(gòu)摘要”比如打印出總共有幾個(gè)節(jié)點(diǎn)、幾條邊、哪些邊引用了未知 id。這些信息能明確告訴我這次生成的圖是否具備繼續(xù)處理的基礎(chǔ)。如果發(fā)現(xiàn)未知 id就直接把這條邊丟棄因?yàn)椴季忠鏇](méi)法處理懸空引用。清洗還有一個(gè)容易被忽略的點(diǎn)必須對(duì)節(jié)點(diǎn) label 做 XML 轉(zhuǎn)義。如果用戶輸入文本里包含或直接拼進(jìn) XML 會(huì)導(dǎo)致解析失敗。用 Python 的xml.sax.saxutils.escape把特殊字符轉(zhuǎn)掉哪怕生成結(jié)果里看不到區(qū)別文件本身是穩(wěn)定的。3.3 布局方案別依賴大模型給的坐標(biāo)最初我覺(jué)得大模型既然能把關(guān)系和層級(jí)抽出來(lái)那么順帶給它幾個(gè)絕對(duì)坐標(biāo)也是順手的事。實(shí)驗(yàn)做下來(lái)我發(fā)現(xiàn)模型對(duì)坐標(biāo)的直覺(jué)極差經(jīng)常輸出“節(jié)點(diǎn)A在 x80節(jié)點(diǎn)B在 x820但它們還有同一層編號(hào)”這種自相矛盾的數(shù)據(jù)。而且即使坐標(biāo)基本合理只要用戶加一個(gè)節(jié)點(diǎn)整體布局就徹底亂掉。所以我做了個(gè)重要決定模型輸出里關(guān)于坐標(biāo)的信息全部忽略只保留節(jié)點(diǎn)、邊、分組、類型、label。真正的位置計(jì)算完全交給代碼里的分層布局引擎。實(shí)現(xiàn)的思路不復(fù)雜根據(jù)邊關(guān)系建立一個(gè)“依賴層級(jí)”。沒(méi)有入邊的節(jié)點(diǎn)歸為第 0 層下游節(jié)點(diǎn)按層級(jí) max(所有上游節(jié)點(diǎn)層級(jí)) 1計(jì)算。每一層的節(jié)點(diǎn)按順序排列同一層內(nèi)橫向均勻分布。縱向間距固定比如 80px。橫向間距按 label 長(zhǎng)度估算每個(gè)節(jié)點(diǎn)寬度至少 120px防止文字?jǐn)D壓。連線的路由交給繪圖工具自帶的自動(dòng)路由布局引擎只需要保證節(jié)點(diǎn)不互相重疊。寫出來(lái)的核心函數(shù)大致是這樣def assign_level(edges, node_ids): depth {nid: 0 for nid in node_ids} indeg {nid: 0 for nid in node_ids} graph {nid: [] for nid in node_ids} for src, dst in edges: graph[src].append(dst) indeg[dst] 1 queue [nid for nid in node_ids if indeg[nid] 0] for nid in queue: for child in graph[nid]: depth[child] max(depth[child], depth[nid] 1) indeg[child] - 1 if indeg[child] 0: queue.append(child) return depth這就是一次拓?fù)渑判虻淖凅w。遇到環(huán)狀依賴時(shí)拓?fù)渑判驎?huì)留下未處理節(jié)點(diǎn)我的處理方式是給這類節(jié)點(diǎn)統(tǒng)一分配一個(gè)“循環(huán)依賴層”避免腳本死循環(huán)。對(duì)于架構(gòu)圖來(lái)說(shuō)環(huán)不應(yīng)該出現(xiàn)在業(yè)務(wù)依賴?yán)锶绻霈F(xiàn)了圖反而會(huì)幫你暴露問(wèn)題。布局算法穩(wěn)定之后用戶體驗(yàn)就非??深A(yù)期。無(wú)論跑多少次同樣的輸入永遠(yuǎn)不會(huì)產(chǎn)生結(jié)構(gòu)漂移不同的圖這對(duì)后續(xù)做 diff 和版本對(duì)比非常重要。3.4 樣式注入與實(shí)體標(biāo)準(zhǔn)化大模型生成節(jié)點(diǎn)樣式屬性時(shí)非常隨性今天給“用戶端”填紅色明天給“用戶端”填藍(lán)色后天可能直接不填。樣式不穩(wěn)定會(huì)讓人對(duì)工具產(chǎn)生極強(qiáng)的不信任感。我的方案是把樣式屬性從模型輸出里剝離完全交給代碼決定。項(xiàng)目里維護(hù)一個(gè)簡(jiǎn)單的類型到樣式的映射表TYPE_STYLE { client: rounded1;whiteSpacewrap;fillColor#E3F2FD;strokeColor#1976D2;, service: rounded0;whiteSpacewrap;fillColor#E8F5E9;strokeColor#2E7D32;, database: shapecylinder3;whiteSpacewrap;fillColor#FFF8E1;strokeColor#F57F17;, message: shapemessage;whiteSpacewrap;fillColor#F3E5F5;strokeColor#7B1FA2;, external: shapecloud;whiteSpacewrap;fillColor#ECEFF1;strokeColor#455A64;, }這樣用戶看到同一類型節(jié)點(diǎn)永遠(yuǎn)是同一套視覺(jué)表達(dá)圖面色彩整潔也便于團(tuán)隊(duì)在評(píng)審時(shí)快速過(guò)濾信息。實(shí)體標(biāo)準(zhǔn)化模塊則是解決“同一個(gè)東西被當(dāng)成三個(gè)節(jié)點(diǎn)”的問(wèn)題。常見(jiàn)情況包括英文字母大小寫差異比如users-db和UsersDB中英文混寫比如“訂單服務(wù)”和“Order Service”還有縮寫差異。我的處理策略先統(tǒng)一成小寫去掉特殊符號(hào)再把等價(jià)詞映射列表交給固定函數(shù)遇到匹配就合并同一個(gè) id。這個(gè)模塊不能做太激進(jìn)否則容易把兩個(gè)本來(lái)獨(dú)立的服務(wù)合并掉。所以我的原則是只對(duì)“完全一致但寫法不同”做合并對(duì)“看起來(lái)像但不一定相同”保留為獨(dú)立節(jié)點(diǎn)把選擇權(quán)留給用戶。用戶可以在圖上看到結(jié)果發(fā)現(xiàn)不對(duì)勁再手動(dòng)合并比工具自作聰明要安全得多。4. 實(shí)操過(guò)程搭一個(gè)能跑通的最小版本4.1 環(huán)境準(zhǔn)備與文件結(jié)構(gòu)整套最小版本不需要前端頁(yè)面也沒(méi)必要引入復(fù)雜框架。我強(qiáng)烈建議第一步先做成命令行工具跑通核心鏈路之后再考慮 Web 界面和交互。準(zhǔn)備一個(gè)普通 Python 環(huán)境版本 3.10 以上就行不需要額外依賴重型庫(kù)。大模型 API 調(diào)用我用標(biāo)準(zhǔn)庫(kù)里的 urllib 實(shí)現(xiàn)避免引入一堆依賴。文件結(jié)構(gòu)安排如下next-draw-project/ ├─ prompts/ │ └─ diagram_prompt.txt ├─ src/ │ ├─ llm_client.py │ ├─ parser.py │ ├─ layout.py │ ├─ writer.py │ └─ cli.py └─ examples/ └─ demo_input.txt如果你的機(jī)器聯(lián)網(wǎng)不方便也可以用本地模型只要保持輸入輸出格式不變后端是誰(shuí)其實(shí)不關(guān)鍵。架構(gòu)上把 llm_client 做薄就保留了隨時(shí)切換后端的能力。4.2 核心代碼骨架先看調(diào)用大模型的部分。假設(shè)你有一個(gè)兼容通用消息格式的接口代碼大概這樣import json from urllib.request import Request, urlopen def call_llm(prompt: str, endpoint: str, token: str) - str: payload json.dumps({ messages: [{role: user, content: prompt}], temperature: 0.2, max_tokens: 4000, }).encode(utf-8) req Request(endpoint, datapayload, headers{ Content-Type: application/json, Authorization: fBearer {token}, }) with urlopen(req, timeout120) as resp: data json.loads(resp.read().decode(utf-8)) return data[choices][0][message][content]接著是 pompt 讀取和主流程def build_prompt(user_input: str) - str: template open(prompts/diagram_prompt.txt, encodingutf-8).read() return template \n\n用戶輸入\n user_input def main(): user_input open(examples/demo_input.txt, encodingutf-8).read() prompt build_prompt(user_input) raw call_llm(prompt, ENDPOINT, TOKEN) xml_text extract_xml(raw) model parse_middle_xml(xml_text) model normalize_entities(model) xmlish write_editable_diagram(model) with open(output.xml, w, encodingutf-8) as f: f.write(xmlish) summary validate_diagram(xmlish) print(summary)用這樣一個(gè)簡(jiǎn)單的 90 分腳本已經(jīng)能走完“文本進(jìn)XML 出”的完整鏈路。我建議第一次跑的時(shí)候盡量使用短小、邊界清晰的輸入比如“A 服務(wù)調(diào)用 B 服務(wù)B 服務(wù)連接數(shù)據(jù)庫(kù)”先驗(yàn)證鏈路通順再逐步增加復(fù)雜度。4.3 接入文檔和版本庫(kù)命令行版本跑通之后下一步一定是把它接進(jìn)團(tuán)隊(duì)文檔流程。因?yàn)檩敵龅氖羌兾谋?XML所以可以直接扔進(jìn) git。每次有人調(diào)整架構(gòu)描述并重新生成 diff 里能清楚看到哪個(gè)節(jié)點(diǎn)變了、哪條邊斷了。這個(gè)體驗(yàn)是位圖完全給不了的。在此基礎(chǔ)上我在自己的項(xiàng)目里加了一個(gè)小腳本讀取 XML 后輸出一行摘要nodes12, edges15, groups3, unlinked_nodes0這個(gè)摘要可以作為 CI 檢查的一部分比如節(jié)點(diǎn)數(shù)不小于閾值、不存在孤立節(jié)點(diǎn)。一旦有人手工刪改 XML 導(dǎo)致依賴斷裂檢查立刻報(bào)警。架構(gòu)圖和代碼庫(kù)慢慢形成互相約束的關(guān)系圖不再是擺設(shè)。可視化打開的問(wèn)題可以先由第三方工具的無(wú)損導(dǎo)入解決。中間結(jié)構(gòu) XML 經(jīng)過(guò)一層映射之后寫入繪圖工具兼容格式工具內(nèi)部有自動(dòng)布局能力打開時(shí)再執(zhí)行一次“整理布局”就能得到非常干凈的圖。我的經(jīng)驗(yàn)是不要讓項(xiàng)目試圖覆蓋所有畫布交互那個(gè)工程量不適合個(gè)人項(xiàng)目第一階段去做。5. 常見(jiàn)問(wèn)題與排查手冊(cè)5.1 XML 解析失敗這是我在接入各種大模型后遇到概率最高的錯(cuò)誤。典型表現(xiàn)是腳本報(bào)錯(cuò)syntax error: line 3, column 0看一眼原始輸出發(fā)現(xiàn)模型把解釋文字加在 XML 前面或者少了個(gè)閉合標(biāo)簽。處理優(yōu)先級(jí)按下面這個(gè)表來(lái)現(xiàn)象常見(jiàn)原因處理方式一直解析失敗模型輸出被 markdown 包裹先用正則剝離代碼塊標(biāo)簽缺閉合上下文過(guò)長(zhǎng)導(dǎo)致模型截?cái)嘟档?max_tokens 或拆分輸入屬性沒(méi)加引號(hào)模型語(yǔ)法能力波動(dòng)手動(dòng)用正則修正讓屬性值統(tǒng)一被引號(hào)包裹被當(dāng)標(biāo)簽解釋輸入文本包含特殊字符對(duì) label 做 XML 轉(zhuǎn)義根節(jié)點(diǎn)多了一個(gè)模板要求只輸出一個(gè) diagram截取第一個(gè)完整diagram塊碰到解析失敗不要急著改模板先打印一份原始返回內(nèi)容的前 500 個(gè)字符看看結(jié)構(gòu)。很多時(shí)候問(wèn)題出在輸入文本帶了很多代碼片段導(dǎo)致模型輸出被截?cái)喽皇翘崾驹~寫得不夠好。5.2 節(jié)點(diǎn)重疊和布局偏移所有第一次接出來(lái)的圖都會(huì)出現(xiàn)“節(jié)點(diǎn)全部疊在左上角”或者“邊穿過(guò)五六個(gè)節(jié)點(diǎn)”這種狀況。原因很直接你用了模型返回的坐標(biāo)而模型根本不理解布局空間。解決辦法只有一個(gè)不要續(xù)用模型坐標(biāo)改成重啟布局引擎。我每次換輸入都強(qiáng)制刷新坐標(biāo)甚至故意在 prompt 里不提供坐標(biāo)信息就是防止模型“順手”填出幾個(gè)坐標(biāo)把我誤導(dǎo)了。如果布局引擎跑完依然重疊檢查分隔距離是否太小。我在實(shí)現(xiàn)里把橫向間距設(shè)為 40px縱向間距設(shè)為 80px節(jié)點(diǎn)高度固定 40px覆蓋大多數(shù)情況。遇到圖特別大間距可以調(diào)成按節(jié)點(diǎn)數(shù)量比例縮放。5.3 實(shí)體重復(fù)和關(guān)系丟失“用戶服務(wù)USER-SERVICE后端用戶中心”這三個(gè)名字同時(shí)出現(xiàn)在生成的圖里是最讓人崩潰的場(chǎng)景。我第一次碰到以為是模型抽風(fēng)后來(lái)才知道是沒(méi)做標(biāo)準(zhǔn)化。標(biāo)準(zhǔn)化模塊上線之后重復(fù)率下降得很明顯。我試過(guò)最極端的情況輸入一段包含 500 行日志描述的資料模型把同一個(gè)數(shù)據(jù)庫(kù)重復(fù)建了四個(gè)節(jié)點(diǎn)。歸一化處理配合邊引用清理最后保留一個(gè)節(jié)點(diǎn)所有邊都指向那一個(gè) id。關(guān)系丟失的問(wèn)題更多出現(xiàn)在邊長(zhǎng)過(guò)長(zhǎng)的時(shí)候。模型在生成最后幾條邊時(shí)突然忘記了前面定義的節(jié)點(diǎn) id于是引用了一個(gè)不存在的 id。這種邊會(huì)被校驗(yàn)?zāi)K直接丟棄從結(jié)果上看就是“少了一條線”。我的處理方法是讓提示詞在結(jié)尾重復(fù)提醒“所有 id 必須是前面出現(xiàn)過(guò)的 id”同時(shí)關(guān)閉自回歸模型無(wú)關(guān)緊要的想象力效果立竿見(jiàn)影。5.4 生成慢和結(jié)果不穩(wěn)定調(diào)用大模型生成 20 個(gè)節(jié)點(diǎn)的圖一次可能要二十秒以上用戶體驗(yàn)很差。我的優(yōu)化思路不是改模型參數(shù)而是控制輸出范圍。在提示詞模板里加一條“節(jié)點(diǎn)數(shù)量不超過(guò) 25 個(gè)”讓模型在信息抽取階段做取舍。超過(guò)規(guī)模的輸入先讓模型做分層摘要再分塊生成局部圖最后再用布局引擎把幾塊圖合并到一起。這個(gè)方法犧牲了一定的“全自動(dòng)”但穩(wěn)定性和可讀性都回來(lái)了。不穩(wěn)定問(wèn)題還有一個(gè)隱藏推手模型內(nèi)置的隨機(jī)性。雖然我用 temperature0.2但不同時(shí)間運(yùn)行同一輸入仍然可能得到細(xì)微差別。后來(lái)我在注意力機(jī)制之外顯式要求模型“按輸入順序輸出節(jié)點(diǎn)”把單體節(jié)點(diǎn)與它們的邊綁定在相鄰位置。實(shí)測(cè)下結(jié)果幾乎不再跳變。6. 一些實(shí)測(cè)體會(huì)和后續(xù)擴(kuò)展方向6.1 我反復(fù)測(cè)試后的幾個(gè)結(jié)論做了這個(gè)項(xiàng)目之后我對(duì)“AI 生成架構(gòu)圖”這件事有兩個(gè)很明確的判斷。第一大模型擅長(zhǎng)提取關(guān)系不擅長(zhǎng)做空間設(shè)計(jì)。讓它羅列系統(tǒng)有哪些模塊、模塊之間怎么調(diào)用它能做得又快又好但讓它協(xié)調(diào)幾十個(gè)節(jié)點(diǎn)的坐標(biāo)它瞬間退化成隨機(jī)數(shù)生成器。因此架構(gòu)上必須把“關(guān)系提取”和“空間布局”徹底分離誰(shuí)擅長(zhǎng)什么就干什么。第二后處理永遠(yuǎn)比調(diào) prompt 更可靠。你可以把提示詞寫到完美但模型是非確定性的下一次輸出可能就任性而解析、校驗(yàn)、標(biāo)準(zhǔn)化這些代碼是確定性的一旦寫好就穩(wěn)定。我的成功率從最開始三成不到到現(xiàn)在基本九成以上真正的轉(zhuǎn)折點(diǎn)是寫了一個(gè)嚴(yán)格的后處理校驗(yàn)鏈而不是花了更多時(shí)間打磨 prompt。多輪迭代也很值得做。第一版生成的結(jié)構(gòu)即使有遺漏第二步讓模型“檢測(cè)當(dāng)前圖和輸入的一致性”大概率能把缺掉的邊補(bǔ)回來(lái)。該環(huán)節(jié)我建議最多做兩輪再多會(huì)給模型引入幻覺(jué)讓它生成不存在的依賴。6.2 接下來(lái)可以做的新功能當(dāng)前版本只是個(gè)骨架我下一步想優(yōu)先做幾個(gè)方向。第一個(gè)方向是把代碼倉(cāng)庫(kù)直接喂進(jìn)去。解析源碼里的類、函數(shù)、服務(wù)注冊(cè)信息自動(dòng)生成服務(wù)依賴圖這比讓用戶寫自然語(yǔ)言描述要精確得多。關(guān)鍵難點(diǎn)從文本抽取變成了語(yǔ)法解析但底層工作流完全不用改。第二個(gè)方向是局部編輯的對(duì)話式體驗(yàn)。現(xiàn)在生成完只能手動(dòng)改 XML不夠友好。如果用戶說(shuō)“把訂單服務(wù)的顏色改掉”“把緩存節(jié)點(diǎn)放到數(shù)據(jù)庫(kù)旁邊”模型能在保留大部分結(jié)構(gòu)不變的前提下做局部 patch這個(gè)工具就真的很像團(tuán)隊(duì)里的架構(gòu)師助理了。第三個(gè)方向是架構(gòu)演進(jìn)對(duì)比。既然圖是文本、能入庫(kù)、能 diff那就能自動(dòng)對(duì)比前后兩版架構(gòu)圖標(biāo)出新增模塊、失效依賴、不穩(wěn)定節(jié)點(diǎn)。這事對(duì)大型系統(tǒng)評(píng)審太有用了我后續(xù)會(huì)優(yōu)先投入。最后再分享一個(gè)我在實(shí)際使用中發(fā)現(xiàn)的小技巧永遠(yuǎn)在生成結(jié)果里保留一個(gè)“未知依賴”虛擬節(jié)點(diǎn)。當(dāng)模型拿到一條沒(méi)有來(lái)源的邊時(shí)不要直接丟棄而是掛到一個(gè)虛擬節(jié)點(diǎn)上提醒用戶這里可能漏了系統(tǒng)。這樣你不會(huì)在批量生成時(shí)因?yàn)閬G邊而悄悄損失語(yǔ)義架構(gòu)評(píng)審時(shí)還能“被迫”解釋清楚。這個(gè)小改動(dòng)值得任何做 AI 繪圖工具的同學(xué)抄走。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
欧美中字二区| 嫩呦国产一区二区三区AV| 亚洲色图综合| 国产一区二区三区不卡手机在线| 明星性猛交ⅹxxx乱大交| 中文字幕在线免费观看视频| 综合97久久| 99久久久无码国产精品性男| 亚91网| 婷婷久久五月天| 啊啊啊啊啊啊在线| 目产99999久久999| 中日无幕一二三四区| 日韩欧美性爱电影在线观看| 久久国产999| 亚洲另类在线观看| 天天干少妇| www.99色| 久久久久久久久9| 蜜桃色色网站视频三区| 日韩操逼性鲍| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 97视频免费播放| 使劲用力艹少妇视频一区二区| 亚洲欧洲综合成人av一区| 一级免费精品| 午夜毛片高清免费不卡| 91红杏| 亚洲精品 大香蕉| 永久电影三级在线观看| 日日骚中文字幕| 伊人国产视频| 欧洲一区二区三区免费| juliaann丝袜大战黑鬼| 日韩午夜国产| 日本孕妇孕交| www.男人天堂| 好舒服视频| 美女大乳久久久久久久女人18| 婷婷视频网| 欧美强奸乱能| 国产大陆天天艹| 岛国视频一二三区| 亚洲av综合色区图片亚洲| 亚洲一区在线观看欧洲| 亚洲资源站| 伊人9| 天天热精品| 日本熟妇自慰性高潮一区二区三区| 美国三级日本三级久久99| 激情啪啪视频| 欧美天天在线| 国产精品久久久 | 婷婷伊人| 极品五月天噜噜| 日本在线激情一区二区三区| 3p国产欧美99热| 日本在线不卡一二区| 日本精品无码三级网站| 亚洲一区二区中文字幕| 顶级丝袜熟女一区二区三区| 综合在线导航一区| 五月婷丁香| 91精品黄在线观看| 吉川爱美98堂在线| 偷拍五区| 欧美日韩传媒| 色狠狠综合| 天天干天天日天天射黄色| 免费人人搞97| 97免费视频在线观看视频| 啊啊啊不要嗯嗯在线观看| 乱人乱色一区二区三区免费| 91超碰在线| 青青操网| 无码操逼网| 久操热| www.狠狠| 亚洲高清在线se| 久久久96| 日韩99精品视频综合区| 亚洲 欧美 偷拍 唯美| 欧美性爱在线无码| 国产25页| 怡春院久久| 秋霞网—男女啪啪亚洲免费体验区 | 国产67194| 日本天天人人狠狠在线日美女 | 日韩av女优在线免费一区| 日韩乱码Av| 97网址97| 国产精品麻豆视频网站| 日韩熟女精品无码专区一区二区 | 亚洲牲交| 欧美日韩999| 2017大香蕉国产精品久久| 96久久久精品| 激情综合网激情综合| 操逼片中文| www.激情| 日韩91网| 九九综合久久| 精品少妇人妻一区二区三区| 日本色日夜干| 天天干,天天日| 97精品在线| 精品欧美А∨无码黑人大荫蒂| 96精品在线| 国产熟女一区二区| 思思热影视| 亚洲男人天堂网久久| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 99re在线视频国产| 久久黄色视频一区二区三区| 97综合日韩| 啊啊啊好想要| 亚州高清色综合| 国产精品日韩在线一区| 一级黄色影片| 麻豆尤物视频网| 丁香婷婷久久| 国产熟女精品一区二区| 丰满人妻一区二区三区四 | 精品视频久久久久九九九九9999| 天天天干977| 欧美特大黄一级片片免费| 99国内熟女露脸视频| 多毛小伙内射老太婆| 天天干人妻| 国产精品极品美女视频| 激情四射婷婷六月天| h无码动漫在线观看| 在线情色电影 91大 | 热热色综合网| 色色99| 天天草AV| 95人妻爽爽人人做人人澡| 亚洲不雅视频1区二区| 玖玖在线视频| 亚洲 日本 国产 综合| 好舒服视频| 亚洲偷拍自拍在线视频| 女优大全 - 91n| 超碰97色色| 韩国成人精品久久久免费看| 天天日天天干少妇日| av中文字幕在线熟女| 久久性爱视频99| 91久久久老司机| 91 亚洲 欧美 日韩 国产 综合| 麻豆av一区二区三区| 亚洲一二三四区| 婷婷五月天久久久| 日韩免费在线观看不卡| 欧洲亚洲综合| 91狠狠综合久久久久久| 欧美色图亚洲激情| 天天天天天超碰| 天天躁日日躁AAAXX| 一区二区高清视频| 欧洲亚洲人人爽爽视频| 亚殴在线| 高清无码网址| 天天看,天天做| 少妇被c 黄 免费观看| 国产25页| 超碰日本97美女人妻人人玩人人爱 | 影音先锋乱| 操b在线观看| 超碰欧美在线欧美| 一区二区久久天天干狠狠| jk白丝没脱就开始啪啪| 欧美色乱| 视频在线中文字幕| 天天天操天天天爱| 九九九九九精品十六| 视频在线观看一二三区| 五月天婷婷基地| 蜜桃视频成a人v在线| 阿姨一区二区免费视频-高清正片西瓜视频下载app-T450AV | 97亚洲色图| 屌妞视频久久久久久久久久久久| 成人无码在线超碰网| 精品人妻一区二区三区视频在线| 9999亚洲电影| 91 丝袜在线| 中文字幕一区 二区三四五 区日 日骚| 黄色网址在线免费观看| 乱伦熟女区| 三级色综合| 欧美激情激情xxxx欧美专区| 午夜美女诱惑电源网| 精品一二三区女同| 九九九九九九九九九五码| 亚洲精品色| 91久久精品蜜臀| 久久五月天婷婷| 国产成人bd在线观看| 久久久久久久伊人精品| 欧美性爱18观看| 成年无码动漫av片无尽在线| www.yeyecao| 日熟女| 国产黄色视频久久| 国产无码久久高清| 超碰97人人cao| 亚洲精品性爱片| 免费家庭乱伦视频| 九九精品无码专区免费| 国产美女裸体秘 永久无遮挡| 日本天天干天天操一区| 天堂69亚洲精品中文字| 亚洲自拍天堂| 色狠狠色| 亚州情色j区| 91是天天| 四虎884a| 国产乱不卡| 91超碰丝袜制服| 啊啊啊啊免费视频| 综合夜夜| 豆花视频操逼网址| 日韩性爱再线视频| 少妇高潮99p| 歐美一級亂黃99在綫精品| 欧美人妻精品| 亚洲欧美综合网站| 日夜精品| 中文字幕高清精品一区| 亚洲古典另类欧美在线| 欧美久热| 中文字幕乱碼在线| 精品综合久久久久久97| 国产色图乱伦| 久久久久久久免费A片国产成a人亚洲精∨品无码 | 亚洲人妻五月丁香婷婷| 亚洲国产成人7777| 8050无码八戒| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 人人喜人人妻| 无码人妻系列少妇| 襙一襙| 岛国黄色大片网站| 夫妻四区五区六区| 欧美九一精品久久久熟妇| 99999精品| 思思热免费在线视频| 久久精品性| 大香网伊人久久综合| 免费看毛片操穴| 亚洲www91| 国语少妇精| 亚洲国产成人精品999| 中日韩久久久| 一区久久久二区| 死我十八禁| 热思思免费视频| 美女黄频a美女大全免费皮| 日韩精品国产精品五码一区二区| 操淫穴亚洲五月丁香 | 六月丁香五月婷婷| 九一国产精品| 国内精品久久人妻性色av| 九九热超碰| 欧美日动态视频| 麻豆精品.欧美精品.日韩精品.| 久久久久亚洲AV无码专区少妇| 9久综合网| 国产丝袜一区二区三区| 亚洲美女自拍偷拍视频| 国产第二页| WWW.操逼.COM| 男人兔费天堂| 国产精品丝袜在线| 国内精品伊人久久久久影院会| 双插在线| 激情 欧美 亚洲 小说| 夜夜一区二区| 欧美亚洲今日在线| 999岛国大片| 日本顶级天天操狠狠操夜夜操中文字幕| 欧美日韩在线小说 | 国产精品午夜精品| 天天视频综合在线观看视频| 99热18这里只有精品| 啪啪啪精品| 久久久久久久久久久97| 91bbb| www.99色| 久久久新亚洲AV| caorenqi shipin| 天天网综合| 五月天婷婷基地| 99少妇| 久99久视频| 91成人亚洲色图| 乱伦一二三区| 久久爽爽精品| 精品偷拍13p欧美dodk视频| 日日骚精品视频| 日逼逼免费看| 色九九综合AV| 婷婷丁香六月| 呦呦一区| 丁香婷婷激情五月天无毒不卡| 99久久亚洲精品无码毛片潘甜甜| 麻豆人妻少妇在线免费观看| 亚洲最大的综合性av| 亚洲AV色图一区| 日本在线不卡一二区| 大鸡巴久久| 欧中美三级一区二区三区| 亚欧Av| 欧美色997| 一级岛国大片| 天堂资源站| 五月天黄色激情视频| 欧美偷| 屌色在线97视频| 国产在线综合福利网站| 强奸熟女一区二区三区| 久久亚洲婷婷| 中文字幕美女91| 天美一区在线| 大香蕉宗合网在线| 日韩免费在线视频观看| 欧美少妇高潮| 欧美久久毛片基地| 五月天婷婷色色| 波多野结衣之双飞调教在线播放 | 上床不卡网站| 人妻久久久久久久久久久久久久久| 91精品国产综合久久久蜜臀酒店| 9长久久精品| 色色婷| 国产91av在线播放| 国产美女自拍视频| 综合久久99亚洲人妻中文在线| 久久精品国产72国产精品福利| 97精品免费| 中文字幕人乱码中文字的预防方法 | 亚洲第一男人天堂| 丁香五月天久久精品视频一区二区三区| 人人妻人射| 男人的天堂va| 国产夫妻性生活视频| 夜夜高潮夜夜爽高清视频一 | 殴美色网| 噜噜噜亚洲精品| 人人手机欧洲亚洲国产人妻| 97最新在线播放视频| 久操B网| 欧美性爱精品一区二区| {男男暴菊gay无套网站| 国产99热| 久久大香蕉97| 九九九九九九九九九九九蜜桃 | 久久无码一区二区二三区性色| 亚洲丝袜二区在线| 综合一区二区影视| 96国产污污污丝袜| 夜夜操av亚洲一区二区| 久久麻豆一区二区| 久久综合18p| 一区二区三区精品黑丝白丝酒店对鸡| 秋霞无码av鲁丝片一区| 金莲网址| 亚洲天堂人妻熟妇视频| 天天草夜夜草高潮片| 欧美天天| 久久精品| 家庭乱伦国产精品| 国产精品不卡高清在线观看| 日本精品999| 91综合网站| 91第一页| 日韩在线观看三级电影| 1769成人国产精品视频| 日本一区二区不卡| 亚洲欧美国产中文视频| 国产美女在线精品免费看| 国产精品久久久| 欧美日韩中文视频播放| 日本精品五区| 久久久国产av美女私房| 亚洲免费在线探花| 久久久久国产精品片区无码直播| 久久6热视频免费观看| 国精精品无码一二三区水多多| 国产一级高跟丝袜| 久久精品国产96精品亚洲拳交| 色官网色综合| 偷看洗澡一二三区美女| 麻豆天美电影一区二区| 香港日本韩国人妇99www.wccm20| 日本一久是| 97久久国产亚洲精品超碰热| 2017,超碰| 天天拍夜夜| 黄片www视频免费| 亚洲无码成人精品| 2020国产精品| 日韩pv中文| 色欲人妻一区二区在线| 亚洲国产成人精品久久久国产成人一区二区三. | 国产高清精品福利| 亚洲日本成人动漫| 99re9这里只有精品| 99re8免费高清在线| 少妇一区二区三区在线观看| 久久久91福利姬| 久操高青| 久啪| 亚洲中文字幕熟女| 秋霞影音一区二区三区| 天天综合91在线| 中国黑人三级片网站上区| 日韩八十路老熟女| 97啪啪| 日本午夜操逼| 亚洲精品久| 乱久久久| 97欧美| 欧美日本国产日韩激情视频| 亚洲天堂人妻一区二区| 久久精品一区一起草| 天久久久噜噜噜久久国产精品爽爽 | 国产精品 久久久精品一牛| 成人午夜小视频手机在线看| 91超碰人人| 色综合 加勒比| 91欧洲国产成人久久精品网站| 久久久亚洲欧美综合| 色婷婷五月天| 99这里只有精品| 欧美视频一区二区三区| 艹精品| 日韩乱码av| 欧美女同在线| 久草免费福利在线播放| 成人天天看站长推荐| 大鸡巴久久| 国产成人免费观看在线视频 | 国产特级毛片AAAAAA高潮流水| 一区二区三区精品黑丝白丝酒店对鸡 | 伊人影院日本| 亚洲AV成人在线| 一直超碰| 青草草免费网站av| 日韩超碰精品综合| 偷拍综合网| 欧美婷婷| 蜜臀久久久99久久久久 | 亚洲一级特黄大片在线播放91| 久久9亚洲| 欧美+日产+中文| 天天肏夜夜肏| 色色97爱| 亚洲性爱高潮影院| 久久人妻熟女一区二区| 亚洲第一在线视频| 91 偷| 最近的最新的中文字幕视频| 久久精品国产97欧美精品亚洲| 乱伦图av| 日本最新1区2区3区| 国产欧美精选激情视频| 欧美亚洲宗合色性图| 欧美日韩日产免费网站看| 蜜桃在线观看一区二区三区| 午夜成人爽爽爽爽A片李冰冰| 爽爽淫人网| 蜜臀AV午夜精品久| 不卡人妻少妇精品毛片一区23区视频| 日韩一级久久毛片| 五十路熟女工口 | 99久久综合网| 欧美性暴力| 久久久999日本大片| 84YTCOM性无码| A啊啊在线观看| 久久社区一区二区三区| 东北女人性交| 麻豆久久视频在线地址| 强被迫伦姧在线观看无码网站| 亚射在线| 欧美性巨大╳╳╳╳╳高跟鞋| 久久精品电影| 色婷婷久久| 夜夜爽夜夜| 亚洲一区二区三区麻豆传媒| 久久精品中文字幕观看| 色综合 加勒比| 久久久久免费少妇| 中字幕人妻一区二区三区| 欲射影视| 日本在线一二| 日欧操屄| 日本精品九九九| 97人肏| 欧美强奸乱能| 五月丁香狠狠爱| 99无码狠狠久久| 日日夜夜模| 亚洲无码色| 国产超碰AV在线精品| 超碰欧美97资源| 天综合网| 亚洲精品啪视频| 亚洲成人贴图| 欧美91久久久久| 亚洲天堂,男人| 激情抓乳插进去啪啪啪日韩| 大香蕉中文在线| av久日| 国产精品久久发布| 国产久久久久久久久一区二区| 加勒比伊人| 精久久久| 色娱乐色呦呦夜夜夜夜av| 99视频在线| 人妻中文字幕精品无码| 中文字幕三四区| 国产天天噜一噜久久久| 综合 青草 伊久久 影院 综合| 成人三级片无码| 日韩av性爱在线播放| 国产91丝袜 在线播放| 夜夜骑操视频| 日日夜夜国产综合| 亚洲图片欧美91N| 欧美日综合| 亚洲欧美在线观看免费| 豆花视频操逼网址| 99re这里只有精品9| 亚洲欧美天| 加勒比伊人影院| 色噜噜人妻丝袜AV资源| 色一射色一射| 99国内精品| 亚洲,欧美,春色,另类| 女人高潮大叫一级毛片| 人看人人摸人人操| 全免费a敌肛交毛片免费| 亚洲天堂一区二区久久| 日本成人免费一区二区三区| 亚洲色图欧美色图另类图片| 9Ⅰ超碰| 欧美色干| 东京热天堂网| 日日骚AV| 黄色免费一级在线毛片| 不卡中文字幕aⅴ在线| 久久精品国产Aⅴ| 搡老女人老91妇女老熟女| 欧美天天综合网版| 欧美 亚洲 综合 制服| 九九人人操| 色五月亚洲| 91 亚洲 欧洲| 91扒丝袜综合在线| 国产污视频麻豆传媒一区二区| 啊啊啊啊视频免费| 97欧美色综合| 色九九久九九| 91激情| 四虎午夜影院| 精品欧美А∨无码黑人大荫蒂| 新久久AV| 丁香婷婷啪啪| 花野真衣| 麻豆 亚洲 97| 亚洲情色 自拍| 天天干18禁| 成人午夜高潮av猛片| 翔田千里Av在线| 黄片国产精品一区二区| 婷婷久热| 中文一区二区婷婷视频| 曰韩无码777| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 骚货 中文字幕 av| 亚洲综合在线91| 亚洲天天在线| 中文字幕日韩人妻视频一区二区三区 | 人妻精品一区二区在线| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 2020中文在线一区二区三区| 人妻少妇av在线观看| 国产超碰在线| 麻豆区99999| 人妻 中文 日韩| 高清无码国产亚洲| 二区熟妇韩日| 91麻豆天美国产欧美高潮| 一区二区三| 欧美αv.com| 亚洲五月丁香花狠狠干一区二区三区 | 97在线免费看| 91成人久久| 久久啊啊啊| 免费簧片在线观看| 国产人妻精品久久久一区二区三区 | 亚洲污一污二| 9久久久久| 操操逼操操逼操操逼逼| 97资源超碰| 九九九九九九九九九九九蜜桃| 国产精品剧情| 精品久久人妻成人网| 老熟女熟妇| 青草一区二区| 强奸乱伦动态污图免费 | 精品少妇99| 久久91视频| 乱理日韩中文| 我想要 啊 啊 啊| 99在线无码精品秘 入口黑人| 亚洲 91 在线| 91老妇女| 免费看A片毛毛片在线播| 精品网站9999| 日本506070| 欧美很很操视频| 国产亚洲日本| 乱伦一区二区三区‘| 国产欧美日韩在线观看麻豆传媒公司| 亚州精品人妻一二三区| 新久久AV| 伊蕉97蜜桃97狠狠综合干| 亚洲阿v天堂在线| 久久综合99| 夜夜嗨一区二区三区三州加勒比| 美女午夜福利免费视频| 热久久国产精品视频大陆精品| 国产精品白丝| 成人精品电影| 久久久9999| 国产欧美精品日韩区二区麻豆天美| 天天搞欧美| 天天做日日爱夜夜爽| 九九国产热| 亚洲熟女性高潮久久久| 日韩无码AB| 国产精品视频一区二区三区八戒| 亚爽爽爽爽爽爽爽爽| 国模私拍一区二区三区神乳| 欧美色一二三| 白丝1区2区3区| 精品999999| 久操B网| 日韩熟女无码| 亚洲av热热色| 激情无码日韩| 国产AV线| 五月天偷拍| 懂色aV一区二区天美传媒| 欧州色图区| 囯产精品久久久久久久久久梁医生| 欧美性天天影视| 超碰在线人人射| 麻豆乱码久久精| 亚洲AV无码翔田千里网站| 天天操美美| 人妻少妇av在线观看| 91美女片在线| 一区,二区,三区网站| 一个国产在线综合网站| 亚洲色图 综合| AV综合中文字幕干| 亚洲激情视频| 亚洲淫色网中文| 国产激情av女片自拍| 激情婷婷黑人91| 大香蕉AV丝袜| 操逼不卡中文字幕| 极品肉射| jiujiujiujingpin| 韩国黄色片精品久久久| 超清中文乱码字幕| 亚洲熟女乱综合一区二区三区 | 中文字幕av片| 国产精品一区二区在钱播放| 香蕉久久AⅤ...| 国产又粗又长的视频| 国产精品情侣啪啪| 亚洲无码AV九九九| 久久六六| 人妻无码一区二区三区久久99| 综合久久99| 秋霞网—男女啪啪亚洲免费体验区| 免费99精品国产自在在线| 欧美亚洲玖玖玖| 亚洲天堂AV在线播放| 一区二区影视| 日韩人人精品| 美腿色图| 99热这里是精品| 国产一区自拍欧美日韩| 欧美人妻制服| 日本黄色天堂| 日本九九久久99播| 黄网在线播放| 97人妻免费中文字幕| 国产精品熟女一区二区三区| 日韩A优精品在线观看| 亚洲熟女综合一区二区| 91操人| 国产精品色哟哟| 人妻少妇精品一区二区三区| 亚洲欧美综合区自拍另类| 91 欧美| 亚春色色| 99热国产| 欧美伦乱爱| 800zy一区二区| 91丝袜美女国产| 国产女人成人精品视频| 国产人伦a片信息免费片| 无码不卡亚洲成?人片| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 婷婷丁香五月天综合东京热| 日韩福利综合一区| 青娱乐91| 揉揉日日日日| 欧美丝袜91| 亚洲久久东京热一二三四五区视频| 91夜夜蜜桃臀1区2区3区| 无码99| 99热色这里只有精品| 亚洲久热| 五月激情综合网| 无码色| 亚洲天堂电影精品一区| 久久综合九九| AV中文在线| 久久久婷| 国产欧美日韩在线观看麻豆传媒公司| 九九色精品| 免费精品99| AV 少妇 人妻 偷拍| 久99热| 加勒比大香蕉视频在线| 中文字幕在线播放2中文字幕在线观看2 | 日本一二区免费| 亚洲精品一二三四区| 日本午夜福利视频| 亚射在线| 九一精品牛牛一区二区| 欧美日韩另类字幕中文| 蜜臀一二三| 热热色青青草| 91精品国产91熟女| 国产精品香蕉| 人妻干天天| 夜色AV无码手机在线影院| aaaa少妇高潮大片| 色区久久| 日韩一区二区熟女| 加勒比东京热五月天天堂网| 欧美操逼熟女| 丁香五月天激情网站| 六月丁香五月婷婷| 自拍丝袜美腿人妻| 午夜AV污污污| 91A欧美电影网站| 欧美黄色手机在线观看| 在线一道啪| 丁香五月久久| 麻豆av一区二区三区| 久久综合久色欧美综合狠狠| 婷婷激情丁香| 亚洲中文字幕精品一区| 日韩欧美中文| 一区二区日韩欧美久久| 久久111| 四季av一区二区凹凸精品小说| 欧美+日产+中文| 日韩无码操逼片| 日韩av乱伦| n1038 一二三区| 爱丝福利| 手机午夜电影神马久久| www网站黄| 夜夜高潮夜夜爽| 后入式999| 日本操逼视频免费| 色综合网1| 少妇人妻精品| 熟女露脸激情自拍视频| 91视频国品一二三区| 国内精品嫩模A∨私拍小视频| 国产毛片片精品天天看视频| 嫩草影院在线观看精品 | 久久久91福利姬| 午夜精品久久久久久久久久久久久| 秋霞一集毛片观看| a在线视频免费观看| 亚洲人在线成线成人| 99热这里只有精品1| 亚洲人妻中文在线视频| 成人性爱电影网| 一本一首道人妻少妇免费久久| 国产嫩草精品A88AV| 强奸乱伦AV网址| 综合激情五月天| 91视频综合在线| 日本在线观看网址| 婷婷五月色| 免费99精品国产自在在线| 亚洲中文字幕在线视频一区二区| 国产精品熟女乱伦| 国产成人精品午夜福利| 翔田千里爆乳巨臀无码| 伊人成人中文字幕久久网| 强奸熟女一区二区三区| 中文字幕第9页萱萱影音先锋| 99操视频| 天天综合~91| 亚洲AV无码黄色强奸| AV丝袜少妇| 久久久久亚洲熟妇熟女| 亚洲麻豆精品二区三区| 一区二区播放| 亚洲成人美女无吗| 人人爽人人精品乱人伦AV| 超清福利精品视频在线| 九九十八精品| 日本人妻最新在线中| 91欧美高清| 欧美翘臀视频网站一区二区三区| 国产成人精品日本亚洲语言| 麻豆精品三区视频| 最新国内自拍av免费| 亚洲综合888| 91人妻人人澡人人爽人人精品| 男人的天堂2010| 玖玖久久久| 五月花婷婷| 国产99热| 亚洲国产一区二区三区在线| 亚洲欧美综合| 精品久久久久9999| 免费观看网黄| 自拍二页| 国产久久av| 精品制服美女中文一区二区三区| 久久久久亚洲Aⅴ无码| 亚洲一区制服诱惑| 日韩av乱伦| 亚洲高清综合网| 五月黑AⅤ| 免费视频在线一区二区不卡| 97在线欧洲| 精品久久久久av影院| 亚洲色图自拍| 婷婷五月天激情网| 激情综合网亚洲| 天美传媒在线一区| av无码精品久久久久| 久99在线免费观看视频| 男人的天堂啪啪| 国产精品不卡一区二区三区av| 屌妞视频久久久久久久久久久久| 亚洲一区二区三区中文字幕| 拍拍拍拍大尺度黄色三级片拍拍拍拍拍照| 亚洲各类熟们中文字幕| 黄骗免费网站| 91久久国产综合精品| 欧美强奸一区二区诱惑| 亚洲人综合19| 欧美日韩精品国产91| 人妻aa| 日本不卡一二区| 宗合情欲网| 成年人一级黄色毛片大全在线观看| 男人的天堂com| 亚洲欧美性生活| 国产成人bd在线观看| 欧美色乱| 加勒比人妻综合| 男人的天堂在线有码| 91深夜夜| 欧美在线电影| 国产天天看| 99操视频| 蜜桃视频成a人v在线| 97碰碰色| 日产成人久久| 人人妻人人操人人乐| 国产精品成人蜜臀AV在线| 97在线免费观看| 色一区二区三区综合| 九月AV| 欧洲色色| 國產尤物AV尤物在線觀看| 最新日本中文字幕| 午夜操操操| 69人妻精品丰满熟女区| 91校园春色长篇| 丰满少妇乱子伦精品无| 欧美成人一级麻豆| 熟女少妇一区二区三区| 欧美熟妇亚洲版| 99自拍B亚洲 | 夜夜中出国产| 精品超碰国产| 超碰国产精品久| 国产精品一区二区a| 久久久久女教师免费一区| 色女免费在线观看视频网址| 白丝1区2区3区| 色情婷婷| 日本熟女中文| 免费A V在线播放| 成人性爱av| 成人av毛片在线观看| 天天日天天干少妇日| 91精品国产91久久久久久久久久久久| 亚洲精品蜜桃久久久久久久| 成人熟女视频一区二区三区| 天天拍天天操| 中文字幕在线免费观看视频| 一个人免费HD91视频| 色婷婷视频| 久久五月天婷婷丁香中文字幕| 亚洲最新Av| 蜜臀一区二区三区在线 | 中文字幕一区av| 99热精品免费| 婷婷亚洲色| 少妇滛荡视频| 国产免费永久精品无码| 另类一区| 91黑人无码激情在线| 五月天婷精品激情| 欧美精品自慰系列寂寞少妇| 日亚韩精品视频二区三| 亚洲Av无码成人精品国产| 333kkkk·亚洲com久久| wwwcaobibi| 国产高清无码一区二区三区四区皇冠| 丰满人妻一区二区三区大胸懂色| 日韩成人性爱AV| 丰满人妻一区二区三区大胸懂色| 亚洲情色中文字幕一区| 午夜精品探花| 九九色热| 91精品国产综合久久久蜜臀| 精品v1区| 最新精品久久蜜桃| 亚洲宗合网| 久久精品一区二区三区蜜桃臀| 久肏视频字幕| 91国模| 成人av在线播放| 欧美成人A天堂片在线观看| 亚洲成?V人片在线观看福利| 一区二区三区激情在线观看| 99性爱视频| 91啪9色| 亚热日本熟女| 精品超碰色| 蜜臀99久久精品久久久久| 极品销魂美女一区二区| av在线一区二区三区| 中文字幕av亚洲在线| 99色综合| 美美91成人国产精品欧美精品久久久久久久| 欧美日韩人妻婷婷一区| 无码二级三级| 欧美乱伦专区| 欧美成人黄网色网站| 日韩啪啪啪啪啪| 亚洲淫色网中文| 欧洲色综合| 乱抡国产91| 在线国产探花| 欧美性战999| 国内外毛片在线观看| 蜜臀在线视频| 亚洲最新中文字幕免费| 五月丁香大香蕉| 午夜福利在线视频1000| 亚洲图片视频小说| 成人免费毛片| 99色热| 青青伊人加勒比海| 91性感在线| 岛国视频免费在线观看| 粉嫩国产精品久久粉嫩| 亚洲精品黑丝| 日本阿v天堂在线观看| 999国产精品999| 欧美色图片91| 少妇天堂| 日韩av在线免费网站| 99精品丰满人妻无| 久草看看看| 亚洲五码一区二区三区| 夜夜嗨AV蜜臀av| 国产精品农村妇女精品| 鸡巴插逼视频| 嗯嗯啊啊亚欧精品| 伦理第一页| 一区二区三区激情在线观看| 屌妞视频久久久久久久久久久久| 四虎影视精品| 中文自拍欧美影视| 成人在线永久| 国产精品999aaa| 欧美成人精品A片免费一区99| 九九九九97| 成人性爱av| 91色噜噜狠狠| 91人人| 91色情黑丝搞鸡在线观看一区二区三区三州| 超碰碰激情97+久| 极品欧美一区二区三区| 久久精彩免费视频| 99re99在线视频| 九九成人精品| 亚州综合色| 91麻豆天美国产欧美| 日韩精品人妻中文字幕不卡乱码| 东北丰满熟女国产一区| 老熟女熟妇| 国产福利一区二| 美女尤物福利视频| 老鸭窝成人免费毛片视频| 色九区| 欧洲亚洲人妻无码高清久久三区四区| 亚洲一卡2卡3卡4卡乱码网站| 日本一天色道久久久精品视频| 一区二区三区免费视频入口| 日韩偷拍色图| 国产又黄又爽| 不卡超碰护士AV在线免费播放| 国产AV中文| 中文字幕大片三级狠狠干| 欧美天堂在线| 女人的久久久| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 久久国语| 污污汅18禁网站在线永久免费观看 | 麻豆精品.欧美精品.日韩精品.| 亚洲欧洲网站免费观看| 男人天堂最新手机版在线青青草| 日韩乱伦视频| 亚洲人妻精品一区二区| 99免费在线视频| 水多多映视AV| 日han少妇无码| 再深点灬舒服灬太大了添视频 | 免费综合亚洲中文| 久区视频| 麻豆天美国美国产AV| 97操| 性生活久久久久久久久久| 偷拍亚洲熟女视频播放| 欧美传媒一区| 综合久久中文字幕综合日韩精品| 欧美日韩亚洲天堂| 国产有码一区| 伊人久久综合精品欧美| 怡红院亚洲怡春院av| 亚洲操操| 不卡中文字幕aⅴ在线| 久久宗合亚洲| 婷婷五月天av| 成人免费毛片| 久久禁| Av色五月| 日逼国产| 亚洲爽图| 免费草草草草草视频| 久久婷婷伊人| 操人人| 欧美性色欧美| 亚洲综合影片| 女人高潮大叫一级毛片| 思思热国产高清| 亚洲青青草| 91久久精品国产| 亚洲成人一区二区精品| 国产精品噜噜噜日日日| 欧美人妻色| 色优久久| 熟女五十路一区二区三| 人人操人人摸超碰| 天天综合网1| 日本一本一区二区三区四区五区欧美日韩中文字幕 | 综合亚洲网| 九九夜精品九九在线| www.色五月| 99re国产精品视频| 国内伊人久久久久久网站视频| 91性感网站| 混色激情av| 国内精品久久久久影院亚洲| 日韩三级在线观看网站| www男人天堂| 夜夜 中文视频rt| 麻豆天美国美国产| 亚洲偷拍自拍在线视频| 亚洲熟女乱色一区二区三区| 91色欧美| 日本不卡一区二区三区| 内射中出日韩在线观看视频| 97这里只有精品| 神马麻豆福利院| 久湿久久| 国产青视频| 欧美黑人XXXⅩ高潮交| 久久久久久精品免费看A级| 思思热在线视频免费| 97久久久久| 2019亚洲男人天堂| 97看操| 少妇无码太爽| 婷婷色在线| 高清在线偷拍自拍视频| 日韩精品国产一区二区| 乱伦一二三| 国产白丝精品在线观看| 97超碰精品图片| 97超碰伊人| 青青草国产一区二区三区| baiduhicn.com。| 久草精品国产蜜臀| 情色日播放AV| 久久久久骚| 天美av在线观看| 亚洲男人天堂Av| 密桃99999| 免费看毛片操穴| 人妻天天夜夜爽一区二区| 人妻久久久| 看日韩美女二区三区免费操逼视频| 中文字幕亚韩| 91在线无码精品秘 软件| 另类一区| 日韩不卡av一二三| 国产高潮AA片免费看| 国产成人在线观看综合| 一块操欧美性爱| 九九色逼| 99成人| 一区二区三区 丝袜 高跟 美腿| 精品国产乱码久久久久久久久1| www.夜夜操| 男人的天堂在线有码| 97 亚洲 日韩 欧美 在线| 亚洲不卡不卡中文字幕不卡| 情色av电影| 免费看污网址| 欧美天天综合站| 夜夜无码| 1区2区3区视频|