国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

基于本地LLM與Git的離線代碼審查CLI工具實戰(zhàn)

基于本地LLM與Git的離線代碼審查CLI工具實戰(zhàn) 1. 為什么我要自己動手做一個 open-code-review 工具代碼審查這件事做過團(tuán)隊協(xié)作的人都有體會。提了 PR 之后等 reviewer 有空、reviewer 看漏了邊界條件、同一個低級問題在三個文件里重復(fù)出現(xiàn)——這些場景幾乎每天都在發(fā)生。市面上的商業(yè)代碼審查服務(wù)不少但要么按席位收費貴得離譜要么把代碼傳到別人的服務(wù)器上公司安全規(guī)范直接卡死。我所在的團(tuán)隊就屬于后者私有倉庫連外部 CI 都不讓接更別說把 diff 發(fā)給第三方 API 了。于是我開始琢磨能不能用本地能跑的 LLM配合 Git 的命令行能力做一個完全離線的代碼審查工具這就是open-code-review的起點。它的定位很明確——一個跑在終端里的 CLI 工具讀取git diff的輸出把變更內(nèi)容喂給本地或自建的 LLM Agent讓它按預(yù)設(shè)規(guī)則逐文件、逐 hunk 地給出審查意見最后匯總成一份可讀的報告。整個鏈路不依賴任何外部服務(wù)代碼不出內(nèi)網(wǎng)。這篇文章適合三類人看一是想給自己團(tuán)隊搭一套私有代碼審查流水線的工程師二是正在研究 LLM Agent 怎么和 Git 工作流結(jié)合的技術(shù)愛好者三是單純想搞清楚 CLI 工具怎么調(diào)用大模型、prompt 怎么設(shè)計、diff 怎么解析的開發(fā)者。我會把設(shè)計取舍、核心實現(xiàn)、踩過的坑全部攤開講代碼片段可以直接抄。先說清楚一個概念區(qū)分因為熱詞里很多人問agent、LLM、AI 模型到底啥關(guān)系。簡單講LLMLarge Language Model是底層的大語言模型比如 DeepSeek、GPT 系列、Claude 系列它們本質(zhì)是輸入文本、輸出文本的函數(shù)。AI 模型是個更大的范疇LLM 只是其中一類。而Agent是在 LLM 之上加了一層感知—決策—行動的循環(huán)它能調(diào)用工具比如讀文件、執(zhí)行 git 命令、跑測試根據(jù)工具返回的結(jié)果決定下一步做什么。open-code-review 里的審查邏輯就是一個輕量 Agent——它不只是把 diff 丟給模型要一段評論而是會先解析 diff 結(jié)構(gòu)、按文件分組、對每個 hunk 單獨提問、再把結(jié)果聚合。這個分而治之的調(diào)度邏輯就是 Agent 和裸調(diào) API 的區(qū)別。2. 整體架構(gòu)CLI 外殼 Git 解析層 LLM 調(diào)度層2.1 三層職責(zé)劃分我把整個工具拆成三層每層只干一件事方便單獨測試和替換。第一層是CLI 外殼負(fù)責(zé)參數(shù)解析、配置加載、輸出格式化。用戶敲ocr review --staged或者ocr review main..feature這一層把命令翻譯成內(nèi)部調(diào)用。我選的是 Python 的argparse加rich做終端渲染沒上 Click 是因為 argparse 零依賴、夠用rich 負(fù)責(zé)把審查結(jié)果渲染成帶顏色和表格的漂亮輸出。第二層是Git 解析層負(fù)責(zé)調(diào)用 git 命令拿到 diff然后把 unified diff 格式解析成結(jié)構(gòu)化的數(shù)據(jù)結(jié)構(gòu)。這一層是整個工具的地基也是最容易出 bug 的地方后面單獨展開講。第三層是LLM 調(diào)度層負(fù)責(zé)把結(jié)構(gòu)化的變更內(nèi)容組裝成 prompt調(diào)用模型解析模型返回做結(jié)果聚合。這一層要處理超長 diff 的分片、并發(fā)調(diào)用、失敗重試、結(jié)果去重。三層之間用簡單的 dataclass 傳遞數(shù)據(jù)不引入消息隊列或復(fù)雜框架。理由很直接這是個單人維護(hù)的工具過度設(shè)計只會增加維護(hù)成本。2.2 為什么不用現(xiàn)成的 diff 解析庫Python 生態(tài)里有unidiff、patch-ng這類庫我一開始也用了unidiff但很快發(fā)現(xiàn)兩個問題。一是它對二進(jìn)制文件、重命名、模式變更file mode change的處理不夠細(xì)而這些恰恰是代碼審查里需要特別標(biāo)注的地方——比如一個文件從 644 變成 755可能是誤操作。二是它把整個 diff 一次性加載進(jìn)內(nèi)存遇到幾千行的巨型 diff 會卡。所以我最后自己寫了個流式解析器逐行掃描 diff 文本用狀態(tài)機(jī)識別diff --git、index、---、、、、-、 這些前綴。核心邏輯大概是這樣import re from dataclasses import dataclass, field dataclass class Hunk: old_start: int old_lines: int new_start: int new_lines: int lines: list field(default_factorylist) dataclass class FileDiff: old_path: str new_path: str is_new: bool False is_deleted: bool False is_renamed: bool False is_binary: bool False hunks: list field(default_factorylist) HUNK_HEADER re.compile(r^ -(\d)(?:,(\d))? \(\d)(?:,(\d))? ) def parse_diff(text: str) - list: files, current, hunk [], None, None for line in text.splitlines(): if line.startswith(diff --git): if current: files.append(current) parts line.split( b/, 1) current FileDiff(old_pathparts[0][11:], new_pathparts[1] if len(parts) 1 else ) hunk None elif line.startswith(new file mode): current.is_new True elif line.startswith(deleted file mode): current.is_deleted True elif line.startswith(rename from): current.is_renamed True elif line.startswith(Binary files): current.is_binary True elif HUNK_HEADER.match(line): m HUNK_HEADER.match(line) hunk Hunk(int(m.group(1)), int(m.group(2) or 1), int(m.group(3)), int(m.group(4) or 1)) current.hunks.append(hunk) elif hunk is not None and line[:1] in (, -, ): hunk.lines.append(line) if current: files.append(current) return files這段代碼看著簡單但有幾個細(xì)節(jié)值得說。diff --git a/foo b/foo這行里路徑可能帶空格所以用split( b/, 1)而不是按空格切。頭里的行數(shù)可能省略比如 -1 1 表示各一行所以正則里用了(?:,(\d))?并給默認(rèn)值 1。二進(jìn)制文件沒有 hunk直接標(biāo)記跳過。提示解析 diff 時一定要處理\ No newline at end of file這種特殊行它不屬于任何 hunk 的內(nèi)容但會影響行號計算。我一開始忽略了它導(dǎo)致審查意見里的行號全部偏移。2.3 數(shù)據(jù)流全景從用戶敲命令到看到報告數(shù)據(jù)流是這樣的CLI 解析參數(shù) → 調(diào)用git diff拿到原始文本 → 解析器轉(zhuǎn)成FileDiff列表 → 過濾器按規(guī)則剔除不需要審查的文件比如 lock 文件、圖片→ 分片器把大 diff 切成模型能吃的塊 → 調(diào)度器并發(fā)調(diào)用 LLM → 結(jié)果聚合器合并同一文件的意見 → 渲染器輸出。這個鏈路里過濾器和分片器是兩個容易被低估的環(huán)節(jié)。過濾器決定了審什么分片器決定了怎么審得動。下一節(jié)專門講這兩個。3. Git 變更獲取與 diff 分片策略3.1 拿到正確的 diff 范圍git diff的參數(shù)組合非常多工具要支持幾種常見場景。我定義了三個入口ocr review --staged審查暫存區(qū)等價于git diff --cached適合提交前自查。ocr review --range main..feature審查兩個分支之間的差異適合 PR 場景。ocr review --commit abc123審查單個提交等價于git show abc123。底層統(tǒng)一走一個函數(shù)根據(jù)參數(shù)拼 git 命令。這里有個坑git diff默認(rèn)會調(diào)用外部 diff 工具或受.gitattributes影響輸出格式可能不是標(biāo)準(zhǔn) unified diff。所以我在命令里強(qiáng)制加了幾個參數(shù)git -c diff.mnemonicprefixfalse -c core.quotepathfalse \ --no-optional-locks diff --no-color --no-ext-diff \ --unified3 --find-renames --find-copies main..feature逐個解釋。diff.mnemonicprefixfalse保證路徑前綴是標(biāo)準(zhǔn)的a/和b/而不是i/、w/這種隨場景變化的助記前綴否則解析器要處理多種前綴。core.quotepathfalse讓中文路徑不被轉(zhuǎn)義成八進(jìn)制否則文件名會變成\346\226\207...這種鬼東西。--no-optional-locks避免在只讀操作時去搶 index 鎖多人同時跑不會互相阻塞。--no-ext-diff禁用外部 diff 工具。--unified3固定上下文行數(shù)方便后續(xù)按 hunk 處理。--find-renames和--find-copies讓 git 識別重命名和復(fù)制這樣審查時能知道這個文件只是改名了內(nèi)容沒動避免誤報。注意如果你的倉庫很大git diff本身可能就要跑好幾秒。我加了個--no-optional-locks之后在 CI 環(huán)境里并發(fā)跑多個審查任務(wù)時不再出現(xiàn) index.lock 沖突導(dǎo)致的失敗。3.2 哪些文件不該送進(jìn)模型不是所有變更都值得讓 LLM 看。我維護(hù)了一個默認(rèn)忽略列表同時允許用戶在配置文件里覆蓋類別匹配規(guī)則忽略理由鎖文件*.lock,package-lock.json,poetry.lock機(jī)器生成無審查價值且極長壓縮產(chǎn)物*.min.js,*.min.css,dist/**壓縮后不可讀浪費 token二進(jìn)制圖片、字體、.so,.dll模型讀不了解析器已標(biāo)記生成代碼*_pb2.py,*.generated.*由工具生成改也是改生成器快照測試__snapshots__/**,*.snap內(nèi)容隨實現(xiàn)變審查意義低這個列表不是拍腦袋定的。我統(tǒng)計過團(tuán)隊三個月的 PR鎖文件和 dist 產(chǎn)物占了 diff 總行數(shù)的 40% 以上全部剔除后 token 消耗直接砍半審查速度提升明顯。但要注意忽略規(guī)則不能一刀切——有些團(tuán)隊把dist也納入版本管理且需要審查所以必須可配置。配置用 YAML長這樣ignore: - *.lock - package-lock.json - dist/** - **/*.min.js max_hunk_lines: 200 max_file_lines: 2000max_hunk_lines和max_file_lines是分片閾值下面講。3.3 大 diff 怎么切才不丟上下文LLM 有上下文窗口限制一個幾千行的 diff 塞進(jìn)去要么超限要么模型注意力被稀釋、審查質(zhì)量下降。所以必須分片。但分片有個矛盾切得太碎模型看不到跨函數(shù)的調(diào)用關(guān)系切得太粗又超限。我的策略是按文件優(yōu)先、按 hunk 兜底。具體規(guī)則單個文件的所有 hunk 加起來不超過max_file_lines默認(rèn) 2000 行就整個文件作為一個審查單元。超過的話按 hunk 切但每個分片盡量包含連續(xù)的 hunk且分片之間保留 3 行重疊上下文。單個 hunk 超過max_hunk_lines默認(rèn) 200 行的說明這是個巨型改動單獨成片并標(biāo)記oversized在報告里提示人工重點看。為什么按文件優(yōu)先因為代碼審查里很多問題是文件級的——比如這個文件新增了 500 行但沒加任何測試這個模塊的 import 順序亂了。如果按 hunk 切碎模型就看不到文件全貌這類意見就提不出來。只有文件實在太大時才退化成 hunk 級。分片時還要注意保留 hunk 頭里的行號信息因為最終報告要定位到具體行。我在每個分片的 prompt 里都會帶上 -old_start,old_lines new_start,new_lines 這行讓模型知道它看的是文件的哪一段。def split_file(fd: FileDiff, max_file_lines: int, max_hunk_lines: int): total sum(len(h.lines) for h in fd.hunks) if total max_file_lines: return [fd] # 整文件一片 chunks, buf, buf_lines [], [], 0 for h in fd.hunks: hlen len(h.lines) if hlen max_hunk_lines: if buf: chunks.append(buf); buf, buf_lines [], 0 chunks.append([h]) # 巨型 hunk 單獨成片 continue if buf_lines hlen max_file_lines: chunks.append(buf); buf, buf_lines [], 0 buf.append(h); buf_lines hlen if buf: chunks.append(buf) return chunks這段邏輯我調(diào)了好幾版。最早是簡單按行數(shù)累加切結(jié)果把一個函數(shù)的開頭和結(jié)尾切到兩個片里模型對著半截函數(shù)提了一堆莫名其妙的意見。后來改成hunk 是不可分割的最小單位因為一個 hunk 通常對應(yīng)一處連續(xù)改動切開就失去語義了。再后來加了巨型 hunk 的單獨處理因為確實遇到過自動生成的遷移腳本單 hunk 上千行的情況。4. 把 diff 變成模型能懂的審查指令4.1 prompt 結(jié)構(gòu)設(shè)計prompt 設(shè)計是這個工具的靈魂。我試過很多版本最后穩(wěn)定下來的結(jié)構(gòu)是四段式角色設(shè)定 審查規(guī)則 變更內(nèi)容 輸出格式。角色設(shè)定要具體不能只說你是一個代碼審查員。我寫的是你是一位有十年經(jīng)驗的資深工程師擅長發(fā)現(xiàn)并發(fā)問題、邊界條件、資源泄漏和安全隱患。你的評論要具體、可操作指出問題所在行并給出修改建議。 這樣模型輸出的意見會明顯更聚焦而不是泛泛地說代碼可以更清晰。審查規(guī)則是可配置的默認(rèn)包含這些維度正確性邏輯錯誤、邊界條件、空指針、類型不匹配安全性注入風(fēng)險、敏感信息硬編碼、權(quán)限校驗缺失性能不必要的循環(huán)、重復(fù)計算、N1 查詢可維護(hù)性命名、重復(fù)代碼、過長函數(shù)、缺失注釋測試新增邏輯是否有對應(yīng)測試變更內(nèi)容部分我會把文件路徑、hunk 頭、具體增刪行都帶上并且用明確的標(biāo)記區(qū)分新增和刪除文件: src/auth/login.py 變更類型: 修改 -45,7 45,9 def verify_token(token): if not token: return None - payload jwt.decode(token, SECRET) payload jwt.decode(token, SECRET, algorithms[HS256]) if payload.get(exp, 0) time.time(): raise TokenExpired() return payload輸出格式我要求模型返回 JSON字段固定file、line、severitycritical/warning/info、category、message、suggestion。用 JSON 是為了后續(xù)能程序化聚合和渲染而不是讓模型自由發(fā)揮寫一段散文。但這里有個坑——模型經(jīng)常在 JSON 外面包一層 markdown 代碼塊或者加一句好的以下是審查結(jié)果。所以解析時要先剝離代碼塊標(biāo)記再用容錯的方式提取 JSON。import json, re def extract_json(text: str): text text.strip() text re.sub(r^(?:json)?\s*, , text) text re.sub(r\s*$, , text) try: return json.loads(text) except json.JSONDecodeError: m re.search(r\[.*\], text, re.DOTALL) if m: return json.loads(m.group(0)) return []提示讓模型輸出 JSON 時一定要在 prompt 里給一個完整的示例并且明確說只輸出 JSON不要任何解釋文字。即便如此仍要寫容錯解析因為模型偶爾會忘記。4.2 并發(fā)調(diào)用與限流一個 PR 可能有幾十個文件串行調(diào)用模型太慢。我用concurrent.futures.ThreadPoolExecutor做并發(fā)默認(rèn) 4 個 worker。為什么是 4 而不是更多因為本地跑的模型比如通過 Ollama 或 vLLM 部署的通常只有有限的并發(fā)能力開太多反而排隊。如果是調(diào)用遠(yuǎn)程 API可以調(diào)到 8 到 16但要配合限流。限流我用的是簡單的令牌桶每秒放行 N 個請求。這里踩過一個坑一開始沒做限流20 個文件同時發(fā)出去遠(yuǎn)程 API 直接返回 429然后我的重試邏輯又同時重試形成雪崩。后來加了指數(shù)退避加隨機(jī)抖動才穩(wěn)定下來。import time, random def call_with_retry(fn, max_retries3): for i in range(max_retries): try: return fn() except RateLimitError: sleep (2 ** i) random.uniform(0, 1) time.sleep(sleep) raise RuntimeError(重試耗盡)指數(shù)退避的2 ** i保證每次等待翻倍隨機(jī)抖動避免多個線程同時重試撞在一起。這個模式在任何調(diào)用外部服務(wù)的場景都適用不只是 LLM。4.3 結(jié)果聚合與去重并發(fā)調(diào)用回來的是一個個分片的審查結(jié)果需要合并。合并時有兩個問題同一文件多個分片的意見要按行號排序不同分片可能對同一行提出重復(fù)意見因為分片有重疊上下文。去重策略是按(file, line, category)三元組做鍵保留 severity 最高的那條。如果兩條意見 message 高度相似用簡單的編輯距離或 Jaccard 相似度判斷也合并。實測下來重疊上下文導(dǎo)致的重復(fù)意見大概占 5% 到 10%不去重的話報告會很啰嗦。聚合后按 severity 排序critical 在前info 在后。渲染時用 rich 的表格critical 標(biāo)紅warning 標(biāo)黃info 標(biāo)藍(lán)。最后給一個統(tǒng)計摘要本次審查共發(fā)現(xiàn) X 個 critical、Y 個 warning、Z 個 info涉及 N 個文件。5. 實測中暴露的問題與修復(fù)過程5.1 模型對刪除行的誤判最早版本里我把 diff 的增刪行原樣喂給模型結(jié)果模型經(jīng)常對被刪除的代碼提意見。比如刪掉了一行有 bug 的代碼模型卻說這行代碼有風(fēng)險。原因是它沒理解-前綴的含義。修復(fù)方法是在 prompt 里明確說明 diff 格式并且在變更內(nèi)容前加一段說明以下 diff 中以-開頭的行是被刪除的舊代碼以開頭的行是新增代碼以空格開頭的是未改動的上下文。請只對新增代碼和上下文提出審查意見不要對被刪除的代碼提意見。 加了這段之后誤判率從大概 15% 降到 2% 以下。這個坑的本質(zhì)是模型不知道你的輸入格式約定。任何把結(jié)構(gòu)化數(shù)據(jù)喂給模型的場景都要顯式說明格式不能假設(shè)模型應(yīng)該懂。5.2 行號對不上的問題報告里的行號一開始經(jīng)常對不上用戶點過去發(fā)現(xiàn)是空行或者別的函數(shù)。排查后發(fā)現(xiàn)兩個原因。一是模型返回的行號是相對于 hunk 的偏移而不是文件絕對行號。二是\ No newline at end of file這類特殊行影響了計數(shù)。修復(fù)方案是在 prompt 里明確要求模型返回文件絕對行號并且在變更內(nèi)容里把每個 hunk 的起始行號標(biāo)出來。同時在解析器里正確處理特殊行不把它們計入行號。為了驗證我寫了個測試構(gòu)造一個已知行號的 diff跑一遍審查斷言返回的行號落在預(yù)期范圍內(nèi)。這個測試后來成了回歸測試的一部分。5.3 大文件導(dǎo)致的超時有個 PR 改了一個 3000 行的配置文件雖然我做了分片但每個分片仍然很大模型響應(yīng)慢加上并發(fā)整體超時。后來我加了兩條規(guī)則一是對配置文件、數(shù)據(jù)文件這類低審查價值的大文件默認(rèn)只審查前 500 行并提示文件過大僅審查前 500 行二是給每個 LLM 調(diào)用設(shè)置獨立的超時默認(rèn) 60 秒超時就跳過該分片并在報告里標(biāo)記未完成審查。這里的原則是寧可漏審不可卡死。一個審查工具如果跑十分鐘還沒結(jié)果用戶就不會再用第二次??焖俳o出 80% 的價值比慢慢給出 100% 更有用。5.4 中文注釋和字符串的處理團(tuán)隊代碼里有大量中文注釋早期版本模型對中文的處理不穩(wěn)定有時把中文注釋當(dāng)成亂碼。排查發(fā)現(xiàn)是core.quotepath的問題——git 默認(rèn)會把非 ASCII 路徑轉(zhuǎn)義。加上-c core.quotepathfalse之后路徑正常了但文件內(nèi)容里的中文本來就沒問題。另外在 prompt 里加一句代碼中可能包含中文注釋和字符串請正常理解模型的表現(xiàn)會更好。6. 配置、集成與日常使用心得6.1 配置文件長什么樣工具的所有行為都通過一個.ocr.yaml配置放在倉庫根目錄。完整示例如下model: provider: openai_compatible base_url: http://localhost:8000/v1 api_key: ${OCR_API_KEY} name: deepseek-coder temperature: 0.2 max_tokens: 2048 timeout: 60 review: concurrency: 4 max_file_lines: 2000 max_hunk_lines: 200 rules: - correctness - security - performance - maintainability - testing ignore: - *.lock - dist/** - **/*.min.js output: format: table show_info: true fail_on_critical: truetemperature設(shè) 0.2 是因為代碼審查需要穩(wěn)定、可復(fù)現(xiàn)的輸出太高會每次給出不同意見。fail_on_critical設(shè)為 true 時如果發(fā)現(xiàn) critical 問題進(jìn)程退出碼非零可以直接接進(jìn) CI 流水線做門禁。api_key用${OCR_API_KEY}從環(huán)境變量讀取避免密鑰寫進(jìn)配置文件提交到倉庫。這是基本的安全習(xí)慣但確實見過有人把 key 硬編碼進(jìn)去然后推到公開倉庫。6.2 接進(jìn) CI 和 Git hooks最常見的兩種集成方式。一是pre-commit hook提交前自動跑一次審查發(fā)現(xiàn) critical 就阻止提交#!/bin/sh ocr review --staged --fail-on-critical放在.git/hooks/pre-commit并加執(zhí)行權(quán)限即可。但要注意pre-commit 里跑 LLM 會拖慢提交速度如果模型響應(yīng)慢開發(fā)者會煩。我的做法是 pre-commit 只跑快速規(guī)則比如正則匹配敏感信息完整審查放到 CI。二是CI 集成在流水線里加一步- name: Code Review run: | pip install open-code-review ocr review --range origin/main..HEAD --format markdown review.md env: OCR_API_KEY: ${{ secrets.OCR_API_KEY }}輸出 markdown 后可以貼到 PR 評論里。這里的關(guān)鍵是模型服務(wù)要能被 CI 訪問——如果模型跑在本地開發(fā)機(jī)CI 就夠不著得部署一個內(nèi)網(wǎng)可訪問的推理服務(wù)。6.3 幾個提升效果的小技巧第一給模型提供項目背景。在配置里加一個context字段寫清楚項目是干什么的、用了什么框架、有哪些約定。比如這是一個 Django 項目所有數(shù)據(jù)庫操作必須走 ORM禁止裸 SQL。模型知道這些之后提的意見會貼合項目規(guī)范而不是泛泛而談。第二定期更新審查規(guī)則。團(tuán)隊踩過的坑應(yīng)該沉淀成規(guī)則。比如曾經(jīng)因為沒做參數(shù)校驗出過線上問題就把所有外部輸入必須校驗加進(jìn)規(guī)則。規(guī)則越貼合團(tuán)隊實際工具越有用。第三不要迷信模型的每一條意見。LLM 會有幻覺會提出不存在的問題。我的做法是把 severity 為 info 的意見默認(rèn)折疊只展開 critical 和 warning減少噪音。審查意見是輔助最終判斷還是人來做。第四關(guān)注 token 成本。如果用的是按量計費的 API一個大 PR 可能花掉幾塊錢。我統(tǒng)計過剔除鎖文件和產(chǎn)物后平均每個 PR 的審查成本在可接受范圍內(nèi)。但如果團(tuán)隊 PR 特別頻繁建議用本地模型邊際成本幾乎為零。6.4 關(guān)于模型選型的實際對比我試過幾種模型跑同一批 diff感受如下僅代表個人實測環(huán)境模型類型審查質(zhì)量速度部署難度適合場景本地 7B 代碼模型中等能抓明顯問題快低日??焖僮圆楸镜?32B 代碼模型較好邊界條件也能抓中等中團(tuán)隊內(nèi)網(wǎng)部署遠(yuǎn)程大模型 API最好理解力強(qiáng)取決于網(wǎng)絡(luò)低對質(zhì)量要求高的場景選型的核心權(quán)衡是質(zhì)量、速度、隱私三者不可兼得。內(nèi)網(wǎng)部署犧牲一點質(zhì)量換隱私和成本遠(yuǎn)程 API 換質(zhì)量但代碼要出內(nèi)網(wǎng)。沒有標(biāo)準(zhǔn)答案看團(tuán)隊約束。7. 后續(xù)可以繼續(xù)打磨的方向工具目前能穩(wěn)定跑但還有幾個我想做的改進(jìn)。一是增量審查——記住上次審查到哪個 commit只審新增部分避免重復(fù)勞動。二是意見學(xué)習(xí)——記錄開發(fā)者對每條意見的采納或忽略用這些反饋微調(diào) prompt讓工具越來越懂團(tuán)隊的偏好。三是多語言規(guī)則包——不同語言Python、Go、Java的常見問題不一樣做成可插拔的規(guī)則包會更專業(yè)。我在實際使用中最大的體會是代碼審查工具的價值不在于替代人而在于把人從重復(fù)勞動里解放出來。格式問題、明顯的空指針、忘記加校驗這類低級錯誤交給工具架構(gòu)設(shè)計、業(yè)務(wù)邏輯是否合理這類需要上下文判斷的留給人。分工清楚了工具才真正有用而不是變成一個制造噪音的負(fù)擔(dān)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
大香蕉懂9| 日本狂喷奶水在线播放212| 精品精品精品| 国产中文字幕曰本毛片| 久久精品国产亚洲5555| 大香蕉色欲AV| 欧美成人亚洲精品| 99999精品视频| 欧美黑人精品在线播放| 夜夜精品视频| 天天综合色图| 色欧美在线| 久久78| 熟妇高潮一区二| 东京日日夜夜| 极品色www影院| 亚洲巨爆乳一区二区三区四季网| 91 丝袜在线| 91操人| 神马久久久久久伦理片| 一区二区三| 久久婷婷欧美| 亚州人妻| 婷婷丁香一区二区三区| 天天干天天日天天射黄色| 中国国国产一级特黄毛片| 亚洲激情视频| 亚洲啪啪综合?v一区综合精品区| 玖玖久久久| 国产后入内射| 人妻无码视频一区二区三区久久| aaa淫乱视频| 国产欧美日韩在线观看麻豆传媒公司| 日本一区二区三区欧美日韩中文字幕| 九月色婷婷| 黄色av一区二区在线| 99视频这有这里有精品| 蜜乳性色无码专日粉嫩骚逼AV| 韩国一级做a久久久久| 最新国产亚洲精品精品国产亚洲综合| 国产色呦呦| 精品九九国产无码| 中文字幕jul-617人妻熟女| 久久无码电影| 久久综合婷婷| 欧美极品女人的天堂| 五月天丁香网| 97在线免费看| 99热在线不卡| AV99热18这里只有精品| 男人的天堂视频精品乱在线| 操逼操2| 日日躁夜夜躁狠狠躁超爽| 中国熟女91| 日本999精品| 熟女露脸激情自拍视频| 日韩有码专区| 天天肏天天干| 亚洲无码超碰免费| 日韩三级天堂在线观看| 99热伊人| 大香伊人在线一区| 亚春色色| 三级日韩一区二区三区| 另类小说综合网| 久久一区二区高清免费| 久久久日本电影| 97干在线视频| 国产亚洲精品A在线观看下载| 精品国产一区探花在线观看| 能在线播放的国产三级| 99久久网站| 中文啪啪视频| 成人黄页| 性饥渴少妇av无码毛片| 五月婷丁香| 国产日本熟女顶级一区二区三区视频 | 日韩 国产 欧美自拍| www亚洲免费| 中文字幕亚韩| 日本日日色视频| 999狠狠综合| 制服诱惑亚洲一区二区三区在线观看| 欧美的精品的视频| 免费观看成人www精品视频| 日韩欧洲操屄视频| 99热99在线| 久久最新免费视频23| 黑人与人妻| 天天干人妻视频| 亚洲本色精品一区二区久久| 欧美日韩 强奸乱伦| 亚洲nv男人的天堂网| 欲香欲色天天天综合和网| 大香蕉中文网| 无码视频黄色网战| 亚洲一区二区 麻豆传媒| 97精品全部| 欧美大波激情xxxx| 麻豆久久视频在线地址| 97日韩欧美亚洲| 99久久99久久免费精品蜜臀| 国产一区二区啪啪视频| 欧美午夜色妇色鬼| 老司机天天操| 日韩欧美丝袜诱惑| 黑人猛交| 婷婷综合视频| 91超碰丝袜制服| 高潮毛片无遮挡高清免费| 欧美在线干| 伊人伊人LD| 亚洲日韩天堂| 99热精品在线| 婷婷人妻激情| 97在线视频观看| 青操影院| 丁香五月AV| 日韩精品9区| 人人爱人人乐人人操| 色香色欲天天综合网天天来吧 | 中文字幕 人妻不满 在线视频| 欧美在线视频播放| 丁香九月 婷婷| 青青草在线成人视频| 亚洲小说视频| 91在线色综合| 东北女人无套内谢视频| 欧美综合自拍成人自拍第二十页| 91伊人| JULIA一区二区三区在线播放| 97超碰精品成| 成人午夜小视频手机在线看| 97精品视频在线| 亚洲操逼无码| 好涩综合| 日韩pv中文| 精品国产乱码久久| 欧亚久久偷拍视频| 大香蕉手机视频| 日韩成人小视频| 国内精品久久久久影院亚洲| 97Ai亚洲| 熟妇亚洲一区二区三区| 亚洲日韩人妻中文字幕一区| 熟女精品一区二区在线观看| 欧美 亚洲 综合 制服| 国产乱子伦久久精品综合一区二区三| 男人的天堂在线2| 亚洲暴力强奸AV| 男人的天堂在线| 高清无码国产亚洲| 欧美一二三| 色婷婷婷五月天激情四射| 日韩无码视频黄色| 精品夜夜澡人妻无码AV| 九九精品美女高溯喷水| 92午夜免费福利视频| 亚洲se电影| 婷婷五月天伊人| AA级电影三区| 亚洲在线A| 亚洲精品久久久久久久久豆丁网| 久久黄片国产一区二区| 91白虎| 嫩草 人人网精品| 中文激情网| 成·人免费午夜在线观看| 欧美久久婷婷| 乱伦3P视频| 97se亚洲综合自| 久久av色| 欧美1727免费观看视频| 色婷婷色99国产综合精品| 欧美成人免费在线观看| 骚妻少妇精品性色无码四色A V| 久久9视频| 在线αⅴ| 亚洲天堂一区| 在线 欧美 亚洲| 久久久不能久久久久| 成人 日本A片无码8888| 亚洲性爱电影| 1769成人国产精品视频| 久久久精品一区二区| 欧美亚洲综合色| 黄在线| 凹凸精品熟女在线观看| 久久久久久久久女黄| 久久av色| 夜夜嗨绯色| 久久久久久久一级黄色打同平台| 国产激情在线观看| 在线视频 亚洲精品| 色女免费在线观看视频网址| 精品国产91久久久久久一区黄无| 区日韩亚洲乱码av电影| 中文字幕黄色片| 少妇人妻好深太紧了vr91| 国产捆绑一区| 91伊人| 伊人性在线视频| 欧美青青视频| 午夜精品久久久久久久| 91在线丝袜视频| 混色激情av| 久久久久久AⅤ无码免费肉站| 欧在线一二区| 欧美色图综合网| 国产女人9999| 色眯眯av| 久日91在线| 熟妇视频一区二区三区在线观看| 九九99精品视频在线观看| 99re国产精品视频| 欧美一级久久久久久久大片动画| 成人一道本免费视频| 99人妻| 丰满人妻一区二区三区免费 | 91亚洲欧美| 九九九九九九九九九国产精品 | 在线色导航| 成人小说视频在线精品欧美| 99国产精品视频尤物| 亚洲成人黄色在线观看| 青青免费在线视频一区 | 夜夜操2028| 中文字幕一区 二区三四五 区日 日骚 | 26uuu性物| 久草国产在线视频| 国产精品欧美日韩久久| 日本123区操B视频| 97人肏| 日韩精品一区二区三区色欲| 青青青操| 亚洲交换| 美国日韩黄片| 操逼片国产| 强奸乱伦资源| 天天爱天天韩国日本牛牛牛牛| 久久99久久99精品免视看婷婷| 久久综合九九| 精品一区二区三区最新| 后入式视频国产自| 好吊色青靑草| 俄罗斯一区二区视频在线观看| 日韩无码黄色片| 亚洲精品日韩国产欧美| 亚州黄站| 日本护士高潮| 蜜桃一区二区三区| 麻豆视频一区二区| 久草色在线观看| 色婷婷久久| 夜夜爽夜夜高潮夜夜爽| 人人噜夜夜操| 国产丝袜美女在线一区| 青草视频人妻在线观看| 又大又黄国产| 亚洲国产成人精品无码专区| 少妇贴图| 玖玖爱一区在线| 欧美久久伊人| 99久久精品无码一区二区毛片免费| 性交一区二区在线播放| 日本不卡二三区| 蜜臀AV网站| 久9无限国产| 我中文字幕6区| 婷婷色婷婷| 日韩 欧美 另类 人妻| 操熟女91| 麻豆人妻少妇在线免费观看| 蜜桃精品一区二区三区ww| 亚洲第一无码播放立川理惠| 国产又黄又粗又猛大片| 成人区人妻精品一| 中文字幕丝袜人妻| 2024人人操人人摸| 亚洲一卡2卡3卡4卡乱码网站| 91内射| 二级毛片| 大香蕉日亚洲日本亚大| 欧洲亚洲天堂精品| 91中文精品日韩欧美在线| 国产一级片| 中文字幕精品一区二| 欧美激情 一区| 亚洲黄色网址| 91五月天| 人干人人人操人人摸| 97这里只有精品| 天天爽入口| 超碰97久久国| 亚洲。日韩。欧美| 偷拍欧美激情| caopeng97人妻| 久久久久免费少妇| 日本色婷婷| 亚洲天堂7777| 精品久久久久久无码| 91色插| 国产免费一区| av日韩中文字幕| 素颜老阿姨乱情色| 久久婷婷欧美| 久久久111| 操少妇很爽av| 大香蕉在线视频15| 久久这里精品国产99丫e6| 欧美成人9797| 青青草视频久久久久| www四虎| 五月丁香色情| 99热超碰| 日韩久久艹| 在线天堂999| 麻豆天美电影一区二区| 亚洲另类综合欧美| 国产精品经典一卡久久久 | 日本最新1区2区3区| 97精品中文字幕| 台湾佬中文娱乐网久久久久久久久久com| 人妻在线大香蕉| 亚熟hd视频在线| 日韩中文字幕宗合在线| 加勒比伊人综合| 色香欲天天天天综合色| 精品少妇高潮久久| 亚洲一区二区三区春色| 尤物视频一区| 福利在线黄片| 2001天天操| 99re8免费高清在线| 91n免费处女| 伊人久大| 国产精品com| 亚洲色系另类精品国产| 国产三级电影免费观看| 日韩三级一区 | 欧美AB在线| 日韩特级毛片免费观看全集| 艹少妇网站| av中文在线| 男人下部插入女人下部| 欧美大干日韩| 综合 亚洲 欧美| 啊啊啊想要| 天天操夜夜操狠很操| 国产女人91精品嗷嗷嗷嗷| 91亚洲人电影| 人妻人久久精品中文字幕| 91在线免费精品视频| 色牛牛AV| 欧美91久久久久| 中文字幕久久婷婷丁香五月天| 亚洲二区精品在线观看| 亚洲精品国产精品乱码不卡| 亚洲激情综合另类| 九九色精品| 99热日| 日韩激情无码影院| 亚洲中文字幕熟女| 激情丁香五月婷婷| 成人情色综合网| 性爱Av免费| 丰满少妇人妻久久久久久| 91中文字幕制服丝袜免费视频| 乱伦av麻豆| 日韩二三区| 免费国产视频| 99国内精品| 欧洲综合色| 嫖老熟女A片一二三区| 亚码人妻| 一类无码操逼视频| 五月婷婷hd| 17c嫩草51久久91嫩草| 色婷婷电影网| 97超碰超| 亚洲国产第一页综合视频| 久久久久久人体| 翔田千里av一区二区三区| 毛片麻豆91糖心精品毛情片| 干干干天天| 久久久久网站-538在线视频-欧美永久乱码| 立川理惠被中出无码| 91蜜臀在线久久久久| 69精品| 3571色综合一区二区二区| 欧美最婬乱婬爆婬牲视频| 亚洲最大无码中文字幕网站| 国产精品97视频| 婷婷五月天社区| 久久久性爱| 亚洲综合激情五月久久| 欧美日韩狠狠爱| 91黑丝在线播放| 国产精品乱码久久| 蜜桃中文字日产乱幕4区| 成人无码在线视频网站| 亚洲色情在线影视| 干婷婷综合网| 国产精品操| 国产性感在线观看| 中文字幕一区二区三区高清| 2003天天干夜夜操| 亚洲精品99| 亚洲欧美日韩偷拍色图| 自拍欧美| 国产无马av| 97免费视频在线观看| 嗯啊不要啊啊在线观看视频| 欧美另类综合久久| 久草成人| 欧美午夜视频| 五月丁香婷婷综合网| 超碰免费人妻在线| 另类成人首页一区| 亚洲精品一区中文字幕乱码| 久久国产免费激情视频| 天堂网亚洲区手机版| 看看小穴| 天天干天天狼在线视频| 91肉丝| 天操老女人| 色播五月丁香| 成人自拍三级在线观看| 99少妇| 男人的天堂在线2| 免费看欧美美女黄色大片 | 人妻少妇久久| 91 丝袜在线| 国产精品无码AV网站| 亚洲综合另类| 一区二区播放| 屌妞视频久久久久久久 | www.99中文字幕| 亚洲国产日韩精品久久久| 人人摸人人干| 天堂精品在线| 一区二区三区免费岛国片| 91精品老女人| 亚洲玖玖爱| 久久精9| 九九精品美女高溯喷水| 色五月首页| 一级特黄aaa大片在线观看成人一级片在线观看| 丝袜美腿91| 啊啊啊啊操死我了| 97人肏| 亚洲欧美精品福利在线| 久久亚洲AV无码专区首页| 日本精品一区二区三区四区的功能| 天天日美女的B| 91欧美长吊| 伊人亚洲国产一成人久久精品,久久| 国产精品女久久久久av爽| 被窝影院午夜看片无码| 91情色| 久久嫩草| 91丝袜人妻| 日日妻色网| 久草精品一区| 国产地址二三| 欧美猛交黑寡妇中文字幕| 伊人影院在线理论播放 | 天天爽人人综合免费7799| 在线国产福利网址导航| 久艾草在线精品视频在线观看| 国产精品视屏| 国产呦精品系列在线观看| 人人妻人人澡人人爽久久av| 99热在线只有精品| 9久9久| 国产精品久久久久久久久久二区三区| 青青伊人加勒比海| 色网综合网| 老鸭窝黄色视频网站| 欧美中文字幕一区| 麻豆精品A片免费观看| 日本一区二区三区精品| 国产精品久久久蜜臀| 久久一二区四| 三上制服丝AV| 久久亚码| 哑洲在线| 亚洲色人阁| 78超碰| 一区二区中文| 成人无码在线超碰网| 人人干黄色| 精品高清一区二区三区三州| 成人a大片在线观看| 青娱乐亚洲自拍| 997色在线| 97伊人超碰| 97日亚洲欧美| 婷婷操视频| 国产在线强奸视频| 亚洲色图亚洲无码强奸乱伦| 色99在线| 影音综合网| 欧美情色贴图| 校园春色美腿丝袜 | 国产成人91一区二区三区| 无码137片内射在线影院| 一级@啪啪视频| 色成人Www精品永久观看| 亚洲av乱伦色图网站| 亚洲精品视频二区| 亚洲97p| 青青青草原| 97超碰中文在线| 自怕偷自怕亚洲精品| 国产激情在线观看| 一个人在线看的黄色电影网站| www.AV有限公司一区| 欧洲站一级二级三级h| 国产深夜福利| 欧美丝袜制服久久| Av色五月| 亚洲久草AV色图| 亚洲综合第一页| 国产精品久久久久亚洲av| 思思热在线| 1二区9| 精品玖九九久| www.久久最新地址| 国语人妻精彩刺激| 婷婷精品国产欧美精品亚洲人人爽| 97这里有精品| 黄片com.| 一及黄久一点| 91bbbbbb| 国产呦精品一区二区三区下载| 亚洲日韩av一区二区三区百合| 欧美在线中M| 操逼操逼操| 日本免费亚洲欧美| 国产视频小说| 日韩在线地址一| 九月婷婷| 亚洲久久天堂| 日韩视频啪啪| 91在线色| 精品欧美老熟女一二区| 久久女婷| 一区e区三| 思思热免费在线视频| 97国产精品国| 97国产超碰| 四虎影院成年人片| 色偷综合| 中文字幕中文字幕一区二区| 中文字幕一区二区三区蜜臀| 淫淫综合网| 99啪啪视频| 97超色| 97精品熟女少妇一区| 99re8超碰| 一级一性爱免费视频| 婷婷五月成人| 无套后入双马尾| 日本福利二区视频| 日韩成人人妻网站| 91干熟女| 精品国产乱码久久久影院| 美女一区二区国产精品| av东京热男人的天堂| 91精品微拍福利| 色婷婷综合久久中文字幕雪峰| 亚洲欧美综合| 无码一区二区三区四区五区六区七区八区九区十区视频 | 狠狠 91| 一区二区三区看视频| 91热爆在线| 91精品在线播放| 久久 国产精品 一区| 四虎影视国产精品| 大香蕉久久| 熟女精品日韩一区二区三区 | 亚洲精品亚洲人成在线麻豆| 夜夜嗨免费视频| 爱媛媛久久国产福利| 人人操超碰在线| 综合激情五月丁香| 青草成人免费视频一com| 国产av白丝| 不卡中文字幕aⅴ在线| 白丝jkav| 黄色网址在线免费观看| 九九九九一区| 99青草| 74成人在线| 啊啊啊好大好湿| 国产成人bd在线观看| 超碰97极品9| 日本韩国一本产品小视频日本韩国一本产品久久久产品小视频日本韩国一本产品久 | 久久五十路熟女人妻| 久热久操| 色综合99| 操逼视频国产无套| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 97超碰国产亚洲精品| 日本三级中国三级99人妇网站| 国产综合久久久麻桃个| 97 视频在线| 日韩一级免费性爱| 蜜臀久久99精品久久久久| 亚洲精品天天影视综合网 | 91色综合| 97精品97久久| 成人资源中文字幕在线观看天天| 成人无码在线视频网站| av日韩中文字幕| 精品熟女一区=区三区| 日本操色导航| 91亚洲欧洲| 九九九九免费高| 开心激情婷婷| 上海一级黄片| 在线观看中文字幕| 精品二区三四区五电影 | www成人啪啪18秘 免费| 久久精品国产亚洲AV先锋| 在线小视频| juliaann精品熟女一区| 中文字幕在线观看二区三区| 亚洲码在线中文在线观看| 人妻 欧美亚洲| 一区二区首页| 亚洲中文字幕97久久精品少妇| 日韩性爱人人爱人人操| 狠狠操使劲操| 成人一二三区| 久久精品成人一区二区三区蜜臀| 性欧美体内射精| 大香蕉九九| 日韩人妻播放| 国内毛片国产欧美拍| 婷婷色香伊人| 天天影视91看看| 嫩草影院永久在线制服丝袜| 亚洲欧美九九| 九九av| 国产AV高清AV无码| av网页一区二区三区| 天天射天天操天天干天天吃2018| 日骚逼视频| www.av不卡中文字幕| 热久久九九热| 男人下部插入女人下部| 伊人亚洲国产一成人久久精品,久久| 日欧亚洲二三区大片不卡| 国产精品成久久久久午夜午夜| 精品日日人妻| 乱人乱色一区二区三区免费| 97爱啪| 久久人妻无码毛片A片麻豆| 性生活久久久久久久久久| 旡码电影特区| 欧美精品成人亚洲| 亚洲午夜免费狠狠干| 五月色综合| 伊人99热| 99视频只有精品| 99久久网站| 亚洲成av人片色午夜乱码| 日本欧美亚洲高清在线看| 91碰超| 亚洲天堂AV在线播放| 成人免费看吃奶视频网站| A片A5445444| 91视频伊人| 黄片免费视频2019| 在线看的av| av日韩国产一区二区| 欧美一级特黄淫片在线观看| 东北丰满熟女国产一区| 伊人久久大香线蕉无码| 精品一区二区综合熟妇| 五月天黄色激情视频| 黄aaaaaaaaaaaaaaaaaa色网站| 日韩欧美俄罗斯A片| 干婷婷综合网| 国产精品色色| 青青青操| 日韩精品作爱导航| 九草九九九| 97鸡把在线视频| 久久超碰网| 中国操逼无码| 免费强奸av| 婷婷久热| 青青草九九九九九| 久久鲁夜| 四虎精品亚洲| 白嫩少妇| 日本熟女中文字幕一区| 亚洲成人久久美女| 在线观看一卡二卡| 情色五月天久久久| 啊啊啊啊啊舒服| 欧姜老司机| 69av一区二区三区| 亚洲五码一区二区三区| 激情五月天综合网| 91久久伊人婷婷青青草| 天天干夜夜| 亚洲欧美999| 国产精品国产自产高清AV| 久久精品色欧美aⅴ一区二区| 熟妇熟女视频一区二区三区| 日韩国产十八禁| 在线 欧美 亚洲| 一区二区三区国产在线播放| 国产一进一出视频网站| 色色色欧美| 人妻精品一区二区全免费| 哑洲在线| 五月天婷婷在线看| 久久东京国产精品视频| 香蕉一区二区三区在线视频| 蜜桃精品一区二区三区久在线| 亚洲欲色| 亚洲午夜福利在线影院| 嗯嗯嗯啊啊啊在线免费观看| 无码九九| 老司机深夜18禁污污网站| 久久久97| 天天综合网AV91| 午夜毛片亚洲精品片国产久久久| 777AV电影| 久久女人视频| 色99在线| 91熟女少妇| 国产亚洲性生活视频播放| 狠狠爱综合网| 伊人午夜福利视频| 欧美日韩午夜精品一区二区三区| 99性视频| 国产91丝袜在线播放蜜月| 999久久久免费精品国产牛牛| 在线啊v一区| 制服诱惑亚洲一区二区三区在线观看| 亚州综合网| 久久久久9| 久久久久国产精品人妻aⅴ天堂| 无码一区免费在线不卡| 午夜天堂精品久久久久91| WWW美腿丝袜香蕉中文| 欧美日韩另类在线| 精品免费1| 大香蕉综合网| 91美女丝袜诱惑视频| 热久久无毒不卡| 一级黄色视频网| 中文字幕55555| 国产精品久久久 | 顶级丝袜熟女一区二区三区| 日日AV加勒比| 欧美成人性爱视频在线播放| 亚洲情色第一页| 久久粉色| 欧美日韩国产在线| 1024精品在线| www.婷婷| 一区二区视频在看| 人妻久久久久久| 日本欧美不卡| 天天插天天射| 97亚洲中文| 久久久久久久亚洲Av无码| 精品人妻一区二区三区日产| 中出后入| 无码粉嫩白虎一线天b区| 18禁超污无遮挡无码免费网| 国产免费一区| 欧美精品久久久久久久久88| 天天干1区2区在线| 日本性爱少妇| 噜噜噜噜天天狠狠| 超碰国产在线| 91精品国产综合久久久蜜臀酒店| 一区二区三区精品黑丝白丝酒店对鸡| 欧成人精品一区二区三区| 激情综合五月| 亚州性9| 乱日视频| 国产女同视频在线播放| 青青操视频在线| 在线v中文字幕一区二区三区| 91国产伊人大香蕉| 欧美操人| 久久综合久久综合人久久夜精品| J?P?NESEHD熟女熟妇伦| 精品国产一区二区三区久久久蜜臀 | 久久久久精| 国产精品人妻一区二区| 欧美A√综合网| 久久免费精品视频免一| 日韩图色| 色女99一级片在线观看| 精品欧美А∨无码黑人大荫蒂| 任你干在线视频| 五月天伊人| 国产精品一二三区18| 二三四区精品| 91丨九色丨大屁股| 超碰在线人妻中文字幕| 日日干夜夜欢| 99re9在线| 国产91av在线播放| 精品超碰色| 白丝1区2区3区| 久久久久久久国产视频| 亚洲高清欧美总合| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 无码天堂| 男人的天堂日本东京热| 大香蕉婷婷| 少妇一区二区三区高速| 丰满少妇精品一区二区| 国产精品熟女AV中文字幕在线播放| A V视频日本| 国产传媒av天美传媒在线| 熟女高潮合集-永久久久-成人AV | 变态乱伦伪娘灌肠一区二区| 国产精品一区在线播放| 久久深夜无码| 97精品综合| 亚洲 日本 国产 综合| 超碰97COm中文| 亚洲色悠悠久久88| 午夜精品99久久久久传媒| 亚洲黄色a级片| 人人干人人操人人爱| 97操b| 日韩综合97P| 中文字幕丝袜人妻| 91啪啪| 99精品成人免费看| 日韩黄色av中文字幕| 天天干电影| 91欧洲入口| www.91逼逼.com| 搡老女人老91妇女老熟女| 国产精品一区二区麻豆| 亚洲中文字幕日产无码久久| 吻戏激情性巴克| 欧美色综合影院| 欧美性爱中文字幕无线码| 精品无码秘 人妻一区二区| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 激情色播| 人、人、摸,人、人、草| 日本操逼视频不卡直接放| 97天天综合| 欧美性爱超碰97| 亚洲情色 无码专区| 骚女高跟AV在线| 白丝少妇一区二区| 亚洲色欲一区二区三区| 国产精品天美传媒| 99精品在线观看| 日本3级一区二区免费| 强奸乱伦大香蕉网| 欧美色性爱| 人人看欧美性爱| 一级特黄aaa大片在线观看成人一级片在线观看 | 亚洲婷婷丁香在线| 天天综合-91入口| 激情欧美97| 男人综合网| 四虎影视精品| 东北熟女91| 992视频一区| 97超碰欧美精品| 97chaopengongkai| 96麻豆精品一区二区三区| 99热这里都是精品| 蜜臀AV午夜精品久| 亚洲一区二区三区婷婷| 久久97精品久久久久久久不卡| 日日骚网站| 夜夜躁狠狠躁日日躁av| 超碰免费人妻在线| 亚洲无码电影久久久| 啪啪性爱免费视频| 五月天久久综合网| 丰满岳乱妇一区二区三区| 亚洲精品无码久久AV| 综合操逼| 天堂8在线新版官网| 日本女人操逼| 91亚州日韩高清| 日韩一区二区熟女| 天天α片| 夜夜青青无码影院| 性高潮久久久久久久久久久| 99国产女人| 91色综合激情| 性色av一区二区| 欧美人妻另类在线| 怡红院成人视频| 国产女大学生AV| 午夜一级免费毛片| 丁香婷婷九月| 久久久999日本大片| 情色av电影| 亚洲日韩乱码中文无码蜜桃臀网站 | 久久99网站| 欧美综合骚| 欧美日韩婷婷中文| 黄页网站成人免费| 久久夜夜| 美国aaaaa一级黄片| 婷婷激情五月| 国产精品91ai| rivers-china.com| 日韩无码人妻| 岛国片国产成人亚洲播放| 国产成人+综合亚洲+天堂| 天天干2019| 天天日美女的B| 97天天日| 成人a大片在线观看| 色播综合| 欧美人妻色| 伊人宅男大香蕉| 麻豆国产97在线| 无码人妻丰满热妇又大又粗| 亚洲性综合9| 国产欧美黑人丰满在线| 欧美性爱一区二区三区| 岛国在线免费视频| 91操操| 亚洲熟女乱综合一区二区三区| 人妻精品一区二区三区| 久久久久久久九九九九九九| 亚洲 欧美 手机在线观看| WWW4虎| 蜜汁欧美| 精品一区二区在线针对华人免费观看这里只有精品免费观看 | 蜜臀久久99精品久久久电影| 国产麻豆福利av在线播放| 伊人天堂在线| 国产又长又大又粗的视频| 日韩欧美大片免费高清啪啪| 日本日逼视频网| 天天色怡春院| 亚洲色欧美| 99自拍视频在线| 色www精品视频在线观看| 91亚洲色图| 亚洲超碰在线| 日日干夜夜欢| 强被迫伦姧在线观看无码网站| 激情五月天色色网| 亚州男人的天堂| 岛国黄片网站| 91oumei| 97伊人| JIZZJIZZ国产精品喷水| 1二区9| www.亚洲成人一区| 伊人天堂在线| 精品久久久久综合无码| 亚洲精品乱码久久久久久蜜桃麻豆| 60秒试看最爽10分钟网站| 九九九九九九视频免费| 激情五月天丁香| 亚洲 欧美 日韩另类 麻豆| 国产精品美女在线一区| 男女激情中文字幕| 久久性爱视频99| 青青青国产| 九九碰九九爱97超| 激情综合五| 精品玖九九久| 五月香婷婷| 999热日韩精品| 青青草天天亲夜夜操网| 97射欧美| 国产精品久久久久av| 伊人在线大香蕉视频久久| 欧美性爱www免费版| 色香网| 亚洲av强奸乱伦| 蜜臀网址在线| 国产亚洲99久久精品| 久久男人| 99热免费| 日韩无限资源| 久妇网| 成人一区二区三区四区| 成人无码在线超碰网| 欧美熟女妇同| 国产女人极品高潮毛片| 99re热| 97人人模人人爽人人| 九九五月天| 人妻少妇久久久| 亚洲欧美不卡线| 蜜桃久久久久久| 国产一区二区免费福利片| 日韩9999| 91动漫操逼视频| 亚洲色图欧美色图在线播放| 婷婷综合久久| 久久夜夜| 夜夜国产一区| 亚洲黄色网址视频| 欧美—性—交—色| 色精品极品| 日本黄色大片一级视频免费麻豆| 亚洲日产专区婷婷| 操美女高潮抽搐白浆| 9久久精品| 欧美 日韩 国产传媒| 乱伦av麻豆| 天天夜夜rb| 2025亚洲男人天堂| 国产精品极品美女视频| 伊人欧美大香蕉视频| 亚洲 图片 综合91| 天天谢天天干| 999久久芭蕾| 九九热免费国产视频婷婷伊人| 亚欧毛片基地国产毛片基地| 加勒比性爱成人在线| 狠狠干综合| 久久久久久久久久久免费精品| AV色五月天| 一区二区 韩日AV| 亚洲无线码欧洲精品区别| 久久精品男人的天堂| 2001天天操| 男人a天堂手机在线版| 女优大全 - 91n| 欧色性第一页| 精品视频久久久久九九九九9999| 眼镜人妻101.com| 96国产精品| 啊啊啊97视频| 五月婷婷激情综合| 又粗又长又爽在线观看| 欧美日韩精品久久久久久久久东北老熟妇| 成人网欧美风情| 亚洲操操操| 无码操逼网| 蜜臀中文字幕| 女上位精品在线| 校园春色欧美色图| 九九av| 乱论91| 国产91亚洲精品一区二区三区| 欧美精品不卡一二三四在线91| 久热久一区二区三区| 日本黄 R色 成 人网站| 亚欧免费| 久操97| 老熟女阿 国产91| 国产亚洲日本| 91人妻视频在线| 91人妻PORNY九色大屁股| 日韩欧美成人午夜福利| 97欧美在线| 久久大香蕉97| 好爽免费视频,| 91性生活久久久| 天美传媒国产原创中文字幕亚洲欧美另类| 人人操,操人人| av在线播放国产一区| 亚洲天天操| 亚洲中文字幕av | 伊人色综合超碰| 六月婷婷五月丁香| 国模少妇一区二区三区| 国产精品一区二区校花| 一级片视频啪啪| 国产精品久久久久久久久久久久久久吹| 超碰69| AV99热18这里只有精品| 性饥渴少妇av无码毛片| 男人天堂新在线| 亚洲欧美综合网 | 五月开心久久AV官网| 亚洲一区二区三区麻豆传媒| 亚洲春色激情小说| 婷婷五月天_亚洲小说欧美激情另类_精品久久国产字幕 | 99少妇| 深爱伊人影院| 97中文字幕一区| yazhouzaixian| 久久亚洲天堂| 香蕉大久久久| 久久久一区二区| 尤物视频偷拍免费| 青青操视频在线| 97久久国产亚洲精品超碰热| 亚洲精品1区| 韩国国产欧美情侣视频在线| 天天影视射综合网| 精品96久久| 欧洲小说色图视频另类| 九九热精彩视频| 99re这里| 久久久久久少妇| 欧美线天码中字| 一区e区三| 人妻精品一区二区三区| 嗯嗯不要视频| 啪啪啪综合网| 成全动漫视频观看免费下载| 五月丁香黄色网| 国产精品露脸在线观看| 99国产在线 精品 视频| 日本欧美一区二区三区免费| 人人摸人人添人人操 | 欧洲特黄毛片免费看欧洲毛片| 国产精品内射婷婷一级二| 欧美视频一| 中文字幕一区二区日韩网| www.久久最新地址| 在线啊v一区| 激情文学网伊人| 亚洲 图片 欧美 色图| 97精品第3页| 91热色| 婷婷爽人人婷婷爽视频| 日韩免费av片高清无码| 国产成人无码啪| 欧美疯狂做爰xxxx| 蜜臀av在线播放一区二区三区| 免费视频在线观看啊啊啊啊啊| 又摸又舔在线观看网站| 天美一区在线| 欧美熟妇色| 综合伊人激情| 蜜桃视频成a人v在线| 久久 国产精品 一区| 东北夫妻性偷拍| 青青草字幕AV| 91狠狠综合久久| a男人的天堂久久一级A毛片| 国产 日韩 欧美 中文 另类,国产 欧美 另类 制服 变态,高清 日韩 欧美 中文,高 | 夜夜做夜夜爽精品视频| 欧美情色亚洲| 伊人五月天婷婷| 国产激情在线观看| 久久久久久大| 亚洲性猛| 精品免费一区| 国产精品极品美女视频| 五月婷婷综合在线| 黄呦呦在线| 男人综合网| 人人操人人摸人人看人人干|