<tr id="tp1vn"><td id="tp1vn"><dl id="tp1vn"></dl></td></tr>
  1. <p id="tp1vn"></p>
  2. <sub id="tp1vn"><p id="tp1vn"></p></sub>
    <u id="tp1vn"><rp id="tp1vn"></rp></u>
    <meter id="tp1vn"></meter>
      <wbr id="tp1vn"><sup id="tp1vn"></sup></wbr>
      日韩第一页浮力,欧美a在线,中文字幕无码乱码人妻系列蜜桃 ,国产成人精品三级麻豆,国产男女爽爽爽免费视频,中文字幕国产精品av,两个人日本www免费版,国产v精品成人免费视频71pao
      網(wǎng)易首頁 > 網(wǎng)易號 > 正文 申請入駐

      我復刻了 Claude 剛發(fā)布的生成式 UI 交互!

      0
      分享至

      前天 Anthropic 在 Claude 里面上線了基于生成式 UI 的新交互。

      可以幫你在聊天信息流里面用地嗎可視化的方式介紹一些概念和信息,遠比原來的純文本要好理解。


      我之前就一直在看類似的方案,剛好 Claude 發(fā)了,我就感覺我也得加緊做了。

      同時剛好也可以逆向參考一下他的方案。

      瘋狂 PUA 了兩天 Codex 和 Claude 還真讓我搞出來了!


      這個功能能讓 AI 直接在聊天里畫交互式圖表,流式輸出,邊生成邊渲染。

      以前讓 AI 寫網(wǎng)頁,得等整個頁面代碼全部生成完才能渲染,等半天。

      現(xiàn)在不一樣了。

      你能看著圖表一筆一筆在畫布上畫出來,SVG 節(jié)點一個接一個冒出來。

      生成過程本身就很震撼,而且生成完直接就能交互。

      直接在我的 Agent 產品 Code Pilot 里面體驗:https://github.com/op7418/CodePilot

      這篇內容我就會介紹一下它的用法,以及具體的實現(xiàn)過程和一些注意事項。

      有哪些好玩的用法

      數(shù)據(jù)分析:數(shù)字終于能看懂了

      比如讓它畫一個"美國和伊朗沖突每天成本估算"的圖表。

      以前 AI 給你一大段文字,數(shù)字關系根本看不清。

      現(xiàn)在直接出圖表,每部分金額多少一目了然,文字和圖表混在一起輸出,該解釋的解釋,該畫的畫。



      小工具:寫個可交互的計算器啥的

      讓它做一個復利計算器。

      拖滑塊改初始金額、改投資年限,下面的圖表和數(shù)字實時變化。

      這不是靜態(tài)圖片,是真的能交互的小工具。

      貸款計算、單位換算這類東西都能做。


      架構圖:程序員最愛

      你可以讓他幫你畫某個項目的架構,或者某一個實現(xiàn)方案的可視化。

      比如這里我讓它畫 API 到 JWT 身份驗證的完整流程。

      特性對比、流程圖、層級結構全是圖形化的,比看文字描述理解架構快太多了。


      分析線上數(shù)據(jù)

      還有個玩法直接丟一個 GitHub 倉庫鏈接給它,它自己抓數(shù)據(jù)然后可視化分析。

      比如這里我就把我自己的項目地址 Codepilot 發(fā)給他讓他分析。

      星數(shù)、fork 數(shù)、技術棧、架構設計、核心模塊,全部畫成圖表。

      一眼就能看清楚項目全貌,比讀一大段文字強多了。


      可以進行交互和深度解釋

      這個最強的是他跟模型結合的相當緊密,不是一頓輸出就完事了。

      你可以跟他生成的示意圖進行交互,讓他進行更詳細的解釋。

      比如這里我讓他解釋季風和洋流的關系。


      如果我們想更詳細的了解就可以點擊那個洋流機制的按鈕。

      就會自動向當前的模型發(fā)送指令,繼續(xù)幫你生成洋流機制的示意圖。


      當然我們可以進行更加復雜的交互,比如常見的物理數(shù)學公式的可視化。

      這種對于學生來說非常好用,每個參數(shù)都可以通過滑塊和輸入控制,動畫立刻會發(fā)生變化。


      國產模型支持

      Codepilot 實現(xiàn)之后不只是 Claude 能用。

      Kimi K2.5、Minimax M2.5、Anthropic 原生模型都跑得起來。

      K2.5 畫的圖形我覺得甚至比 Sonnet 4.6 還好看,架構分析也很詳細。

      如果用這個功能我推薦首選 K2.5 試試。

      好,到這里,模型的玩法基本上展示完了。

      如果你不關心是如何實現(xiàn)的,可以直接去裝個 Codepilot,愉快地玩耍了。

      如何實現(xiàn)的



      Claude 怎么做的

      Claude.ai 官方用的是 tool_use 機制。

      模型調用一個專用 tool 輸出結構化的 widget 內容,

      前端解析 tool 調用的 input 參數(shù)來渲染。

      這個方案在 Claude.ai 自己的架構下沒問題。

      但搬到 CodePilot 就不行了,原因有三個:

      第一,SDK 限制。
      CodePilot 用 Claude Agent SDK 的 preset: 'claude_code' 模式,
      沒法注冊自定義 tool。
      SDK 暴露的是 text delta 流,tool 層面擴展不了。

      第二,流式體驗。
      tool_use 的結果要等 input_json_delta 拼完才能渲染,
      不支持 HTML 增量渲染。
      代碼圍欄方式下,HTML 隨文本流式到達,邊生成邊預覽。

      第三,渲染隔離。

      Claude.ai 用 Shadow DOM 做隔離。

      我們選了 sandbox iframe。

      iframe 隔離更徹底——完全獨立的 JS 執(zhí)行環(huán)境,

      CSP 精確控制資源加載,

      不存在樣式泄漏和腳本逃逸。

      我們怎么做的

      觸發(fā):代碼圍欄

      模型輸出一段特殊的 Markdown 代碼圍欄來觸發(fā)渲染:

      show-widget
      {"title":"training_flow","widget_code":" ..."}

      這個格式復用了 CodePilot 已有的代碼圍欄模式
      (image-gen-request、batch-plan 等),
      前端 parser 鏈天然支持。


      渲染:sandbox iframe

      每個 widget 渲染在一個 sandbox="allow-scripts" 的 iframe 里。
      iframe 的 srcdoc 是一個精心構建的 receiver 頁面。

      CSP 策略只放行 4 個 CDN 域名的外部腳本,
      connect-src 'none' 禁止所有網(wǎng)絡請求。

      通過 postMessage 接收內容更新。
      流式預覽階段發(fā) widget:update,不執(zhí)行腳本。
      最終渲染發(fā) widget:finalize,執(zhí)行腳本。

      ResizeObserver 監(jiān)聽內容高度變化,

      通過 postMessage 報告給父頁面。

      所有 點擊被攔截,
      轉發(fā)給父頁面在新窗口打開。

      主題同步靠監(jiān)聽父頁面的 class 變化,
      實時切換深色/淺色模式。


      CSS 變量橋接

      這是讓 widget 跟應用視覺融合的關鍵。

      CodePilot 用 OKLCH 色彩空間的 CSS 變量。
      Anthropic 的 widget 設計指南用 --color-background-primary 這類標準變量名。

      橋接層在 iframe 初始化時,
      把 CodePilot 的變量值注入 iframe 的 :root。
      模型按指南寫的 CSS 就能直接用當前主題的顏色。

      深色模式切換時,
      父頁面檢測到 class 變化,
      重新算變量值推給 iframe。


      流式渲染

      這是整個實現(xiàn)里最復雜的部分。

      模型逐 token 生成。
      任意時刻收到的 widget 代碼都可能是不完整的 JSON、
      不完整的 HTML、不完整的 還沒到時,
      sanitizeForStreaming 剝離了開標簽,
      但標簽內的 JavaScript 代碼變成了裸文本節(jié)點,
      被瀏覽器渲染成可見內容。

      修復:在 StreamingMessage 的 partial code 提取后,
      檢測最后一個 有沒有匹配的 。
      沒有就在 位置截斷。
      widget 指南規(guī)定 script 放最后,截斷不影響視覺內容。
      截斷期間展示 shimmer 遮罩,
      狀態(tài)欄顯示"正在為可視化添加交互動畫"。

      iframe Ready 競態(tài)

      極少數(shù)情況下 widget 完全不渲染,停在 0px 高度。

      WidgetRenderer 通過 useEffect 注冊 message 事件監(jiān)聽。
      但 iframe 的 receiver script 加載完就立刻發(fā) widget:ready。
      如果 iframe 加載速度快于 React effect 執(zhí)行,
      widget:ready 在監(jiān)聽器注冊之前就發(fā)出去了,
      iframeReady 永遠不會變成 true。

      修復:在 iframe 元素上加 onLoad 回調兜底。
      onLoad 觸發(fā)時 receiver script 必然已執(zhí)行完,
      是可靠的就緒信號。

      React 組件樹穩(wěn)定性

      widget 在圍欄閉合瞬間閃一次。

      兩個問題疊在一起:
      流式 partial widget 沒有 React key,
      閉合后獲得 key="w-0",key 變了導致 remount。
      shimmer overlay 用外包

      實現(xiàn),
      改變了組件樹結構,type 變了又導致 remount。

      修復:給 partial widget 算穩(wěn)定的 key
      (w-N,N 是在最終 segments 數(shù)組中的預期位置),
      跟閉合后的 key 一致。
      shimmer overlay 移進 WidgetRenderer 內部,
      通過 showOverlay prop 控制。
      組件樹始終是 ,不變。

      整個生成式 UI 系統(tǒng),

      難的不是"讓一段 HTML 在 iframe 里跑起來"。那很簡單。

      真正的復雜度在于:

      讓這個 iframe 在流式傳輸、組件生命周期切換、主題變化這些狀態(tài)轉換中,

      保持視覺上的穩(wěn)定。

      每一個"閃一下""跳一下""消失一下",

      都要去理解 React 的 reconciliation、

      瀏覽器的渲染管線、

      postMessage 的時序。

      最終效果是:

      用戶看到模型的回復里自然地穿插著圖表和示意圖。

      就像它們本來就該在那里。

      這是今天的內容。如果覺得對你有幫助的話,可以幫我點個贊,或者是發(fā)給有需要的朋友。

      特別聲明:以上內容(如有圖片或視頻亦包括在內)為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務。

      Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.

      相關推薦
      熱點推薦
      他接受紀律審查和監(jiān)察調查

      他接受紀律審查和監(jiān)察調查

      錫望
      2026-05-11 21:56:44
      四川鄰水一嬰兒疑似遭家人遺棄,還留有現(xiàn)金和生日,警方回應:嬰兒已被家人帶回家,并非遺棄,具體原因不便透露

      四川鄰水一嬰兒疑似遭家人遺棄,還留有現(xiàn)金和生日,警方回應:嬰兒已被家人帶回家,并非遺棄,具體原因不便透露

      臺州交通廣播
      2026-05-11 23:10:04
      炸裂!熊孩子刮花6張PS5光盤 家長僅200元打發(fā)了事

      炸裂!熊孩子刮花6張PS5光盤 家長僅200元打發(fā)了事

      游民星空
      2026-05-10 17:44:13
      訂單排到3年后!硬核國產,全球爆火

      訂單排到3年后!硬核國產,全球爆火

      看看新聞Knews
      2026-05-11 11:56:13
      美國一旦霸權結束,一定會滅亡的三個國家,排第一的果然是它

      美國一旦霸權結束,一定會滅亡的三個國家,排第一的果然是它

      琴音繚繞回
      2026-04-25 07:21:31
      TA:皇馬消息人士稱姆巴佩本賽季不想再踢主場比賽,以免被噓

      TA:皇馬消息人士稱姆巴佩本賽季不想再踢主場比賽,以免被噓

      懂球帝
      2026-05-12 01:17:05
      又來了,微信推出轉賬新功能!

      又來了,微信推出轉賬新功能!

      果粉易查
      2026-05-10 22:28:42
      這胖妹,如果是在唐朝,必是皇后,實在是惹人喜愛符合大唐胖女子

      這胖妹,如果是在唐朝,必是皇后,實在是惹人喜愛符合大唐胖女子

      陳意小可愛
      2026-05-11 15:21:09
      文詠珊,這大長腿真的是太愛了呀

      文詠珊,這大長腿真的是太愛了呀

      草莓解說體育
      2026-05-05 17:40:52
      15死33傷!以色列不宣而戰(zhàn),伊朗最高領袖下令,普京:美國已反悔

      15死33傷!以色列不宣而戰(zhàn),伊朗最高領袖下令,普京:美國已反悔

      溫讀史
      2026-05-12 05:50:57
      若世界杯無緣中國觀眾,將引發(fā)多個連鎖反應,梅西就是前車之鑒

      若世界杯無緣中國觀眾,將引發(fā)多個連鎖反應,梅西就是前車之鑒

      原來仙女不講理
      2026-05-11 20:34:09
      漢坦病毒mRNA疫苗全球研發(fā)緩慢,中國相關滅活疫苗已上市20年

      漢坦病毒mRNA疫苗全球研發(fā)緩慢,中國相關滅活疫苗已上市20年

      紅星新聞
      2026-05-09 17:39:29
      大跌41.8% 智能音箱市場遇冷 小米一騎絕塵

      大跌41.8% 智能音箱市場遇冷 小米一騎絕塵

      快科技
      2026-05-12 00:23:06
      波斯灣驚天一爆!美國商船被襲,23人命懸一線!

      波斯灣驚天一爆!美國商船被襲,23人命懸一線!

      菁菁子衿
      2026-05-11 10:00:52
      慈利阻擊戰(zhàn)有多猛?南京大屠殺元兇13師團65聯(lián)隊,幾乎被74軍全殲

      慈利阻擊戰(zhàn)有多猛?南京大屠殺元兇13師團65聯(lián)隊,幾乎被74軍全殲

      浩渺青史
      2026-05-11 17:49:38
      印尼想靠鎳礦卡中國脖子?中國:不好意思,我們早換人了

      印尼想靠鎳礦卡中國脖子?中國:不好意思,我們早換人了

      近史談
      2026-05-12 03:58:47
      外交部:為維護相關決議嚴肅性和權威性,中方決定不同意臺灣地區(qū)參加今年世衛(wèi)大會

      外交部:為維護相關決議嚴肅性和權威性,中方決定不同意臺灣地區(qū)參加今年世衛(wèi)大會

      澎湃新聞
      2026-05-11 15:32:33
      北京“六環(huán)半”要來了:銜接多條高快速路,緩解東六環(huán)交通壓力

      北京“六環(huán)半”要來了:銜接多條高快速路,緩解東六環(huán)交通壓力

      新京報
      2026-05-11 18:21:24
      1995年我愛上了我的女老師,畢業(yè)那天我向她求婚,她居然答應了

      1995年我愛上了我的女老師,畢業(yè)那天我向她求婚,她居然答應了

      千秋文化
      2026-05-08 19:46:33
      從菲律賓起飛、向北飛行!美軍首射這枚戰(zhàn)斧導彈,到底想打誰?

      從菲律賓起飛、向北飛行!美軍首射這枚戰(zhàn)斧導彈,到底想打誰?

      Ck的蜜糖
      2026-05-12 05:56:01
      2026-05-12 06:35:00
      歸藏的AI工具箱 incentive-icons
      歸藏的AI工具箱
      關注人工智能、LLM 、 AI 圖像視頻和設計
      299文章數(shù) 51關注度
      往期回顧 全部

      科技要聞

      黃仁勛:你們趕上了一代人一次的大機會

      頭條要聞

      間諜引誘國企人員進色情場所 拍艷照要挾對方加入

      頭條要聞

      間諜引誘國企人員進色情場所 拍艷照要挾對方加入

      體育要聞

      梁靖崑:可能是最后一屆了,想讓大家記住這個我

      娛樂要聞

      “孕婦墜崖案”王暖暖稱被霸凌協(xié)商解約

      財經要聞

      宗馥莉罷免銷售負責人 部分業(yè)務將外包

      汽車要聞

      吉利銀河“TT”申報圖曝光 電動尾翼+激光雷達

      態(tài)度原創(chuàng)

      本地
      手機
      時尚
      親子
      公開課

      本地新聞

      用蘇繡的方式,打開江西婺源

      手機要聞

      蘋果iOS/iPadOS 15.8.8正式版發(fā)布

      今年夏天最流行的5雙涼鞋,配裙子絕美!

      親子要聞

      蒙眼吹錢挑戰(zhàn)親子互動游戲

      公開課

      李玫瑾:為什么性格比能力更重要?

      無障礙瀏覽 進入關懷版 主站蜘蛛池模板: 亚洲中文无码av在线| 日韩精品欧美激情国产一区| 黄页网站在线观看免费视频 | 国产一本一道久久香蕉下载| 久久免费只有精品国产| 国产自拍一区二区三区在线| 免费AV网站| 日韩AV字幕| 亚洲V天堂V手机在线| 色一情一狱一爱一乱| 国产人成777在线视频直播| 亚洲精品久久区二区三区蜜桃臀 | 国产少妇在线| 9118禁| 内射中出无码护士在线| 伊人激情av一区二区三区| 99久久精品国产免看国产一区| 亚洲中文字幕综合网址| XXXXXHD亚洲日本HD| 精品va在线观看| 久久久无码精品亚洲日韩按摩| 东京热蜜桃| 无码毛片高潮一级一免费| 日本一区二区不卡| 久久久久亚洲AV成人网人人小说| 国产又黄又爽又刺激的免费网址| 成人网站在线进入爽爽爽| 久久热这里只有精品最新| 人妻少妇| 亚洲人妻精品中文字幕| 玖玖资源站亚洲最大成人网站| 亚洲中少妇久久中文字幕| 人人妻人人澡人人爽欧美一区双 | 亚洲少妇人妻无码视频| 国产亚洲精品久久久久久牛牛| 国产精品少妇在线视频| 国产精品三级久久三级| 色噜噜综合亚洲AV中文无码| 福利精品| 四虎永久地址www成人| 精品一区二区三区波多野结衣|