日韩精品一区二区三区在线视频放-无码中文字幕V?一区二区-成年片免费观看视频-国内少妇人妻丰满av-国产精品中文字幕免费观看-亚洲成人久久一区二区三区-国内少妇偷人精品视频无缓冲-一区二区国产精品日本一区二区三区在线网

ARTICLE DETAIL

資訊詳情

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

AI操作文檔的工程化:文檔運(yùn)行時(shí)與工具接口設(shè)計(jì)

AI操作文檔的工程化:文檔運(yùn)行時(shí)與工具接口設(shè)計(jì) 上個(gè)月旁聽(tīng)了一場(chǎng)內(nèi)部分享主題叫「AI 自動(dòng)生成經(jīng)營(yíng)報(bào)表」。演示的時(shí)候很熱鬧模型幾十秒吐出一張格式整齊的表格投屏上看著挺像回事??傻戎髦v人把內(nèi)容貼進(jìn)真正的電子表格里問(wèn)題全冒出來(lái)了——數(shù)字全成了文本求和結(jié)果是 0合并單元格被沖散原本該是公式的列變成了寫(xiě)死的值源數(shù)據(jù)一改報(bào)表就再也不動(dòng)了。那一刻我腦子里蹦出來(lái)的判斷很直接這不是 AI 的能力問(wèn)題是文檔的接口問(wèn)題。生成一段看起來(lái)像表格的文本和真正在一份文檔里操作狀態(tài)中間隔著整整一層?xùn)|西。前者是說(shuō)后者是做。而做需要文檔本身提供一個(gè)可編程、可回滾、可校驗(yàn)的運(yùn)行時(shí)——這正是 univer 這類(lèi)文檔引擎值得被重新審視的地方。后面我想聊的就是這件事當(dāng) AI 不再滿(mǎn)足于往文檔里塞內(nèi)容而是開(kāi)始真的用文檔我們需要在工程上準(zhǔn)備什么。適合正在做 AI 工具調(diào)用、文檔協(xié)作、低代碼報(bào)表這類(lèi)產(chǎn)品的前端和數(shù)據(jù)方向的同學(xué)也適合單純好奇AI 到底怎么點(diǎn)表格的讀者。1. 「生成內(nèi)容」和「操作文檔」之間差著一整層狀態(tài)模型很多人第一反應(yīng)是把這事理解成提示詞工程只要讓模型輸出合法的表格結(jié)構(gòu)問(wèn)題不就解決了我一開(kāi)始也這么想直到把同一套提示詞換到不同的文檔底座上跑結(jié)果差異大到不像同一個(gè)模型干的活。差別不在模型在底座有沒(méi)有把文檔的狀態(tài)暴露出來(lái)。1.1 一個(gè)反直覺(jué)的現(xiàn)象模型能力漲了卡點(diǎn)反而更靠下早期模型笨瓶頸確實(shí)在理解層——它連把 B 列改成百分比這句話(huà)都解析不清楚。現(xiàn)在這層基本被抹平了模型能準(zhǔn)確說(shuō)出它要做什么甚至能自己規(guī)劃分幾步。可一旦它伸手去改你會(huì)發(fā)現(xiàn)新的瓶頸全部堆在文檔這一側(cè)改完之后單元格的行列索引對(duì)不上、公式?jīng)]重算、格式被覆蓋、改錯(cuò)了沒(méi)法一步撤回、多個(gè)會(huì)話(huà)同時(shí)改同一張表互相踩。換句話(huà)說(shuō)AI 從想不明白進(jìn)化到了想明白了但下不去手。這時(shí)候繼續(xù)優(yōu)化提示詞是無(wú)效功得把文檔從一個(gè)給人看的界面改造成一個(gè)給程序調(diào)用的運(yùn)行時(shí)。這個(gè)視角的轉(zhuǎn)換是我認(rèn)為整個(gè)討論里最關(guān)鍵的一步。1.2 為什么純前端渲染的老路走不通傳統(tǒng)電子表格的實(shí)現(xiàn)思路是界面即狀態(tài)單元格是 DOM 節(jié)點(diǎn)值掛在節(jié)點(diǎn)上選中靠 CSS 類(lèi)名改動(dòng)靠事件監(jiān)聽(tīng)。這套東西對(duì)人很友好對(duì)機(jī)器極其不友好——因?yàn)闆](méi)有一份脫離視圖的、可序列化的數(shù)據(jù)真相。舉個(gè)具體的例子。人看到的是第 3 行第 2 列現(xiàn)在是 12800但程序要去改它得先知道這是數(shù)據(jù)行還是表頭行上面有沒(méi)有隱藏行這張表是不是被凍結(jié)了合并單元格的左上角錨點(diǎn)在哪當(dāng)前用戶(hù)是不是正在編輯這個(gè)格子這些問(wèn)題在純 DOM 方案里全是隱式的而 AI 調(diào)用是沒(méi)有上下文感知能力的它只知道自己拿到了一個(gè)坐標(biāo)。只要有一個(gè)隱式假設(shè)沒(méi)對(duì)上寫(xiě)進(jìn)去的位置就偏了。1.3 文檔運(yùn)行時(shí)至少要提供三樣?xùn)|西在我實(shí)際用過(guò)的幾套底座里能真正撐起AI 操作文檔這個(gè)場(chǎng)景的都得同時(shí)具備三件事缺一不可一份脫離視圖的狀態(tài)模型工作簿 → 工作表 → 行列表 → 單元格能整體快照、能增量 patch、能序列化成 JSON 落庫(kù)。一條命令通道不是直接改數(shù)據(jù)而是發(fā)一條有語(yǔ)義、有參數(shù)校驗(yàn)、天然可撤銷(xiāo)的命令。一個(gè)可回滾的邊界一次 AI 操作對(duì)應(yīng)一個(gè)事務(wù)出錯(cuò)能整體退回去而不是留下半張改壞的表格。這三樣?xùn)|西日常給人用的表格軟件其實(shí)都偷偷實(shí)現(xiàn)了只是沒(méi)對(duì)外開(kāi)放成穩(wěn)定的 API。univer 讓我覺(jué)得有意思的點(diǎn)在于它從設(shè)計(jì)上就是圍繞這三個(gè)東西長(zhǎng)出來(lái)的——它把自己定位成文檔引擎而不是表格組件這個(gè)定位差異后面會(huì)越來(lái)越重要。2. 拆開(kāi) univer這個(gè)文檔運(yùn)行時(shí)里到底跑著什么我不打算把 univer 的每個(gè)包都念一遍包名和版本一直在演進(jìn)寫(xiě)死了反而誤導(dǎo)人。我按實(shí)際調(diào)試時(shí)的心智模型來(lái)講它內(nèi)部可以粗略切成四層每層在 AI 場(chǎng)景里承擔(dān)的角色完全不同。理解了這個(gè)分層你就知道該把 AI 接在哪一層、以及為什么不能接在別的地方。2.1 四層結(jié)構(gòu)數(shù)據(jù)、公式、渲染、命令層主要職責(zé)AI 場(chǎng)景下的角色該不該直接碰數(shù)據(jù)模型層工作簿/工作表/單元格/富文本/樣式/行列結(jié)構(gòu)唯一真相快照來(lái)源只讀投影不直改公式引擎層依賴(lài)圖、計(jì)算鏈、重算調(diào)度保證 AI 讀到的是算完的值間接依賴(lài)必須觸發(fā)重算渲染層基于畫(huà)布的繪制、視口、選區(qū)負(fù)責(zé)展示不產(chǎn)生狀態(tài)完全不碰命令與 UI 插件層命令注冊(cè)、參數(shù)校驗(yàn)、撤銷(xiāo)棧、協(xié)作廣播AI 的入口全部從這里進(jìn)這個(gè)表里最容易被忽略的是第三列和第四列的對(duì)比。很多團(tuán)隊(duì)做 AI 表格功能時(shí)圖省事直接往數(shù)據(jù)模型層塞值——反正改完渲染層會(huì)自己刷新看著是通的。但這么干等于繞過(guò)了命令層也就同時(shí)繞過(guò)了參數(shù)校驗(yàn)、撤銷(xiāo)棧和協(xié)作廣播。單機(jī) Demo 完全看不出問(wèn)題一上多人協(xié)作就變成我這邊改了對(duì)面不刷新用戶(hù)按 CtrlZ 撤銷(xiāo)的是別人的操作這種靈異現(xiàn)象。2.2 Facade 是給人和簡(jiǎn)單腳本用的Command 才是給 AI 用的univer 對(duì)外有兩套調(diào)用方式我調(diào)試的時(shí)候兩套都試過(guò)。一套是 Facade寫(xiě)法很像常見(jiàn)的鏈?zhǔn)?API比如拿到當(dāng)前工作簿、拿到某個(gè)工作表、再拿一個(gè)區(qū)域?qū)ο?、然后設(shè)值——讀起來(lái)非常順寫(xiě) Demo 特別快。另一套是命令需要你帶上命令名和結(jié)構(gòu)化參數(shù)扔給命令服務(wù)去執(zhí)行比如批量設(shè)置區(qū)域的值、插入行列、設(shè)置公式這些。給 AI 用我一定選命令。原因不在于命令更底層而在于三個(gè)具體差別可撤銷(xiāo)。走命令通道的改動(dòng)會(huì)自動(dòng)進(jìn)撤銷(xiāo)棧這意味著 AI 改錯(cuò)了用戶(hù)可以像撤銷(xiāo)自己的操作一樣撤掉它。Facade 直調(diào)很多時(shí)候不進(jìn)?;蛘哌M(jìn)棧粒度不對(duì)??尚r?yàn)。命令執(zhí)行前有參數(shù) schema 校驗(yàn)AI 傳個(gè)不存在的 sheet 名、傳個(gè)越界坐標(biāo)會(huì)在執(zhí)行前被攔下來(lái)并報(bào)錯(cuò)而不是悄悄寫(xiě)到一個(gè)幽靈位置??蓞f(xié)同。協(xié)作場(chǎng)景下命令是要廣播給其他端的直改數(shù)據(jù)模型不會(huì)廣播或者只廣播了一半。還有一點(diǎn)很實(shí)際命令天然是冪等設(shè)計(jì)友好的。你給命令帶一個(gè)唯一的 requestId重復(fù)執(zhí)行時(shí)可以在入口處攔掉。這在 AI 場(chǎng)景下不是錦上添花——模型調(diào)用超時(shí)重試太常見(jiàn)了沒(méi)有冪等保護(hù)重試一次就多插一行數(shù)據(jù)用戶(hù)看到的就是報(bào)表里憑空多出幾條重復(fù)記錄。2.3 公式引擎AI 最容易忽略的隱式依賴(lài)這一層我想單獨(dú)拎出來(lái)說(shuō)因?yàn)樗俏也鹊米钌畹囊粋€(gè)坑。AI 讀表格的時(shí)候它讀到的往往是單元格的當(dāng)前顯示值而這個(gè)值可能是公式算出來(lái)的。如果底層公式引擎還沒(méi)完成重算你給模型的是一份過(guò)期快照模型基于過(guò)期數(shù)據(jù)做決策改出來(lái)的東西自然不對(duì)。更麻煩的是反向的問(wèn)題AI 寫(xiě)入一批原始數(shù)據(jù)之后依賴(lài)這些數(shù)據(jù)的公式單元格需要重算重算結(jié)果又可能被 AI 在下一步讀取。這條鏈路如果沒(méi)接好你會(huì)看到模型反復(fù)自我懷疑——它讀了三次數(shù)據(jù)得到三個(gè)不同的值然后在思考過(guò)程中開(kāi)始道歉。我在實(shí)踐里的處理辦法是把「寫(xiě)」和「讀」嚴(yán)格分開(kāi)成兩個(gè)階段寫(xiě)完先觸發(fā)一次全量重算并等待完成再讓模型去讀。犧牲一點(diǎn)點(diǎn)時(shí)延換來(lái)的是模型看到的數(shù)字和用戶(hù)看到的數(shù)字絕對(duì)一致。這個(gè)一致性比省那兩百毫秒重要得多。2.4 快照與事務(wù)給 AI 準(zhǔn)備的「后悔藥」univer 內(nèi)部有快照能力可以把整個(gè)工作簿的狀態(tài)序列化出來(lái)。這個(gè)能力在 AI 場(chǎng)景里有一個(gè)非常實(shí)用的用法在每一次工具調(diào)用循環(huán)開(kāi)始前打一個(gè)快照循環(huán)結(jié)束后做一次校驗(yàn)校驗(yàn)不過(guò)就直接用快照還原。這比讓模型自己改回來(lái)可靠一個(gè)數(shù)量級(jí)。我試過(guò)讓模型在發(fā)現(xiàn)改錯(cuò)后輸出一條撤銷(xiāo)上一步的操作成功率大概七成——它經(jīng)常撤銷(xiāo)得過(guò)多或者過(guò)少因?yàn)樗鼘?duì)自己剛剛做了什么的理解是有偏差的。而用快照還原是確定性的百分之百回到原點(diǎn)。代價(jià)是內(nèi)存。一份幾千行的工作簿完整快照在幾十毫秒到幾百毫秒之間序列化出來(lái)可能幾 MB。所以我的做法不是每步都打快照而是按任務(wù)打一個(gè)用戶(hù)請(qǐng)求進(jìn)來(lái)打一次任務(wù)結(jié)束釋放。中間步驟靠命令級(jí)別的撤銷(xiāo)棧兜底。這兩層保護(hù)疊在一起基本能做到隨便改壞了都能回來(lái)。3. 把文檔包裝成工具接口設(shè)計(jì)上必須做的五個(gè)取舍到這一層問(wèn)題從文檔能不能被程序操作變成了怎么操作才不讓模型翻車(chē)。這兩件事的難度差很遠(yuǎn)。前者是工程問(wèn)題后者是設(shè)計(jì)問(wèn)題而且后者沒(méi)有標(biāo)準(zhǔn)答案只有一堆取舍。下面五條是我在真實(shí)項(xiàng)目里反復(fù)調(diào)過(guò)的每一條都附上我最后選了什么、以及為什么。3.1 給 AI 的 API 不該照抄給人用的 API人用的 API 講究靈活一個(gè) setValue 可以傳單值、可以傳二維數(shù)組、可以傳公式字符串、可以帶樣式。給 AI 用的 API 必須窄每種意圖一個(gè)獨(dú)立工具參數(shù)少、語(yǔ)義單一、失敗原因明確。我最終的工具有這么幾個(gè)讀區(qū)域、批量寫(xiě)值、插入行、插入列、設(shè)置公式、設(shè)置數(shù)字格式、合并單元格、刪除行。就這八個(gè)覆蓋了九成以上的報(bào)表操作需求。工具越少模型選錯(cuò)的概率越低參數(shù)越扁平模型填錯(cuò)的概率越低。我一開(kāi)始貪心做了十六個(gè)工具結(jié)果模型有相當(dāng)比例的錯(cuò)誤是選錯(cuò)了工具而不是填錯(cuò)了參數(shù)收斂到八個(gè)之后錯(cuò)誤率明顯下降。另外工具描述里一定要寫(xiě)清楚坐標(biāo)系。是 0-based 還是 1-based行號(hào)和列號(hào)哪個(gè)在前A1 表示法是絕對(duì)還是相對(duì)。這些在人看來(lái)是常識(shí)的東西模型會(huì)一本正經(jīng)地搞混而且搞混的方式很隱蔽——它不會(huì)報(bào)錯(cuò)它只會(huì)寫(xiě)到一個(gè)相鄰的位置上。3.2 讀取比寫(xiě)入難怎么給模型一份夠用又不爆 token的視圖寫(xiě)是明確的讀是模糊的。一張兩萬(wàn)行的工作表全量序列化給模型token 直接爆炸而且模型在超長(zhǎng)上下文里的定位精度會(huì)下降。但你要是只給個(gè)摘要它又沒(méi)法定點(diǎn)修改。我現(xiàn)在用的是三段式投影先給結(jié)構(gòu)工作簿里有哪些 sheet、每個(gè) sheet 的行列數(shù)、前兩行內(nèi)容當(dāng)作表頭猜測(cè)、每列的粗略類(lèi)型推斷數(shù)字/日期/文本/公式。再給窗口只給模型實(shí)際會(huì)被問(wèn)到的那個(gè)區(qū)域加上上下各三行的緩沖。最后給線索如果有公式列單獨(dú)列出公式文本讓模型知道這一列是算出來(lái)的不能直接寫(xiě)值。這套投影把一次典型請(qǐng)求的輸入 token 從幾萬(wàn)壓到了兩千以?xún)?nèi)。壓下來(lái)的不只是成本更重要的是模型的表現(xiàn)明顯變穩(wěn)了——上下文越短它越不容易在中途忘了自己要干什么。3.3 事務(wù)粒度決定你能不能全身而退一個(gè)用戶(hù)請(qǐng)求模型可能規(guī)劃出五步操作。這五步應(yīng)該是一個(gè)事務(wù)還是五個(gè)事務(wù)我兩種都試過(guò)結(jié)論是按語(yǔ)義單元切不要按調(diào)用次數(shù)切。舉個(gè)例子「給這張表加一列環(huán)比、并調(diào)整成百分比格式」。這在語(yǔ)義上是一個(gè)單元用戶(hù)的心智是我要一列環(huán)比不是我要先插列再寫(xiě)公式再改格式。如果按調(diào)用次數(shù)切成三個(gè)事務(wù)用戶(hù)在中間一步失敗后點(diǎn)撤銷(xiāo)只會(huì)撤掉格式留下一個(gè)半成品列。按語(yǔ)義單元切失敗就整體回滾用戶(hù)看到的是沒(méi)改成而不是改了一半。實(shí)現(xiàn)上就是在工具循環(huán)外層包一層事務(wù)循環(huán)內(nèi)所有命令共享同一個(gè) undo 邊界。univer 的命令服務(wù)支持這種組織方式具體 API 名字各版本有差異但思路是通用的進(jìn)循環(huán)前開(kāi)邊界出循環(huán)時(shí)根據(jù)校驗(yàn)結(jié)果決定提交還是回滾。3.4 校驗(yàn)與自愈讓模型自己發(fā)現(xiàn)「改錯(cuò)了」我對(duì)模型的一個(gè)基本假設(shè)是它會(huì)認(rèn)為自己改對(duì)了。所以校驗(yàn)不能靠模型自省得靠程序斷言。我在每次寫(xiě)入后跑一組固定檢查區(qū)域尺寸是否和預(yù)期一致防止合并單元格把范圍吃掉數(shù)值列里有沒(méi)有混進(jìn)文本用類(lèi)型判斷不看顯示值公式單元格有沒(méi)有產(chǎn)生錯(cuò)誤值常見(jiàn)的是除零和引用失效關(guān)鍵匯總行是否等于明細(xì)的聚合結(jié)果這一條最能抓到邏輯錯(cuò)誤任何一條不過(guò)我不直接把錯(cuò)誤拋給用戶(hù)而是把斷言結(jié)果作為一條新的消息回灌給模型讓它自己重試一次。實(shí)測(cè)下來(lái)第一次校驗(yàn)失敗率大概在兩成左右回灌一次之后能修好其中的大部分。剩下的才升級(jí)給用戶(hù)而且?guī)厦鞔_的哪一步?jīng)]通過(guò)說(shuō)明用戶(hù)手動(dòng)改起來(lái)也快。這個(gè)自愈循環(huán)有個(gè)上限我設(shè)的是兩次。超過(guò)兩次還在同一個(gè)斷言上失敗說(shuō)明是這個(gè)任務(wù)的描述本身有歧義繼續(xù)讓模型試只是在燒錢(qián)。3.5 并發(fā)與協(xié)作多人加多 Agent 同文檔時(shí)的沖突這塊是最容易被低估的。一旦文檔進(jìn)入?yún)f(xié)作模式同一個(gè)格子上可能同時(shí)有用戶(hù) A 的手動(dòng)編輯、用戶(hù) B 的粘貼、以及一個(gè) AI Agent 的批量寫(xiě)入。三方并發(fā)誰(shuí)來(lái)贏我采取的策略是給 AI 留出存在感AI 的每一次寫(xiě)入都走正常命令通道帶上操作者標(biāo)識(shí)因此它產(chǎn)生的變更是能被其他端看到的、能被別人撤銷(xiāo)的、也能被別人覆蓋的。聽(tīng)起來(lái)有點(diǎn)殘酷——AI 寫(xiě)的東西可能被人隨手覆蓋——但這恰恰是對(duì)的因?yàn)樵趨f(xié)作語(yǔ)境下AI 就是一個(gè)普通參與者它不該有特權(quán)。真正需要額外處理的是AI 基于過(guò)期視圖做決策這個(gè)問(wèn)題。用戶(hù)在 AI 思考的這幾秒里改了數(shù)據(jù)AI 醒來(lái)后按老數(shù)據(jù)去寫(xiě)就會(huì)覆蓋掉別人的改動(dòng)。我的解法是在提交前做一次輕量的版本比對(duì)如果目標(biāo)區(qū)域在 AI 讀取之后被改動(dòng)過(guò)就中止并讓模型重新讀一遍。這個(gè)檢查很便宜但省掉了大量我的改動(dòng)怎么沒(méi)了的投訴。4. 一次跑通的鏈路讓 Agent 給銷(xiāo)售看板補(bǔ)一列環(huán)比講原理講多了容易空我把一次真實(shí)跑通的流程完整拆開(kāi)。場(chǎng)景不復(fù)雜一張按周匯總的銷(xiāo)售明細(xì)表列是「周次、區(qū)域、銷(xiāo)售額」需求是加一列周環(huán)比負(fù)數(shù)標(biāo)紅最后加一行合計(jì)。4.1 輸入準(zhǔn)備與權(quán)限收窄第一步不是寫(xiě)代碼是收窄權(quán)限。我給這個(gè) Agent 的工具集里刪除行、刪除列、清空區(qū)域這三個(gè)高危工具全部沒(méi)開(kāi)。原因很直白模型在規(guī)劃階段有可能把加一列理解成先刪一列騰位置這種理解在它的世界里是合理的但對(duì)用戶(hù)來(lái)說(shuō)是災(zāi)難。高危操作不開(kāi)放比事后校驗(yàn)便宜太多。同時(shí)我構(gòu)造讀取視圖只取有數(shù)據(jù)的區(qū)域把表頭行單獨(dú)拎出來(lái)做列名映射讓模型不用自己數(shù)第幾列是銷(xiāo)售額。4.2 工具定義與實(shí)際代碼工具聲明我用的是常規(guī)的函數(shù)調(diào)用格式參數(shù)盡量扁平。下面是簡(jiǎn)化后的核心部分// 工具聲明喂給模型的 schema節(jié)選 const tools [ { name: sheet_read_range, description: 讀取指定區(qū)域的值。坐標(biāo) 1-basedrow 為行號(hào)col 為列號(hào)從 1 開(kāi)始。, parameters: { type: object, properties: { sheetName: { type: string }, startRow: { type: number }, endRow: { type: number }, startCol: { type: number }, endCol: { type: number } }, required: [sheetName, startRow, endRow, startCol, endCol] } }, { name: sheet_write_formula_column, description: 向某一列批量寫(xiě)入公式。行范圍不含表頭。公式中用 {row} 占位當(dāng)前行號(hào)。, parameters: { type: object, properties: { sheetName: { type: string }, col: { type: number }, startRow: { type: number }, endRow: { type: number }, formulaTemplate: { type: string } }, required: [sheetName, col, startRow, endRow, formulaTemplate] } } ];派發(fā)層是這套東西的核心所有模型輸出最終都要在這里被翻譯成命令并且在這里做參數(shù)兜底async function dispatch(call: ToolCall, ctx: TaskContext) { // 1. 冪等同一個(gè) requestId 只執(zhí)行一次 if (ctx.seen.has(call.requestId)) return ctx.seen.get(call.requestId); // 2. 白名單校驗(yàn)sheet 必須存在 const wb univerAPI.getActiveWorkbook(); const sheet wb.getSheetByName(call.args.sheetName); if (!sheet) { return { ok: false, error: 工作表 ${call.args.sheetName} 不存在可選${listSheetNames(wb)} }; } // 3. 越界校驗(yàn)不信任模型給的坐標(biāo) const range normalizeRange(call.args, sheet.getMaxRows(), sheet.getMaxColumns()); if (!range) { return { ok: false, error: 坐標(biāo)越界請(qǐng)先調(diào)用 sheet_read_range 確認(rèn)區(qū)域 }; } // 4. 統(tǒng)一走命令通道帶上操作者標(biāo)識(shí) const result await executeViaCommand(call.name, { ...call.args, ...range }, { operator: agent, requestId: call.requestId }); ctx.seen.set(call.requestId, result); return result; }這段代碼里我最想強(qiáng)調(diào)的是第 2 步和第 3 步。看起來(lái)是兩層很無(wú)聊的防御性編程但它們攔掉的問(wèn)題占了我在線上觀察到的一半以上。模型編造一個(gè)不存在的 sheet 名或者給出一個(gè)超出實(shí)際行數(shù)的范圍這兩種情況極其常見(jiàn)。而錯(cuò)誤信息里帶上「可選xxx」這一點(diǎn)小設(shè)計(jì)讓模型的自愈成功率提升得很明顯——它看到合法選項(xiàng)后基本都能糾正過(guò)來(lái)看不到就只能瞎猜。4.3 執(zhí)行、校驗(yàn)、提交的完整循環(huán)整個(gè)循環(huán)的形狀是這樣的開(kāi)事務(wù)邊界打一次快照。把結(jié)構(gòu)視圖和用戶(hù)需求一起給模型讓它輸出第一批調(diào)用。逐個(gè)派發(fā)收集結(jié)果。跑斷言新列的數(shù)值類(lèi)型對(duì)不對(duì)、公式有沒(méi)有錯(cuò)誤值、合計(jì)行是否等于明細(xì)求和。斷言不過(guò)把錯(cuò)誤回灌回到第 2 步最多兩輪。斷言通過(guò)提交事務(wù)任何環(huán)節(jié)超時(shí)或異??煺者€原。這里有個(gè)細(xì)節(jié)值得說(shuō)斷言里不能用模型給的期望值。比如模型說(shuō)合計(jì)應(yīng)該是 128400你不能拿這個(gè)數(shù)去斷言因?yàn)樗约壕褪遣碌摹嘌员仨殎?lái)自文檔本身——合計(jì)行用公式寫(xiě)然后檢查公式的計(jì)算結(jié)果是否等于明細(xì)區(qū)域的聚合。讓文檔自己證明自己這是唯一靠得住的校驗(yàn)。4.4 實(shí)測(cè)的一些數(shù)字同一張約 1200 行的表跑二十次這個(gè)任務(wù)我記錄下來(lái)的大致情況指標(biāo)數(shù)值說(shuō)明單次任務(wù)平均耗時(shí)815 秒含一到兩次模型往返輸入 token單輪15002500投影后的結(jié)構(gòu)視圖一次通過(guò)率約 78%首輪斷言全過(guò)一次回灌后通過(guò)率約 94%剩余為歧義任務(wù)需要快照還原的比例約 3%基本都是坐標(biāo)理解錯(cuò)誤命令級(jí)重試次數(shù)平均 0.4 次主要是越界后被糾正這些數(shù)字不是基準(zhǔn)測(cè)試只是我自己記錄的經(jīng)驗(yàn)值環(huán)境和表結(jié)構(gòu)一變就會(huì)漂。但那個(gè)一次通過(guò)率不到八成、回灌一輪到九成以上的形狀在后來(lái)幾個(gè)不同場(chǎng)景里都很穩(wěn)定。它說(shuō)明一件事模型的第一次輸出不值得信任但它的第二次輸出質(zhì)量已經(jīng)夠用了。所以自愈循環(huán)不是可選項(xiàng)是必需品。5. 踩坑記錄Demo 里看不見(jiàn)、上線才炸的幾件事下面這些是真正讓我半夜爬起來(lái)看日志的問(wèn)題。它們有個(gè)共同點(diǎn)在小數(shù)據(jù)集上、單人場(chǎng)景下、手工點(diǎn)幾下就能驗(yàn)證的路徑里全都不會(huì)出現(xiàn)。5.1 合并單元格是坐標(biāo)系統(tǒng)的黑洞我以為坐標(biāo)問(wèn)題很好解決直到遇到帶合并單元格的表。合并之后被合并的那些格子在數(shù)據(jù)模型里其實(shí)是空的只有左上角的錨點(diǎn)單元格有值。AI 讀的時(shí)候看到一片空就會(huì)認(rèn)為這里沒(méi)數(shù)據(jù)寫(xiě)的時(shí)候往合并區(qū)域中間寫(xiě)值會(huì)被丟棄或者錯(cuò)位。更麻煩的是行列偏移。一張表里有三處合并表頭用戶(hù)視角的第 5 行和模型拿到的第 5 行可能不是同一行因?yàn)橹虚g有隱藏行。我最后的處理方式是投影時(shí)把合并區(qū)域顯式標(biāo)出來(lái)寫(xiě)成「A3:C3 合并值銷(xiāo)售額」這樣的注釋附在結(jié)構(gòu)信息里寫(xiě)入前檢查目標(biāo)區(qū)域是否與任何合并區(qū)域相交相交就拒絕并返回提示。這個(gè)檢查加進(jìn)去之后這類(lèi)問(wèn)題基本絕跡。5.2 循環(huán)引用不是報(bào)錯(cuò)是靜默死循環(huán)公式引擎遇到循環(huán)引用不同實(shí)現(xiàn)的行為不一樣。我遇到過(guò)一次特別難查的模型把環(huán)比公式寫(xiě)成了引用自己所在列形成了環(huán)。界面上沒(méi)報(bào)錯(cuò)只是那一列全顯示為空。模型讀到空值以為是數(shù)據(jù)缺失又寫(xiě)了一版公式還是環(huán)還是空。它在兩輪里反復(fù)橫跳最后給我一個(gè)該列數(shù)據(jù)源缺失無(wú)法計(jì)算的結(jié)論。事后我在斷言里加了一條任何寫(xiě)入的公式在提交前做一次依賴(lài)檢查檢測(cè)是否形成環(huán)。這個(gè)檢查必須由程序做因?yàn)槟P蛯?duì)自己寫(xiě)的公式有沒(méi)有問(wèn)題是沒(méi)有判斷力的——它覺(jué)得C2/C2-1完全合理。5.3 逐格寫(xiě)入會(huì)觸發(fā)渲染風(fēng)暴早期我是讓模型一次返回一個(gè)單元格的修改然后循環(huán)調(diào)用。一千二百行一千二百次命令每次命令都觸發(fā)一次重算和一次重繪。結(jié)果頁(yè)面卡了將近十秒用戶(hù)以為崩了。改成批量命令之后一次命令帶一個(gè)二維數(shù)組重算一次、重繪一次同樣的數(shù)據(jù)量壓到了一百多毫秒。這個(gè)教訓(xùn)很樸素AI 的調(diào)用頻率不等于人的操作頻率。人能一秒點(diǎn)兩下模型可以一秒返回五十個(gè)操作。所有按人的節(jié)奏設(shè)計(jì)的接口在 AI 面前都會(huì)變成性能陷阱。5.4 模型會(huì)很有禮貌地編造一個(gè) sheet 名這個(gè)坑我印象最深因?yàn)樗谋憩F(xiàn)形式特別合理。用戶(hù)說(shuō)在匯總表里加一行模型調(diào)用時(shí)傳的 sheetName 是「匯總表」而實(shí)際的表名叫「匯總」或者「Summary」。命令失敗模型看到錯(cuò)誤然后它做的事情是——換了個(gè)名字再試比如「匯總表1」。它不會(huì)先問(wèn)它會(huì)一路試下去。解法就是前面代碼里那個(gè)「可選xxx」的錯(cuò)誤信息。把合法選項(xiàng)直接喂回去它立刻就能選對(duì)。這條經(jīng)驗(yàn)可以推廣成一個(gè)通用原則給模型的報(bào)錯(cuò)信息要包含足夠讓它自我糾正的上下文而不是只描述錯(cuò)誤本身。5.5 重試機(jī)制把同一行數(shù)據(jù)插了三遍這個(gè)是最危險(xiǎn)的因?yàn)樗茐牡氖菙?shù)據(jù)正確性而不是顯示。我們的調(diào)用鏈路上有超時(shí)重試模型側(cè)也有 SDK 自帶的重試。兩邊疊加一次插入操作被執(zhí)行了三次。因?yàn)椴迦胄羞@個(gè)操作本身不冪等——插兩次就是兩行。后來(lái)所有寫(xiě)操作都強(qiáng)制帶 requestId在派發(fā)層做去重表同一個(gè) id 只認(rèn)第一次結(jié)果。另外把插入行這類(lèi)結(jié)構(gòu)性操作盡量改寫(xiě)成寫(xiě)入到已存在的空行這種冪等操作。能用冪等操作表達(dá)的意圖就別用非冪等操作。6. 這條路往哪走文檔運(yùn)行時(shí)接下來(lái)的三個(gè)變化把 AI 接進(jìn)文檔這件事我現(xiàn)在看到的還只是很淺的一層——本質(zhì)上是把人的點(diǎn)擊翻譯成了 API 調(diào)用。再往下走我認(rèn)為會(huì)有三個(gè)方向的變化而且這些變化會(huì)反過(guò)來(lái)影響文檔引擎本身的設(shè)計(jì)。6.1 從命令 API 到語(yǔ)義層現(xiàn)在的接口還是太機(jī)器了。模型要理解第 3 行第 4 列這種坐標(biāo)語(yǔ)義而這恰恰是它最容易出錯(cuò)的地方。下一步應(yīng)該是文檔自己提供語(yǔ)義層告訴調(diào)用方這張表有一個(gè)叫銷(xiāo)售額的列而不是第 4 列。列名、表頭、數(shù)據(jù)區(qū)域、匯總行這些概念應(yīng)該成為一等公民由文檔引擎維護(hù)而不是每次讓模型去猜。univer 這種把文檔模型完整暴露出來(lái)的引擎做這件事有天然優(yōu)勢(shì)——它內(nèi)部本來(lái)就知道什么是行、什么是列、什么是公式只是現(xiàn)在這些信息還需要調(diào)用方自己去拼。6.2 文檔變成可以跑的東西現(xiàn)在我們把文檔當(dāng)數(shù)據(jù)看讀寫(xiě)它的單元格。但文檔里其實(shí)已經(jīng)有一整套計(jì)算能力了——公式引擎就是一個(gè)圖靈完備的計(jì)算環(huán)境只是它的輸入輸出都困在格子里。我試過(guò)一個(gè)很小的實(shí)驗(yàn)把一段業(yè)務(wù)規(guī)則寫(xiě)成公式讓模型只負(fù)責(zé)填參數(shù)不負(fù)責(zé)計(jì)算。結(jié)果準(zhǔn)確率比讓模型直接算高出一大截因?yàn)橛?jì)算這件事本來(lái)就該交給確定性的引擎。這個(gè)方向往大了說(shuō)就是文檔從一個(gè)展示容器變成一個(gè)輕量執(zhí)行環(huán)境——規(guī)則、校驗(yàn)、聚合都在文檔里跑AI 只做它擅長(zhǎng)的部分理解意圖、填參數(shù)、處理異常。6.3 可審計(jì)會(huì)成為硬需求一旦 AI 能改文檔這次改動(dòng)是誰(shuí)做的、為什么做、中間試了幾次就變成了必須留痕的東西。我現(xiàn)在給每個(gè) AI 任務(wù)都記一條操作日志任務(wù) id、用戶(hù)原始表述、模型規(guī)劃出的步驟、每一步的命令參數(shù)、斷言結(jié)果、最終是否提交或回滾。這份日志的價(jià)值在多輪之后才顯現(xiàn)出來(lái)。用戶(hù)說(shuō)上周那個(gè)報(bào)表怎么少了一行你能順著日志一路查到是哪次 AI 任務(wù)、因?yàn)槭裁磾嘌詻](méi)過(guò)、回滾到了哪個(gè)快照。沒(méi)有這份東西AI 改過(guò)的文檔基本等于不可維護(hù)。最后分享一個(gè)我自己用了很久的小習(xí)慣每次給文檔加新的 AI 能力我會(huì)先手動(dòng)把那個(gè)操作做一遍然后問(wèn)自己我剛才這一下對(duì)應(yīng)的是哪條命令。如果我說(shuō)不出對(duì)應(yīng)的命令說(shuō)明這個(gè)能力還沒(méi)準(zhǔn)備好開(kāi)放給模型——因?yàn)槟P捅任腋菀自谀:貛г愿^。這個(gè)笨辦法幫我在上線前攔下了好幾個(gè)本來(lái)會(huì)很難看的問(wèn)題。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
九九黄色视频在线观看| 黑人天8A∨高清网站| 国产亚洲精品自在线亚洲情侣| 一级久久久久久久久久久| 五月天偷拍| 韩国女主播青草福利视频| 91 国产丝袜在线播放-百度| 国产精品麻豆视频网站| 日本熟妇熟色97一本在线观看| 熟女熟妇一区二区三区视频| 国产成年免费大片黄在线观看| 精品免费1| 9久久久久久| 乱伦1色页| 夜夜狼人妻| 日韩精品人妻| 久久精品欧美一区蜜桃| 亚洲欧美精品一区天堂久久 | 草草影院在线视频| 久操com| 97超碰中文在线| 97热视频在线观看| 精品美女少妇一区二区三区| 日韩78m视频| 大香蕉欧美国产日韩高潮| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 久久色一区二区| 亚洲成人一二三区| 蜜奶av| 亚洲日本成人动漫| 亚洲 91 在线| 91最新综合| 艾草av| 啊啊啊好湿国产一二| 五月丁香综合激情| 99热免费| 少妇免费视频| 亚洲男人的天堂一区二区| ′ !γ}丶。。久久精品欧美一区二区三区| 91三级理论片播放器| 国产高清免费不卡av| 夜夜操美女| 日本操逼视频免费| 欧美日韩国产一区二区小黄片大全| 99热在线观看| 人妻AV 中文字幕的| 亚洲成人福利电影免费| 91 亚洲 欧洲| 日产精品久久久一区二区| 久久视频,这里只有精品 | 黄色免费网页无码| 精品国产肉丝袜在线拍国语| 殴美,日韩国产伦精品| 极品色社| 欧美97视频| 91超碰碰在线| 欧亚无码视频| 大香网站| 亚洲 欧美 中文 日韩超碰| 亚洲综合性感在线| 后入式福利| 久久久久久综合久久伊人蜜月| 超碰成人人人爽人人爽| 91精品女厕偷拍视频| 人人摸人人摸人人干| 久久综合婷婷| 91N综合在线| 青青草综合在线| 又粗又长又大国产不卡| 老司机射| 91精品人妻一区二区三区蜜桃臀| 久夜操| 国产黄色小视频网站| 日本护士高潮| 久久久久久久久久久999| 91国产丝袜白虎| 国产精品不卡一区二区三区av| 国产白嫩漂亮KTV在线| 亚州伊人色综台| 亚洲吊色| 嫖老熟女A片一二三区| 三级三久久线久久99久目本WW| 久操黄色视频| 欧美激情视频一区二区| 午夜福利视频在线一区| 天美一二三在线观看Av| 啊啊啊啊啊啊好多水| 国产高清成人mv在线观看| 国产99热| 精品人妻一区二区蜜桃视频| 国产精品成人福利在线| 中文字幕视频在线观看一区二区| 综合色久欲| 天天激情干| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 天天做天天爱天天爽AV| 97超碰色色| 欧美极度丰满熟妇hd| 国产a级精品| 国产91美女视频| 国产一进一出视频网站| 91在线限制级| 久久久新亚洲AV| 国产又大又硬又长又粗| 很很很很操| 久久国产在线一区二区| 天堂国产AV| 国产色图乱伦| 久久鲁夜| 韩国黄片aaaa| 天天大干大香蕉| 中文字幕在线免费观看2| 色婷久久| 亚洲欧美日韩不卡人妻| 久久久久免费少妇| 人人操肉肉| 97超碰天天| 国产偷拍网站| 超碰性爱97| 欧美黄色片在线播放| 欧美性暴力猛交XXXX | 中文字幕视频2区| 亚洲熟伦熟妇AV无码春色| 亚洲熟妇图片| 色噜噜人妻丝袜a∨先锋影 | 免费观看国产不卡av| 97资源免费视频| 性久久久| 91久久国外网| 中文高清一区二区的| 亚洲欧洲激情卡通另类文学四射小说网站| 啊啊啊操一区| 九九精品无码专区免费| 国产精品电影推荐| 99热亚洲| 日韩三级在线观看网站| 热久日综合| 亚洲国产一区二区入口| 色欲av国内精品久久久久久| 60秒试看最爽10分钟网站| 欧美1区二区三区公司| 亚洲丝袜制服国产91_国语字幕免费观看完整版下载第5集_ | 色婷婷丁香五月| 在线日韩日本亚洲国产| 久久久久久中文版| 日韩一级片在线看| 国产精品懂色tv影视免费观看| AV高清一区| 日本日皮视频逼| 国产乱子伦一区二区三区在线观看| 久久大香蕉手机高清| 日韩综合无码色欲vv| 久久精品成人| 男生女生啊啊啊啊| 亚洲码和欧洲精品激情系列| 黄片不用下载在线观看| 日韩性爱长视频免费| 97爱b| 在线黄页看毛片| 翔田千里一区二区三区奶水| 综合网少妇| 亚洲成人精品久久久| 蜜臀AV网站| 日韩一级欧美一级国产一级台湾| 四虎免费视频| 亚洲素人网| 黑丝内射一区二区三区| 五月天综合网| 激情五月天社区| 男啪女色黄无遮挡免费观看| 五月天婷婷社区| 久久久久密臀一区二区| 殴美牲| 插欧洲美女欧美精品| 国产在线综合网| 日比av无码| 97网址97| 1024手机看片欧美日韩| 超碰中文字幕人妻草一区| 天天爽天天操| 亚洲天堂 视频你懂的| 欧美精品一区二区少妇免费A片| 99re视频在线播放青草| 91劲爆| 91熟女综合| 欧美日韩99精品麻豆传媒| 精品黑人一区二区| 大香蕉黄色一区| 欧美日韩激情无码专区| 国产精品久久久久久高清无码免费看| 久久久四区| 久久久青草青青国产亚洲免观精品高清完整版_97久久综合区小说区图片区,国精品 | 老熟女乱伦片| 91日韩网站| 97草草| 图色综合网| 久操大香蕉手机视频在线看| 久青草影院| 午夜男人一级A片7777| 亚洲成人性爱网站在线播放| a男人的天堂久久一级A毛片| 色欲天天综合久久久无码网中文| 一本久道久久综合狠狠爱一密臀精 | 高清视频一区| 九九九九免费| 国产偷人伦激情在线观看| 熟女91网站| 老妇女91| 日韩成人私密一级精品av| 欧美乱欲| 久操网址| 操逼操操操91| 久久欧美按摩999| 久久一二三四五六七八九区区区 | 国产精品国产精品国产| 国产黄色视频久久| 久草免费福利在线播放| 小情侣高清国产在线视频| 大香蕉免费乱伦视频| 色色色色电影网| 婷婷久久久| 殴美,日韩国产伦精品| 精品久久久av| 久久伦理视频久久大香蕉视频| 日韩精品操少妇| 天天操天天日天天干| 91亚.色| 中文字幕一区二区无码成人| 91大神精品长腿在线观看网站| 13小男生GAY自慰脱裤子| 欧美特大AA级黄片| 入口操逼网站| 亚洲国产欧美日韩人妻日中文| 综合久欧洲| 91熟女少妇| 9Ⅰ超碰| 久久久久亚洲熟妇熟女| 91精品啪在线观看国产城中村| 婷婷五月天丁香花| 日日干男人的天堂| 天天肏夜夜肏| 人人操人人插人人摸人人干| 91久久久久久| 少妇内射视频| 2020久久免费视频| 欧美三级中文字幕hd| 欧美综合骚| 97操在线| www.伪伪| 蜜伊人色综合97| 精品人妻一区二区蜜桃视频| 亚洲欧美国产中文视频| 116美女午夜| 手机av亚洲丝袜美腿日韩第一页二页| 日本综合色图| AV中文在线| 性性久久| 精品免费视频国产一区| 九九色影院| 91性高| 亚洲熟女人妻中文字幕一区二区| 上海一级黄片| 黄色小说亚洲| 婷婷丁香激情| 欧美久久草熟女| 国产精品另类一区大香蕉| 三级日韩一区二区三区| 国产欧美美女免费观看视频| 97网色| 福利在线观看一区二区| 精品国产72| 国产精品播放| a网站免费观看| 欧美综合色综合| 插穴性爱视频在线观看| 五毛骚逼极品美女怕怕| 五月天久久综合网| 精品无码一二三四区| 久久加勒比| 国产精品色| 久久久久九九九九九| 国产辣妈在线视频福利| 香港日本韩国人妇99www.wccm20| 九九综合久久中文字幕| 欧亚不卡| 久久久久久久久久va| 高潮内射在线| 综合av社区| 成人日韩中文字幕| 天天色天天干天天爱| 欧美综合第一| 高潮的A片激情扒开一区| 亚洲中文字幕乱码无码一区二区| 韩国一级做a久久久久| 1024久久高清视频| 人人贴人人摸| 搞中出视频在线观看| 精品国产一区探花在线观看| 少妇国产不卡| 成人乱人伦一区二区| 大香蕉宅男伊人| 草草影院最新网址| 国产中文字幕在线观看| 午夜精品视频777| 综合熟妇一区二区三区| 日韩久久三区| 最新日本中文字幕| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 久久久久久久久久久精| 26uuu国产| 人妻少妇精品视频一区二区三区| 99这里有精品| 人妻一区视频| 国产日韩美女小穴视频网站不卡| www.色五月| 射久久| 午夜呻吟欧美| 中文字幕一区二区三区高清| 99999国产| 超碰久久中文| 国产精品欧美日韩久久| 日韩猛交| 欧美78| 欧亚在线视频| 日韩av不卡在线看| 免费视频观看60秒| 99re95| 人妻aa| 丰满人妻-区二区三区免费看| 五月天伊人| 亚洲色欲天天天堂色欲网女| 美女啊啊啊啊啊| 久久亚洲不卡一区二区三区| 日本在线不卡v二区| 中文字幕熟女人妻丝袜| 99草精| 亚洲永久AV无码精品秋霞| 国产美女高潮叫床视频| 波多野结衣AV无码一区| 桑老女人九区| 歐美性天天| 97久久精品亚洲| 91足交| 免费人成毛片乱码| 精品无码久久| 精品无码久久| 青青草日韩免费观看高清在线| 九色 人妻 大香蕉| 99色色| caoni国产亚洲av| 婷婷干黄色| 亚洲人妻日日日| 色男人色天堂东京热| 中文字幕二区日韩天堂| 日本理论在线| 青草青草久热| 亚洲阿v天堂无码z2018| 摸奶性爱视频网站在线免费播放| 校园春色五月天| 福利大香蕉| 亚洲色91C| 欧美亚男人的天堂| 欧美综合骚| 午夜大香蕉| 看黄片视频免费| 免费中文综合精品| 操逼操2| 嗯嗯不要 视频| 亚洲图片欧美另类综合免费视频大大香| 嗯~啊~快点 死我视频| 屌逼麻豆| 黄色AV影视| 六月丁香久久| 色区久久| 美女黄色一级A视频| 国产小u女在线观看| 亚洲色色探花| 在线视频日韩欧美国产| 九九综合久久| 亚洲另类综合欧美| 熟妇女人妻呻吟久久AV| 丝袜视频一区二区在线播放国产中文| 午夜天堂网| 99re在线观看| 狠狠躁天天躁日日躁| 九九热视频这里只有精品| 91中文精品日韩欧美在线| 久久久久9久久久久| 久久大香蕉手机高清视频| 久久久久骚| 99热超碰| 欧洲精品人妻| 欧美色图自拍| 9118禁| 亚洲在线网站| 亚洲乱伦图片视频| 婷婷五月成人| 中文字幕在在线观看网站| 日韩钢筋无码高清啾啾啾| 99xav| 骚逼自拍99| 日本幼女18+| 日韩大香蕉AV影片| 北约熟女超碰| 日韩另类| 超碰97最新人妻| 欧美一区二区三区成人性生活| 91男人综合| 亚洲综合在线第一页| 亚洲精品国语在线播放| 肉嘟嘟www视频在线观看高清| 日本一级性爱| 日韩伦理久 久久 清纯| 青青草国产一区二区三区| 亚洲国产日韩精品久久久| 亚洲欧美天堂| 国产男人又猛又粗又爽| 精品区9| 97久久免费| 国产乱码久久久| 免费视频在线一区二区不卡| 日韩成人大片在线观看| 久久国产精品,久久国产| 91色综合色| 99热这里只有精品18| 欧美黄片免费在线观看视频| 天天综合网一91网| 欧美丝袜亚洲| 91精品国产日韩欧美综合| 色狠狠综合| 国产精品网站www| 在线观看啊啊啊啊啊| av爱爱爱| 啊啊啊啊嗯嗯嗯用力好爽| 超碰碰激情97+久| 欧美亚洲综合高清在线| 欧美日韩性爱操大逼| 亚洲男人的天堂一区二区| 亚洲欧美天| 日韩在线一区二区| 欧美熟妇操操视频| 天天干人人看综合| 久热无码| 夜夜高潮夜夜爽夜夜爱爱一区| 色欲av一区二区三区蜜芽| 亚洲欧美精品一区天堂久久 | 亚洲欧美97√| 999国产精品999| 国产熟妇一区二区| 无码精品久久| 国产91精品久久久久久久网曝门| 91色色网站| 99视频只有精品| 精人妻无码一区二区三区伊人直播| 国产v亚洲v日韩v欧美v片另类| 日韩在线观看中文字幕视频| wuyechaopeng| 屁屁影院一区二区三区国产| WWW.加勒比人妻一区不卡.com| 91精品老女人| 色综合中文字幕不卡| 人人妻人人爽一区二区三区| 国产99 中文字幕日韩小视频| 中国黄色特级精品一区二区三区片| 中文字幕日韩电影人妻| 日韩国产十八禁| 中文字幕AV乱伦| 欧美狠狠鲁| 亚洲一区操| 亚洲成人精品久久久| 一二三区操逼国产91| 久久久久久亚洲精品中文字幕人妻| 亚洲精品欧洲色| 五月丁香在线| 精品人妻一区二区三区四区不卡在| 男人的天堂亚洲| 又大又大又大又粗爽高潮观看 | 91老熟女91老女人| 六月丁香五月婷婷| 国产真实子伦对白| 台湾大香蕉99热| 色官网色综合| 极品一区二区三区免费| 亚洲图片偷拍视频区| 玖玖爱视频网站| 九九色色| 国产又色又粗又黄又爽| 日日夜夜噜| 亚洲无码久久久久久久| 欧美春色| 欧美精品丝袜久久久中文字幕| 亚洲日韩精品久久久久一区壹牛| 亚州综合图片| 午夜大香蕉| 美日韩男女操屄视频| 美女诱惑在线一区| 久久曰曰| 欧美爆乳精品一区二区| 久久影视二区三区行押| 猛交交| 欧美中文字幕日韩在线| 伊人久日| 亚洲熟女乱色| 国产一区二区欧美日本| 人人操人人93| 玖玖爱综合网| 中美日韩毛片| 亚洲aV性爱| 很很操在线| 强奸熟女一区二区三区 | 性一级黄色录像片网站导航| 狠狠亚洲| 狠狠中文字幕| 3d成人精品一区二区| 久久久久女教师免费一区 | 97免费视频在线观看| 男人精品天堂一区| 麻豆 欧美 日韩| 日本一区二区不卡精品| 粉嫩av在线| 欧美97av| 4虎在线视频| 91 丝袜在线| 丁香五月激情网| 日韩丰满熟妇| 亚洲熟女乱色一区二区三区| 99久草| Julia Annxxxxx| 操操操操操操| 久久精品亚洲婷婷| 亚洲操操| 国产亚洲精品自在线亚洲情侣| 国产多人在线观看视频| 超碰色综合| 国产午夜精品一区二区三区牛牛| 在线小视频| 又摸又舔在线观看网站| 九九九午夜| 日本久久网| 美女黄频a美女大全免费皮| 日婷婷| 丰满人妻aA一区二区三区| 人妻丝袜一区二区三区在线| 国产中文字幕在线| 国产精品色约约| 999 久久久| 久插综合| silk lablo在线观看一区二区| 少妇蜜汁| 亚洲宗合电影| 亚洲 欧美 小说| 91国产丝袜足交精品视频| 97超级久久强资源| 久久这里都是精品| 按摩中文字幕| 欧美激情视频一区二区三区不卡| 色呦呦、国产精品| 国产无遮挡| 色爱欲亚洲| 熟女自慰久久久| 九热大香蕉| 日韩精品熟妇| 日韩精品电影| 97国产综合欧美| 欧美啪啪天堂| 97久久国产精品女不卡| 国产精品一区二区三| 综合夜夜| 男女猛烈无遮掩视频免费软件| 免费国产电影一区二区| 亚洲制服aⅴ中文字幕| 亚洲精品无码成人久久久99| 91精品伊人久久久大香线蕉91| www.色操逼| 天天爽天天| 成人AV素股で擦久久| 亚洲瓯美色图| 四虎免费视频| 亚洲欧美首页| 最新岛国大片| 国产 丝袜 欧美中文 另类| 久久色情| 人妻插插人妻人| 人妻天天爽| 日韩一级二级三级| 91久久免费视频互動交流| 日韩A优精品在线观看| 婷婷AV一区二区三区| 无码9区| 综合天天网| 欧美精品系列| 国产精品国产亚洲区艳妇糸列| 久久久亚洲高清不打码| 97色婷| 狠狠图片青青草| 日韩天天综合| 日韩性爱视频在线免费观看| 亚洲精品日韩国产欧美| 久久蜜桃综合网| 久久婷婷苹果| 99re热有精品视频国产| 99热伊人| 日本久久综合| 亚洲欧美成人网站AAA| 亚洲一区二区三区四区视频| 中文字幕日产av人| 亚洲91射| 2020中文在线一区二区三区| 久久侵犯人妻爽爽爽| 久久久久久裸体| 黄片免费日韩| 亚洲综合激情五月久久| 伊人久久亚洲中文字幕不卡| 东京热一区二区中文字幕| 色噜噜人妻丝袜a∨先锋影| 精品人妻一区二区免费蜜桃| 99超碰碰| 一级啊性爱在线视频| 四虎免费看黄| 探花视频免费观看国产专区| 色色五月天激情| 国产丸一视频| 9丨亚洲一区二区在线| 日韩成人色图| 久久久久久久久一区二区三区| 激情网色| 老司机免费视频在线91| 久久久国产av美女私房| 高清不卡一二三区视频......| 全国男人天堂网| 综合久久六月久久婷婷| 天天综合网1| 黄片免费视频2019| 91日日| 91精品国产91久久青草| 人妻天堂综合网| 97免费视频在线| 婷婷五月av| 91N综合网| 91粉嫩萝控精品福利网站_精品影音先锋国 | 91丝袜在线观看| 在线天堂999| 美女91| 中字乱伦AV| 久久中文字幕女同性恋一区| 麻花豆传媒剧国产MV出差| 国产嫩草精品A88AV在线| 亚洲无线观看久久| 天堂av2019| 美女被啪到深处抽搐视频| 蜜桃久久综合视频| 俄罗斯及免费在线看| 精品久久久久,69国产成人精| 男人的天堂1024| 亚码激情| 性夜影院爽黄A爽免费动漫| 亚州操操穴网| 久久丁香久草综合网| 夜夜久久| 艹比视频国产精品| 四虎av在线| 天天射影院| 国产精品免费久久久久久久久久| 人人手机欧洲亚洲国产人妻| 69av一区二区三区| 97bbn| 熟女六十路| 精品无码久久| 夜夜狼人妻| 香蕉久久AⅤ...| 99热国产精品| 久久草草欧美精品| 一二三区操逼国产91| 久久一二三四不卡| 亚洲熟女中文字幕在线| 97极品无码| 超碰1024久久| 女人爽到高潮潮喷18禁网站| 夜夜嗨视频| 色色综合97| 欧美一区二区三区日韩| 69国产对白刺激| 天天躁狠狠躁av| 天天干天天插| 亚洲欧美在线观看无码| 国产精品伦理| 熟妇艹鸡八| 深田咏美亚洲精品福利社| 狠狠爱大香蕉| 豆1无夜无码| 国产精品麻豆成人AV艾秋| 欧美十八禁视频| 高潮9999外国| 97精品视频免费| 久久色情| 一类av片在线看| 校园春色五月天| 伊人亚洲综合| 男人的天堂激情| 亚洲成av人片色午夜乱码| 亚洲午夜未满十八勿入网站日本又色又爽又黄| 九九九九精品一区| 好淫网一二三视区| 日本亚洲熟女视频| 色翁荡息又大又硬又粗又爽| 亚洲女人91| 熟女露脸激情自拍视频| 欧美午夜色妇色鬼| 92福利社视频| 思思性爱| 精品中文字幕第一页| 久操精品| 97综合激情| 日本五区不卡| 91超碰在线播放| 久久人人爽爽爽人久久久| 久久怡红院| 欧美做爰无码A片视频| 久久riav中文精品| 黄片免费视频2019| 亚洲爽图| 亚洲黑人在线| 东京热男人天堂| 91黄射| 精品人妻视频一区二区在线播放 | 亚洲熟妇丝袜在线观看| www.夜夜操| 免费看日产一区二区三区| 2019天天干天天操| 日韩欧美成人综合在线| 人人看黄色视频| 国产毛片片精品天天看视频| 伊人九九| 亚洲男人天堂网站| 午夜美女诱惑电源网| 深爱伊人影院| 亚春色色| 少妇熟女一区二区三区| 这里只有97精品| 久久精品国产亚洲粉嫩| 99热精品在线观看| 99久久久| 日日躁夜夜躁狠狠躁超爽| 欧美日韩欧美| 9999久久久| 国产在线视频午夜精华在| 色牛aV| 日韩一级性爱无码| 热无码中文亚洲H一道本一区二区| 日本人妻最新在线中| 一级片视频啪啪| 欧美爱三级日韩久久| 人人妻人人爽 97人人看碰人免费公开视频| 操逼操2| 岛国免费黄色网址| 3D污黄视频在线观看| 日本在线视频导航| 丁香五月综合| 婷婷综合在线观看| 久久久久久波多野吉衣高潮| 亚洲污污网站| 91N综合网| 亚洲丝袜诱惑| 91丨九色丨国产丨人妻在线| 日韩国产成人自拍视频| 成人片在线播放| 欧美极品女人的天堂| 欧美日韩免费专区在线| 日韩精品人妻中文字有码在线 | 伊人五月天激情| 色婷婷综合视频| 麻豆 欧美 日韩| 蜜臀AV成人精品蜜臀| 97伦乱| 97色在线视频| 欧美色视频在线| 久久人妻精品| 丁香婷婷激情五月天无毒不卡 | 777超碰| 日韩熟女乱伦中出| 婷婷丁香熟妇综合网| 亚洲精品一区二区三区新线路| 大香网伊人久久综合网eew| 97伦乱| 久久精品国产欧美日韩亚洲欧美日韩中文久久国产一区 | 日日躁天天躁狠狠躁| 99久久久无码国产精品性啊聊| 国产日韩精品人妻久久久久色欲网站 | 中文一区二区婷婷视频| 天天操天天日天天干| 精品91日日夜夜超清资源| 日韩欧美tv一区二区在线观看| 日韩成人精品中文字幕| 97视频620| 久午视频| 91操人| 一区 欧美 日韩 麻豆| 999久久久久久久久| 麻豆天美国美国产| 精吧天堂| 无遮挡又黄又刺激的视频| 5月婷婷6月六月丁香| 精品人妻夜夜草| 日日躁夜夜躁狠狠躁超爽| 韩国一级AAA| 精品91摸| 丰满人妻-区二区三区免费看| 先锋色眉乱伦资源| 欧亚不卡| 亚洲天堂男人天堂网| 五月天黄色激情视频| 东北女人| 亚洲 欧美 日韩 国产一区二区| 91色久| 一区二区亚州激情久婷婷欧美| 国产高清视频无码在线| 天天综合91在线| 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | 精品国产91av一区二区三区| 韩国女主播青草福利视频| 女人香蕉久久毛毛片精品| 黄骗免费| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师 | 人妻少妇无码| 久久久久久国产精品免费网站| 亚洲射综合网| 91丨国产丨白浆秘 洗澡动漫| 九九热免费视频| 久久大香蕉97| 日韩一级片| 99热线麻豆| 爱媛媛久久国产福利| 成人欧美日超碰| 天天综合网日韩7799| 欧美国产一区二区三区麻豆传媒| 久久亚洲中文字幕视频| 天天操天天射青青草| 精品欧美老熟女一二区| 67194无码不卡| 国产在线能看的你懂的| 免费人人搞97| 51久久夜色精品国产麻豆| 久久久婷| 精品偷拍13p欧美dodk视频| 色偷综合| 人人操人人狠狠操| 99re6在线视频播放免费精品| 日本一级一级一级一级| 国产精品农村妇女| 最新AVzaixian| 亚洲在线网站| 欧美夜色| 成人日本视频人妻在线| 哈哈操电影| 97久精品| 免费的黄片有限公司| 男人的天堂在线| 四虎影院成年人片| 人妻久久一区二区三区| 日本三级日本三级三级人妇四虎| 日韩黄片影院| 美女让帅哥通她小鸡鸡| 色婷婷九月| 婷婷色综合欧美日韩| 精品国产99| 日韩午夜精品一区二区三区电影| 四虎影视国产精品| 中文字幕日韩国产传媒欧美精品| 老熟女乱伦片| 啊灬啊灬啊灬啊灬高潮奶出了免费视 | 91高清无码下载| 99re28在线观看| 91丝袜美腿网站| 老司机射| 天天躁日日躁狠狠躁| 久久超碰98| 日韩成人精品中文字幕| 一个人免费视频观看在线WWW| 天堂涩涩| 97久久久久久久精| 永久免费发布性爱网| 天天伊人| julia中文字幕在线观看| 婷婷中文字幕| 这里只有精品视频在线观看麻豆| 亚洲综合嫩| 亚洲揄拍网| 亚洲人成网www| 波多野结衣一级视频| 欧美性91| 精彩久久中文| 中文字幕在线观看第二页| 国语对白在线播放视频| PMv在线观看| 极品美女嘿咻| 二三四区精品| 人人色人人射人人妻| 在线视频日韩欧美国产| 国产视频一区二区三区在线免费观看| 新91视频.cmp| 人妻熟妇久草在线| 亭亭丁香激情| 六月婷婷综合| av日韩在线观看电影| 无码动漫av中文字幕| BBBBB97COM| 久久久九九| 人人澡人人弄| 中文字幕一区二区三区人妻少妇在线| 成年女人18级毛片毛片免费观看| 99久久久无码精品国产人| 亚洲日韩国产精品| 97久久超碰日韩精品| 美女丝袜激情小说| 日韩在线97| 三级片大波波| 天天干天天日天天射黄色| 日韩无码成人电影| 亚洲精品aa久久伊人| 中国大陆国产高清AⅤ毛片| 欧美性爱精品七区| 人妻夜夜爽天天爽三区麻豆AV网站| 久草成人影片| 少好三P| 俞拍自拍| 日本免费一区二区不卡| 91挑色欧美| 婷婷香网站| 亚洲一本色码中文字幕| 图色综合网| 久草资源在线视频官方总站日韩丝袜美腿 | 九九九久千久久激情蜜桃在线看 | 精品蜜乳AV免费观看| 久久一二三四| 亚洲无码 国产无码| 97碰| 亚洲AV成人精品网站在AV| 2024年最新色情网站在线观看| 91五十路| 女人天堂av在线播放| 免费操逼91| 美女被啪到深处抽搐视频| 亚洲超碰97| 狠狠操狠狠操操| 思思热一热婷婷热一热| 麻豆国产尤物AV| 亚洲一区二区麻豆影院| 亚洲天堂色图| 亚州再线| 欧美色图 人妻| 日韩97视频| 青青操日韩| 伊人骚琪琪亚洲天堂网站| 国产乱子伦久久精品综合一区二区三| 亚洲国产精品无石码久久| 探花精品 一区二区| 麻豆国产视频精品观看| www.av在线视频| 天天操天天舔| 天天插天天射| 91色黑人少妇| 少妇丝袜在线观看AV| 精品一区99999| 久久精品国产亚洲粉嫩| 国产强奸乱伦第1页| 黄视频免费| 国岛片视频| 欧美九9 9 9| 老师充足的奶水小说| 丝袜天堂网| 天天肏天天干| 亚洲精品国产专区在线观看| 亚洲一区二区三区四区视频| 日日干日日| 久久久久亚洲一区女同性恋中文字幕| 大香蕉伊然在亚洲91| 91九色丨风韵犹存| 精品国产91av一区二区三区 | 9999亚洲精品| 国产精品久久久久久久久久久久久久| 久久精品国产亚洲AV先锋| 欧美日韩日产免费网站看| 性一交一乱一交A片久久四色| 青娱乐av在线| 91n.欧美| 日韩无码操逼片| 色综合九九| 日韩9999| 夜夜爽夜夜高潮夜夜爽| 26uuu性物| 欧美精品另类人妖xxxx| 亚洲高清少妇| 欧美激情一区| av天堂手机版追回| 天天弄欧美| 国产美女自拍视频| 熟女五十路一区二区三| 麻豆天美国美国产| 加勒比性爱成人在线| 午夜舔阴达高潮视频免费看| 亚洲欧洲国产综合av| 日本97久久久精品| 2017天天拍大香蕉| 日韩一级片在线看| 国产精品suv一区| 色吧91| 另类专区在线观看| 九九国产热| www.99色| 久久国产精品一级二级三级| 色噜噜人妻av中文字幕| 三级特黄60分钟播放| 熟妇最新先锋一二三区| 久久精品久久久久久久| 日韩av不卡在线观看| 国产乱人妻精品入口| 中文AV制服乱伦| 国产精品青青草| 综合少妇网| 久久‘黄片视频| 中国的操老妇女| 欧美国产精品| 中文字幕-区二区三区四区视频中国| 久久婷婷成人综合色怡春院| 久久人人爽人人爽人人片Ⅴ| 久久九操在线观看| 无码丰满熟妇一区二区浪潮AV| 熟妇亚洲一区二区三区| 东京热大香蕉| 婷婷亚洲中文字幕在线| 天天操天天舔| 五月激情综合网| 黄色工厂这里只有精品| 国产无套粉嫩白浆在| 日本熟妇自慰性高潮一区二区三区| 色狠狠 - 百度| 在线黄色污污网站| 日日夜夜精品| 97在线观视频免费观看| 国产曰批免费观看久久久| 美腿丝袜偷拍亚洲欧美| 国产9 9在线 | 亚洲| 久久只有精品一区二区三区| 狠狠久久手机视频精品| 99re69综合| 亚洲精品国产无码高清| 人妻在线大香蕉| 3d成人精品一区二区| 欧美国产操逼| 麻豆这里只有精品| 欧美中日韩XXXX| 大香蕉伊利av| 久久久久久99AV无码免费网站| 久久婷婷在线观看视频| 欧美成人A√在线一区二区| 久久、1234| 久久久久国产精品喷潮免费观看臀| 精品一区99999| 色婷婷电影| 日韩兔费看黄片| 久久骚少妇| 成人三级片无码| 91日韩国产欧美亚洲另类精盘州至城都 | 很很很很操| 亚洲精品日韩国产欧美| 一二三区精品视频| a男人的天堂| 自拍偷拍 高清无码| 欧美色交| 欧美熟妇乱码在线一区| 天天干人人干天天日97| 久久精品成人| 日韩一区二区熟女| 911av网站免费观看| 丝袜美腿丝袜| 国产精品久久9| A V视频日本| 人妻丝袜二区| 色婷婷综合久久中文字幕雪峰| A V视频日本| 伊人操| 青青操视频在线| 黄污污污污| 国产精品网址| 日韩大香蕉AV影片| 日日AV加勒比| 国产精品秘 福利姬在线观看| 97啪啪| 欧美极品色| 亚洲最大的黄色电影网站。| 国产69精品久久久久99尤物| 亚洲97超碰| 果冻传媒一区二区三区| 亚洲国产欧美日韩人妻日中文| 一区二区三区探花在线观看| 99热在线播放| 肉丝中文无码高清| 绯色AV粉色AV蜜臀AV| 久久婷婷亚洲| 亚洲精品性爱片| 啊啊啊啊操死我| 亚洲欧洲激情| 亚洲丝袜B诱惑| 色性综合| 亚洲欧美综合| 国产91丝袜 在线播放| 蜜桃视频一区二区三区在线观看| 99re久久| 91社区拍啪人妻| 2018天天日天天日| 国产999精品久久久| 青草视频人妻在线观看| 精品久一区免费| 色色色网站| 3p国产欧美99热| 综合久久久久久久综合网| 国产真实子伦对白| 成人小电影网站tex| 久欲AV| 丝袜狠狠草尤物 91| 亚洲欧美九九九| 一品道视频一区二区三区| 噜噜吧,噜噜色,噜噜| 大香网站| 午夜AV人气不卡| 亚欧毛片基地国产毛片基地| 久九色| 女生久久网| 成人性交午夜免费片| 中文字幕日韩情色| 碰人碰碰人人开房人肉| 国产丰满少妇久久久精品影院| 日韩一级二级在线| 日韩人妻操B| 人妻精品综合中文字幕在线| 亚洲黑丝在线| 国产女人高潮视频| 首页亚洲国产高跟丝袜诱惑视频| 自偷自拍的亚洲视频| 8050午夜少妇无码| 日本熟妇人妻中出视频| 日日操丁香五月天| 国产操偷| 中国一区二区亚洲人妻| 可以在线观看AV的网站| 亚洲一欧洲中文字幕在线| 熟女精品va中文字幕| 日韩亚洲国产视频| 粉嫩av在线一区二区| 人人操人人大香蕉| 一区在线观看中文字幕| 中文字幕成人| 夜夜肏2021| 高清不卡视频| 97干天天| 任你干在线视频| 久草综合网| 日韩有码专区| 国内偷拍精品一区二区| 99久久久久久亚洲精品不卡|