久久亚洲成a人片熟女精品色一区二区三区|国产精品视频第一精品视频|av天堂热无码手机版|亚洲?v无码久久无遮挡|国产精品偷伦视频免费观看国产|麻豆国产自产精品丰满熟妇|av无码av不卡一区二区|久久亚洲精品中文字

ARTICLE DETAIL

資訊詳情

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

SpringBoot3+LangChain4j+Vue3:構(gòu)建AI智能體與工作流平臺

SpringBoot3+LangChain4j+Vue3:構(gòu)建AI智能體與工作流平臺 簡介面向全棧開發(fā)者這份資源是一套基于Spring Boot 3與LangChain4j的AI應用平臺源碼能幫助快速搭建具備智能代碼生成、智能體編排、工作流管理與工具調(diào)用能力的完整系統(tǒng)。前端使用Vue 3構(gòu)建交互界面后端提供可視化編輯、一鍵部署、應用管理和智能路由等核心能力并整合多級存儲與Nginx通過ARMS、Prometheus與Grafana實現(xiàn)應用監(jiān)控也兼容Cursor Vibe Coding開發(fā)模式。壓縮包內(nèi)共216個文件以143個Java文件為主要組成部分承載后端業(yè)務邏輯與集成配置21個TypeScript文件和19個Vue文件對應前端頁面與交互邏輯其余包括JSON配置、SQL初始化腳本、YAML部署文件以及說明文檔等輔助材料。整體壓縮包大小約1.14MB結(jié)構(gòu)清晰便于按需閱讀。截至目前已有250人瀏覽學習適合想要深入實踐LangChain4j、LangGraph4j工作流以及AI應用工程化的開發(fā)者參考學習。1. 這個“AI應用平臺”到底在解決什么問題如果你所在團隊已經(jīng)試過把大模型接進業(yè)務系統(tǒng)大概率會遇到這三件事第一模型只會“聊天”讓它去查數(shù)據(jù)庫、改工單、調(diào)接口就得寫一堆膠水代碼第二一段固定的提示詞應付不了多步任務業(yè)務要求“先查庫存再算報價最后生成合同”每一步都有嚴格順序第三做出來的東西只活在開發(fā)者的 IDEA 里業(yè)務方想要在頁面上自己拖一拖、改一改、點一下就能上線。這個標題把這件事說全了——基于 SpringBoot3 LangChain4j Vue3 搭一個 AI 應用平臺用 AI 智能體和 ToolCalling 讓模型有手有腳用 LangGraph4j 工作流把不可控的對話變成可控的流程再用 Vue3 做一套可視化編輯、應用管理和一鍵部署的殼子。它適合兩類人一類是 Java 后端為主、想在公司內(nèi)部落地 AI 功能但不想引一堆 Python 微服務的團隊另一類是正在做 AI 應用低代碼平臺、需要參考一條端到端技術(shù)路徑的開發(fā)者。這篇筆記按后端底座、智能體、工作流、前端落地和常見坑的順序展開照著能做出一版可演示、可評審、可繼續(xù)投入的骨架。2. 后端底座SpringBoot3 LangChain4j 的模型接入與多路召回2.1 為什么選 SpringBoot3 LangChain4j而不是自己封裝 HTTP 客戶端很多 Java 團隊接到 AI 需求后的第一反應是直接調(diào)模型廠商的 HTTP 接口寫一個 RestTemplate 封裝再自己管理上下文和歷史消息。短期看沒毛病一旦要支持多模型切換、流式輸出、多輪記憶、工具調(diào)用這套手寫代碼會迅速膨脹成沒人敢動的“黑匣子”。LangChain4j 在 Java 生態(tài)里的定位相當于把 LangChain 那套抽象用 Java 重寫了一遍但它更收斂核心就幾個概念——ChatLanguageModel 管模型對話EmbeddingModel 管向量化AiService 管聲明式接口Tool 管工具調(diào)用Memory 管對話歷史。對 SpringBoot3 團隊來說集成成本比引入 Python 服務低得多而且可以跟現(xiàn)有的 Spring 容器、配置體系、事務、監(jiān)控直接融合。SpringBoot3 本身的價值在 AI 場景里會被放大一是原生支持虛擬線程處理 SSE 流式響應和工具并行調(diào)用時線程開銷明顯下降二是 SpringBoot3 的配置綁定和自動裝配讓 LangChain4j 的模型參數(shù)可以全部放進 application.yml換模型時不需要改 Java 代碼三是 SpringBoot3 對 GraalVM 的支持雖然還不是萬能靈藥但做平臺類項目時預留了后續(xù)優(yōu)化啟動內(nèi)存的余地。這一層選型的核心訴求不是“誰的生態(tài)更熱鬧”而是“這個團隊能不能低成本把 AI 能力接進現(xiàn)有的 Java 服務里”。2.2 模型接入層用 OpenAI 兼容協(xié)議適配多模型平臺類應用最忌諱把模型廠商寫死在代碼里。常見的做法是底層統(tǒng)一走 OpenAI 兼容的 Chat 接口協(xié)議上層通過配置決定連哪家服務。這樣無論是公有云模型、私有化部署的模型還是開源模型網(wǎng)關(guān)只要對方暴露了兼容接口就能一根配置切過去。LangChain4j 內(nèi)置的 OpenAiChatModel 支持自定義 baseUrl官方模型和兼容協(xié)議模型都可以掛到同一個入口下。spring: application: name: ai-platform langchain4j: open-ai: base-url: ${LLM_BASE_URL:https://your-llm-gateway.example.com/v1} api-key: ${LLM_API_KEY:} chat-model: model-name: ${LLM_MODEL_NAME:qwen2.5-72b-instruct} temperature: 0.7 timeout: 60s max-tokens: 4096 log-requests: false這段配置的關(guān)鍵在于base-url和model-name都做成了環(huán)境變量占位。平臺內(nèi)部測試用一套模型生產(chǎn)切另一套前端的工作流定義、智能體配置完全不用改。log-requests在聯(lián)調(diào)階段建議開成 true能看到實際發(fā)給模型的 payload排查“模型為什么沒按預期調(diào)用工具”時這是第一手證據(jù)上線前一定關(guān)掉否則每次對話的完整內(nèi)容都會落日志時間長了下游日志系統(tǒng)先扛不住。然后是聲明式接口。LangChain4j 的 AiService 用注解定義服務方法框架在運行時生成實現(xiàn)類AiService public interface ChatAssistant { String chat(MemoryId String memoryId, UserMessage String userMessage); Streaming FluxString streamChat(MemoryId String memoryId, UserMessage String userMessage); }這個接口直接被 Spring 代理方法上的UserMessage表示哪個人傳參數(shù)拼進用戶消息MemoryId表示按業(yè)務維度隔離對話歷史——比如一個表單一個記憶一個工單一個記憶而不是全局共享上下文。Streaming返回 Reactor 的 Flux配合 SpringBoot3 的 WebFlux 或 MVC 異步支持把流式 token 通過 SSE 推給前端。需要注意AiService 的實現(xiàn)機制對“自定義上下文拼接”不夠靈活。常見做法是平臺的應用配置里允許用戶填系統(tǒng)提示詞這部分不適合寫死在注解上而是用 ChatMemory 和 MessageWindow 在會話維度動態(tài)構(gòu)造。2.3 多路召回向量檢索 關(guān)鍵詞檢索 融合排序熱詞里那個“l(fā)angchain4j 多路召回”本質(zhì)是 RAG 里提升召回質(zhì)量的關(guān)鍵手段。單靠向量檢索遇到專有名詞、型號、工單編號這類沒有語義但字符高度精確的查詢效果會很差單靠關(guān)鍵詞檢索又接不住“幫我把最近一周未結(jié)算的訂單按金額排個序”這種口語化表達。平臺里我給知識庫場景設計的召回鏈路是一路走向量相似度一路走關(guān)鍵詞 BM25兩邊分別取 topK再做歸一化融合。Component public class HybridRetriever { private final EmbeddingStoreTextSegment embeddingStore; private final EmbeddingModel embeddingModel; private final KeywordSearchService keywordSearchService; public ListScoredDocument retrieve(String query, int topK) { // 第一路向量召回 var queryEmbedding embeddingModel.embed(query).content(); var vectorResults embeddingStore.search(queryEmbedding, topK 5) .stream() .map(hit - new ScoredDocument(hit.scoredText().text(), hit.score(), vector)) .toList(); // 第二路關(guān)鍵詞召回走 BM25 或者數(shù)據(jù)庫全文索引 ListScoredDocument keywordResults keywordSearchService.search(query, topK 5); // 第三路融合用 RRF 公式而非直接加權(quán) return fuse(vectorResults, keywordResults, topK); } }融合邏輯先刷一出分數(shù)歸一化再用倒數(shù)排名融合RRFprivate List fuse(List vectorDocs, List keywordDocs, int topK) { MapString, Double scoreMap new HashMap(); addWithRrf(scoreMap, vectorDocs, 60); addWithRrf(scoreMap, keywordDocs, 60); return scoreMap.entrySet().stream() .sorted(Map.Entry.String, DoublecomparingByValue().reversed()) .limit(topK) .map(e - new ScoredDocument(e.getKey(), e.getValue(), fused)) .toList(); }private void addWithRrf(MapString, Double map, List docs, int k) { for (int rank 0; rank docs.size(); rank) { ScoredDocument doc docs.get(rank); map.merge(doc.content(), 1.0 / (k rank 1), Double::sum); } }參數(shù)說明里最值得調(diào)的是兩個值向量召回和關(guān)鍵詞召回的數(shù)量、RRF 的常數(shù) k。常見做法是多召回一部分比如 topK5讓融合階段有得選k 一般取 60 左右調(diào)小會讓高排名文檔權(quán)重更突出調(diào)大則更平均。實際跑下來經(jīng)驗是向量召回 top 50 里如果沒有答案融合也救不回來問題通常出在文檔切分粒度或 Embedding 模型本身。 ### 2.4 代碼生成器場景模型輸出到工程落地之間還有一道閘 標題里專門點出智能代碼生成這是 AI 應用平臺最接地氣的一個能力。實現(xiàn)上不是扔一個“給我生成 UserController”的提示詞就完事而是把代碼生成拆成三步需求理解、工程結(jié)構(gòu)約束、代碼后處理。工程結(jié)構(gòu)約束是最容易被忽略的——直接讓模型自由輸出生成的代碼大概率跟項目現(xiàn)有框架不一致。 常見做法是把項目的技術(shù)棧約束、目錄規(guī)范、接口風格寫成 system prompt 的一部分再把代碼生成的產(chǎn)物限定為填充式代碼塊。例如生成一個 SpringBoot 的 Service 實現(xiàn)時平臺先注入項目模板模型只需要補全方法體。生成之后的工作站不住腳代碼格式化、編譯校驗、導入補全這三步必須自動化否則用戶拿到一坨縮進混亂、缺 import 文件根本沒法看。這部分后續(xù)會展開談但在后端底座這里要明確一條邊界——LangChain4j 負責和模型打交道代碼生成的工程部分必須由平臺自己的服務接管。 ## 3. 讓模型有手有腳ToolCalling 與 AI 智能體的實現(xiàn)細節(jié) ### 3.1 ToolCalling 到底是什么為什么智能體離不開它 讓模型直接生成“查數(shù)據(jù)庫、發(fā)郵件、創(chuàng)建工單”這些操作是不現(xiàn)實的模型本質(zhì)上是概率生成文本它不知道自己能不能執(zhí)行、有沒有權(quán)限、操作結(jié)果是什么。ToolCalling 解決的是這個“能力邊界”問題模型在對話中輸出一個結(jié)構(gòu)化請求比如“調(diào)用 searchContract 工具參數(shù) keyword采購合同”應用層負責真正執(zhí)行再把執(zhí)行結(jié)果作為新的上下文繼續(xù)讓模型推理。智能體之所以叫“智能體”就是因為它具備感知收到用戶輸入、決策決定調(diào)哪個工具、行動執(zhí)行工具、觀察讀取執(zhí)行結(jié)果的循環(huán)。 ### 3.2 用 LangChain4j 注冊一個工具參數(shù)描述決定成敗 LangChain4j 的 Tool 注解會把方法暴露給模型方法名、參數(shù)名、參數(shù)描述會拼到模型的工具定義里。這部分是對模型效果影響最大、也是最容易敷衍的地方。 java Component public class ContractTool { private final ContractRepository contractRepository; Tool(根據(jù)合同編號或關(guān)鍵字搜索合同返回合同名稱、金額、簽訂日期和當前狀態(tài)) public ListContractSearchResult searchContract( ToolParameter(搜索關(guān)鍵字可以是合同名稱片段或完整合同編號) String keyword, ToolParameter(value 是否只查有效合同默認 true) boolean activeOnly) { return contractRepository.search(keyword, activeOnly); } Tool(查詢指定合同金額是否已超過預算上限) public BudgetCheckResult checkBudget( ToolParameter(合同編號) String contractNo, ToolParameter(預算金額單位元) double budgetAmount) { // 參數(shù)進 LLM 時是字符串必須做類型校驗和范圍校驗 if (budgetAmount 0 || budgetAmount 1_000_000_000) { throw new IllegalArgumentException(預算金額超出合理范圍); } return contractRepository.checkBudget(contractNo, budgetAmount); } }兩個細節(jié)值得說。第一Tool 的工具描述要寫清楚“這個工具能做什么、返回什么”模型依賴這段描述決定何時調(diào)用描述寫得太短模型容易在其他工具上誤選寫得太長又占用上下文。第二參數(shù)描述必須包含“取值范圍、單位、主鍵格式”等信息——你寫“預算金額單位元”模型就知道把用戶嘴里的“五百萬”轉(zhuǎn)成 5000000 而不是 500 萬次調(diào)用。這個環(huán)節(jié)做不好后面所有容錯邏輯都是在給提示詞背鍋。3.3 工具執(zhí)行的循環(huán)控制超時、并發(fā)、死循環(huán)模型輸出工具調(diào)用請求后應用層要執(zhí)行工具并回填結(jié)果。LangChain4j 在 AiServices 內(nèi)建了工具執(zhí)行循環(huán)但我一般會自己控制這個循環(huán)因為平臺需要統(tǒng)一記錄每一次工具調(diào)用的入?yún)?、出參、耗時和錯誤。public ChatResponse runAgentLoop(String userMessage, ListObject tools) { ChatRequest request ChatRequest.builder() .messages(List.of(UserMessage.from(userMessage))) .toolSpecs(Specs.from(tools)) .build(); ToolContext toolContext new ToolContext(); for (int step 0; step 5; step) { ChatResponse response model.chat(request); AiMessage aiMessage response.aiMessage(); if (!aiMessage.hasToolExecutionRequests()) { return response; // 模型不再請求工具正常結(jié)束 } ListToolExecutionRequest requests aiMessage.toolExecutionRequests(); ListToolExecutionResultMessage results new ArrayList(); for (ToolExecutionRequest req : requests) { try (var ignored TimeLimiter.timeout(30, SECONDS)) { String result executeTool(req, tools, toolContext); results.add(new ToolExecutionResultMessage(req, result)); } catch (Exception e) { // 工具失敗必須回填給模型而不是中斷整個循環(huán) results.add(new ToolExecutionResultMessage(req, 工具執(zhí)行失敗: e.getMessage())); } } request appendResults(request, aiMessage, results); } throw new AgentLoopExceededException(工具調(diào)用超過5輪已終止); }這個循環(huán)里三個參數(shù)按場景調(diào)循環(huán)上限建議 3~5超過就是業(yè)務設計有問題而不是模型能力問題單工具超時 30 秒已經(jīng)偏寬松一般查詢類接口 5 秒就該返回工具失敗信息回填給模型是非常反直覺但極重要的點——模型看到“工具執(zhí)行失敗合同編號不存在”會自己修正參數(shù)再試一次而不是生硬地報錯給用戶。這里有個口語經(jīng)驗寧可讓模型多問一輪也別讓它亂猜答案。3.4 生產(chǎn)環(huán)境給工具加三道鎖工具一旦面向業(yè)務方開放就不能只考慮“能不能跑通”。第一道鎖是冪等控制尤其是寫操作工具——創(chuàng)建訂單、發(fā)送通知這類工具要支持冪等鍵否則模型在一次循環(huán)里重復調(diào)用兩次業(yè)務數(shù)據(jù)就臟了。第二道鎖是范圍校驗工具里的參數(shù)不能用默認值糊弄數(shù)字范圍、枚舉值、超長文本都要在 Java 側(cè)做校驗不能把校驗壓力留給模型。第三道鎖是審計日志每次工具調(diào)用的入?yún)?、出參、耗時、由哪次會話觸發(fā)都要落庫或者打到獨立的日志通道里——這不是為了排查問題是為了出問題時能向業(yè)務方交代。4. LangGraph4j 工作流從“自由對話”到“可控流程”4.1 為什么有了智能體還需要工作流智能體自由發(fā)揮適合“幫我寫一段代碼”這類開放任務但業(yè)務場景里更多是“先查余額再走審批最后發(fā)通知”這種固定流程。自由決策意味著同樣的輸入每次可能走不同的路徑這在 ToB 場景里是災難。LangGraph4j 把工作流建模成一張狀態(tài)圖StateGraph節(jié)點是處理單元邊是流轉(zhuǎn)規(guī)則條件邊根據(jù)當前狀態(tài)決定下一步走哪個分支。這樣既保留了 AI 節(jié)點的靈活性又把整體流程定義成了業(yè)務方可預期、可審計的確定性結(jié)構(gòu)。平臺里 LangGraph4j 的角色很明確作為后端執(zhí)行引擎承接前端可視化畫布生成的 JSON 工作流定義編譯后執(zhí)行并實時上報節(jié)點狀態(tài)。它和 Reactor 的契合度也不錯——每個節(jié)點返回的狀態(tài)變更天然適合用不可變對象傳遞。4.2 定義狀態(tài)和節(jié)點最小可跑的 LangGraph4j 流程StateGraphAgentState workflow new StateGraph(AgentState::new); workflow.addNode(planner, new PlannerNode()); workflow.addNode(coder, new CodeGenNode()); workflow.addNode(reviewer, new ReviewNode()); workflow.addNode(finish, new FinishNode()); workflow.setEntryPoint(planner); workflow.addEdge(planner, coder); workflow.addEdge(coder, reviewer); workflow.addConditionalEdge(reviewer, state - state.isApproved() ? finish : coder, Set.of(finish, coder)); CompiledGraphAgentState app workflow.compile();這段代碼里的核心概念就四個狀態(tài)AgentState、節(jié)點Node、普通邊addEdge和條件邊addConditionalEdge。AgentState 是這個流程的“黑板上寫的東西”——用戶需求、生成的代碼、評審意見、循環(huán)次數(shù)都在這個狀態(tài)對象里傳遞。常見坑是新手把狀態(tài)設計成可變對象一邊跑一邊改并發(fā)場景下一改就串號。public class AgentState { private final String userRequirement; private final String generatedCode; private final String reviewComment; private final boolean approved; private final int iterationCount; public AgentState copyWith(String newCode, String newComment, boolean newApproved) { return new AgentState(userRequirement, newCode, newComment, newApproved, iterationCount 1); } }節(jié)點實現(xiàn)只需要接收當前狀態(tài)、返回新狀態(tài)。例如 CodeGenNode 拿到 userRequirement 后調(diào)用模型生成代碼生成結(jié)果放進 copyWith 返回的新狀態(tài)里。iterationCount是防止“代碼永遠評審不通過”的保險絲——ReviewNode 里如果發(fā)現(xiàn) iterationCount 超過 3直接強制 approved 為 true留一個明確的人工介入標記。4.3 條件邊背后的“意圖識別”怎么做條件邊是工作流真正復雜的部分。它會根據(jù)當前狀態(tài)判斷下一步走向這里最常見的設計是兩類一類是規(guī)則判定比如“評審結(jié)果是否通過”“金額是否超過閾值”代碼寫死可解釋性強另一類是需要模型裁決的比如讓模型判斷“用戶這個問題是否需要查知識庫”這時候條件邊內(nèi)部就內(nèi)嵌了一次模型調(diào)用。這里的實現(xiàn)細節(jié)是模型打分結(jié)果要映射成離散的邊名不要直接用自由文本。常見做法是給模型一個枚舉讓它輸出一個 JSON 字段String rawVerdict model.generate( 根據(jù)用戶問題判斷是否需要檢索知識庫只返回 JSON: {\needSearch\: true/false}); boolean needSearch JsonPath.read(rawVerdict, $.needSearch); return needSearch ? search_kb : direct_answer;4.4 工作流如何被前端可視化編輯JSON 就是橋梁LangGraph4j 的圖定義本質(zhì)上是一張有向圖而前端可視化畫布編輯的也正是這張圖。平臺里把工作流定義統(tǒng)一成一個 JSON 結(jié)構(gòu)節(jié)點列表、邊列表、每個節(jié)點的類型和參數(shù)。前端拖拽生成這個 JSON后端解析后動態(tài)構(gòu)建 LangGraph4j 實例。節(jié)點類型做三層收斂普通 LLM 節(jié)點填提示詞和模型參數(shù)、工具節(jié)點綁定已注冊的 Tool、邏輯節(jié)點條件判斷/循環(huán)/聚合。這就帶來一個版本問題工作流 JSON 結(jié)構(gòu)會演化必須加 schemaVersion 字段后端做版本遷移。否則線上跑著 20 個應用改了字段格式老的直接編譯失敗。這塊在避坑章節(jié)再展開。5. 避坑從本地 Demo 到可用平臺最容易翻車的 5 個問題5.1 模型根本不支持 ToolCalling但代碼沒做降級現(xiàn)象功能調(diào)試時工具調(diào)用一直不觸發(fā)或者模型回答里出現(xiàn)一大段 JSON 工具請求文本而不是結(jié)構(gòu)化請求。 原因接入的模型網(wǎng)關(guān)不支持該協(xié)議或者模型名配置到了不帶工具能力的小參數(shù)版本上。 解決在模型接入層做一個能力探測請求啟動時用一條固定消息發(fā)起一次 tool call如果返回里沒有結(jié)構(gòu)化 request就把該模型標記為“不支持工具”平臺側(cè)在智能體配置頁直接禁用或提示換模型。這比運行時反復重試靠譜得多。5.2 工作流狀態(tài)對象設計成可變 Map并發(fā)時狀態(tài)互相覆蓋現(xiàn)象兩個用戶同時觸發(fā)同一個工作流A 用戶的評審意見出現(xiàn)在 B 用戶的生成代碼里。 原因狀態(tài)類里用了共享的 HashMap 存放中間數(shù)據(jù)沒有做不可變拷貝。 解決強制使用不可變對象每次節(jié)點返回新狀態(tài)實例如果有大對象需要傳遞在節(jié)點側(cè)只傳引用 ID具體內(nèi)容存外部存儲避免整個對象在每一步都被復制一次導致內(nèi)存膨脹。5.3 SSE 流式響應老是斷流或者首字遲遲不出現(xiàn)象前端 EventSource 收到幾個字就斷開重連后更亂。 原因中間代理層默認緩沖了響應模型輸出攢到一定量才刷給瀏覽器另外代理超時時間太短模型思考時間長一點就掐斷了。 解決服務端設置Cache-Control: no-cache和X-Accel-Buffering: no響應頭從架構(gòu)上繞開緩沖同時定期發(fā)一個注釋行或空格作為心跳防止空閑超時斷開。5.4 多路召回的結(jié)果反而比單路更差現(xiàn)象做了向量關(guān)鍵詞融合之后檢索質(zhì)量明顯下降最相關(guān)的文檔排在了第五第六位。 原因兩路分數(shù)沒做歸一化就線性加權(quán)向量相似度分數(shù)總體偏高把關(guān)鍵詞那路的優(yōu)勢項全壓下去了。 解決放棄線性加權(quán)改成 RRF 倒數(shù)排名融合關(guān)鍵詞召回和向量召回各自保證 top 范圍里有真相關(guān)文檔再靠 RRF 將其抬上來。5.5 LangGraph4j 版本 API 變動導致升級翻車現(xiàn)象升級小版本后addEdge 方法簽名變了編譯直接報錯。 原因LangGraph4j 還在快速演進API 穩(wěn)定性遠不如 SpringBoot。如果你搜資料跟著老版本示例寫半年后很可能跑不起來。 解決鎖定版本并記錄遷移步驟升級后先用固定的測試工作流批量回歸把工作流定義 JSON 和引擎解耦無論引擎怎么改業(yè)務方畫布里的 JSON 不變只需要適配層改解析代碼。6. Vue3 可視化編輯與一鍵部署最小實現(xiàn)與驗收技巧可視化編輯的本質(zhì)是把工作流 JSON 變成看得見的節(jié)點和連線。Vue3 做這件事的核心優(yōu)勢是 Composition API 配合 reactive/ref 管理畫布狀態(tài)比 Vue2 時期用 data 和大對象操作清晰得多。最小實現(xiàn)只需要三塊一個節(jié)點面板可拖出不同類型的節(jié)點、一個畫布放置和連線、一個屬性面板編輯選中節(jié)點的參數(shù)const nodes: RefFlowNode[] ref([]) const edges: RefFlowEdge[] ref([]) function addNode(type: string, position: { x: number; y: number }) { nodes.value.push({ id: crypto.randomUUID(), type, // llm | tool | condition position, config: initConfigByType(type), }) } function toWorkflowJson(): WorkflowDefinition { return { schemaVersion: 1, nodes: nodes.value, edges: edges.value, } } function loadWorkflow(json: WorkflowDefinition) { nodes.value reactive(json.nodes) edges.value reactive(json.edges) }這里要提醒一句不要讓畫布組件直接持有業(yè)務數(shù)據(jù)。nodes 里存的是“圖的結(jié)構(gòu)”具體的提示詞、模型參數(shù)、工具名都放在每個節(jié)點的 config 里。一鍵部署的做法是把 toWorkflowJson() 的產(chǎn)物交給后端接口后端將其持久化并構(gòu)建 LangGraph4j 實例運行時的模型 API Key、知識庫連接串全部通過環(huán)境變量注入工作流 JSON 里不出現(xiàn)任何敏感信息。驗收時我會固定用 20 個典型場景跑一遍離線回放對比每個節(jié)點的入?yún)⒊鰠⑹欠穹项A期再放開給業(yè)務方試用。這是我踩出來的習慣——以前總覺得線上能跑就是好后來一次升級把評審節(jié)點跑丟了只能連夜回滾。從那以后每次改工作流引擎我都先過一遍回放再上線。希望這套路徑和這些坑能幫你少走一段彎路。本文還有配套的精品資源點擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
大香蕉中文aV在线| 久久粉色| 思思热免费在线视频| 91色综合激情| 亚洲婷婷五月天| 亚洲 欧美综合| 亚洲国产丝袜在线观看| 亚洲精品久| 国产黄色影片在线观看| 亚洲无限观看| 五月丁香综合| 亚欧Av| 大香蕉99re| 亚洲男人的天堂亚洲| 亚洲毛片基地专区| 色眯眯射| 久久夜嗨| 五月天久久久| 黄色香蕉视频网站一区| 国产亚洲日韩在线三区黑人| 日韩成人人妻网站| 中文字幕91综合| 成人免费视瓶| 亚洲综合有码| 色婷婷在线视频精品导航| 天天干人人干天天日97| 亚洲 小说 欧美 激情 另类| 91人人爽人人爽人人人,gav福利视频导航,日韩欧美亚洲国产字幕四区 | 国产欧美一区二区| 四虎免费在线观看| 国产视频一区二区在线| 丁香九月激情| 天天谢天天干| 综合久久2017| 日本精品九九九| 国产无马av| 国产精品麻豆成人av| 精品少妇一区二区| 精品丰满熟妇人妻一区| 国产偷人妻精品一区二区在线| 91天天日| 色天堂综合| 免费视频无码| 视频在线观看一二三区| 91色艳| av天天在线观看| 在线色导航| 精品视频在线观看| 亚洲少妇激情一区二区三区| 亚洲精品1区| 另类亚洲图色| 国产视频97| 日韩美女,国产传媒,视频一区| 九月婷婷综合| 欧美色图天堂在线| 日韩在线97| 久久天堂婷婷网| 96精品在线| 99xav| 成人在线视频二区| 亚洲欧美天堂在线| 精品无吗m| 蜜臀AV一区二区三区| 伊人在线大香蕉视频久久| 秋霞午夜视频一区二区| 素人伊尹大香蕉免费下载视频| 色约约一区=区三区| 九九综合九九综合| 太久视频| 久久久久婷婷精品av电影| 男人的天堂日韩| 久久黄人人爽视频| 国产亚洲日韩在线三区黑人| 99re6久热只有精品6在线直播| 欧美色图成人网一区二区 | 久久久无码视频| 欧美 精品国产制服第一页| 18禁免费视频| 色欧美天天| 伊人婷婷五月天| 国产人伦精品一区二区三区| 久久精品女同亚洲女同13| 啊啊啊草死我| 成人短视频在线观看| 日少妇亚洲版| 91熟女网| 91麻豆va国产精品| 日韩美女久久一区二区三区| 亚洲第一男人天堂| 国产精品爱欲| www网站黄| 97av在线视频| 久久久久国产精品人妻aⅴ天堂| 超碰人妻97| 国产操逼逼网| 97超碰色屌| 国产一国产一级毛片古装| 精品亚洲一区在线观看| www.狠狠干.coom| 99久在线精品99re8| 无遮挡男女激烈动态图| 久久毛卡| 丰满人妻-区二区三区免费| 亚洲欧洲第二视频在线观看色图| 加勒比性爱成人在线| 激情黄色片在线观看| 99热免费| 1024精品在线| 丝袜大香蕉| 欧美青青草视频| 青娱乐福利99| 亚洲91网。| 私人尤物在线精品不卡| 婷婷伊人一区| 国产二区三区免费视频| 大香蕉久久| 乱操9999| 欧美性爱十八禁| 60秒免费小视频| ji熟女.com| 91 国产丝袜在线放观看| 91天堂丝袜美腿| 99热在线观看| 激情小说亚洲视频| 日本午夜久久电影| 啊啊啊啊嗯嗯在线久久久| 欧美性爱精品七区| 国产SV一线| 一本色道综合久久欧美| 欧美精品 - 91爱爱| 26uuu性物| 97公开久久| 天天干人人干天天日97| 色综合 加勒比| 九九九九九九九精品视频| 美女啊啊啊啊啊| 国产少妇肉丝在线观看| 亚洲无码精品AV久久久| 亚洲九九爱| 日韩黄片影院| 人妻喷水| 欧美日韩情色一区二区| 国产99精品一区二区三区免费| 九九热精彩视频| 免费看欧美美女黄色大片 | 最近2019中文字幕国语免费版| 色女综合| 免费少妇一区二区| 日日妻色网| 自慰白浆在线观看| 国产精品一区二区手机看片| 国产AV人人夜夜澡人人爽麻豆| 久久精品亚洲成a人天堂| 无套后入双马尾| 四虎 精品 WWW| 涩综合导航| 99re只有精品| 欧美疯狂做爰xxxx| 亚洲丝袜二区在线| 麻豆九九九| 国产综合永久精品日韩鬼片| 无码精品啪啪啪一区二区三区三州| 日韩AV熟女乱伦| 丝袜美腿亚洲| 日日躁狠狠躁天天躁精品| 色妺妺在线视频| 欧美日韩精品一区二区三区高清| 嗯嗯啊啊操我| 毛片久久| 男人 天堂 日 亚洲| 三级色综合| 男人亚洲天堂| 亚洲开心网| 97人妻人人躁人人玩人人| 亚洲国产一级中文综合久久天堂在线免费观看 | 一区二区视频在看| 九九英色视频| 91中文在线| 91丨九色丨国产丨人妻在线 | 亚欧毛片基地国产毛片基地| 中国91AV| 久草久日| 久久伦理视频久久大香蕉视频| 噜噜噜狠狠色综合| 黄片www.| 国产亚洲日本精品在线| 欧美性爱日韩性爱| jk白丝没脱就开始啪啪| 精品人妻一区二区三区四区石在线| 久久99干一本高清| 欧美一品道| 青青草白白色| 欧美曰韩国产精品| 97国伦国色| 97超碰美国| 午夜婷婷| 青青草日韩无码| www.色婷婷色综合| 91人人臊| 强奸xx国产| 三级片网站在线播放| 久久无码成人| 国产日韩在线播放| 在线无码操| 国产精品视频麻豆入口| 亚洲中文国际强奸字幕| 国产一区二区三区导航| 日本99热| 91粉芽高清在线一区二区| 91黑丝露脚| caorenqi shipin| 精品国产嫩穴视频| 欧美亚男人的天堂| 国产精品视频在线播放| 亚洲图片 激情小说| 国产精品网站免费| 精品人妻一二三四区视频| 久久久禁| 好湿好紧视频| 欧美亚洲91| 欧美色图综合| 一卡二卡三卡| 97超碰欧美精品| 香蕉视频欧美一卡二卡| 一级片视频啪啪| 国产黄色视频久久| 乳欲人妻办公室奶水| 精品人妻一区二区免费蜜桃视频| 被窝影院午夜看片无码| 天天看,天天做| 亚洲少妇色| 久久久18禁| 欧美亚洲宗合色性图| 4虎在线视频| 大香蕉伊人75| 国产传媒操逼视频| 丁香六月婷婷| 五月激情综合网| 熟女丝袜视频| 91痴汉| 在线观看中文字幕| 极品尤物女神在线观看| 97中文天堂| 性爱AV天堂| 蜜臀Av一区二区三区| 亚洲不卡三级手机播放| 亚洲偷拍自拍在线视频| 久久人人妻| 亚州日韩97| 中文字幕在线免费观看| www亚洲免费| 亚洲福利中文字幕在线| 青青草色情网站视频| 欧洲自拍第一页| 人妻一区二区三区四区视频| 久久亚洲精品成人av| 性欧美另类高清| 青青草久草AV| 91社区拍啪人妻| 日韩成人色图| 丝袜 中出 制服 人妻 美腿 中文字幕| 亚欧高清| 国产精品交换一区二区| 人人妻人人色一区二区三区| 日韩欧美成人综合在线| 久久久不能久久久久| 亚欧美色图| jk白丝没脱就开始啪啪| 91在线限制级| 日韩有码专区| 91oumei| 久久精品女同亚洲女同13| 亚洲无码成人精品| 国内精品不卡无毒99999| 国产一区二区精品在线视频| 亚洲国产尤物yw在线观看| 日本 成 人 小说 电影 一区二区| 蜜臀aV午夜一区二区三区| 18禁在线视频| 中文字幕一二三区| CCYY草草影院地址入口| 精品久久久久瑟瑟| 色综合一区二区三区| 99在线观看| 99福利社| 色色色色网站| 澳门色噜噜色噜噜色噜噜色噜噜色噜噜| 免费观看的黄色的网站| 好屌色综合| 69少妇一区二区| 用力操死我| 亚洲 无码 偷拍| 色第一页| 午夜福利无毒不卡| 欧美精品久久| 免费久久精品麻豆一区二区av| 九九综合网| 国产女性无套 免费观看| 怡红院网站在线视频| 国产激情av女片自拍| 久久久久96| 欧美性爱精品一区二区| 情色图区| 国产欧美日韩臀| wwwxxx日本爽| 中文字幕无码不卡啪啪| 午夜一区| 十八禁视频一区二区| 国产成自自拍在线观看| 国产一区二区三区影片| 好色综合| av久日| 久久久国产成人一区二区三区在线| 性感美女啊啊啊在线| 色婷婷导航| 亚洲加勒比| 黄总AV色图| 一区二区影院| 三及片网站| 中文字幕丝袜美腿| 欧美日韩香蕉| 久久免费99精品久久久久久| 久久久久人| 爱射综合| 综合av社区| 蜜臀一二三区| xxx亚洲午夜天堂| 午夜120视频在线观看| 天天综合网亚洲综合网| 天天肏美女| 成人亚欧免费视频| 国产又猛又粗又爽又黄| 亚洲精品电影| 亚洲男人的天堂在线看| 熟女人妻av在线资源,黄色的资源| 久久久久久国产成人| 亚洲色图8| 国产性刺激| 特级丰满少妇一级AAAA爱毛片| 亚洲欧美另类小说| 99精品久久久久久| 欧美亚洲国内自拍| 美国一区二区免费视频| 一级特黄aaa大片在线观看成人一级片在线观看 | 看日韩美女二区三区免费操逼视频 | 久久性爱精品一区| 日本506070| 成人一级二级| 午夜福利在线视频1000| 日日干日日| 日本五十路熟女一区二区| 久久精品一区二区三区四区五区| 成人开心网在线视频| 婷婷情色五月天| 另类在线| 综合欧美日本三级| 操逼逼福利视频| 操操操五月天婷婷丁香影院| 伊人91| 日韩在线观看AV| 亚洲精品蜜桃久久久久久久| 啊啊啊啊啊操我视频| 熟女精品一区二区三区| 久久久五月天| 亚洲影视综合网| 动漫爆乳3D奶水一区在线观看| 操操逼视频| 亚洲国产精品成人久久蜜臀| 9Ⅰ超碰| 综合网亚洲1| 天天激色| 亚洲精品1区| 欧美激情片一区二区| 亚洲欧洲美腿丝袜| 九九热九九热| 亚洲,欧美,春色,另类| 午夜男人一级A片7777| 18禁网站在线播放| 亚洲欧综合另类无码一区| 亚洲国产精品无码AV久久久| 正在播放国产精品一区| 国产精品熟女九色九色蜜臀| 国产操逼逼网| 啪啪一区| 殴美性色a级欧美| 日本有码久久| 久久超碰亚洲人| 黄总AV色图| 91撸色网 玖玖网 欧美| 60秒免费小视频| 亚洲精品 欧美精品| 麻豆一区在线| 日本免费一区二区不卡| 激情婷婷丁香网| 在线洲亚线| 天天狂操夜夜狂日| 亚洲欧美一区二区网址| 亚洲午夜AV| 97干色| 婷婷色香| 国产亚洲日本| 九九九只有精品| 麻豆天天躁天天揉揉AV| 不卡在线观看视频| 91P0RNY大屁股人妻| 午夜乱轮操逼视频免费看| 加勒比久久综合网高清| 亚洲 欧美日韩 另类| 免费综合亚洲中文| 久久国色天香香蕉| 欧美91精彩| 人妖欧美一区二区| 女性喷水高潮在线观看| 黄片www.| 人人色人人射人人妻| 91真人天天在线| 色九色久| 亚洲欧洲日本精品中文a∨| 久久国产乱子伦精品免费女人| 国产69精品久久久久99尤物| 美女尤物福利视频| 99日视频在线免费| 少妇熟女1区2区3区| 一级久久久久久久久久久| 五月天丁香| 亚洲欧美一区二区不卡视频播放| 97久久超碰日韩精品| 婷婷操视频| 99精品成人免费看| 97色97好| 亚洲欧美不卡线| 一牛影视成人片免费| 日本三级久| 欧洲大香蕉| 97超碰站| 无码色| 欧美综合网1| 国产毛片片精品天天看视频| 97人人操人人干| 一本久久精品中文字| 永久免费观看的毛片的网站| 91黑人无码激情在线| 天天享受天天看| 天天做天天爱| 色色色综合网| 人妻少妇无码 | 狼狼色丁香久久婷婷综合五月| 乱精品一区字幕二区| 青青青草原| 色在线亚洲视频www| 综合久欧洲| 黄骗免费网站| 亚洲色图大香| 国产精品久久久亚洲第一牛牛_在线观看| 人人玩人人添人人澡免费| 农村妇女一级二级三级视频| 91n处女在线观看| 自拍大香蕉乱插| 69久久久久久久久久久久久| 欧美成人四级在线播放| 97操在线| 3P乱轮视频| h色99999| 久久av成人无码免费| 色九九九综合| 国产亚洲美日韩Aⅴ中文字幕无码成人| 一区二区三区四区五区高清无码永久视频 | 丝袜综合网| 久久97| 久久久久久久91| 久久婷婷五月综合| 日韩少妇无码| 国产乱婷婷精品二区三区| 热思思免费视频| 中美日韩毛片| 国产精品制服丝袜清纯唯美 | 黄片直播三级黄片两女一男| 丝袜视频网国产90| 天天日天天插| 国产高清成人免费视频| 欧美国产有色电影| 亚洲国产成人精品久久久国产成人一区二区三. | 熟女熟妇一区二区三四区| 免费观看的av| 草草草视频在线免费看| 91丝袜美腿片| 婷婷色色网| 欧美AB在线| 夜夜操av亚洲一区二区| 最新三级网址| 九九九九亚洲| 97超碰色屌| a级成人毛片免费视频高清| 激情婷婷丁香网| 国产按摩一区二区三区| 久久伊人亚洲AV无码网站| 久热久操| 久青草影院| 精品国产av一区二区三区四区入口| 国产污视频麻豆传媒一区二区| 国产一区在线观看无码AV| 亚洲天天精品| 97色爱| 日韩一级成人毛片免费观看| 久久岛国| 天天操天天7| 午夜人妻精品综合在线| 亚洲av无码成电影在线播放| 亚洲伊人青青草| 蜜臀精品1区2区| 免费A V在线播放| 久久久人妻| 亚洲蜜臀视频精品久久| 91天天日| 婷婷色五月激情| 操婢日韩| 日本不卡一区| 亚洲素人综合| 国产精品第二页| 日韩人妻少妇 一区二区三区| 激情五月天插| 9999久久久| 精品国产乱码久久久久久日本公司| 欧美人妻精品| 中文字幕一区二区三区视频播放| 可以在线观看的黄色网址| 91熟女在线| 97欧美久久久久久久| xxx亚洲午夜天堂| www.99热| 久久老子无码午夜伦不卡| 久思思热视频在线观看| 欧美日韩1234| 啊啊啊啊啊啊在线| 蜜桃久久一区| 欧美体内射精| 综合视频91| 精品一区二区三区四区女| 校园春色 男人天堂 | 内射黑人| 91国产丝袜足交精品视频| 色色色热| 色婷婷久久| 国产精品久久成人免费| 日本成人A片免费看| 亚洲AV免费在线| 奇米四色影视777久久久| 自拍偷拍 日韩欧美| 91人人| 日韩欧美传媒一区国产| 色色九区| 久久精品熟妇丰满人妻99| 麻豆天天躁天天揉揉AV| 日韩成人小视频| 九九九九九九精品| 亚洲av资源| 亚欧美综合网| 9久精品| 97在线观看| 污色区网站| 欧美精品成人一区二区在线观看 | 好吊色在线观看| 欧亚综合一卡二卡中文字幕| 亚洲一区深夜| 96久久科窝| 密臀在线免费观看| 国产精品欧美激在线| 超碰夫妻97| 九九九精品一区二区无码| 狠狠做深爱婷婷久久二区| 一二三四视频在线社区中文字幕| 久久久久斤小| 自拍啪啪视频| 国产真实子伦对白| 小日子操bb在线看| 黄色欧美性爱视频| 丝袜 亚洲 偷拍| 日韩情色视频| 日日日大屁股骚女人精品| 欧美玖玖爱免费玖玖| av日韩中文字幕| 人人妻人人澡人人爽久久av| 国产又黄又粗又猛大片| 手机在线视频国内精品| 日韩午夜啪啪视频| 91亚洲精品青草| 美女黑人91神马| 精品久久久久成人码免| 亚洲色图欧美| 国产一级特黄大片处女| 成人性爱电影一区二区| xxx亚洲午夜天堂| 九九九精品一区二区无码| 国产综合久| 99亚洲精品| 天天躁日日躁AAAXX| 神马久久久久久| 日本三级一区二区 在线| 精品国产精品一区二区| 亚洲码和欧洲精品激情系列| 无码人妻丰满熟妇区毛片| 久久春色| 日韩AV熟女乱伦| 高树玛利亚无码流出| 日韩专区久久久| 男人的天堂 在线一区| 人妻日日干| 91AV老熟女视频| 欧美九一精品久久久熟妇| 国产老太乱伦一区| 午夜国产成人福利视频| 国产精品 午夜福利| 欧美,日韩,中文,另类| 中字幕人妻一区二区三区| 国产小视频91| 国产精品熟女九九九| 亚洲资源站| 亚洲国产成人精品无码专区| 91色图片| 日韩成人无码| 96精品在线| 91亚洲最新在线| 欧美大香蕉同搞| 国产超碰在线一区| 免费AV中文网在线观看| 人妻久久久久久| 肉丝中文无码高清| 欧美黑人精品在线播放| 69AV女优男人的天堂| 久久人妻熟女一区二区| 麻豆国产免费影片| 一本色道久久综合熟妇| 国产精品久久99日日| 超碰97在线 欧美 国产| 亚洲中文字幕在现观看| 啊啊啊啊嗯嗯嗯用力好爽| 欧成人在线| 欧美性爱伊人| 婷婷探花久久精品一区| 操逼操操操91| 综合网亚洲在线| 亚洲最大无码中文字幕网站| 综合大香蕉美。| 国产一区二区欧美日本| 狠狠干妹子| 国产女生在线| 天天射天天色成人| 亚洲综合激情五月久久| 丰满人妻一区二区三区免费| 99re视频在线观看这里只有精品| 玖玖久久久| 九九九九久久久| 91色香| 久久国产99精品72福利 | 青青草中文-久久青草精品一区二区三 | 亚洲精品97| 欧美日韩黄色片一区二区三区四区人与兽做爱 | 日本一本一区二区三区四区五区欧美日韩中文字幕 | 天堂8在线新版官网| 国产又长又大又粗的视频| 精品性爱一区二区| 中国91AV| 黄色乱论网站| 人人玩人人添人人澡免费| 九九九精品一区二区无码| 国产www色在线观看| 91熟女视频网| 骚货人妻偷情自拍在线视频| 四虎午夜影院| 久久久久久裸体| 99久在线精品99re8热| 中日韓欧美高清| 日韩三级网址| 97人人操人人摸人人爱| 大香蕉视频啪啪啪啪| 色性欧美| 一区二区三区黄片免费观看| 午夜噜噜噜| 久久一留热品黄| 美女国产一区二区久久| 超碰美女97| 97精品97| 狠狠穞A片一區二區三區| 色吧5亚洲| 亚州男人的天堂| 激情综合五月| 一级aaaaa欧美中文字幕录像片| 竹菊一区二区三区AV线| 亚91亚洲网| 国产AV高清AV无码| 蜜臀无码视频在线观看| 好吊爽好吊爽在线视频,中文字幕精品一区二区日本,国产良妇出轨视频在线观看, | 精品国产一区二区三区av在线资源| 日韩欧美性爱电影在线观看| 97欧美色综合| 日韩三级伊人| 精品国产综合久久福利,热99这里有精品综合久久,99热这里只有免费国产精品,精 | 亚洲风情综合网| 热天堂一区二区| 精品区国产区一区二区三区| 2023天天操夜夜操| 熟妇无码视频三区| 少妇三P| 色哟哟的毛片| 国产无码一二三区| 亚洲日本激情| 亚洲图片欧美色| 亚洲女人毛茸茸91| 青青草大香蕉在线视频| 久久乐| 性爱1区| 中文字幕日韩人妻视频一区二区三区 | 欧美写真视频一区| 久久 久久国内精品亚洲| 精品一区96| 婷色五月| 99精品久久久久久久婷婷蜜桃| 亚洲好看强奸乱伦| 老司机午夜精品视频| 俞拍久久国应视频| 四虎精品永久在线观看| 久久精品高清无码一区| 国产五码丝袜屁眼| 日本精品人妻少妇一区二区| 大香樵伊人网| 99只有精品| 一区在线国产播放| 操逼逼无码| 国产午夜激片Av毛片不卡| 国产无码精品高清| 一本色道综合久久欧美| 97啪啪| 亚州综合色| 麻豆成人影音在线| 人人操人人肉久久精品| 农村少妇久久久久久久| 91精品国产91久久久久久久久久久久| 久久人妻无码毛片A片麻豆| 使劲用力艹少妇视频一区二区| n1038 一二三区| 人妻密肉在线观看| 殴美日韩m| 蜜桃视频一区二区三区在线观看| 少妇毛片久久| juliaann丝袜大战黑鬼| 一区二区视频你懂的| 一区二区三区成人| 国产免费一区| 色原狠狠天天天| 少妇三p| 淫荡网址| 日韩免费三级黄片电影| 人妻献身系列第54部| 精品国产无码中文| 日韩精品1区2区中文字幕| 久久久久久久国产a∨| 亚洲黄色a级片| 亚洲精品久久久久久久蜜桃臀| www.激情| 亚洲熟女乱色| 美日韩一二三区| 91男女| 韩国三级色呦呦| 亚欧高清| 国产色呦呦| 日日夜夜干| 免费人人搞97| 人人摸人人舔一区二区| 精品国产乱码久久久| 国产精品不卡av免费在线观看| 思思视频免费看网站| 国产精品一区二区三区,亚洲综合| 1769精品一区二区三区| 极品丝袜无码| 在线观看午夜婷婷久久久久清性观看| 久9爱精品| 精品国产av一区二区三区四区入口| 性爱边摸边日免费AV| 五月激情啪啪| 日韩ab网 | 久久这里只精品免费福利| 精品久久久久av影院| 亚洲五月丁香花狠狠干一区二区三区| 91国产大片| 偷拍亚洲视频一区二区三区四区| 成人精品在线免费视频| 久精品无码av一区二免费国产在线观看 | 97丝袜亚洲在线播放| 91性网| 韩国成人精品久久久免费看 | 麻豆天美91| 亚欧Av| 884t在线| 好色综合| 日本福利二区视频| 久久AV无码1区2区3区| 67914在线兔费成人视频| 欧美一区二区三区互相| 国产激情久久| 久久精品日韩专区免费观看| 翔田千里A片一区二区| 美女自卫慰黄网站免费| 九九拍拍精品视频在线播放 | 婷婷五月色| 久久宗合亚洲| 免费a级毛片av无码久久精品中文字幕| 再深点灬舒服灬太大了好硬好爽| 日韩钢筋无码高清啾啾啾| 青青草久草| 激情专区综合| 麻豆黄站| 人妻81p| 99热在线不卡| 中文字幕av亚洲精品| AV九九| 欧美美逼| 欧美性爱在线无码| 91色s| 午夜偷拍久久熟女| 1000午夜黄色| 精品国产无码中文| 大香蕉99热| 久久国产在线一区二区| 麻豆黄色五月天| 熟妇色99| 国产在线76页| 熟女精品日韩一区二区三区| 日本色色网| 亚洲 日本 不卡| 超碰av在线| 999久久久国产精品| 亚洲综合在线视频| 欧美姓爱综合网| 人妻久久久久久| 97在线免费看视频| 九九九九久久久| 91黑丝在线| 日本不卡高清免v欧美日韩在线观看| 97超碰色色| 天天肏美女| 亚洲欧美日韩制服另类| 久热精品色情| 美女写真| 天美av在线| 七久久久| 美女熟妇色| 裸体1区| 国内精品伊人久久久久影院会| 久久精品六区| 免费夜夜爱黄色视频毛片| 熟女人妻精品一区二区视频| 美女人妻色网站| 夜夜操青青草| 亚洲玖玖爱| 亚洲国产精品久久久久久久久久| 婷婷久月| oumeizonghese,www| 欧美黑人精品一区二区| 久久有码视频| 大香蕉在线视频15| 成人性爱av| 欧美精品亚洲精品日韩传电影| 亚洲激情av| 97超碰磁| 嫩草91| 蜜桃久久一区二区三区| 国产欧美日本亚洲精品| 九一综合网| 99视频只有精品| 天天看天天干| 亚洲精品黑丝| 欧美性天天影视| 国产精品原创巨作?v网站| 五月天亚洲网| 久九干| 97人人操人人摸人人爱| 大香蕉综合网| 色偷综合| 亚洲色图大香| 欧美一级国产一级| 国产馆| 色婷婷婷五月天激情四射| 91在线精品| 天堂v无码免费视频| 97欧美色综合| 97玖玖人妻| 日韩黄色一区二区三区| 久久的免费性爱视频| 男人的天堂日韩| 18一区二区三区| 91精品国产麻豆国产自产在| 男插女青青影院| 91亚洲黄色网| 亚洲综合骚逼| 国产伦精品免编号公布| 国产精品无码AV网站| 国产91影院| 亚洲综合有码| 好爽免费视频,| 久久这里精品国产99丫e6| 日韩不卡毛片Av免费高清| 亚洲欧美日韩制服另类| 天天综合青苹果| 曰韩少妇无码| 久久久久久91香蕉国产| 六月丁香五月婷婷| 丝袜熟女一区二区三区| 久久双插| 日韩肏逼视频| 97视频免费播放| 我爱操| 蜜臀aV午夜一区二区三区| 影音综合网| 欧美性猛交美女自慰91| 亚洲国产激情国产av| 国产三区免费在线观看| 欧美1区二区三区公司| 久久久久9999| 欧美日韩资源| 四虎影视欧美| 加勒比综合在线| 日韩精彩视频| 欧美第二页午夜| 激情人妻另类| 九九九九九九九九九五码| 啊啊啊好湿久久| 色一射色一射| 中文字幕 一区二区 亚洲无码| 欧美躁死她一区二区| 超碰91在线| 91GD.COM| 91操人| 天天色综合图片| 人妻久久久久久| 99成人| 亚洲成人av色网| 久草成人福利导航| 99re6久热只有精品6在线直播 | 色欲天香天天综合网-成年人三级片网站-欧美乱妇狂野-日韩国产专区-久久久久久 | av网页一区二区三区| 国产探花精品在线| 黄色在线网站| 在线强奷到舒服的无码视频| 国产精品岛国片在线观看| 成年人性爱日韩| 在线观看综合精品亚洲| 国产精品老师| 久久久久久国产精品| 日韩一级二级| 91 国产丝袜在线放观看| 日产中文字幕2020| 国产成人主播| 曰本道人妻久久久在线不卡色视频| 另类专区加勒比| 国产一区二区精品久久久不卡蜜臀| 亚洲欧美综合网| 夫妻天天操岛国视频| 亚洲成人激情小说视频| 伊人丁香五月婷婷| 日本在线不卡v二区| 九九热精品在线| 91人人爽人人爽| 美国久久一二三四| 色综合 加勒比| 欧美加勒比| 亚洲av综合伊人久久| 一本大道不卡一二三区| www.色婷婷色综合| 熟女丰满人妻一区| 日韩 成人 有码| 嗯嗯嗯啊啊在线观看| 中文字幕欧美日韩三级| 欧美成人四级在线播放| 中文字幕永久在线| 九九热最新| 在线天堂资源亚洲| 亚洲久久久| 中文久久久| 干我久操| 1人人看人人摸人人操| 亚洲成aⅴ人片不卡无码| 女人被男人桶爽视频网站| 日韩国产乱子伦App| 欧美一级国产一级| 手机在线看片免费人成视频| 亚洲啪啪视频免费| 久久老女人| 岛国大片在线观看网站入口| 九九人人操| 国内操逼视频二区| 深夜激情| 亚洲免费成人在线高清无码视频| 国产一级片| 麻豆精品天美| 97这里只有精品| 国产一区二区欧美日本| 99自拍B亚洲| 精品少妇一区二区| 国产女人高潮嗷嗷嗷叫小说| 久久国产精品一级二级三级| 超碰综合97在线| 岛国在线国产| 67914亚洲精品| 黑人粗大V S日韩女优视频| 日韩av性爱在线播放| 色婷婷小说| 豆1无夜无码| 国产精品久久久无码aV去| 95人妻爽爽人人做人人澡| 欧洲亚洲人人爽爽视频| 国产真乱mangent| 日本精品一区三区| 亚洲骚男同com| 国产99精品一区二区三区免费| 91女在线观看| 99久久99九九99九九九| 国产高清MV操逼视频| 亚洲精品欧洲精品| 成人免费性爱视视| 91oumei| 欧美韩日精品99综合| 国产高清MV操逼视频| 欧美性爱一区二区三区四区 | 亚洲色图欧美色18直播在线| 美女尤物人人操| 久久亚洲天天做| 性夜影院爽黄A爽免费动漫| av九九| 91精品导航| 丁香婷婷久久| 蜜桃久久一区| 十八禁啪啦拍视频无遮挡| 91色人| 国产精品蜜乳AV| 欧美激色| 成年女人黄网站| 精品成人女人久久| 99国产在线 精品 视频| 久久久久久久久久久久黄色| 五月丁香六月综合缴清无码| 蜜臀精品1区2区| 美日韩男女操屄视频| 欧洲免费一区二| 欧美gv在线观看| 成人网欧美风情| 欧美Aⅴ| 夜夜 中文视频rt| 强奸乱伦大香蕉网| 亚洲欧美国产精品久久久久久久| 欧美黄片视频在线观看免费| 国产国产亚洲一二三久久| 激情色播| 久久久久久久人妻丝袜| 有码人妻系列| 秋霞一级A片黄色视频| 久久m| 亚洲性爱无码乱伦av| 0755午夜福利视频| 91黑丝在线播放| 人人看黄色视频| 国内97干免费看| 亚洲偷拍自拍在线视频| 国产免费内射视频| 性感女人网页在线观看视频| 久久午夜鲁丝片| 青草影院内射高潮| AV综合中文字幕干| 69精品| 亚洲男人天堂2016| 欧美性爱精品一区二区| 亚洲欧美色图片| 国产熟女二区| 久热9| 久久久久久99AV无码免费网站| 91爱看| 激情99| 自怕偷自怕亚洲精品| 影音资源男人日韩| 久久午夜伦| 无码丰满熟妇一区二区浪潮AV| 欧美久久人体| 欧美在线色图| 亚洲av影院在线观看| 嗯嗯啊好爽| 日韩性爱小视频| 久草男人天堂| 加勒比大香蕉视频在线| 91香蕉视频在线观看免费| 天天舔日美女视频| 激情终合网| 国产免费一区二区在线A片视频| 久久成年片色大黄全免费网站| 加勒比五月天| 精品人人| 熟女视频久久| 久久性爱精品一区| 伊人91| 国产一区二区精品在线视频| 骚货人妻偷情自拍在线视频| 国产探花精品在线| 日韩在线观看三级电影| 综合大香蕉美。| 在线综合 亚洲 欧美中文字幕| 天天爽人人综合免费7799| 成人无码在线视频网站| 人妻天堂三区| 欧美青青草视频| 亚洲成人精品久久久| a久久| 秋霞一级视频在线观看免费| 一级二级三级黑人无码| 青青草好吊色| 97视频在线免费| 青青草色插素人| 91黑丝少妇| 激情五月婷婷| 熟女人妻一区二区三区| 日韩免费在线视频观看| 国产精品福利资源在线尤物| 亚洲色图A| 久超碰这里只有精品| 96国产污污污丝袜| 婷婷激情一区二区三区俺也去| 99热免费| 中文字幕在线免费观看视频| 日韩一级成人毛片免费观看 | 久久精品视频在线观看| 91丨国产丨白浆| 色婷婷丁香五月| 九九aV| 激情久久av一区av二区av| 风流老熟女一区二区三区l| 91成人高清在线观看| 久久精品国产亚洲AV先锋| 天天看片青娱乐| 加勒比海人人操超碰在线| 亚洲熟女乱综合一区二区在线-...亚洲国产日韩欧美一区二区三区,久久久久久精 | 九9热伊人| #NAME?| 欧洲大香蕉| 色天使AV天堂| 亚洲做性| 96超碰网| 天天干夜夜鈤| 丰满人妻一区二区三区四区| 大香蕉99re| 国产搭汕a级片| 狠色婷婷久久一区二区三区_| 伊人91| 精品人妻av区天天看片| 香蕉99秘 一区精品蜜桃臀| 日韩在线电影| 国产乱子伦一区二区三区在线观看| 久热最新在线杭州| 久久狠狠色噜噜狠狠狠狠97| 手机看片91人妻| 久久受www免费人成| 免费黄色片。| 看黄片视频免费| 中文字幕在线高清男人的天堂|