免费国产精品自在自线-91精品国产色综合久久久浪潮-99热久久免费频精品-国产精品国模在线观看-久久亚洲国产精品成人?V秋霞-久久国产一级A片免费播放-亚洲国产欧洲综合97久久-久久国产白嫩美女呻吟高潮

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
返回資訊列表
99热销国产这里有精品| 九九激情视频| 婷婷丁香五月在线播放| 中文无码婷婷| 激情综合文学| 色色色热| 思思热这里只有精品| 超级碰碰碰碰视频| 丁香婷婷AV| 26uuu精品国产| 97人人操人人| 六月丁香AV| 99爱爱网| 激情网婷婷婷| 婷丁五月| 99热最新| av成人在线播放| 天干夜夜操| 丁香五月婷婷激情中文| 天天舔夜夜操www com| 婷婷视频在线碰| 天天操无码| 九九热这里有精品23| www亚洲无码| 丁香五月天啪啪| 六月婷婷网站| 欧美激情xxxXX| 国产人人操| 日韩成人电影AV| 五月天婷婷影院影院| 婷婷五月中文字幕| 久久婷婷的综合色丁香五月| 99热超碰人| 九九色影视| 丁香五月天综合网| 天天日,夜夜爽| 久热69| 欧美成人AAA片一区国产精品| 色在线99| 26.uuu丁香五月婷婷| 小视频一区| 国产99久久久| 超碰在线国产| 中文字幕成人| 99er日韩| 五月丁香日本在线视频观看| 色色网站免费在线视频| 天天人人综合| 99re66热这里只有精品| 亭亭玉立国色天香| 日韩五月婷婷| 桃色伊人在线| 99热这里只有精品69| 六月丁香婷婷综合色播| 五月六月丁香婷婷在线观看| 五月综合婷婷开心网| 色婷婷综合网站| 伊人碰碰婷婷| 五月婷婷六月丁香五月| 激情婷婷五月| 思思热在线| 噜噜色婷婷| 色色色色网色色网色色| 五月丁香六月婷婷无码| 亚洲成人中心| 伊人婷婷五月| 丁香综合伊人| 五月婷婷色情| 激情五月天www| 另类小说婷婷色| 79精品在线视频| 精a品a视a频| 97碰啪啪| 丁香五月1页| 激情九月天天天天婷婷| 丁香 亚洲 久久| 开心五月婷婷综合在线精品素人| 中美日韩成人在线| 伊人网碰碰| 国产性爱一级| 色综天天综合| 综合狠久久| 婷婷大香蕉| 国产精产国品一二三在观看 | 99热思思| 久草婷婷网 | 丁香五月婷中字在线| 国产精品第一国产精品| 禁片二区| 久久久999精品| 精品久热| 色5月婷婷| 国产精品成人av在线观看春天| 日日日影院| 婷婷五月天男人影院色色网| Av九九| 色综合五月| 国产国产乱老熟女视频网站97| 国产午夜精品AV一区二区麻豆| 国产精品A成V人在线播放| 99原创自拍视频在线观看| 屁股翘好撅高迎合跪趴| 色色色五月婷| 天天干天天干天天干天天干天天| 一起草无码| 79精品视频在线观看,| 欧美久热| 91日日日| 色五月天激情| 久久婷婷五月| 色日本综合| 狠狠干综合| 五月激情婷婷色| 五月天婷婷在线观看| 99热精品观看| 亚洲色图五月丁香五月婷婷| 久久99热这里只有| 五月婷婷五月天| 婷香五月激情视频| 日本久久99久久| 亚州操人在线视频| AV成人在线播放| 色色色综合视频| 五月丁香六月婷婷操操操| 99久久6| 色五月天在线观看| 婷婷五月大香蕉| 丁香色五月 97干| 91视屏在线观看com.wwwvv| jiqingliuyuetian| 伊人99久久| 丁香五月,开心五月,成人婷婷 | 五月婷婷自拍视频| 九九成人| 综合激情伊人影视在线| 激情噜噜噜| 激情第四色| 蜜乳人妻一区二区三区| 婷婷丁香色无五月| 色婷婷色综合久久精品V| 国产综合视频婷婷| 天天肏高清在线| 欧美日韩二区在线| 深爱五月天婷综合| 91五月天| 婷婷五月天在线观看av| 欧美日韩aaa| 五月婷婷色色网址| 免费视频99| 色色五月婷婷网| 噜综合| 色婷婷天堂| 综合久久狠狠| 久久久五月婷婷| www.夜夜操| 国内久久婷婷| 桔色成人官方网站| 双性美人被调教到喷水A片| 97香蕉久久超级碰碰高清版| 99re在线视频| 日韩性视频| 人人操AV| 99热免费精品| 99热在线精品观看| 人人人操Av| 色五月天丁香婷婷| 大香蕉久| 丁香六月婷婷久久综合| 五月激情婷婷六月丁香| 九九色插| 色五月激情网| 色五月婷婷色| 国产精品人人做人人爽人人添 | 婷婷综合网| 思思热久久艹| 裸体做A爰片毛片A片免费| 婷婷五月天在线看| 粉嫩AV久久一区二区三区| 五月天激情小说婷婷| 五月天色图| 亚洲中文av| 久热人妻| 亚洲在线激情婷婷五月| 超碰人人在线观看| 九九热99免费视频| 天天色一道本综合婷婷| 色婷插| 亚洲第一色区| 国产成人av在线播放| 色婷婷婷婷| 亚洲激情淫网| 婷婷色基地在线看| 九九热最新| site:esunnet.com| 九九中文字幕九| 婷婷五月香蕉| 日韩成人五月天| 国产精品人人做人人爽人人添| 五月婷在线色视频| 玖玖婷婷综合| 老美AA片| 综合色五月| 五月天无码| 国产AV国片偷人妻麻豆| 丁香五月在线观看| 伦乱美欧| 日本久草福利| 国产精品美女久久久久AV超清| 天插天啪天啪天啪| AV九九| 中文字幕无码AV| 日日夜夜狠狠操| 99综合自拍| 国产精品成人在线| 26uuu欧美| 久久狠狠干| 99惹| 日韩在线视频中文字幕| 精品九九九久| 激情五月婷婷| 91九色丨国产丨爆乳| 天天狠狠插| 色吧99| 色综合激情| 色射婷婷五月天| 大香蕉五月| 九九久久99| 深爱五月网| 99热欧美| 国产精品丝| 日本乱子人伦在线视频| 欧美99热| 久久婷婷五月| av色婷婷| 伊人网碰碰| 操日本人妻视频| 色人久夂| 六月婷婷网| 大伊香蕉精品视频在线| 六月丁丁香| 国熟女视频| 五月天激情日色在线| 青青草激情网| 五月婷婷五月天| www.sd-xiangsu.cpm| 六月婷基地| 影音先锋五月婷婷| www激情网| 五月丁香激情片| 丁香五月人妻| WWW·色色色·COM| 日本久草福利| 天天综合五月天| 夜色热久| 色婷婷亚洲综合av| 日本nghangse中文字幕| 99色在线观看视频者| 婷婷香蕉| 99∨VTV| 精品久久久人妻| 婷婷激情五月色综合| 五月天欧美 另类小说| WWW.99视频| 国产亚洲99久久精品熟女| 国产午夜伦鲁鲁| 综合久| 色五月激情婷婷| 色五月婷婷老师| 亚洲欧美国产高清vA在线播放| 色色综合日韩| 欧美性爱5月天天天看| 欧美狠狠一在草| 久久婷婷亚洲| 狠狠88综合久久久久噜噜噜| 亚洲激情视频网| 五月天六月天| 伊综合蕉| 久久香视频| 99在线视频观看| 久久婷婷七月丁香| 亚州色综合| 人人操人| 狠狠久久婷五月| 996黄色片| 97人妻碰碰中文无码久热丝袜| 啪啪啪大香蕉| 欧美性猛交XXXX乱大交极品| 丁香五月婷婷综合激情哟哟哟| 91色五月在线观看| av激情在线| 久久99精品日本| caop在线视频| 天天插轮理| 99热精品一区| 丁香婷婷六月男男| 激情五月天婷婷丁香| 大香蕉520| 欧美丰满熟妇BBB久久久| 丰满女老板BD高清A片| AV中文网| 久9热视频在线观看| AV在线大香蕉| 婷婷五月免费在线| 九九热精品视频在线观看| 激情久久肏屄视频| 亚洲人妻一区二区| 色五月色图| 六月丁香激情网| 97干在线| 色天堂97| 天天插天天干天天舔| 五月丁香六月婷婷亚洲综合| 婷婷伊人| 夜夜爱爱亚洲| 熟女乱论网| 色丁香久久久| 天天干 夜夜爽| 精品无码久久久久久久久| 玖玖玖婷婷婷| 五月 丁香 欧美| 久久99热这里只有精品| 国产SUV精品一区二区6| 91操熟女| 久久婷婷五月| 国产黄大片在线观看画质优化| 极品少妇婷婷五月| 欧美久久五月婷婷| 欧美日韩123| 五月婷婷激情网| 色婷综合| renre人人操国产超碰在线| 婷婷五月天无码| 国产成人网站在线观看| 第五婷婷伊人丁香色| 五月天激情美女久久| 99欧美三级视频| 如何安全看伊人婷婷| 激情综合五月色丁香婷婷 | 丁香五月色欲| 亚洲色网络| 99热只有| 婷婷五月激情五月丁香五月| 色噜噜婷婷| 婷婷五月激情中文字幕| 91成人看片| 99爱免费视频在线观看| 国产成人精品一区二三区熟女在线| 婷婷色中文| 天天操夜夜肏| 中文字幕免费高清电视剧| 婷婷五月电影| 五月综合丁香婷婷| 9九色首页| 欧美色色色| 五月天啪啪| 久久久27操| 久久这里有精品视频在线免费观看| 色色色99| 91蜜桃婷婷狠狠久久综合9色| 五月天婷婷无码| 玖玖在线视频| 九九伊人网| 日本激情综合| 久久婷婷青青草| 欧美这里只有精品| 9久久AV| 亚洲 精品 综合 精品| 五月婷婷熟女| 三级三久久线久久99久目本WW| 日本天天色| 色婷婷啪啪综合网| 亚洲亚洲永久无码777777| 99热精品在线观看| 人妻操操色| 538在线精品| 丁香婷婷人妻| 五月婷婷六月丁香| 五月婷婷色情| 久久综合五月情| 久噜久噜| 美女xx不卡| 六月丁香成人网| 蜜乳久AV| 色综合天天天天做夜夜| 五月婷婷丁香五月| 玖玖爱综合网| 日日夜夜狠狠婷婷色| 可以看的av网站| 欧美婷婷六月丁香综合色| 五月丁香黄色视频| 2023天天日夜夜爽| 亚洲成Av人片乱码色第1集| 五月激情六月宗合| 97色片| 国产成人亚洲综合A∨婷婷| 久久99久久99久久99人受| 91肏| 五月天色图| 久热这里这里有精品| 欧美色综合天天久久综合精品| 天天网站天天爽| 欧美69久成人做爰视频| 色综合久久久久久久久五月| 成人在线视频男人的天堂4399| 五月天桃色深爱网| 六月丁香激情综合网| 香蕉久久国产AV一区二区| 狠狠干五月天婷婷网| 欧美色97| 26uuu国产色| 国产午夜伦鲁鲁| 天天操天天曰| 天天爽天天爽天天爽天天爽天天爽天天爽天天| 99精品偷自拍| www.五月天婷婷| 五月综合激情| caop视频| 92久久| 国产激情综合五月| 一起草日本| 欧美精产国品一二三区| 亚洲五月婷天天操| 伊人五月综合网| 亚洲日日操| 欧美性爱特黄一级aaaassss| 色综合天堂| 免费无码毛片一区二区A片 | 久久这里99| 91九色视频在线观看| 天天操天天操天天操天天操天天操| 五月青青草综合| 99 福利 导航| 色色五月婷婷狠狠| 26uuu成人网| 婷婷色5月激情网| 久热爱大香蕉在线蜜臀悦色| 六月激情婷婷| 丁香五月日韩| 噜噜五月天综合| 天天噜天天插| 丁香六月婷婷久久高清| 国产一级黄色影片,| 九九99在线免费在线观看视频| 亚洲AAAA网| 久久婷婷综| 亚洲啪| 狠狠干狠狠干| 久久婷婷综合网| 日本操逼九九九九58日本操逼| 丁香五月天啪啪| 九 九九九AV| 天天色粽合合合合合合合| 日本色图综合| 天天天天天天操| 南京搡BBBB搡BBBB| 久婷婷五月激情| 99碰网站| 另类激情码| 亚洲啪啪自拍| 97色色在线视频| 中文网AV| 丁香五月婷婷久久综合激情网 | 亚洲婷婷91丁香| 五月天色视频| 天天开心AV色综合婷婷五月天| 99超级碰免费视频| 午夜免费试看| 日本综合久久| 婷婷久久五月丁香| 伊人干综合| 婷婷精品综合| 97色天堂| www99在线观看视频| 在线超碰精品| 日本色色影院| 婷婷色五月天色| 亚洲视频在线网| 五月丁香久久| 五月婷婷六月丁香在线| 欧美日韩99| 99日韩网站| 五月丁香六月婷婷色| 国产片天天爽夜夜爽| 日本综合色色| 婷婷五月天成人娱乐| www.天天干.com| 亚洲精品乱码久久久久久按摩观| 91综合在线| 丁香蜜臀黄色婷婷五月天| 久热这里只精品| 97色干| 天天狠天天狠| WWW.色婷婷.COM| 天天色天天色天天色天天色天天色| 六月婷婷国产| 久久久精品人妻| 超碰99热精品| 天天操综合网| 超碰免费人| 欧美日韩国产成人在线| 五月丁香啪啪综合| 人妻乱码久久久| 激情综合网亚洲色图| 99热骚货| 亚洲人妻电影| 日本九九九九| 日本网站久久| 国产成人av在线播放| 91狠狠色丁香婷婷综合久久精品| 色综合色香蕉网| 久热9热| 色综合久久天天综合网| 亭亭色天香| 99这里只有精品|v| 色五月在线观看| 日日操夜夜擼| 超碰91人人操| 秋霞网在线观看理论91| 亚洲美女网Va| 99这里都是精品| 五月激情久久| 色七色九九| 激情网综合| 思思久久精品| 五月丁香啪啪网| www.久热| 婷婷五月丁香综合桃花色网| 激情色中文| 夜夜综合色| 色情五月综合婷婷| 五月婷婷综合成人| site:pzdcoin.com| 99re6久热只有精品6在线直播| www99热| 天天肏视奸| 激情五月天视频| 日日撸日日操| 99热精品在线| 999婷婷综合| 色久免费| 超碰久热| 婷婷99中文字幕| 婷婷激情五月综合丁香社| 激情五月婷| 婷婷伊人欧美| 激情文学天天| 五月激情啪啪| 97碰人人操| 99热国产在线| 五月丁香六月激情狠狠| 色色色热热热| 91婷婷色五月| 日本色婷婷| 色五月婷婷777| 超碰免费人人| 丁香五月情| 夫妇交换刺激做爰| 97热这里精品在线视频| 综合成人小说婷婷| 婷婷五月天最新网址| 婷婷色色综合激情| av色色国产| 日本WWW九九九| 色五月首页| 公的粗大挺进了我的密道 | 欧美婷| 天天天天操| 丁香花大香蕉婷婷综合| ri电影在线| 99久re热视频精品98| 人人操人人看97干| 日本VA视频| 人人人操 超碰| 成人五月天在线视频在线观看| 国产激情久久久| 久超超碰| 久久综合五月天| 婷婷丁香宗合888| 天天色天天操天天射| 五月婷婷久久网| 婷婷四色成人综合色视| 超极99精品| 99热99这里有免费的精品| 亚洲精品V天堂中文字幕| 秋霞午夜理论| 777米奇影视第四色| 五月丁香久久久日婷婷久久婷婷日| 丁香色五月天| 丁香六月激情| 精品福利911| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 五月激情久久综合| 超碰妻人人| 婷婷色激情五月天| 淫荡A片| 精品99在线观看| 日本色色网站| 五月丁香六月婷婷久久| 七月婷婷色香综合网| 天天干天天色天天干| 五月婷婷色在线| 天天天天色天天天天天干| 99久操视频| 色五XX| 中文字幕成人影视| 99视频只有精品| 狠狠va| 婷婷丁香18| 五月婷婷在线综合| 五月丁香无码| 国产成人精品一区二三区熟女在线| 狠狠草婷婷| 超碰99热精品在线| 射区导航| 99视频久久免费视频| 五月丁香花成人社区| 久久这里只有精品1| 中文在线成人| 99操逼| 亚洲婷婷激情五月天| 97色操| 99精品无码| 99在线国| 色综合久久99色| www.色五月| 五月天无码视屏播放| 免费看欧美成人A片无码| 九九精品视频免费在线| 视频一区二区在线| 天天狠狠夜夜狠狠2023| 久久性爱视频久久性爱视频| 亚洲精品无码久久| 视频一区二区在线| 婷婷丁香五月综合| 99在线观看精品视频| 五月丁欧美| 五月天婷婷激情六月久久| 91婷婷在线| www.五月丁香av| 91Chinese在线| 欧美97超碰| 天天爽天天日| 久草热在线视频| 一區四區歐美日韓| 九九色大香蕉| 六月婷婷色色网| 九九久久网| 激情欧美丁香五月| 91dy.av| www.五月天色色.com| 超碰婷婷色| 玖玖综合色| 国产VA亚洲VA96| 欧美成人无码一区二区三区| 亚洲成人av在线| 天天干天天av天天射| 午夜五月天| 开心五月网| 丁香五月老师| 婷婷月五天在线在线看| 9精品视频在线观看| 婷婷婷婷婷婷婷婷婷婷丁香| 五月丁香影视| 激情五月丁香五月| 开心五月综合激情网| 天天射色五月天| 日韩欧美四五区| 久久婷婷五月| 99碰超| 人妻激情视频| 五月婷婷国产| 亚洲成人av在线观看 | 噜噜在线| 五月丁香六月激情| 高清无码视频网址| 色色婷婷五月天| 9月色婷婷| 丁香色五月天| 亚洲狠狠干| 色五狠狠| 六月婷婷九月丁香亚洲综合| 人人做天天爱| 日日夜夜综合| www,26uuu,c0m,色情| 久久成人天| 开心五月婷婷在线视频免费观看| 日日色五月天| 99热在线这里只有精品| 婷婷色五月天综合网| 五月丁香成人| 亚洲视频a| 中文字幕av亚洲| www.9797国产| 综合激情在线| 91久久99久久91熟女精品| 大香蕉久艹| 99视频在线| 亚洲色色色色色| 婷婷第六色| 天天色爽| wwwC0maV五月花| www.五月丁香av| 国产综合网在线| 婷婷丁香五月综合激情视频| 美女妹子后射视频网站在线观看| jiZZdr| 久久久婷婷五月亚洲97号色| 综合激情婷婷| 五月丁香激情综合| 热日韩欧美| 久久精品天| 色久女| 亚洲五月天第一综合干| 久久99久久99精品免观看软件 | 热久久婷婷| 偷偷操99| 丁香激惜男女| 欧美婷婷色五月| 在线观看亚洲AV| 97色色色色色| 色哟呦av| 亚洲综合草草| 六月米奇色综合| 999热在线视频| 婷婷五月激情的图片| 狠狠色丁香| 开心色色五月天综合| 婷婷国产欧美97| 九九这里只有精品在线视频| 美女美女美女三级色天天天天天| 狠狠干天天日| 琪琪色五月天| 久久久天堂国产精品女人| 狠狠久久婷| 五月丁香婷婷爱激情综合网| 婷婷五月天在婷| 性色婷婷| 丁香五月狠狠在线观看| 乱码操操| 五月婷婷五月天亚洲无码| 丁香久久综合| 五月婷婷色色爱| 九九99九九99九九99视频网| 婷婷丁香激情| www夜夜| 97人人干。| 六月丁香啪| 婷香五月激情视频| 八戒青柠影视剧在线观看| 伊人玖玖网| AV 3P| 91超碰在线播放| 1024在线一区| 六月丁香花婷婷| 久久久这里有精品| 女人被躁到高潮嗷嗷叫小| 日本色99| 婷婷五月丁香在线视频| 日韩一级一片内射视频4K| 六月丁香婷婷综合影院| 91久久久久久| 五月丁香六月欧美综合网站| 中字幕视频在线永久在线观看免费| AV操逼网| www激情| 婷婷婷婷午夜| 天天天久久久| 综合大香蕉| 99久久五月丁香野外| 婷婷五月免费在线| 丁香婷婷激情| 99色综合| 五月婷丁香| 婷婷 伊人 久久| 久色欧美| 91人人爽久久涩噜噜噜| 五月天丁香色色| 亚洲五月天天| 伊人久久婷婷| 亚洲sesesese| 中文av网站| 亚洲精品无码久久| 五月丁香六月婷婷国产视频| 国产高潮A片羞羞视频涩涩| 色情婷| 99激情视频| 日韩婷久| 噜噜视频| 中文字幕天天干| 丁香五月电影| 色婷婷综合电影| 婷婷五月天在线综合| 中文超碰视在线| 婷婷六月天亚州| 色色色色丁香| 色婷婷久久综合丁香五月| 婷婷的五月天另类视频| 丁香婷在线| 久久38视频| 久久婷婷成人综合色怡春院| 99色视| 五月综合精品| 风流少妇A片一区二区蜜桃| 天堂婷婷五月色| 午夜天天精品视频| 国产色五月| 日本高清不卡免费一区二区三区| 女人天堂 AV| 综合 蜜月 婷婷| 成人va视频| 生活片五区| 色色色色综合| 五月丁香999| 丁香婷婷欧美综合| 激情深爱五月| 九九婷婷综合| 丁香五月天电影| 6月丁香婷婷激情| 国产毛片操B| 99热精品在这里| 2016日日夜夜操| 色丁香久久| 天天色伊人| 99精品综合在线| 婷婷综合97| 伊人五月天男人的天堂在线| 日本视频不卡123区| 天天日天天爱天天噪| 色婷婷a| 丁香婷婷激情| 99热久只有| 99久热这里只有精品| 操逼综合网| 丁香五月性| 日本综合久| 夜夜撸日日操| 五月天色网站| 五月天伊人综合| 久久久中文| 中文字幕色色| www.久久爱| 色香蕉婷婷| 婷婷欧美激情综合| 3p日韩网站视频| 五月丁香婷婷成人版| www.五月天婷婷| 色色色色色色色色色色色色色色,网站| 婷婷婷久久久| 亚洲国产精品VA在线看黑人| 五月激情小说| 天天插天天日天天爽| 婷婷激情五月视频| 大地9中文在线观看免费高清| 另类五月激情| 丁香五月婷婷无码AV| 激情五月九九九| 91操碰| 欧美日本va| 另类色网| www.婷婷,com| 婷五月天影院| 五月婷婷激情网| 色婷婷综合网| 亚洲婷婷激情888精品久| 99玖玖免费视频| 久久久aaa| 婷婷在线视频| 伊人网啪啪| 久草五月天电影网| 九热视频在线精品15| 九月丁香网婷婷| 色99日韩| 色五月婷婷91在线| 久久国产色| www.色五月| 综合色色婷婷| 人妻内射麻豆视频| 成片免费观看视频大全| 97五月综合网| 精品综合网在线| 中文字幕无码人妻少妇免费视频| 日韩啪| 五月丁香六月婷婷操操操| 玖玖九九99| 欧美va亚洲va| 欧美婷婷| 97人人操在线| 成人国产欧美大片一区| 成功精品影院| 大香蕉啪啪| 99人妻碰碰碰久久久久视| 五月天激情无码专区| 婷婷五月免费在线| 丁香六月激情综合网| 五月婷婷在线视频免费观看| 五月激情综合网| 五月丁香少妇| 啪色综合| 五月婷婷导航| 九九精品婷| 丁香六月激情国产| 久久婷婷大香蕉| 精品国产a| 日本97人人| 五月丁香啪啪| 五月婷婷激情综合| 天天弄天天操| 国产精品色色| 99色在线视频| 九九视屏| 人人综合久| 人人操插| 久碰视频| 激情五月五月婷婷| 99久久九九| 秋霞免费视频| 密着浓厚中出乚交尾GvG935| 黄网在线免费| 日本色超碰| 亚洲国产网站| 色爱99| 99热青青草| 五月天大香蕉| 4399在线观看免费高清电视剧| 青草性爱视频| 激情综合视频| 婷婷五月欧美| 《久久综合九色综合97婷婷| 91网站黄| 丁香九月综合| 五月婷婷久久网| 思思热99在线视频| 久久美女五月天| 黄网免费看| 五月丁香激情综合网| 国产欧美精品AAAAAA片| 亚洲无码性爱| 欧美性爱一区| 99ri视频在线播放| 亚洲无码成人| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 亚洲午夜成人av电影网| 中文字幕人妻AV| www、丁香五月天| 五月天婷婷色| 亚洲综合色丁香五月天| 久久99热这里只有精品| 91欧美| 超碰在线免费观看日韩| 超碰在线观看成人视| 第四色激情网| 能看的AV网站| 97九色视频| 五月天婷婷基地| 亚洲无码免费看| 日韩欧洲亚洲| 色五月视频无码播放| 99在线精品视频免费观看20| 六月合五月婷| 天天日,天天干,天天操| 另类丁香五月天区图| 激情亚洲婷婷| 婷婷丁香五月激情中文字幕版| 99热99热在线| 丁香五月性爱| 99碰在线视频| 天天爱天天做天天舔| 婷婷久久色| 久青草影院| 91色干| 情五月亚洲婷婷| 久久婷婷亚洲| 色爆五月| 日韩黄黄| 婷婷天天色| 亚洲乱码精品久久久久.. | 久热A| 国产激情视频在线观看| 日韩免费99| 天天噪夜夜爽| 久草A片| 热久91| 狠狠五月丁香色婷| 成人五月天丁香| 日韩精品呦呦va| 99热久只有| 99九九综合久久九九| 久久久91精品| 五月天激情偷拍| 日韩久久视频| 蜜乳av一级av| 色播五月天婷婷老师| 婷婷五月天免费| 亚洲精品大片| 91九色大屁股| 99热免费精品| 色欧美色色色| 激情六月下句是什么| 色五月婷婷91| 99久久五月婷婷| 亚洲成人电影aaaa| 激情综合五月| 男女99免费视频| 五月丁香综合网| 97超级免费无码| 色天天狠狠干| 久热9| 五月综合色| 色五月婷婷内射| 久久香蕉影院| 99热国产婷婷| 国产精品人人妻人人爽| 影音先锋男人站,影音先锋男人色资源网,影音先锋AV最新资源站,影音先锋AV资源 | 色综合偷拍| 99精品在这里| 丁香五月天堂网AV| 99在线亚洲| 激情玖玖综合网| 丁香五月综合亚洲| AV在线不卡播放| 5月婷婷6月丁香aV| 最近免费中文字幕大全高清大全1 免费看欧美成人A片无码 | 色综合xx| 婷婷五月成人| 欧美色色色色色色色色色色影视| 免费视频99| 99re热精品在线视频| 婷婷五月丁香综合| 婷婷成人综合| 色色色欧美| 91超级碰碰| 日本丁香五月| 色九月婷婷综合| 夜夜撸天天操| 人人叉久| AV成人在线播放| 久久精品9| www色色com| 亚洲色婷婷五月天| XXXX岛国| 国产精品美女久久久久AV超清 | 97干在线视频| 色婷婷五月开心六月综合| 九九热在线视频| 丁香婷婷激情五月色| 久久人妻少妇嫩草AV| 第一区久久网站| 97碰 在线视频观看| 日本va视频| 婷婷9月天| 色色色.COM| 久久综合9| 伊人久久丁香婷婷六月五月综合| 怡春院天天干| 玖玖爱综合网| WWW.激情| 91丨九色丨首页| 中文av网站| 天天看A片| 国产乱子轮XXX农村| 中文字幕久久一区二区三区| 国精产品一区二区三区| 久久三级视频| 婷婷五月天深爱| 人妻激情久久| 亚洲va成人va成人va在线观看| 大香蕉75线| 播播网色播播| 无码九九| 色九四色| av在线中文| 日本色婷婷综合| 99久久婷婷五月| 另类激情综合| 婷婷丁香午夜综合影视| av超碰在线| 日韩无码成人电影| 五月婷婷无码专区| 国产精品电影网| 1024人妻| 99热思思在线观看| 九月大香蕉| 国产精品18久久久| 9色在线视频| 婷婷视频在线| 五月丁了香蕉综合| 操97免费超级视频| 日本韩国视频在线观看社区免费的9| 超碰在线精品| 5月婷婷激情网| 国产99精品免费视频| 久久总和99| 婷婷五月天最新网址| 欧美99| 国产成人av在线| 五月婷婷六月丁香色| 日日操夜夜爽天天天| 日本三级日本三级99| 亚洲激情六月| 九九热在线视频| 婷婷 伊人 久久| 米奇影视资源777狠狠色婷婷五月天激情网 | 99久在线精品| 亚洲成人va| 激情宗合哪里能看| 高清国产AV| 国内外色色色色色成人视频| 五月天激情视频| 5月婷婷性视频| 91久久1118| 国产人妻人伦精品一区二区| 日韩 中文 欧美| 婷婷精品综合| 五月激情开心婷婷| 99久久久免费| 任你搞在线观看视频| 丁香五月婷婷俺也要去| 成人五月天在线观看| 色五婷婷| 精品无码片| 国产午夜精品AV一区二区麻豆| 91超级碰碰| 天天插天天插| 色噜噜狠狠插综合| 99色看| 加勒比色色| 99色色爰| 色玖玖爱| 五月狠狠| 狠狠爱婷婷五月天| 丁香五月婷婷网| 这里只有精品免费| 不卡影院午夜理论片| 婷婷伊人激情婷婷| 天天做天天爱高潮片| 丁香五月 激情文学| 精品热青草| 欧美日本韩国亚洲| 亚洲国产精品SUV| 久久ww| 五月天精品视频| 91久久| 婷婷九月丁香| 九九精品自拍| AV在线免费播放| 日韩AV片| 丁香五月天激情视频| 99热在线成人网站| 天天综合网网欲色| 五月丁香婷婷三级| 亚洲综合视频一下| 热久久成人| 天天AV导航网| 激情精品久久| 91天天操天天干天天射| 成人婷99最新| 91丨九色丨43老版熟女| 婷婷色色五月| 2015好吊操| 五月天天丁香婷婷在线中| 五月丁香婷婷福利| 婷婷色无码| 91dy.av| 97五月天婷婷| 五月激情天天干| 色播五月天激情| 99热天堂| 色婷五月| 99成人| 五月综合色| 99这里| 免费观看亚洲AV片| 免费视频99| 白人荫道BBWBBB大荫道| 牛牛澡牛牛爽| 五月天堂色色| 五月婷婷激情性爱| 六月婷婷六月天天在线免费| 天天综合五月| 色播五月婷婷五月| 婷婷五月,偷窥偷拍网| 色综合天堂| 天天插天天日| 69凹凸成人综合网| 我淫我色婷婷五月天激情四射| 日日影院 | 激情婷婷护士激情| 婷婷五月电影| 五月天婷五月天综合网在线观| 五月婷婷丁香色播网| 久久久无码精品成人A片小说| 香蕉综合网| 怡红院AV亚洲一区二区三区H| 久久99免费视频网站| 天天射天天干天插色综合| 激情五月伊人婷婷| 久久er+| 色小说五月婷婷| 丁香婷婷成人在线播放| 天堂网啪啪| 色婷婷六月| 激情五月婷婷啪啪| 99er这里只有精品视频| 99精品久久久久久久婷婷久久| 欧美影院| 婷婷丁香社区| 婷婷伊人75| 怡红院院在线导航网| 亚洲成人婷婷| 五月婷婷激情网| 中文字幕丰满孑伦无码专区| 中文字幕在线aⅴ免费观看| 大香蕉久久草| 九九操综合网| 色久女| 色婷婷很很十八禁| 黄网在线播放| 可以免费看AV网站| 日日操日日撸| 大香蕉丁香| 亚洲精品五十一区| 另类小说五月天| 这里只有精品视频| 超碰婷婷五月| 日韩色色网| 99综合视频| 亚洲V国产V欧美V久久久久久| 久热99热| 五月天激情开心网| 五月丁六月香av| 99九九在线精品热动漫| 五月天深爱激情网| 色丁香五月婷婷| 91精品久久久久久久| 丁香六月久久| 亚洲黄色操逼| 激情 婷婷 丁香五月天| 亚洲成人网站在线观看| 人妻av在线| 五月天色综合| 色婷婷影| 六月综合在线| 色亭亭九月| 9这里只有精品| 一本大道熟女人妻中文字幕在线| 五月丁香日本一抹本| 中文字幕在线资源| 青青草色在线视频观看| 五月天开心网| 91久久色| 影音先锋91资源站| 丁香五月123| 99热这里只有精品免费| 亚洲色五月婷婷| 婷婷综合激情| 毛v一区二区视频| 天天草天天摸| 成人网页在线观看| 天天日天天摸| 丁香五月激情综合婷综| 深爱激情综合| 国产婷婷综合| 精品在线网站| 99精品在线播放| 色色色综合| 玖玖伦理电影|