99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

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

LangChain4j+LangGraph4j:Java AI應用平臺實戰(zhàn)

LangChain4j+LangGraph4j:Java AI應用平臺實戰(zhàn) 簡介面向全棧 AI 應用開發(fā)者的工程示例與平臺源碼包聚焦 Spring Boot 3 LangChain4j Vue 3 技術棧覆蓋智能代碼生成、AI 智能體、LangGraph4j 工作流與 Tool Calling 等核心能力并展示可視化編輯、一鍵部署、應用管理及智能路由的實現(xiàn)思路既有完整的前后端交互鏈路也適合作為 AI 應用平臺腳手架進一步擴展。壓縮包共 216 個文件、約 1.14MB其中 Java 后端邏輯約占 143 個文件Vue/TS 前端頁面與交互約 40 個文件另有 JSON、XML、YML、SQL 等配置腳本及 Markdown 說明目錄分層明顯便于按模塊閱讀與二次開發(fā)智能體編排、工具調用注冊、工作流節(jié)點配置等關鍵示例均包含在內。資源還結合多級存儲與 Nginx 部署給出 Prometheus、Grafana、ARMS 監(jiān)控方案并預留 Cursor Vibe Coding 協(xié)作開發(fā)入口可幫助讀者快速復現(xiàn)一套可觀測、可擴展的 AI 應用平臺骨架。已有 250 人學習下載適合正在搭建智能體、工具調用或工作流平臺的同學對照源碼梳理完整實現(xiàn)鏈路。1. 從智能體到代碼生成這個 AI 應用平臺到底在解決什么問題一個 Java 技術棧為主的團隊想上 AI 應用往往卡在同一個地方Python 生態(tài)的 LangChain 很成熟但團隊沒人愿意跨界維護兩套技術棧。這個平臺標題給出的答案很直接——用 SpringBoot3 做后端底座用 LangChain4j 接大模型用 LangGraph4j 做工作流編排再配一個 Vue3 的可視化畫布把 AI 能力變成能拖拽、能部署、能管理的產(chǎn)品。它解決的不是怎么調一次大模型接口而是怎么把智能體、代碼生成、工具調用這些能力沉淀成企業(yè)內部的標準化應用平臺。適合兩類人一是想從零構建 AI 應用平臺的架構師二是接了類似需求但不知道從哪落地的后端和前端工程師。2. SpringBoot3 LangChain4j 的工程底座選型理由與最小可運行配置2.1 為什么是 LangChain4j 而不是自研封裝或 Python LangChain先回答一個很多人糾結的問題我直接寫 OpenAI SDK 或者 Spring AI 不行嗎自己封裝 OpenAI SDK 當然能跑通對話但一旦涉及多輪對話的記憶管理、文檔的 Embedding 切分、工具的自動發(fā)現(xiàn)和調用代碼量會迅速膨脹。LangChain4j 在 Java 生態(tài)里的定位和 Python 版 LangChain 一樣把這些通用能力抽象成 ChatModel、EmbeddingModel、AiServices、Tool 這些接口你只需要替換模型廠商的依賴業(yè)務代碼基本不動。Spring AI 和 LangChain4j 之間我選了后者原因是它對 ToolCalling 和函數(shù)回調的支持更直接Tool 注解的體驗和 Java 開發(fā)者的直覺一致。LangGraph4j 的出現(xiàn)補齊了 LangChain4j 最缺的工作流編排能力——之前做復雜 Agent 只能自己手寫狀態(tài)機現(xiàn)在有官方的圖執(zhí)行引擎節(jié)點、條件邊、狀態(tài)傳遞都是聲明式的。這里要認清一個現(xiàn)實LangChain4j 的迭代速度很快API 在不同小版本之間有過調整所以工程落地時要先鎖版本不要一路上最新。2.2 SpringBoot3 工程骨架與模型接入的最小配置SpringBoot3 強制要求 JDK17 起步實際項目我建議直接用 JDK21LTS 版本虛擬線程對 AI 場景的流式輸出有幫助。創(chuàng)建一個標準的 Maven 工程關鍵依賴就三個langchain4j-spring-boot-starter、langchain4j-open-ai兼容 OpenAI 協(xié)議的服務都走這個、langgraph4j-core。下面這個 pom 片段是經(jīng)過驗證的最小集合properties java.version21/java.version spring-boot.version3.3.5/spring-boot.version /properties dependencies dependency groupIdorg.springframework.boot/groupId artifactIdspring-boot-starter-web/artifactId /dependency dependency groupIddev.langchain4j/groupId artifactIdlangchain4j-spring-boot-starter/artifactId /dependency dependency groupIddev.langchain4j/groupId artifactIdlangchain4j-open-ai/artifactId /dependency !-- LangGraph4j 建議掛在 langchain4j 同一版本族下避免接口不匹配 -- dependency groupIdcom.langchain4j/groupId artifactIdlanggraph4j-core/artifactId /dependency /dependencies注意 langchain4j 和 langgraph4j 的 groupId 不一樣前者是 dev.langchain4j后者是 com.langchain4j。版本號我刻意沒寫死因為這兩個庫的版本更新頻繁直接查 Maven 倉庫選最新穩(wěn)定版即可但一定要檢查 langgraph4j 依賴的 langchain4j-core 版本和你項目里的保持一致否則運行時會出現(xiàn) NoSuchMethodError。模型接入配置走 SpringBoot 的配置文件這里以 OpenAI 兼容接口為例國內云廠商的模型網(wǎng)關、Ollama、vLLM 部署的本地模型都能通過這個方式接入langchain4j: open-ai: chat-model: base-url: ${LLM_BASE_URL:http://localhost:8000/v1} api-key: ${LLM_API_KEY:sk-local} model-name: ${LLM_MODEL:qwen2.5-coder:32b} temperature: 0.2 max-tokens: 4096 log-requests: true log-responses: true embedding-model: base-url: ${LLM_BASE_URL:http://localhost:8000/v1} api-key: ${LLM_API_KEY:sk-local} model-name: ${EMBEDDING_MODEL:bge-m3}base-url 通過環(huán)境變量注入這樣同一個 jar 包在開發(fā)、測試、生產(chǎn)環(huán)境不用改配置。temperature 設成 0.2 是代碼生成場景的推薦值溫度太高模型會自由發(fā)揮生成的東西看著像代碼但編譯不過。log-requests 和 log-responses 在聯(lián)調階段一定要開LangChain4j 會把完整的請求體和響應體打出來排查 prompt 問題和 token 統(tǒng)計都靠它。2.3 模型接入層的抽象OpenAI 兼容接口與本地模型共存實際項目里不太可能只接一家模型。我一般會在業(yè)務代碼之上加一層 ModelRouter按場景路由到不同模型意圖識別用便宜的小模型代碼生成用能力強的 32B 以上模型Embedding 固定用一個。LangChain4j 的 ChatModel 接口天然支持這種抽象你只需要在配置類里聲明多個 BeanConfiguration public class ModelConfig { Bean Primary public ChatModel mainChatModel(Value(${llm.main.model}) String model) { return OpenAiChatModel.builder() .baseUrl(http://localhost:8000/v1) .apiKey(sk-local) .modelName(model) .temperature(0.2) .build(); } Bean public ChatModel fastChatModel(Value(${llm.fast.model}) String model) { return OpenAiChatModel.builder() .baseUrl(http://localhost:8000/v1) .apiKey(sk-local) .modelName(model) .temperature(0.1) .maxTokens(1024) .build(); } }Primary 注解保證默認注入的是能力最強的那個模型需要快模型的地方用 Qualifier(fastChatModel) 顯式指定。這個做法的好處是后續(xù)接 Anthropic 或 Gemini 時只要再實現(xiàn)一個 ChatModel Bean業(yè)務代碼零改動。到了這個階段你已經(jīng)有一個能對話、能 Embedding 的 SpringBoot3 后端了下一步就是把它升級成能自主完成任務的智能體。3. 用 LangGraph4j 編排代碼生成 Agent節(jié)點、條件邊與 ToolCalling3.1 LangGraph4j 的核心概念State、節(jié)點與條件邊LangGraph4j 解決的核心問題是一個智能體不只是一次模型調用而是感知-規(guī)劃-行動-觀察的循環(huán)。你需要在代碼里顯式表達這個循環(huán)包括循環(huán)什么時候結束、狀態(tài)怎么在節(jié)點之間傳遞。它有三個基礎概念State狀態(tài)、Node節(jié)點、Edge邊。State 是一個在節(jié)點間傳遞的數(shù)據(jù)載體Node 是處理狀態(tài)的一個函數(shù)Edge 定義節(jié)點的連接關系其中一種特殊的邊叫條件邊根據(jù)當前狀態(tài)決定下一步走哪個節(jié)點。這樣設計的好處是人和模型的分工變清楚了節(jié)點里的邏輯是你寫死的確定性代碼模型只負責在節(jié)點里產(chǎn)出內容或決定走哪條條件邊。相比純提示詞驅動的 AgentLangGraph4j 讓整個流程可觀測、可 debug、可回放——這正是生產(chǎn)環(huán)境最需要的東西。下面定義一個代碼生成工作流的狀態(tài)類型public interface CodeGenState { GraphStateDTOString requirement GraphStateDTO.string(requirement); GraphStateDTOString plan GraphStateDTO.string(plan); GraphStateDTOString sourceCode GraphStateDTO.string(sourceCode); GraphStateDTOString execResult GraphStateDTO.string(execResult); GraphStateDTOInteger retryCount GraphStateDTO.int32(retryCount); GraphStateDTOBoolean passed GraphStateDTO.bool(passed); }每個節(jié)點只關心它需要的字段LangGraph4j 會在節(jié)點完成后自動合并新狀態(tài)。retryCount 在這里很關鍵它控制整個工作流的終止條件避免模型陷入生成-執(zhí)行失敗-再生成的死循環(huán)。3.2 定義代碼生成工具Tool 的參數(shù)描述決定調用準確率ToolCalling 是大模型連接外部系統(tǒng)的通道。LangChain4j 的做法是用 Tool 注解標記一個 Java 方法模型根據(jù)方法名、描述和參數(shù)描述來決定什么時候調用、傳什么參數(shù)。很多人第一次寫工具方法時只寫方法名結果模型死活不調用原因就是描述信息太少模型不知道這個方法能干什么、參數(shù)應該填什么。Component public class CodeExecutionTools { Tool(執(zhí)行傳入的 Java 源碼返回編譯和運行的標準輸出如果編譯失敗則返回錯誤信息) public String runJavaCode( ToolParam(完整的 Java 源碼字符串必須包含 public class Main 和 main 方法) String sourceCode) { // 將 sourceCode 寫入臨時文件調用 javac 編譯java 執(zhí)行 // 捕獲 stdout 和 stderr超時時間設為 10 秒防止模型生成死循環(huán)代碼。 return output; } Tool(讀取項目內指定相對路徑的文本文件內容) public String readFile( ToolParam(相對項目根目錄的文件路徑) String filePath) { return FileUtil.readUtf8String(filePath); } }ToolParam 里的描述會作為參數(shù)說明拼進模型請求的 tools 定義里描述越具體模型傳參的準確率越高。我踩過的坑是參數(shù)描述太模糊模型把文件路徑傳成 test.java而實際要傳 src/test/java/Test.java。這個環(huán)節(jié)沒捷徑每個工具都要站在模型的角度寫清楚這個參數(shù)應該是怎樣的格式。3.3 組裝可執(zhí)行的工作流plan → 生成 → 執(zhí)行 → 評審有了狀態(tài)和工具就可以組裝工作流了。這個代碼生成 Agent 的流程是先讓模型讀需求做計劃再生成源碼然后調用工具執(zhí)行最后讓模型評審執(zhí)行結果。評審不通過且重試次數(shù)沒超限就帶著錯誤信息回到生成節(jié)點重新生成。Service public class CodeGenWorkflow { private final ChatModel chatModel; private final ToolExecutor toolExecutor; public CodeGenWorkflow(ChatModel chatModel, ToolExecutor toolExecutor) { this.chatModel chatModel; this.toolExecutor toolExecutor; } public StateGraphCodeGenState buildGraph() { StateGraphCodeGenState graph new StateGraph(CodeGenState.SPEC); graph.addNode(planner, this::planNode); graph.addNode(codegen, this::codeGenNode); graph.addNode(executor, this::executeNode); graph.addNode(reviewer, this::reviewNode); graph.setEntryPoint(planner); graph.addEdge(planner, codegen); graph.addConditionalEdge(executor, this::needFix, Map.of(true, codegen, false, reviewer)); graph.addEdge(reviewer, StateGraph.END); return graph; } private MapString, Object planNode(MapString, Object state) { String requirement (String) state.get(requirement); String prompt 你是資深后端架構師。根據(jù)需求輸出實現(xiàn)計劃要求 1. 列出需要創(chuàng)建的類及其職責 2. 標注每個類之間的依賴關系 3. 計劃不超過 200 字 需求%s .formatted(requirement); String plan chatModel.generate(prompt); return Map.of(plan, plan); } }condition 邊是 LangGraph4j 的核心needFix 方法返回 true 時回到 codegen 節(jié)點false 時進入 reviewer 節(jié)點。這樣模型生成錯了也不怕executor 節(jié)點拿到的編譯錯誤會被拼進新一輪生成的 Prompt形成錯誤反饋-重新生成的閉環(huán)。注意節(jié)點函數(shù)的入?yún)⒑头祷刂刀际?Map變量名要和狀態(tài)定義時的 key 保持一致。組裝工具調用要注意 langgraph4j 的機制和 LangChain4j 的 AiServices 不太一樣——工作流節(jié)點里需要你自己把 ChatModel 和工具的執(zhí)行結果串聯(lián)起來。常見的做法是復用 LangChain4j 的 AiServices把它綁定工具類后作為一個整體節(jié)點調用private MapString, Object codeGenNode(MapString, Object state) { CodeGenerator agent AiServices.builder(CodeGenerator.class) .chatModel(chatModel) .tools(new CodeExecutionTools()) .build(); String requirement (String) state.get(requirement); String plan (String) state.get(plan); String lastError state.get(execResult) null ? : (String) state.get(execResult); String code agent.generate(requirement, plan, lastError); return Map.of(sourceCode, code); }這里 AiServices 內部已經(jīng)把 ToolCalling 的消息循環(huán)封裝好了模型請求調用工具框架自動執(zhí)行工具方法再把結果回傳給模型直到模型給出最終答案。你只需要在界面接口里定義 generate 方法并標注 SystemMessage 和 UserMessage 模板即可這就是 LangChain4j 把 Java 接口變成 Agent 的標準方式。3.4 流式輸出與進度推送SSE 把過程反饋給前端工作流跑起來后如果整個操作要等 30 秒才返回前端的體驗是災難。我一般用 SSEServer-Sent Events把每個節(jié)點的執(zhí)行狀態(tài)實時推給前端。后端在節(jié)點入口往 Spring 的 SseEmitter 里寫一條進度事件前端在畫布對應節(jié)點上亮燈。LangGraph4j 本身沒有內置 SSE 支持但你可以用一個全局的 WorkflowProgressPublisher 組件節(jié)點里調用它發(fā)事件Controller 層暴露 SSE 接口訂閱。Go 的實現(xiàn)不復雜SseEmitter 存進 ConcurrentHashMap節(jié)點狀態(tài)變化時遍歷發(fā)送前端用 EventSource 接收。注意 SseEmitter 默認超時時間是 30 秒工作流超過這個時間要記得在初始化時顯式設置更長超時。4. Vue3 可視化編排從拖拽畫布到應用管理的一體化前端4.1 畫布的數(shù)據(jù)模型一個 JSON 就是一個工作流可視化編排的本質是所見即所得地編輯一個 JSON后端拿著這個 JSON 再把它翻譯成 LangGraph4j 的 StateGraph。所以前端畫布的數(shù)據(jù)模型一定要工作流對齊而不是只顧畫得好看。我維護的數(shù)據(jù)結構長這樣{ nodes: [ { id: n1, type: agent, label: 代碼生成, config: { model: qwen2.5-coder:32b, temperature: 0.2 } }, { id: n2, type: tool, label: 執(zhí)行器, config: { toolName: runJavaCode } }, { id: n3, type: condition, label: 評審通過, config: { condition: review.passed true } } ], edges: [ { source: n1, target: n2, label: normal }, { source: n2, target: n3, label: normal }, { source: n3, target: n1, label: false }, { source: n3, target: end, label: true } ], global: { maxRetry: 3, timeoutSeconds: 120 } }node 的 config 字段是給屬性面板用的每個節(jié)點的類型不同配置項也不同。agent 節(jié)點要選模型和調參tool 節(jié)點要選工具名和入?yún)?。后端解析這個 JSON 時按 type 分發(fā)到不同的節(jié)點工廠這樣就實現(xiàn)了一次編排、到處執(zhí)行。4.2 節(jié)點面板、連線和屬性表單的 Vue3 實現(xiàn)Vue3 實現(xiàn)拖拽畫布選 vue-flow 最省力它對 Vue3 Composition API 支持得很好節(jié)點拖拽、連線、縮放的交互開箱即用。核心組件結構是左側一個節(jié)點物料面板中間是畫布右側是選中節(jié)點的屬性表單三個區(qū)域的數(shù)據(jù)流都匯到一個 reactive 對象上script setup import { ref, reactive, computed } from vue import { VueFlow, useVueFlow } from vue-flow/core import vue-flow/core/dist/style.css import AgentNode from ./nodes/AgentNode.vue import ToolNode from ./nodes/ToolNode.vue const nodes ref([]) const edges ref([]) const selectedNode ref(null) // 左側物料面板的拖拽把節(jié)點類型寫進 dataTransfer // 畫布 drop 事件里根據(jù)類型創(chuàng)建節(jié)點對象。 function onDragStart(event, type) { event.dataTransfer.setData(application/flow-type, type) event.dataTransfer.effectAllowed move } function onDrop(event) { const type event.dataTransfer.getData(application/flow-type) const position project({ x: event.clientX, y: event.clientY }) nodes.value.push({ id: node-${Date.now()}, type, position, config: defaultConfig(type) }) } // 選中節(jié)點后它的 config 直接綁定到右側表單組件 // 表單的每一項都是動態(tài)渲染的節(jié)點類型決定渲染哪些字段。 const selectedConfig computed(() selectedNode.value?.config || {}) /script核心思路就兩條節(jié)點類型決定默認配置和屬性表單的渲染字段選中節(jié)點和屬性表單之間用 selectedNode 單例綁定。屬性表單這里有一個 Vue3 動態(tài)增刪表單項的經(jīng)典需求——agent 節(jié)點的環(huán)境變量是不定長的我直接用 v-for 渲染一組 key-value 輸入框添加和刪除按鈕只操作數(shù)組的 push 和 splice配 deep 監(jiān)聽同步到畫布節(jié)點的 configdiv v-for(env, index) in selectedConfig.envs :keyindex classenv-row input v-modelenv.key placeholder環(huán)境變量名 / input v-modelenv.value placeholder值 / el-button typedanger clickselectedConfig.envs.splice(index, 1)刪除/el-button /div el-button clickselectedConfig.envs.push({ key: , value: })添加環(huán)境變量/el-button這個表單項的增刪改查全在 reactive 對象上完成Vue3 的代理機制保證畫布節(jié)點同步刷新。整體畫布在工作中就是一個后臺管理系統(tǒng)里的復雜表單只是這個表單的結構不是人定的是用戶自己拖出來的。4.3 應用管理與一鍵部署的前后端銜接可視化編輯只是平臺的前半段后半段是應用管理和一鍵部署。后端需要提供應用維度的 CRUD 接口創(chuàng)建應用、保存畫布 JSON、發(fā)布版本、查看部署狀態(tài)。我習慣把保存和發(fā)布拆成兩個動作——保存只寫數(shù)據(jù)庫草稿發(fā)布才真正觸發(fā)構建和部署。這樣用戶頻繁調整畫布不會產(chǎn)生一堆垃圾部署記錄發(fā)布記錄表里每一行都可回滾。一鍵部署的后端實現(xiàn)是異步任務加日志流推送。收到發(fā)布請求后后端把應用 ID、畫布 JSON、模型配置打包成一個部署任務丟給線程池執(zhí)行。部署過程分四步生成后端工程骨架、寫入工作流配置、Maven 打包、Docker 構建并啟動。每一步的日志都通過 SSE 實時推給前端用戶在瀏覽器里能看到構建進度條一行一行滾動這是一鍵部署體驗的關鍵。PostMapping(/api/apps/{appId}/deploy) public SseEmitter deploy(PathVariable Long appId, RequestBody DeployRequest request) { SseEmitter emitter new SseEmitter(300_000L); deployService.submit(appId, request, emitter); return emitter; }SseEmitter 的超時時間我顯式設成了 300 秒因為首次構建要拉 Maven 依賴和 Docker 基礎鏡像慢的時候能跑到 3 分鐘以上。前端 EventSource 創(chuàng)建后要監(jiān)聽 readyState 變化部署完成后主動 close 連接避免無效連接占滿 Tomcat 線程。5. 從開發(fā)到上線的常見問題排查5 個高頻踩坑點5.1 SpringBoot 版本與 JDK 版本不匹配導致注解掃描失敗現(xiàn)象項目啟動后報 ClassNotFoundException: jakarta.servlet.http.HttpServlet或者 swagger 頁面打不開接口全 404。原因SpringBoot3 用的是 Jakarta EE 規(guī)范包名從 javax.* 改成了 jakarta.*。如果你的本機 JDK 是 8 或 11Maven 編譯時用了低版本 source/target生成的字節(jié)碼指向老的 javax 包運行時必然找不到類。還有一種情況是依賴里混入了 javax.servlet-api 的老傳遞依賴把包名污染了。解決JDK 鎖到 17 或 21在 pom 里顯式聲明 spring-boot-maven-plugin 的 jvmArguments 為 --add-opens java.base/java.langALL-UNNAMED防止反射告警。排除所有 javax.servlet 開頭的依賴改用 spring-boot-starter-web 統(tǒng)一管理。排查命令是 mvn dependency:tree看是否有老 servlet 傳遞進來。5.2 WebFlux 與 WebMVC 沖突SSE 流式輸出起不來的元兇現(xiàn)象后端加了 SSE 接口后項目啟動直接報 SpringApplicationApplicationContextException: Invalid web application: spring.main.web-application-typenone或者 SSE 接口永遠掛起不返回。原因LangChain4j 的流式響應在部分版本里默認依賴 WebFlux 的 Flux 類型引入 spring-boot-starter-webflux 后和原來的 spring-boot-starter-web 打架。Spring 容器檢測到兩個 WebApplicationFactory直接不知道用哪個只能報錯。解決確定自己用的是 Servlet 棧還是響應式棧。我用 Servlet 棧做 SSE就別引 webfluxLangChain4j 流式輸出用 StreamingChatModel 接口阻塞式訂閱 Flux 再轉 SseEmitter。如果非得混用就把 web-application-type 顯式設為 servlet并保證 webflux 的依賴 scope 是 provided 或完全不引入。這個坑排查起來很費時間啟動日志里看到 invalid web application 直接去查依賴樹別去改配置瞎試。5.3 反代緩沖讓流式輸出變成等半天一次性吐出來現(xiàn)象本地 flow 輸出一個字一個字蹦部署到服務器之后前端 EventSource 要等幾十秒才收到第一批內容。原因Nginx 默認開了 proxy_buffering會等后端響應全部寫完再一次性轉發(fā)給客戶端SSE 的 chunked 流式效果被徹底吞掉。這不是后端代碼的問題是網(wǎng)關層配置問題典型的上線才踩坑。解決在 Nginx 的 location 配置里加上 proxy_buffering off; 和 proxy_cache off;同時把 proxy_read_timeout 調到 300 秒以上。注意 SSE 用的是長連接心跳設置要同時照顧 Nginx 和瀏覽器兩側的超時。代碼里 SseEmitter 注釋里寫清楚必須配 Nginx 關緩沖防止部署的人不懂這個關聯(lián)關系。5.4 ToolCalling 工具參數(shù)缺失描述模型寧可拒絕也不調用現(xiàn)象日志里模型明確說需要調用工具但響應里的 tool_calls 是空的或者傳過來一個空的 JSON 參數(shù)業(yè)務側解析直接拋異常。原因大模型在不確定工具參數(shù)格式時會選擇不調用或傳入空值。而我早期寫的 ToolParam 只有參數(shù)名沒有描述模型不知道這個字符串應該填相對路徑還是絕對路徑。更隱蔽的是參數(shù)類型不匹配——工具方法聲明的是 Map模型傳過來的卻是 JSON 字符串。解決每個 ToolParam 都按格式 示例寫描述比如相對項目根目錄的文件路徑例如 src/main/java/Application.java。復雜參數(shù)不要用 Map定義成 POJO 配合 ToolParam 逐字段描述。另外要確認工具返回值轉成 String 后沒有截斷有些模型服務對 tool message 有長度限制超長返回會被丟棄表現(xiàn)為工具調用后模型沒有反應。5.5 Vue3 屬性繼承與表單校驗失效的連帶問題現(xiàn)象屬性面板里填的表單值保存后又變回原樣或者畫布的全屏按鈕在 Edge 瀏覽器里偶爾點不動鼠標點上去沒反應。原因這個現(xiàn)象和 Vue3 的組件屬性透傳機制有關。自定義組件如果根元素恰好是另一個組件外部傳入的 class、style、事件監(jiān)聽器會透傳到根組件上如果根組件內部也用 v-bind$attrs容易產(chǎn)生事件覆蓋。比較典型的是 Element Plus 的 el-form-item 在動態(tài)渲染時label 屬性被透傳走了導致校驗觸發(fā)條件丟失表單值不更新另一種情況是畫布全屏按鈕的外層容器把 click 事件捕獲了。解決在 Vue3 組件里顯式聲明 inheritAttrs: false并手動在需要的位置綁定 $attrs避免事件和樣式透傳到意外的 DOM 節(jié)點上。動態(tài)表單項的 prop 屬性要用 index 拼接區(qū)分不要都用同一個固定字符串否則校驗狀態(tài)互相覆蓋。Edge 里點不動按鈕先懷疑是否被某個透明遮罩層擋住給按鈕加 z-index 并確保外層組件有明確的定位上下文別裸奔。注意以上五條是高頻但不是全部AI 應用平臺涉及的新依賴多、版本節(jié)奏快上線前把它當體檢列表過一遍能省出至少一個周末的排錯時間。6. 進階多模型路由、鏈路追蹤與壓測驗證平臺能跑通以后下一個問題就是成本和質量。大模型 API 按 token 計費代碼生成場景一次調用動輒幾千 token全公司都用最強的 32B 模型扛不住。我一般會在網(wǎng)關層做模型路由分發(fā)而這正是多路召回思路的工程化落地——把用戶請求先做意圖分類簡單任務翻譯、格式化、解釋報錯直接落到一個輕量模型上復雜任務生成完整項目、多文件改造才轉發(fā)到強模型。public interface ModelRouter { String route(String intent, int estimatedInputTokens); } Component public class DefaultModelRouter implements ModelRouter { Override public String route(String intent, int estimatedInputTokens) { if (estimatedInputTokens 3000 || intent.startsWith(codegen:)) { return strong; } return fast; } }估 token 的辦法不精確但夠用中文字符按 1.5 倍估算代碼字符按 0.4 倍估算取整加余量。另外鏈路追蹤要趁早接工作流的每個節(jié)點執(zhí)行耗時、模型調用的 token 消耗、工具調用的成敗全都要落日志traceId 從請求進來就生成并貫穿 SSE 和異步任務。我用的是最樸素的方案——MDC put traceIdlogback 輸出到控制臺和文件排障時按 traceId grep 一次拿到全鏈路。微服務規(guī)模大了再上 SkyWalking 也不遲單機階段別過度設計。壓測驗證重點關注兩個指標工作流單次完成時間 P95 和部署任務的并發(fā)上限。前者決定用戶體驗后者決定平臺的穩(wěn)定性。用壓測工具模擬 50 個并發(fā)用戶同時觸發(fā)代碼生成工作流觀察數(shù)據(jù)庫連接池和線程池是否成為瓶頸。LangGraph4j 的節(jié)點執(zhí)行是阻塞式的但節(jié)點之間沒有共享狀態(tài)可以放心加 Async 把無依賴的節(jié)點并行化。我自己踩過的教訓是剛開始為圖省事把所有工具方法都加上 synchronized結果多路召回一上線就串行排隊P95 從 8 秒暴漲到 40 秒。后來改成工具內部用無狀態(tài)設計只在寫文件時用臨時文件隔離壓測直接達標。這個平臺的完整落地路徑是SpringBoot3 接模型能力LangGraph4j 編排復雜工作流ToolCalling 打通系統(tǒng)邊界Vue3 把這一切變成可視化操作。到了后期你會意識到平臺最大的價值不是某一個 AI 能力而是把散落在各種腳本里的 AI 調用沉淀成了可編排、可觀測、可回滾的標準化應用。希望這些思路和踩坑記錄能幫到你少走一段我走過的彎路。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
无码AV大香线蕉伊人| 精品国产AV色一区二区深夜久久| 五月天婷婷久久日| 色九月丁香婷婷蜜桃在线观看| 五月婷视频在线| 丁香六月婷婷| 亚洲婷婷久久综合| 99啪在线视频| 大香焦A∨| 超碰免费成人| 丁香五月婷婷基地| 五月亚洲| 欧美婷婷五月天综合| 九九青草热| 99国产精品久久久久久久久久久| 婷婷五月丁香五月| 婷婷精品在线| www.久久99热地址发布| 国产激情婷婷| 中文AV网| 色五月五月婷婷| 亚洲人人96@| 婷婷色五月天色| 人人爽网| 久久五月婷天天干| 热99.com婷婷| 大香蕉在线观看9| 久久久久久久久久久久久9| 色天堂在线| A久网| 色婷五月天| 五月婷婷草| 久久九久久| 思思热视频在线| www.97碰碰com| 五月婷亚洲精品| 久久伊人日日夜夜| 热99精品视频| 99热这里只有精品8| 天天干天天爽天天操| 五月婷婷中字在线| 久久机热这里只有| 99热99re6国产在线播放| 五月婷婷少妇之| 色婷婷五月天中文字幕| 国产精品噜噜在线视频| 99精品无码网站| 亚洲夜五月| 99精品自拍视频| 色玖玖爱| 亚洲色情一区二区三区四区| www.成人婷婷综合| 91ncm视频| 野战毛片三一3| 五月天激情综合网| 色播五月婷婷| 超碰av在| 超碰a女人的天堂| 婷婷久久精品| 草操AV在线| 国产日批视频免费播放| 天天综合永久| 婷婷激情六月视频| 欧美激情性做爰免费视频| 99热在线观看| 性色综合网| 国产伊人大香蕉| 香蕉中文在线| 婷婷久久午夜网| 综合激情网| 天天高潮夜夜爽| 99.N在线视频| 无码免费人妻A片AAA毛片西瓜| 婷色五月天| 成熟妇人A片免费看网站| 欧美成人AAA片一区国产精品| 四川女人毛多水多A片| AV成人在线网站| 九九中文色色| 欧日美女Va| www,婷婷五月天777me,com| 西瓜美女a片| 五月婷婷二月丁香| 天天做天天爱天天爽| 国产午夜精品一区二区三区四区| 婷婷五月天AV在线| 亚洲精| 996日日爱| 97丁香婷婷| 99色在线视频| 九色91视频| 99区视频| 五月丁香色| 亚洲蜜桃精久久久久久久久久久久| 玖玖婷婷五月天毛片| 91色九| 五月婷婷六月丁香激情综合网| 久热播这里只有精品| 涩婷婷五月天在线精品视频| 狠狠爱成人综合网| 成人天天爽| 99热只有精| 久9热| 天天色中文字幕女优AV| 色婷婷久久综合久色| 五月婷婷精品无在线| 婷婷久久五月| 久久大香蕉同僚| 欧美噜一噜| 日日夜夜干| 99ER热精品视频| 丁香玖玖视频大全| 婷婷五月花西瓜| 狠狠操狠狠爱| 日韩色五月| 操操操操操电影网| 欧美大片免费播放器| 91婷婷伊人牛牛| 五月丁香五月天现场视频| 久久艹99| 免费婷婷| 五月丁香色色网| 天堂二区| 99在线精品免费视频| av狠狠操| 五月激情婷婷图片基地| 色五月天综合网| Y11111111111少妇电影院| 婷婷丁香色五月天久久88| 成人丁香| 99九九视频| 五月激情婷婷女| 99热久久这里只有精品| 91精品熟女| 久久综合性| 毛片蕉地一二| 亚洲九九视频| 久热99热| 五月婷婷性爱| 99精品无码视频| 婷婷九月亚洲| 亚洲AV成人精品日韩在线播放| 综合网五月| 东北熟女视频99| www.五月天。com| 4399成人黄A片| 婷婷五月成人| 国产精品成人AV在线观看春天| 丁香 婷婷 激情 综合 五月| 99久久久久| 狠色色狠网| 玖玖精品视频| 亚洲激情五月婷婷日日| 91色综合久久| 99精品综合视频| 91人人爽人人操| 秋霞三及片| 五月丁香婷婷欧美色图视频五月丁香777电影 | 婷婷五月丁香基地| 同性gv国产精品一区二区| 99综合视频| 91精品婷婷国产综合久久| 欧美激情综合色综合啪啪五月| 综合九九久久| 99免费热视频在线| 久久99热 这里有精品| 五月婷婷综合在线| 五月丁香啪啪综合| 综合天天综合| 婷婷五月丁香性爱| 超碰成人电影| 婷婷色丁香五月| 亚洲九N| 综合性视频99| 亚洲成人网站在线| 成人视频网| 开心五月激情| 婷婷五月天首页激情| 五月天久久综合婷婷| 六月婷婷综合久久| 伊人综合网站| 熟女激情五月天 | 色香久久| www.狠狠狠.com| 99热爆在线| 26uuu国产激情视频| 91人人操人人看| 97操操操| 日日狠狠久久偷偷四色综合免费| 婷婷久久五月丁香| 色青青电影色五月| 婷婷亚洲综合| 五月丁香自拍| 色狠久| 久久精品63| 色婷婷成人做爰A片免费看网站 | 激情综合网五月激情| 97热久久五月婷婷| 欧美婷婷色| 色婷婷69| 十一月婷婷激情四射| 操人无码| 成人视频在线免费播放| 狠狠噪| 久久久精品AV| av中文网站| 亚洲av成人在线| 激情开心五月天| 激情综合六月| 丁香五月亭亭六月综合激情网| 丁香六月欧美| 伊久大香蕉| 美欧成人视频| 99热99热不卡| 国产色婷婷亚洲| 超碰成人AV| 精品人妻伦九区久久AAA片| 99热免费精品| 99在这里有精品| 91精品久久久久久综合五月天| 任我干视频在线观看| 99色亚洲| 啪啪91| 无码操B| 日批在线看| 夜夜 操无码| 五月丁香婷婷激情图片| 99热最新国内| 性爱网五月婷婷| 99精在线| 六月丁香久久| 精品久久99| www.97碰碰com| 亭亭五月色男人| 亚洲乱码成人| VA婷婷亚洲| 丁香五月天偷拍| 丁香 久久| 99天天操夜夜操| 少妇被下春药玩弄A片| 人人摸人人| 六月婷婷av| 99综合视频| 狠狠色噜噜色狠狠狠综合久久成人波| 影音先锋人妻出差| 天天插天天操| 色五月五月天色婷婷色五月| 男女免费视频999| 性色视频| 五月婷婷偷拍| 久久激情五月婷婷| 熟女人妻一区二区三区免费看| 久久丁香五月天| 婷婷色婷婷亚洲成人| 久热91精品| 色婷婷国产精品综合在线观看| 一起操 91N.com| 97超碰9久热婷婷热| 99ri6在线视频| 人五月天婷婷喷水| 九九综舍久久| 99自拍视频在线| 成人视频在线免费播放| 97超碰综合| 99在线精品观看99| 天天爱天天做天天爽| 乱精品一区字幕二区| 欧美色男人网站| 影音先锋日本三级资源| 欧美色色日韩| 天堂在线9| 991精品在线视频| 九九99热| 天天久久综合| 婷婷五月天综合AV| 亚洲精品无码一区二区| 久久婷婷电影| 丁香六月婷婷久久综合| 九九热这里只有国产精品| 第四色26uuu| 播五月丁香六月| 九九热视| 亚洲激情五月天| 高清无码入口| a级毛片一区二区免费视频| 免费日本aⅴ中文字幕| 狠狠色噜噜色狠狠狠综合色 | 五月婷婷六月天| 99久热在线精品| 淫荡家庭AV| 丁香五月婷婷亚洲综合精品在线| 婷婷丁香小说| 色色激情五月天| 婷婷色五月大香蕉在线| 五月激情啪啪啪| 五月婷婷六月爱| 色婷婷丁香香香蕉视频| 亚洲操操操| 激情玖玖sh| 色色色色色色色色色色色色色五月天| 天天激情综合| 五月婷婷导航| 无码AV免费精品一区二区三区| 亚洲成人综合网在线免费观看| 色婷婷激情| 丁香五月电影| 69天堂99| 色狠狠999综合网| www夜夜操wwwcon| 久久婷婷综合基地| 婷婷桃色网| 综激情网| 99色免费观看全部| 秋霞免费视频| 激情欧美婷婷| 丁香婷婷色| 成人av在线网| 久热这里只有精品3| 日韩av干| 99精品成人无码A片观看金桔| 久久182| 99精品在线| 六月丁香成人网| 97人人干人人操| 9久9久9久女女女九九九一九| 九玖视频这里只有精品| 激情婷婷丁香五月天| 欧美电影在线观看| 就99这里只有精品| 激情五月综合网| 久热91精品| 五月深爱激情网| 九月婷婷| 在线五月色播| 性爱综合网| 97香蕉久久超级碰碰高清版| 噜噜噜久久| 日韩精品在线观看9| 99 频99热国里只有精品| 国产性爱一级| 色吧婷婷| 丁香五月天天| 色五月成人| Av在线不卡一区| 小视频一区| 国产成人精品亚洲线观看| 大香蕉人妻| 97操碰在线视频| 99精品丰满| 久久久区区一久久久久久| 色婷婷狠狠| 久久网站免费亚洲| 欧亚中文A V| 婷婷五月激情欧美大胆视频| 亚洲 在线 性爱| 九九AV| 天天爽夜夜爽夜夜爽精品| 日韩啪| 色综合久久88色综合天天看| 91九色丨国产丨爆乳| 综合久久五月天| 五月婷婷影| 一区二区免费看| 九热精品| 婷婷五月丁香狠狠| 97自拍视频网| 婷婷五月天堂| 99热国产在| 亚洲精品又粗又大又爽A片| 丁香五月激情综合在线观看| 国产一级黄色影片,| 开心激情网在线| 中文字幕五月久久婷婷| 五月婷婷性爱| 亚洲性爱99在线| 五月开心播播网| 天天色综合综合| 午夜日韩久久久网站| 99只有精品| 色欲天天综合| 国产肥白大熟妇BBBB视频| 久久在线人妻| 五月丁香色婷婷色| 久久久婷婷| 99色爱| 天堂综合久| 九九aV| 天天成人综合| 人人叉久| 欧美私人家庭影院| 婷婷五月天电影区小说区| 色99热| 99热超碰| 人人草人人舔| 日本va欧美va精品发布视频| 成人一区在线观看| 色五月网址| 99r这里| 99热国产婷婷| 成人精品一区日本无码网| 国产一二三四五六七八视频| 超碰人妻在线| 亚洲殴洲精品Av在线| 激情99| bbwcuckold精品熟妇| 亚洲99热| 91久久久久久久久18| 天天透天天摸天天舔| 99人人精品| 中文字幕黄色片| 五月丁香六月婷婷综合| 五月天丁香六月综合| 色婷婷香蕉在线| 亚洲成人网站在线观看| www.五月瑟| 网色99| 字幕网AV中文字幕| 亚洲精品成人| 激情文学五月丁香六月婷婷 | 久久只有精| 丁香五月停停av| 九九热精品| 日日噜噜夜夜狠狠久久丁香五月| 69婷婷丁香午夜| 九艹在线| 2013AV天堂| 亚洲亚洲人成综合网络| 激情五月婷婷| 婷婷五月天激情网| 亚洲午夜一区二区| 亚洲视色| 六月色婷婷| 久久综合五月天| 日日操日日干| 在线va网站| 五夜丁香| 五月天婷婷亚洲| 欧美电影在线观看| 伊人色综合网| 色噜噜狠狠色综无码久久合欧美| 欧美三级欧美一级| 九九热re99re6在线精品| 婷婷色丁香六月| 夜夜天天久久婷婷| 激情五月婷婷网在线观看| 一起草Av| 综合啪啪| 97碰免费视频在线| 久久3p| 久久99精品久久久久久三级| 久久五月情| 色吊丝99| 亭亭丁香97| 91狼友视频在线观看| 三十熟女| 丁香五月婷婷啪啪视频| 婷婷综合中文字幕| 操逼亚洲天堂| 激情网色五月| 久久婷婷桃花五月天| 99精品综合| 成人国产网站在线免费看| 在线99热| 日韩ww| 熟女人妻视频| 三日本无码| 97人人妻人人艹| 欧美日韩色色| 久久久久久久五月| 先锋资源91| 啪啪 综合网| 99激情网| www色婷婷久久综合久色| 亚洲成人AV在线观看| 婷婷激情人妻| 99久久久| 逼特逼在线免费播放| 综合福利网| 日韩AV在线免费| 激情五月天婷婷色色色色色色色色色色色| 日韩黄色网络| WWW五月婷婷| 久久黄色网扯| http://www.sd-xiangsu.com/| 五月天综合影院| 色狠狠色噜噜AV天堂五区消防| 五月丁香六月婷婷视频| 國語久久婷| 99热色精品| 欧美丰满熟妇BBB久久久| 九九婷婷五月天| 久久婷婷电影| 人妻久久久久久久久妻久久久久久久久 | 97婷婷丁香五月综合| 九九青草热| 九九精品视频免费在线| 九九热在线视频,| 婷婷五月天黄色小说| 色综合伊人网| 丁香五月天视频| 色情终和网| 曰本aaaaaa丈片| 五月丁香无码| 日韩六十路91性交电影| 99久久这里只有精品| 丁香五月婷婷亚洲综合精品| 亚洲愉拍99热成人精品| 久久婷婷网站| 狠狠五月天婷婷激情网。| 舔色婷婷| 精品一二三区久久AAA片| 九色综合网| 人人妻人人澡| 涩涩涩.com| 五月天操逼网| 六月丁香啪啪| 午夜色丁香| 人人爱国产| 丁香五月花影院| 五月婷婷色啪| 五月婷AV| 99色在线视频| 五月婷婷丁香六月| 99re在线这里只有精品视频首页| 色婷五月| 久久九九九九| 日韩无码人妻一区二区三区综合 | 夜夜操天天干| 丁香激情五月少妇| 丁香五月天五码婷婷| 婷婷五月天无码| 91狠狠综合久久久| 亚洲区视频| www.ppypp| 91欧美| 欧美婷婷丁香五月社区| 色五月丁香五月天| 婷婷丁香成人色综合| 99国产er热视频| 激情性爱五月| 婷婷终合色图| www.henhengan| 被强行糟蹋的女人A片| 久草A片| 伊人玖玖婷婷| 欧美伊人9| 亭亭五月天成人| www.五月天| 久久久人妻人伦| 色偷偷色婷婷| 婷婷激情视频| 五月婷婷影| 99热 在线播放| 五月婷婷网五月在线| 伊人在线视频| 婷婷中文字幕版| 色婷婷六月天| 韩日在线熟女| 色综合久| 日本在线免费中文com.| 亚洲综合在线视频| 亚洲综合新99视频| 国产毛片精品一区二区色欲黄A片| 国产成人+综合亚洲+天堂| WWW.桔色成人.COM| 色哟哟www| 狠狠爱五月婷婷| 日韩一级网站| 免费精品99| www五月天com| 99久久精品国产色欲| 久久伦乱| 狠狠干,狠狠操| 色五月开心婷婷| 九九色逼| 狠狠五月激情婷婷直播片| se色婷婷视频| 噜噜色婷婷| 淫荡A片| 丁香婷婷六月| 91Chinese在线| 天天插天天插天天插天天插| 婷婷五月天播| 日韩人妻AV在线| 99色在线观看视频| 青996青| 高清不卡一区| 色爱综合网| 六月婷婷六月天天在线免费| 开心色色五月天综合| 99久久久| www.久久久久久久| 五月开心网| 色性五月天| 丁香六月激情毛片| jiZZdr| 99热综合在线观看| 九九美女视频| 成人丁香五月| 99综合激情久久精品久久| 免费在线a| 天天干狠狠| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 啪啪啪综合网| 老师高潮流白浆喷水的A片| 99视频在线精品| 丁香五月婷婷啪| 日韩成人无码| www.99热精品| 天天摸,天天爽| 久草婷妨| 激情五月天影院| 丁香五月丁香伊人| 九九99九九99九九99视频网| AA片在线观看视频在线播放| 久久五月婷婷丁香| 午夜精品777| 丁香五月开心亚洲| 日韩色色色色| 五月婷婷中文字幕| 婷婷五月av| 26uuu四色| 久久婷婷亚洲无码一起| 无码激情AAAAA片-区区| 97人人搞| www.激情五月天| 99久久久久| #NAME?| 大香蕉啪啪网| www.91九色| www久热com| 丁香婷婷六月激情文学 | 国产亚洲色婷婷久久99精品9j| 天天干天天干天天干天天干天天干| 色婷婷狠狠干芒果TV| 五月色视频| 五月丁香综合影院| 啪啪日本欧美| 五月天开心网| 丁香五月婷婷啪啪| 亚洲婷婷五月天| 婷婷五月天色综合| 综合激情网| 色色色99| 四虎成人精品永久免费AV九九| av婷婷丁香| 国产伦亲子伦亲子视频观看| 色色婷婷五月天| 五月婷婷六月色| 骚货艹网站视频| 五月婷婷天天色| 久9热在线视频| 黄色一极大片| 欧美婷婷精品激| 91人妻人人操| 7777国产盗摄农村女人| 午夜无码熟熟妇丰满人妻 | 91色综合| 久久女人天堂| 婷婷久久久久| 欧美在线97| 五月狠狠| w婷婷五月婷婷w| 色久99| AV网在线观看| 国产第99页| 色综合播放| 欧美人人草草| 丁香熟女乱| 9久久久| 综合网网欲色| 最新日韩久热免费视频看看| 69精品人人人人人人| 色色五月综合| 日本人人干| 狠狠爱五月婷婷| 三级毛片7979| 伊人激情| 久久99热这里| 精品色色网| 午夜激情五月| 亚洲色婷婷五月天| 五月丁香999| 99视频在线| 九月丁香| 五月婷婷六月激情| Aα在线免费观看| 丁香六月婷婷社区| 成人婷99最新| 99精品色色| 久久99久久99精品免视看婷婷| 亚洲色情激情丁香五月| 亚洲激情综合免费| 91九色熟女| 五月婷婷六月丁香在线| 国产麻豆视频| 视频1区2区| 色五月婷婷av| 婷婷五月天无码视频| 天天色域综合网| 热99在线精品| 激情五月天婷婷| 欧美综合激情| 久久丝袜婷婷| 婷婷丁香午夜综合影视| 五月激情综合美女久久| se99视频| 婷婷丁香五月天激情四射| 99久免费视频| 五月丁香美女视频| 五月天黄色激情小说| 婷婷五月天情色| 六月婷婷五月丁香| 69色婷婷| 91岛国片| www久视频com| 婷婷五月天福利| 日本色超碰| 99热久| 婷婷激情丁五月| 欧美精品99| 亚洲午夜成人av电影网| WWW.久久久久久久| 国内精品玖玖| 99国产在线| 欧美三级韩国三级日本三斤| 久久丁香| 无码色色色| 五月婷婷色| 激情av在线| 79色色免费| 久久婷婷亚洲| 九九热99精品| 99性爱无码| 97碰啪啪| 国产黄色av| 激情伊人六| 9久热| 丁香五月九九| 色色色欧美色色| 久久99热这里只有精品| 狠狠情色| 婷婷夜夜操| 日本欧美成人片AAAA| 97干视频| 舔色婷婷| 伊人在线大香蕉网| 思思热性操| 天天天天天天操| 中文字幕激情综合| 免费观看的婷婷五月视频在线| 99热这里有精品| 91操人视频| 五月丁香激情四射| 九九九九九九毛片| 成年人看Va免费视频| 男人先锋久久| 五月婷婷视频啪啪美女| www.五月丁香| 色五月婷婷中文字幕在线观看| 亚洲色色色| 成人网站高清无码| 婷婷五月天开心激情网| 影音 五月 婷婷 久久| 五月丁香综合网色欲| 亚州色色色| 啪啪操超碰| 99色在线视频| 东京热免费视频网站| 天天做天天爱天天要| 丁香综合日产精品久久| 另类小说五月天综合网| 97热91| 狠狠操天天日| 色五月综合激情网| 婷婷综合在线观看视频| 国产性爱在线| 五月婷婷欧美激情| 国产激情一区| 综合五月网| 婷婷五月无码| 五月天婷婷綜合院| 久久免费9| 99久久www| 亚洲精品亚洲人成人网| 日本三级大片| 思思热闹这里只有精品| 国产人妻人伦精品一区二区| 国产在线6| 三级片AAA久久久AAA久久久AAA| 婷婷五月天99| 夜色.cnm| 91啪啪网| 性韩日色婷婷五月天激情啪啪XXX| 婷婷五月天久久久| 激情网 五月天| 伊人大综合| 色五月丁香婷婷| www.日韩国产| 六月丁丁香| 五月色丁香国产在线视频| 日韩艹比| 五月丁香综合激情| 综合AV在线| 激情婷婷| 五月丁香六月婷婷在线| 亚洲综合草草| 婷婷激情五月综合| 91wwmm导航| 99在线视频精品| 色五月婷婷久久| 九九色视频| 九九热大香蕉| 欧美三级A做爰在线观看| 性日本精品| 丁香婷婷六月天| 国产亚洲精品久久久久久豆腐| www,五月丁,com| 亚洲xx网| 免费做A爰片77777| 五月天色丁香| 久久黄A片| 精品热青草| www.五月婷婷久久.com| 欧美五月丁香在线观看| 五月丁香综合中文| 中文幕无线码中文字蜜桃| 五月丁香亚洲婷婷| 成人av免费观看| 国产精品男人AV不卡| 色综合激情| 五月天激情.com| 色播婷婷大香蕉| 九月丁香婷婷基地| 九九久久99| 人人爱人人添| Av性爱网站| 久久99精品久久久久久青青AR| 91精品久久久久久77777| 情久久综合五月天| 五月天婷婷自拍图片在线观看| 91美女艹逼网站| 欧美性爱五月天| 夜夜干天天操| 色婷婷六月综合| 92久久| 婷婷WWW久久| 婷婷五月成人| 久久 婷婷 五月天| 涩五月色婷婷| 五月婷婷色播网| 九九色图| 色色色五月婷| 9久热在线视频| 高清无码网址| 激情五月天在线视频| 夜夜躁爽日日| 中文字幕性爱丰满| 色色色777| 九九99九九99| 3p久久| 91熟妇大香蕉| 熟惀91九色在线| 丁香婷婷啪啪| 狠狠色狠狠| 丁香五月婷婷视频| 色婷视频| 极品五月天| 激情WWW| 激情com| 亚洲成人免费在线| 爆乳熟妇一区二区三区爆乳| 国产美女主播vip| 久热精品免费视频4| 全部老头和老太XXXXX| 五月丁香成人网| 五月丁香亭亭操逼| 国产成人AV在线播放| 美女天天爽| 激情综合激情五月一起草| 五月久久亚洲| 五月天激情中文字幕| 亚洲综合网激情五月天| 色黑鬼导航| 婷婷五月综合婷婷| 丁香婷婷精品视频| 99热这里在线精品| 99惹在线精品免费观看| 色色综合成人网| WWW,五月天| 九九热这里只有精品556| 天天久久人人| 五月婷婷丁香成人网| 丁香五月天婷婷在线视频| 九九综合伊人| 丁香五月天激情网址| 婷婷偷拍网| bbwcuckold精品熟妇| 91艹人| 丁香五月天精品| 五月综合六月丁| 激情色情五月天| 五月开心深深爱激情综合| 2025年最新亚洲在线欧美 | 色五月婷激情| 激情五月丁香六月综合AVXXXX| 日日夜夜爽| 色99在线| 伊人干综合| 久久婷婷亚洲| 婷婷99视频在线| 国产性爱大片久久| 欧美色碰| 久久新地址| 婷婷伊人无码| 操一操| 中文AV网| 亚洲第一第二网站| 青青草免费公开视频| 91色性感五月婷婷丁香| 六月丁香天堂| 五月天激情四射| 天天成人综合| 五月婷婷六月综合| 91九色熟女| 婷婷激情五月| 五月婷无码| 91久久精品无码一区二区三区| 中文字幕永久免费| 狠狠狠人妻| 色婷婷五月综合| 九九这里都是精品| 婷婷五月综合国产精品| 欧美天天搞| 久久五月天婷婷视频| 一区二区三区四区无码| 播五月开心婷婷欧美综合| 伊人激情影院| 久草视频大香蕉99| 亚洲五月婷| 99热只有这里才是精品| 91色噜噜狠狠狠狠色综合| 国产毛片精品一区二区色欲黄A片| 久草丁香婷婷1024| 97香蕉久久超级碰碰高清版| 丁香五月骚喷水视频| 五月婷婷视频在线观看| 九色PORNY9l原创自拍| 丁香花五月天婷婷成人社区| 99热国内精品| 婷婷五月天成人综合网| 日日噜噜夜夜狠狠久久丁香六月| 超碰在线日夜| 高清不卡一区| 国产精品视频久久99| 伊人久久婷婷| 欧美人人草草| 亚洲精品五十一区| 99热草草| 亚洲精品va| 五月天六月色| 亚洲成人AV高清字幕| 99九九综合久久九九| 激情小说之五月| 综合网五月| 婷婷玖玖丁香| 亚洲色欲AAAAAA| 99在线精品观看99| 四川操逼站| 色 五月婷婷基地| 草草视频91| 伊人婷婷五月天av| 婷婷五月六月丁香综合| 婷婷五月色播| 综合久久影院| 色亚洲激情| 五月激情丁香啪啪| 欧日美女Va| 九九色影院| 综合色色综合| 亚洲激情综合免费| 婷婷色五月综合| 人妻久久久久久久久妻久久久久久久久| 五月天婷婷社区| 五月丁香婷婷伊人日韩| 婷婷六月网| 五月婷婷深深爱| 91vip在线观看| 9九色首页| 成人网站高清无码| 丁香六月成人| 色情网综合| 人人人操B超碰| 香蕉久久国产AV一区二区| 五月丁香综合啪啪啪啪啪| 亚洲欧洲国产精品| 一起肏在线视频| 久久六月天| 91女人18毛片水多国产| 亚洲综合色五月| 日本人妻伦在线中文字幕| 婷婷色五月激情| 九九热精品视频在线观看| WWW.99热| 99欧美| 天天爽人人综合免费7799| 99狠狠色| 色九月婷婷综合| 激情另类综合| 九九99九九99偷拍视频免费看| 婷婷激情在线| 久久婷婷综合基地| 在线播放中文字幕| 操操操操操操婷婷五月天| 国产一级片| 国产亚洲99| 操一区| 色天天综合色| 国产婷伊人| 深爱五月婷| 久久婷婷东京热大香樵| 亚洲va综合va国产va中文| 97碰碰在线观看视频| 91婷婷丁香五月| 人妻AV在线| 色播综合| 六月婷婷网站| 婷婷五月综合免费在线| 97色色网| 五月婷婷综合激情| 99在线精品免费视频| 人人干Av| 91pornav在线| 成人国产综合| 色婷婷成人丁香| 曰韩五月丁香色婷婷无码| 色婷五月天激情| 五月天天堂久久| 激情小说婷婷| 色了色综合| 99热99在线精品| 亚洲另类电影| 综合狠狠五月婷婷| 婷五月天| 久月婷婷| 性爱电影科技贸易有限公司| 99热色综合| 丁香五月日韩| 亚洲熟妇AV综合网五月丁香伊人 | 丁香六月综合| 色五月婷婷久久大| www热久久yy9| 久99热| 99视频只有这里精品| 亚洲在线资源| 免费无码毛片一区二区A片| 六月婷婷在线| 五月花婷婷在线精品视频| 天天日色情| 五月婷色色| 国产高清RV综合aVa| 国产色网站| BBWCUCKOLD精品熟妇| 丁香婷婷色五月激情综合| 日韩欧美五月丁综合| 国产av第一专区| 久久永久视频| 亚洲精品五月| 久久综合干| 综合色七七| 色婷婷中文在线| 亚洲欧洲中文日韩久久AV乱码| 99爱在线精品视频免费观看| 久热无码| 日韩情色在线观看| 五月丁香激情综合| 五月天天天天天天天天天天天天天天天婷婷婷| 极品色丁香| 开心五月婷婷综合在线精品素人| 激情视频网址| 色色五月天婷婷丁香| www。五月天。com| 丁香六月啪| 九一牛视频探花| 黑人糟蹋人妻HD中文字幕| 婷婷五月天综合AV| 米奇影视五月天| 热九九精品| 日本99视频精品免费播放| 人妻熟女一区二区AV| 超碰在线人人| 丁香婷婷噜噜| 婷婷丁香五月噜噜噜| 操碰97| 日韩在线观看亚洲| 亚洲AV成人一区二区在线观看| 欧美激情综合色综合啪啪五月| 99这里热| 五月天综合婷婷| 亚洲无码成人性爰网| 九九热这里只有精品556| 4438成人电影| 亚洲AV电影av| 天天狠狠综合精区| 久久久久婷婷| 91人妻PORNY九色大屁股| 九九热免费视频| 这里只有精品视频99| 色婷婷丁香特级性爱视频| 这里只有精品日韩| 97碰久久| 激情久久久久久久久久| 大香蕉伊然在亚洲90| 国产99久| 成人国产欧美大片一区| 婷婷五月天av| 特级西西4444www无码| 色婷婷激情| 丁香五月婷婷大香蕉| 播五月,色五月,开心五月播放器| 激情小说 五月天| 五月婷婷激情色情网| 电影蜘蛛女| 久久99热免费| 日本a片网址| 六月婷婷深深爱| 2015好吊操| 丁香无月在线观看| 婷婷99狠狠躁天天躁| 久久综合99| 激情综合5| 久久这里这里有精品免费视频| 五月天久久久| 五月五婷婷网| 欧美va精品va老师va| 狠狠舔| 综合欧美五月婷婷| 99色色热| 婷婷国产日本欧美| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 久久丝袜婷婷| 91爱操| 婷婷五月69| 玖玖伦理电影| 99热网站在线观看| 五月丁香五月丁香| 久久香蕉网| 99这里只有免费的小视频在线观看| 台湾综合丁香五月蜜桃| 五月婷婷激情四季| 开心五月婷婷激情网| 丁香五月开心婷婷| 色偷偷色婷婷| 日韩欧美成人片| www.超碰在线| 狠狠穞A片一區二區三區| 99无码| 神马久久五月天| 色色五月天婷婷丁香| 色综合激情| 99成人网站| 开心五月深爱激情| 免费看成人747474九号视频在线观看| 91视频一起草| 色婷婷五月综合| 在线看片h站| 牛牛色av| 色狠狠综合| 五月激情视频网| 久久婷婷六月综合| 先锋资源91| 成年人夜夜喷水| 久久99免费视屏| 婷婷丁香五月精品| 狠狠色综合网站久久久久| 国产综合婷婷| 丁香六月婷婷综合| 一级视频网址| 五月综合丁香婷婷| xx综合网| 人人草人人舔| 婷婷亚洲天堂| 毛片蕉地一二| 五月丁香激情片| 99re视频精品| 婷婷色网| 思思干精品| 久久五月天婷婷| 蜜臀嫩草| 青青草激情网| 操逼视频网址| 五月丁香六月激情综合网| www.开心激情| 人妻操逼视频| www.色色com| 影音先锋女人av鲁色资源网小说免费| 伊人久久五月天| 日本片日本片祼观看网站在线看中文版网页在线看 | 亚洲成人网站在线播放| 婷婷五月天 偷拍| 久久久天天啊| 91av传媒高清在线视频网| 激情婷婷五月天| 久香草视频在线观看| 久久香蕉丁香| 97色吧| 婷婷色在线视频| 色婷激情网| 在线中文字幕视频| 丁香五月婷婷综合激情哟哟哟| 99爱视频精品| 26uuu成人网| A片试看50分钟做受视频| 色婷婷久久综合久色综| 久久婷婷五月综合啪| 成人片在线播放| www.五月天色色.com| 都市激情小说婷婷| 色色五月婷婷| 久久久久久激情| 五月丁香六月婷婷国产视频| 蜜臀AV在线观看| 丁香六月婷婷综合激情欧美| 久机视频这只有精品| 精品国产一区二区三区四区阿崩| 伊人久久大香网| 96丁香六月婷婷蜜桃综合久久| 超碰在线50| 思思热99er在线视频| 99无码超碰| 亚洲人妻电影| 五月激情六月宗合| 超碰在线免费观看日韩| 二人电影免费版在线观看| 99欧美| 欧日韩成人| 丁香 久久| 色婷婷五月天无码视频| 五月丁香六月花| 午夜无码熟熟妇丰满人妻| 日本色噜| 亚洲激情另类| 超碰人人在线| 综合啪啪| 婷婷九月综合| 黄色一级影片| 4399在线观看免费高清黄色视频| 久久人妻视步| 国内9l视频自拍老熟女九色| 亚洲精品五月| 成人做爰A片免费看网站找不到了 噼里啪啦在线观看免费完整版视频 | 丁香六月婷婷综合激情欧美| 影音先锋91资源站| 激情五月婷婷丁香| 国产亚洲AV人片在线| WWW.夜夜| 激情五月天天| 五月丁香AV在线| 丁香五月停停av| 亚洲欧美999| 日韩无码91| 色色色在线观看| YJLZZJLZZ亚洲乱熟无码| 99热这里只有精品22| 色五月天天在线观看资源站| 天天干一干|