欧美成人午夜精品久久久,国产?V天堂一区二区三区,欧美精品va在线观看,亚洲一区二区三区免费在线观看,av无码精品一区二区久久,欧美性爱视频不卡一区三区,欧美乱人伦视频在线观看,国产一级牲交高潮

ARTICLE DETAIL

資訊詳情

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

LLM購物助手落地指南:從對話到購物車的架構與代碼實現(xiàn)

LLM購物助手落地指南:從對話到購物車的架構與代碼實現(xiàn) 做 LLM 應用的人十有八九遇到過同一個尷尬對話、問答、文本總結都跑通了演示效果也很驚艷但一提到“下單”“加購”“支付”這種真實交易動作項目就卡住了。要么是模型只能在對話框里聊得熱鬧要么是業(yè)務系統(tǒng)根本不敢讓 AI 直接碰購物車。這個“從 LLM 到購物車”的距離恰恰是 LLM 應用從 Demo 走向生產力的關鍵一環(huán)。最近在一些電商出海項目里我一直在研究一個非常具體的場景用戶在聊天窗口里說“我想買一瓶 30 歐元以內的波特酒”LLM 能理解意圖、檢索商品、把東西加進購物車然后讓用戶確認結算。整個流程聽起來不復雜但真正實現(xiàn)時會碰到工具調用、商品檢索、數(shù)據(jù)一致性、權限安全等一系列問題。這篇文章就圍繞一個虛構但很典型的葡萄牙電商場景完整拆解從 LLM 對話到購物車操作的架構鏈路、核心代碼和工程落地要點。讀完你可以自己復現(xiàn)一個最小可用的“LLM 購物助手”也知道下一步往生產環(huán)境走時該注意哪些坑。1. 這篇文章真正要解決的問題先說清楚為什么“LLM 到購物車”值得單獨寫一篇文章市面上講 LLM Agent、RAG、MCP 的文章已經(jīng)很多但大多停留在一個層面——讓模型“會說話”或者“會查資料”。而購物車屬于交易鏈路它對準確性和安全性要求完全不一樣。想象一個葡萄牙電商平臺的場景。用戶在聊天窗里用葡萄牙語說“Preciso de um vinho do Porto até 30 euros para oferecer.”我需要一瓶 30 歐元以內的波特酒送人。如果只是讓 LLM 回復一句“好的我?guī)湍艺摇蹦沁@個應用毫無價值。用戶真正需要的是模型理解意圖 → 從商品庫中找到符合條件的波特酒 → 把商品加入購物車 → 返回購物車摘要給用戶確認。每一步都必須可執(zhí)行、可驗證、可回滾。所以這篇文章要解決的核心問題是LLM 如何安全地調用業(yè)務系統(tǒng)不是讓模型直接寫數(shù)據(jù)庫而是通過受控的工具Tool/Function Calling操作購物車 API。商品知識怎么給到模型商品信息經(jīng)常變化不可能全部塞進 Prompt需要 RAG 或結構化檢索兜底。多輪對話中的狀態(tài)管理用戶可能先問產品再問價格最后才說“加入購物車”Agent 怎么記住上下文。生產環(huán)境的安全邊界模型輸出不可控購物車操作必須做參數(shù)校驗、冪等和權限控制。這篇文章適合正在做 LLM 應用開發(fā)、想讓 AI 真正觸達業(yè)務交易的讀者也適合對電商系統(tǒng)接 AI Agent 感興趣的架構師。如果你只是寫對話機器人這篇文章可能偏工程化如果你想做 AI 導購、智能客服、Agent 購物助手那這篇文章正好踩在你的需求點上。2. LLM 到購物車核心鏈路與架構判斷從架構上看“LLM 到購物車”不是一條直線而是四層協(xié)作。我習慣把它拆成下面這張邏輯鏈路用戶消息 ↓ LLM 對話層意圖理解、多輪上下文 ↓ Agent 工具層Function Calling、工具選擇、參數(shù)提取 ↓ 業(yè)務服務層商品檢索、購物車 API、訂單服務 ↓ 數(shù)據(jù)層商品庫、向量索引、購物車存儲每一層干的事情完全不同想清楚之后再動手才不會把自己繞暈。第一層LLM 對話層。這一層負責理解用戶說了什么。它不做業(yè)務操作只負責把用戶的自然語言轉換成結構化意圖。比如“我要一瓶 30 歐元以內的波特酒”在這一層會被理解成用戶想買酒、有價格上限、是波特酒品類。這一層的輸出是“意圖 關鍵參數(shù)”不是 SQL也不是購物車操作。第二層Agent 工具層。這一層是 LLM 和業(yè)務系統(tǒng)之間的“隔離帶”。LLM 不直接訪問數(shù)據(jù)庫或購物車而是從預定義的工具列表中選擇合適的工具。比如search_products、add_to_cart、view_cart。LLM 要做的是給工具填參數(shù)真正執(zhí)行交給業(yè)務服務。這個設計背后的原因是模型輸出天然不穩(wěn)定必須用代碼約束模型能做的事情。第三層業(yè)務服務層。這里就是傳統(tǒng)后端開發(fā)的地盤。商品檢索服務查數(shù)據(jù)庫或向量庫購物車服務執(zhí)行加購操作。這一層要做參數(shù)校驗、權限校驗、冪等控制它是整個鏈路的安全底線。第四層數(shù)據(jù)層。商品結構化數(shù)據(jù)、向量索引、購物車存儲。對購物車來說數(shù)據(jù)一致性很關鍵比如庫存不足時不能加購商品下架時要從購物車移除。這個架構的直觀類比是LLM 像一個聰明的導購員它很會說話但不能直接碰收銀臺。它把用戶的需求轉達給收銀員業(yè)務服務收銀員確認商品、價格、庫存之后才會真正把東西放進購物車。有一個常見誤區(qū)要提前說很多人以為讓 LLM 直接調數(shù)據(jù)庫、直接執(zhí)行 SQL 就是“LLM 到購物車”。這在 Demo 里能跑但生產環(huán)境絕對不能這么做。模型生成的 SQL 一旦出錯輕則查詢失敗重則誤操作數(shù)據(jù)。更穩(wěn)妥的做法是LLM 只負責“意圖理解 參數(shù)提取”SQL 和寫操作全部由固定代碼完成。工具層就是這層保護網(wǎng)。3. 場景設計與環(huán)境準備3.1 場景定義葡萄牙電商購物助手為了把文章講具體我們定義一個可復現(xiàn)的場景。假設我們要為一個面向葡萄牙市場的電商平臺做一個 AI 購物助手支持以下能力用戶可以用英語或葡萄牙語描述購物需求。助手能檢索商品目錄支持按品類、價格區(qū)間、關鍵詞篩選。助手能查看當前購物車內容。助手能把符合條件的商品加入購物車。助手不處理支付支付環(huán)節(jié)由用戶在前端完成。商品數(shù)據(jù)我們用一個 JSON 文件模擬包含葡萄牙特色商品波特酒Port Wine、葡萄牙陶瓷瓷磚Azulejos、軟木制品Cork Products、橄欖油Olive Oil等。3.2 技術選型與環(huán)境要求本文示例使用 Python 生態(tài)核心組件如下組件用途版本建議Python編程語言3.10FastAPI購物車服務0.100openai 或兼容 SDK調用 LLM以官方最新版為準本地或云端 LLM對話與工具調用支持 Function Calling 即可內存數(shù)據(jù)結構模擬商品庫和購物車無額外依賴重點說明一下 LLM 的選擇。如果你使用 OpenAI 兼容接口包括各類國產大模型、本地部署模型只要模型支持 Function Calling / Tool Calling就可以跑通本文示例。如果沒有合適的 API也可以在開發(fā)階段直接用一個模擬的“假 LLM”返回固定意圖來調試購物車鏈路。后者我建議你至少做一次因為把業(yè)務鏈路跑通和調模型是兩件事。3.3 項目結構我們按下面的目錄組織代碼llm-shopping-cart/ ├── app.py # FastAPI 入口購物車 API ├── products.json # 商品數(shù)據(jù) ├── agent.py # LLM Agent 入口工具調用邏輯 ├── tools.py # 工具定義商品檢索、加購、購物車查詢 ├── retriever.py # 商品檢索模塊含簡單 RAG 檢索 ├── config.py # 配置文件 └── requirements.txt # 依賴清單這個結構足夠小適合學習和二次開發(fā)。實際項目可以把服務拆成product-service和cart-service但原理一致。4. 核心流程拆解從用戶消息到加購完成在寫代碼之前我們先完整走一遍流程搞清楚每個環(huán)節(jié)的職責。4.1 完整交互時序一次完整的“LLM 購物”交互可以拆成五個步驟第一步用戶發(fā)送消息。用戶在聊天窗口輸入自然語言需求比如“我想買一箱葡萄牙軟木杯墊預算 20 歐元以內?!钡诙絃LM 理解意圖并選擇工具。系統(tǒng)把用戶消息和歷史對話一起發(fā)給 LLM同時告訴它有哪些工具可用。LLM 判斷這一步需要通過search_products工具查商品于是返回一個結構化的工具調用請求包含參數(shù)query軟木杯墊,max_price20。第三步業(yè)務服務執(zhí)行工具。我們的代碼收到工具調用請求后執(zhí)行search_products從商品庫中檢索出符合條件的商品列表。第四步LLM 生成回復并確認加購。商品列表返回給 LLMLLM 組織語言告訴用戶“為您找到兩款軟木杯墊分別是 12 歐元和 18 歐元您想加入購物車嗎”用戶回復“加第一款吧”。這一次 LLM 調用add_to_cart工具參數(shù)是商品 ID 和數(shù)量。第五步購物車服務執(zhí)行加購并返回結果。購物車服務校驗商品存在、庫存充足然后執(zhí)行加購操作返回購物車最新內容。LLM 最后向用戶確認“已經(jīng)將‘經(jīng)典軟木杯墊 4 件裝’加入購物車當前購物車有 1 件商品合計 12 歐元。”4.2 每步的關鍵判斷這個流程最核心的架構判斷是LLM 不直接返回購物車操作是否成功的最終結果而是返回“我打算調用哪個工具、參數(shù)是什么”由代碼執(zhí)行并校驗。這樣做有三個好處可控性即使 LLM 生成了錯誤的參數(shù)業(yè)務服務可以拒絕執(zhí)行。可審計每次工具調用都可以記錄日志方便回溯??苫貪L加購操作是冪等的用戶取消時可以直接刪除購物車條目。4.3 多輪對話的狀態(tài)處理購物場景天然是多輪的。用戶可能在同一次會話中先搜索、再比價、再改變主意。Agent 需要維護對話歷史。最簡單的方案是把歷史消息逐條發(fā)給 LLM由 LLM 自行理解上下文。復雜方案是引入記憶模塊把用戶偏好比如“喜歡 30 歐元以下的酒”存起來后續(xù)對話直接使用。文章示例采用第一種方案代碼實現(xiàn)最直接也足夠支撐演示場景。4.4 語言問題葡萄牙語與英語混合面向葡萄牙市場的應用需要處理葡英混合輸入。LLM 本身有多語言能力這個不用我們額外做太多工作。真正的挑戰(zhàn)在商品檢索用戶用葡萄牙語描述需求但商品名稱可能是英語或葡萄牙語。解決方案是檢索時同時匹配多語言關鍵詞或者對商品名稱做翻譯索引。5. 完整示例代碼實現(xiàn)下面我們逐步實現(xiàn)整個鏈路。先從購物車服務開始再寫商品檢索最后把 LLM Agent 接上。5.1 商品數(shù)據(jù)先準備一份模擬商品數(shù)據(jù)。文件路徑products.json。[ { id: P001, name: Classic Cork Coasters (4 pcs), category: cork, price: 12.0, currency: EUR, stock: 50, keywords: [cork, coaster, 軟木, 杯墊] }, { id: P002, name: Premium Cork Coasters (6 pcs), category: cork, price: 18.0, currency: EUR, stock: 30, keywords: [cork, coaster, premium, 軟木, 杯墊] }, { id: P003, name: Port Wine Ruby Reserve 750ml, category: wine, price: 22.0, currency: EUR, stock: 100, keywords: [port, wine, vinho, 波特酒] }, { id: P004, name: Port Wine Tawny 10 Years 750ml, category: wine, price: 35.0, currency: EUR, stock: 40, keywords: [port, wine, tawny, vinho, 波特酒] }, { id: P005, name: Portuguese Azulejo Tile Decoration, category: ceramic, price: 15.0, currency: EUR, stock: 20, keywords: [azulejo, tile, ceramic, 瓷磚] }, { id: P006, name: Extra Virgin Olive Oil 500ml, category: food, price: 9.5, currency: EUR, stock: 200, keywords: [olive, oil, azeite, 橄欖油] } ]這里的keywords字段是多語言檢索的關鍵。用戶說葡萄牙語“vinho do Porto”我們匹配keywords里的vinho和port就能找到對應的波特酒。5.2 購物車服務用 FastAPI 寫一個最小購物車服務。文件路徑app.py。# 文件路徑app.py from fastapi import FastAPI, HTTPException from pydantic import BaseModel from typing import Dict, List import json app FastAPI(titleLLM Shopping Cart Service) # 模擬商品庫實際項目請?zhí)鎿Q為數(shù)據(jù)庫 with open(products.json, r, encodingutf-8) as f: PRODUCTS json.load(f) # 模擬購物車key商品IDvalue數(shù)量 # 實際項目請?zhí)鎿Q為 Redis 或數(shù)據(jù)庫存儲 CART: Dict[str, int] {} class AddItemRequest(BaseModel): product_id: str quantity: int 1 class CartItem(BaseModel): product_id: str name: str price: float quantity: int subtotal: float app.get(/products) def list_products(category: str None, max_price: float None): 商品檢索接口支持按品類和價格過濾。 result PRODUCTS if category: result [p for p in result if p[category] category] if max_price is not None: result [p for p in result if p[price] max_price] return {products: result} app.get(/products/{product_id}) def get_product(product_id: str): 按 ID 查詢單個商品。 for p in PRODUCTS: if p[id] product_id: return p raise HTTPException(status_code404, detailProduct not found) app.post(/cart/items) def add_to_cart(req: AddItemRequest): 加入購物車帶庫存和商品存在性校驗。 product next((p for p in PRODUCTS if p[id] req.product_id), None) if product is None: raise HTTPException(status_code404, detailProduct not found) if req.quantity 0: raise HTTPException(status_code400, detailQuantity must be positive) if req.quantity product[stock]: raise HTTPException(status_code400, detailInsufficient stock) CART[req.product_id] CART.get(req.product_id, 0) req.quantity return get_cart() app.get(/cart) def get_cart(): 查看購物車內容。 items: List[CartItem] [] total 0.0 for product_id, quantity in CART.items(): product next((p for p in PRODUCTS if p[id] product_id), None) if product is None: continue subtotal product[price] * quantity total subtotal items.append(CartItem( product_idproduct_id, nameproduct[name], priceproduct[price], quantityquantity, subtotalsubtotal )) return {items: items, total: round(total, 2)} app.delete(/cart/items/{product_id}) def remove_from_cart(product_id: str): 從購物車移除商品用于用戶取消或回滾。 if product_id in CART: del CART[product_id] return get_cart() if __name__ __main__: import uvicorn uvicorn.run(app, host0.0.0.0, port8000)這段代碼的關鍵點有三個參數(shù)校驗前置加購前檢查商品存在性和庫存避免把無效商品寫進購物車。購物車返回結構統(tǒng)一無論加購、查看還是刪除都返回同樣的結構方便 LLM 解讀。內存存儲僅用于演示CART字典重啟即丟失。生產環(huán)境替換為 Redis 或數(shù)據(jù)庫時接口簽名可以保持不變。5.3 商品檢索模塊購物場景里用戶很少直接說商品 ID更多是用自然語言描述。所以我們需要一個檢索模塊把用戶描述映射到商品。最輕量的方式是關鍵詞匹配數(shù)據(jù)量大了之后換成向量檢索。文件路徑retriever.py。# 文件路徑retriever.py import json class ProductRetriever: 基于關鍵詞匹配的商品檢索器。 生產環(huán)境建議替換為向量檢索 關鍵詞檢索的混合方案。 def __init__(self, products_path: str products.json): with open(products_path, r, encodingutf-8) as f: self.products json.load(f) def search(self, query: str, max_price: float None): 根據(jù)查詢詞和價格上限檢索商品。 query 支持中英葡多語言關鍵詞匹配商品名稱、分類和關鍵詞字段。 query_lower query.lower() results [] for p in self.products: # 將商品所有可搜索字段拼成一個文本塊 searchable_text .join([ p[name].lower(), p[category].lower(), .join([k.lower() for k in p[keywords]]) ]) # 簡單匹配查詢詞中的每個詞只要出現(xiàn)在可搜索文本中即命中 query_terms [term for term in query_lower.split() if len(term) 1] if all(term in searchable_text for term in query_terms): results.append(p) if max_price is not None: results [p for p in results if p[price] max_price] return results這個檢索器用all()保證查詢詞全部命中避免“只要是酒就行”和“我要波特酒”混在一起。它的問題是詞序無關、不做語義匹配但作為最小示例已經(jīng)足夠。生產環(huán)境建議的做法是用向量模型把用戶查詢和商品描述編碼成向量通過向量相似度召回候選再結合價格、品類等結構化條件過濾。5.4 LLM Agent 與工具調用現(xiàn)在到了最核心的部分讓 LLM 根據(jù)用戶意圖調用工具。我們使用 OpenAI 兼容的 Function Calling 接口。文件路徑tools.py和agent.py。先定義工具描述。這些描述會傳給 LLM模型根據(jù)描述決定調用哪個工具。文件路徑tools.py。# 文件路徑tools.py import json from retriever import ProductRetriever retriever ProductRetriever(products.json) TOOLS [ { type: function, function: { name: search_products, description: 根據(jù)用戶描述檢索商品。支持按關鍵詞、品類、最高價格篩選。, parameters: { type: object, properties: { query: { type: string, description: 用戶描述的商品關鍵詞例如波特酒、軟木杯墊、vinho do Porto }, max_price: { type: number, description: 最高價格歐元用戶提到預算時使用 } }, required: [query] } } }, { type: function, function: { name: add_to_cart, description: 將指定商品加入購物車。需要提供商品 ID 和數(shù)量。, parameters: { type: object, properties: { product_id: { type: string, description: 商品唯一 ID例如 P001 }, quantity: { type: integer, description: 購買數(shù)量默認 1 } }, required: [product_id] } } }, { type: function, function: { name: view_cart, description: 查看當前購物車內容和總價。, parameters: { type: object, properties: {} } } } ] def execute_tool(name: str, arguments: dict): 執(zhí)行工具返回給 LLM 的結果。 if name search_products: results retriever.search( queryarguments.get(query, ), max_pricearguments.get(max_price) ) return json.dumps({products: results}, ensure_asciiFalse) if name add_to_cart: product_id arguments[product_id] quantity arguments.get(quantity, 1) # 調用 FastAPI 購物車服務 import requests resp requests.post( http://localhost:8000/cart/items, json{product_id: product_id, quantity: quantity} ) resp.raise_for_status() return json.dumps(resp.json(), ensure_asciiFalse) if name view_cart: import requests resp requests.get(http://localhost:8000/cart) resp.raise_for_status() return json.dumps(resp.json(), ensure_asciiFalse) raise ValueError(fUnknown tool: {name})這里我直接用requests調用本地 FastAPI 服務讓 Agent 和購物車服務解耦。生產環(huán)境通常不會讓 Agent 進程直接調 HTTP可以換成內部 RPC 或者直接注入服務層對象。但 HTTP 調用的好處是邊界清晰本地開發(fā)調試也方便。然后是 Agent 主邏輯。文件路徑agent.py。# 文件路徑agent.py import json from openai import OpenAI from tools import TOOLS, execute_tool client OpenAI( base_urlhttps://api.openai.com/v1, # 當?shù)鼗蚱渌嫒莘瞻葱杼鎿Q api_keyYOUR_API_KEY # 請使用環(huán)境變量注入 ) SYSTEM_PROMPT 你是一個面向葡萄牙市場的電商購物助手。 你可以幫助用戶搜索商品、查看購物車、把商品加入購物車。 你不處理支付支付由用戶在網(wǎng)頁上完成。 當用戶要求加購時必須使用 add_to_cart 工具。 回復用戶時使用簡潔友好的語氣并給出商品名稱、價格和購物車總價。 def run_agent(user_message: str, historyNone): 運行 Agent處理用戶消息并返回最終回復。 messages [{role: system, content: SYSTEM_PROMPT}] if history: messages.extend(history) messages.append({role: user, content: user_message}) # 最多循環(huán) 5 次防止工具調用死循環(huán) for _ in range(5): response client.chat.completions.create( modelgpt-4o-mini, # 按實際可用模型替換 messagesmessages, toolsTOOLS, tool_choiceauto, ) msg response.choices[0].message # 沒有工具調用直接返回 LLM 的文本回復 if not msg.tool_calls: return msg.content # 有工具調用先把助手消息加入對話歷史 messages.append(msg) # 依次執(zhí)行每個工具調用并把結果加入對話歷史 for tool_call in msg.tool_calls: tool_name tool_call.function.name tool_args json.loads(tool_call.function.arguments) print(f[Agent] 調用工具: {tool_name}, 參數(shù): {tool_args}) result execute_tool(tool_name, tool_args) messages.append({ role: tool, tool_call_id: tool_call.id, content: result }) return 抱歉操作次數(shù)過多請重試。 if __name__ __main__: # 簡單命令行測試 history [] while True: user_input input(你: ) if user_input.lower() in (quit, exit): break reply run_agent(user_input, history) print(f助手: {reply}) history.append({role: user, content: user_input}) history.append({role: assistant, content: reply})這段代碼的循環(huán)邏輯值得仔細看每次把用戶消息發(fā)給 LLM附帶工具定義。如果 LLM 返回tool_calls說明它想調用工具。執(zhí)行工具后把工具結果以roletool的消息回傳給 LLM。LLM 基于工具結果生成用戶可讀的最終回復。這個“多輪工具調用”的循環(huán)是 LLM Agent 的核心模式。它允許模型根據(jù)需要連續(xù)調用多個工具比如先搜索商品再查看購物車再決定加購。5.5 配置文件與依賴最后是配置和依賴文件。文件路徑config.py。# 文件路徑config.py import os # LLM API 配置推薦用環(huán)境變量注入不要硬編碼 LLM_API_KEY os.getenv(LLM_API_KEY, ) LLM_BASE_URL os.getenv(LLM_BASE_URL, https://api.openai.com/v1) LLM_MODEL os.getenv(LLM_MODEL, gpt-4o-mini) # 購物車服務地址 CART_SERVICE_URL os.getenv(CART_SERVICE_URL, http://localhost:8000)文件路徑requirements.txt。fastapi0.115.0 uvicorn0.30.6 openai1.40.0 requests2.32.3 pydantic2.8.2注意版本號僅供參考請以實際環(huán)境可用的版本為準。如果模型 API 不支持 OpenAI 兼容協(xié)議你需要換成對應廠商的 SDK但整體邏輯不變。6. 運行結果與效果驗證代碼寫完之后按下面的順序啟動和驗證。6.1 啟動購物車服務pip install -r requirements.txt python app.py看到類似輸出說明服務啟動成功INFO: Uvicorn running on http://0.0.0.0:8000先手動驗證購物車 APIcurl -X POST http://localhost:8000/cart/items \ -H Content-Type: application/json \ -d {product_id: P001, quantity: 1}預期返回{ items: [ { product_id: P001, name: Classic Cork Coasters (4 pcs), price: 12.0, quantity: 1, subtotal: 12.0 } ], total: 12.0 }這一步驗證的是業(yè)務鏈路本身。如果購物車 API 有問題先在這里修好再往上接 LLM。6.2 啟動 Agent 并測試對話在另一個終端運行python agent.py然后輸入你: 我想買一瓶30歐元以內的波特酒送人如果一切正常你應該看到類似日志[Agent] 調用工具: search_products, 參數(shù): {query: 波特酒, max_price: 30} 助手: 為您找到一款符合預算的波特酒Port Wine Ruby Reserve 750ml價格 22 歐元。需要我?guī)湍尤胭徫镘噯崂^續(xù)輸入你: 加購物車吧預期日志[Agent] 調用工具: add_to_cart, 參數(shù): {product_id: P003, quantity: 1} 助手: 已將 Port Wine Ruby Reserve 750ml22 歐元加入購物車。當前購物車共 1 件商品合計 22 歐元。6.3 如何判斷是否成功一個功能完整的 LLM 購物助手應該滿足以下四條驗收標準意圖識別準確用戶說“30 歐元以內的波特酒”模型能正確設置max_price30和query波特酒/vinho。工具調用正確加購操作使用add_to_cart而不是模型編造的 SQL 或假數(shù)據(jù)。業(yè)務校驗生效如果用戶要加購一個不存在的商品 ID購物車服務返回 404Agent 能把這個錯誤轉化成友好提示。多語言可用分別用中文、英語、葡萄牙語測試同一需求模型都能理解。6.4 失敗時的第一排查方向如果 Agent 不調用工具而是直接生成文本回答先檢查三點模型是否支持 Function Calling不是所有模型都支持確認你用的模型和接口版本。工具描述是否清晰description寫得不清楚模型就不知道該在什么情況下調用。消息格式是否規(guī)范尤其注意tool_call_id必須與模型返回的一致否則接口會報錯。如果是模型調用了工具但報錯先看execute_tool里的異常信息再檢查購物車服務是否在運行、商品 ID 是否真實存在。7. 常見問題與排查思路把我在類似項目里踩過和見過的坑整理成一張排查表問題現(xiàn)象可能原因排查方式解決方案模型不調用工具只輸出文字模型不支持 Function Calling或工具描述不清晰查看模型文檔確認功能支持打印 tools 參數(shù)檢查描述換支持 Function Calling 的模型重寫工具 description明確“什么情況下調用”工具調用后報tool_call_id錯誤消息記錄中 assistant 消息與 tool 消息未正確配對檢查 messages 列表中 tool 消息的tool_call_id是否與 assistant 返回一致嚴格按照 OpenAI 協(xié)議先追加 assistant 消息再逐條追加 tool 消息加購時提示商品不存在商品 ID 是模型編造的或商品已下架查看 Agent 日志中add_to_cart的參數(shù)手動調用/products/{id}驗證在工具描述中強調“必須使用 search_products 返回的商品 ID”商品下架時返回友好提示用戶說葡萄牙語檢索不到商品商品索引缺少葡語關鍵詞檢查products.json的keywords字段補充多語言關鍵詞或者接入翻譯 向量檢索購物車數(shù)量不對加購接口重復被調用查看 Agent 循環(huán)日志確認是否多次執(zhí)行同一個工具在 Agent 循環(huán)中增加去重邏輯購物車服務做冪等控制一次對話中工具循環(huán)次數(shù)過多模型反復調用工具但沒有收斂打印每次工具調用的參數(shù)和結果限制最大循環(huán)次數(shù)本文為 5 次檢查工具執(zhí)行結果是否足夠明確生產環(huán)境模型返回不穩(wěn)定沒有用溫度參數(shù)控制輸出在 API 請求中設置temperature0或較低值對需要工具調用的請求建議temperature0減少隨機性購物車數(shù)據(jù)丟失使用了內存存儲重啟服務后 CART 被清空生產環(huán)境換 Redis、MySQL 等持久化存儲這里要特別強調一個問題模型編造商品 ID。這在不做檢索直接讓模型生成加購參數(shù)時尤其常見。預防辦法是工具描述里明確寫“product_id 必須來自 search_products 的結果”同時購物車服務側必須校驗商品是否存在。雙保險缺一不可。另一個容易被忽視的問題是重復加購。用戶說“把剛才那瓶酒加購物車”Agent 可能因為上下文理解不準確連續(xù)調兩次add_to_cart導致數(shù)量翻倍。工程上可以從兩方面兜底一是在 Agent 循環(huán)里維護已執(zhí)行工具的去重集合二是購物車服務支持“同商品合并數(shù)量”并對前端展示明確提示。8. 最佳實踐與工程建議到這里最小鏈路已經(jīng)跑通了。但真要上生產環(huán)境還有很多工程細節(jié)值得打磨。下面按優(yōu)先級排列。8.1 安全與權限邊界LLM Agent 能操作購物車就意味著它擁有部分用戶權限。這里有一個不可逾越的原則Agent 代表用戶操作但必須經(jīng)過用戶確認且不能越過權限邊界。具體落地建議加購操作先返回給用戶確認用戶確認后再執(zhí)行??梢栽?Agent 的add_to_cart工具前增加一個confirm_add_to_cart的中間步驟。會話必須綁定用戶身份。購物車不能是全局共享的每個用戶一個購物車Agent 調用購物車 API 時帶上用戶 Token。價格、庫存等關鍵數(shù)據(jù)以服務端為準不能相信 LLM 從對話歷史里記住的數(shù)字。用戶說“剛才不是 18 歐元嗎”時助手應該重新查商品接口確認。涉及支付、退款、修改收貨地址等高危操作不要交給 LLM Agent。購物車以下就是邊界。8.2 參數(shù)校驗與冪等模型生成參數(shù)是有概率出錯的所以業(yè)務服務必須當作“外部不可信輸入”來對待quantity必須校驗為正整數(shù)且不能超過庫存。product_id必須存在且商品處于上架狀態(tài)。加購接口最好支持冪等鍵。用戶點擊兩次“加購”不能加兩次??梢栽谡埱罄飵equest_id服務端記錄已處理過的請求重復請求直接返回原結果。8.3 工具設計粒度要合適工具的粒度直接影響 Agent 的穩(wěn)定性和業(yè)務安全。我的經(jīng)驗是查詢類工具可以給模型較大自由度比如search_products允許組合多種篩選條件。寫入類工具要給最小權限參數(shù)盡量少并且強制校驗。比如add_to_cart只接受商品 ID 和數(shù)量不接受價格、折扣這類模型不該決定的字段。工具數(shù)量不要太多。一兩百個工具會讓模型選擇困難建議按業(yè)務域分組或者做一個“工具路由層”先粗篩再精調。8.4 可觀測性與日志Agent 的每次工具調用都應該有完整日志包括用戶原始輸入。LLM 返回的工具調用名稱和參數(shù)。工具執(zhí)行結果。最終返回給用戶的文本。按trace_id貫穿整條鏈路這樣線上出問題時可以快速定位是模型理解錯了、參數(shù)傳錯了還是業(yè)務服務報錯了。8.5 RAG 與商品檢索的工程化本文用了關鍵詞匹配但真實商品庫動輒幾十萬 SKU需要更可靠的檢索方案。推薦分層架構召回層向量檢索商品名、描述、關鍵詞的 embedding召回 Top 50 候選。精排層用價格、品類、庫存、用戶偏好等結構化條件過濾和排序。兜底層如果召回為空觸發(fā)“相似品類推薦”或“向用戶說明庫存情況”而不是讓模型自由發(fā)揮。不要指望一個檢索函數(shù)解決所有問題。檢索質量直接決定 Agent 的體驗上限。8.6 多語言與本地化面向葡萄牙市場的應用語言本地化不是一句“模型支持多語言”就完了。要做的功課包括商品數(shù)據(jù)要有en、pt等語言字段或者至少保證keywords覆蓋主要語言。用戶可見的商品名稱、單位、貨幣格式要本地化。葡萄牙本地化的價格格式是22,00 €而不是€22.00這些細節(jié)會影響用戶信任感。模型 Prompt 里可以要求助手默認使用用戶當前語言回復。多語言場景下最好顯式把用戶的語言偏好傳到 Prompt 里而不是指望模型自己判斷。8.7 從 Demo 到生產的完整清單最后給一張檢查清單幫你判斷自己的 LLM 購物應用是否達到生產標準檢查項Demo 階段生產要求購物車存儲內存字典Redis/MySQL 用戶維度隔離參數(shù)來源模型直接生成業(yè)務側強校驗 商品 ID 來自檢索結果加購確認無用戶確認后再寫購物車權限控制無用戶 Token 綁定 操作審計日志無全鏈路 trace_id 日志模型選擇單一模型按場景區(qū)分對話模型、檢索模型、意圖識別小模型兜底策略無工具調用失敗時給出引導文案并上報灰度發(fā)布無小流量灰度監(jiān)控工具調用成功率和加購轉化率9. 總結與后續(xù)學習方向這篇文章的核心是把“LLM 對話”和“購物車操作”這兩件本來割裂的事通過四層架構串成了一條可落地的鏈路LLM 負責理解意圖工具層負責隔離和控制業(yè)務服務負責校驗和執(zhí)行數(shù)據(jù)層負責支撐檢索和存儲。整套代碼跑通之后你對 LLM 應用的理解會上一個臺階你會發(fā)現(xiàn)真正讓 AI 從“聊天”走向“交易”的不是模型本身多聰明而是工程上怎么約束它、校驗它、審計它。購物車只是一個縮影同樣的模式可以遷移到工單系統(tǒng)、CRM、供應鏈等任何“需要 LLM 調用業(yè)務系統(tǒng)”的場景。如果繼續(xù)深入學習我建議按這個順序展開Function Calling 進階研究不同模型對工具調用的差異比如并行工具調用、流式輸出時的工具處理。RAG 工程化把關鍵詞檢索替換成向量檢索接入真實商品庫關注召回率和準確率。Agent 框架選型在 Spring AI、LangGraph、自研編排之間做選型??蚣苣軒湍闶r間但本文的核心鏈路邏輯不會變。生產安全重點學習權限模型、操作審計、模型輸出校驗和 fail-safe 設計。最后提醒一句不要在還沒有業(yè)務校驗的生產環(huán)境直接放 Agent 寫購物車。先用最小閉環(huán)驗證用戶接受度再逐步放開權限。購物車雖小但它是交易的第一步值得用最高標準對待。建議把本文的示例代碼 clone 下來自己跑一遍尤其是agent.py里那個工具調用循環(huán)親手改幾個參數(shù)你會比看十篇文章理解得更深。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色五月丁香伊人| 免费视频99| 99热这里只有精品21| 国产成人AV在线播放| 97干在线观看| 色五月婷婷网| 丰满熟女人妻一区二区三| 婷婷五月乱交换| 五月婷激情影院| 天天综合激情| 成人短视频免费| 丁香五月先锋| 色欧洲| 99久操| 婷婷久久五月天| 久久五月丁香激情综合| 超碰在线观看9| 亭亭玉月丁香| 一月婷婷色色| 99色在线观看视频| 99热免费| 99热在线观看这里只有精品| 六月婷婷之青青草| 午夜九九九九九九九九九九九九九| 青草视频在线观看视频| 九九伊人网| 欧美成人性爱网| 日本 @ va 免费| 成人av观看| 99精品偷自拍| 五月天偷拍| av狠狠操| 久久开心五月婷婷| 五月熟妇婷婷久久| 色综合久| 婷婷的99视频网站| 国产成人AV在线播放| 97高清国语自产拍| 久久久com| 99爱视频免费| 武则天精品久久| 婷婷丁香五月天亚洲| 婷婷射图五月天| 综合色图婷婷| 丁香婷婷老熟女综合网| 五月色亭丁香| 丁香五月激情久久麻豆| 久久五月天丁香花| 狠狠色丁香久久综合婷婷亚洲成人福利 | 五月婷丁香花| 99热这里| AV在线免费播放| 1024在线一区| 色婷婷网大全在线| 婷婷综合在线网| 香蕉AV福利精品导航| 日本天天色| 日韩精品色| 色色色视频免费无码| 99ri国产| 九九色99| 人人干av| 五月天婷婷综合| 久久综合九九| 欧美顶级少妇做爰HD| 新97人人上人人| 天天婷婷| 99无码视频| 免费亚洲婷婷| 婷婷激情五月天激情小说| 五月婷婷综合性爱噜噜| 亚洲免费观看高清完整版AV线| 狠狠久久婷婷| 九九视频精品这里只有| 婷婷五月天AV激情| 久色激情| 日韩青青| www激情网站| 色五月综合97| 久久多色| 2025天天操| 激情五月婷黄版| 丁香婷婷成人网| 少妇人妻人伦A片| 五月丁香啪啪啪| 日本在线视频播放91| 这里只有精品视频在线| 免费无码毛片一区二区A片| 91婷婷| 亚洲精品成人| 性爱激情五月| 久久 无毛。| 九九九色综合| 五月丁香影视| 激情五月天。| 天天色天天爱天天舔| 天天夜天天色天天| 色情五月丁香| 9热精品| tingting五月天亚洲| 开心五月深爱五月丁香五月激情五月| www.色婷婷.com| 久草丁香婷婷1024| 激情五月综亚网| 99视频在线| 99热在线看片| 风流少妇A片一区二区蜜桃| 一区操| 亚洲爱婷婷| 激情五月天黄色小说| 激情小说 五月天| 99啪啪网| 人人搡人人| 五月天天堂久久| 久久 中文 日本| 超碰人人操| 99re这里只有精品免费| 日本va欧美va国产激情| 1024国产| 婷婷五月天小说| 99ri国产在线| 色婷久| 狠狠夜夜五月丁香| www.五月丁香| 五月婷久久综合| 玖玖资源部在线播放| 激情第四色| 天天射天天操天天干| 久久久久9久无码视频| AAA久久| 婷婷趴趴| 91色在线 | 日韩| 日本久久色| 九九色天堂| 99性感视频| 91se在线观看| 久久9久久| 思思热视频| 婷婷丁香91综合| 蜜乳9188| 99热手机在线精品| 日本一级一片免费视频| 丁香婷婷五月六月久久| 亚洲无码免费看| 99热这里只有精品一| 婷婷综合五月| 国产操肏网站| 成人视屏在线观看| www激情网站| 可似看的AV| 婷婷五月成人| 99爱欧美| 九月色婷婷综合亚洲| 久久这里只有国产精品视频| 狠狠狠狠狠狠草| 欧美在线视频99| 狠狠摸狠狠摸| 五月情涩综合婷婷| 婷婷情色五月天| 久99在线视频| 亚洲激情在线| 五月丁香激情六月| 99在线视频免费| 综合五月婷婷| 五月丁香啪啪激情| 99热这里有精品| 婷婷天天插天天爱| 日本啪啪视频HD| 激情综合五月婷| 五月丁香综合在线| 国产激情综合| 涩五月婷婷| 怡红院院在线导航网| 开心色色五月天综合| 91色情播放| 熟女人妻一区二区三区免费看| 色另类五月天| 五月天婷婷涩涩| 久久人人九| 久久色情| 综久久久| 五月天色综合| 开心激情站| 性爱先锋AV| 久久se 综合网 | 国产视频久色| 99.N在线视频| 夜精品无码A片一区二区蜜桃| 天天 青草 丝袜制服 在线| 丁香五月婷婷影院| 婷婷啪啪| 久久狼人天堂| 99久久免费精品| 中文字幕精品在线观看| 精品久久久久成人码免费动漫| 五月天婷婷黄色视频| 人妻久久久久久久 | 久久ab| 婷婷五月天综合久久| 六月久久婷婷| 日本欧美成人片AAAA| 天堂草在线观看| 97干视频| 五月天婷婷狠狠| 99精品亚洲| 91蜜桃婷婷狠狠久久综合9色| 午夜精品久久久久久久爽| 可以免费看的AV网站| 久久久这里都是精品| 99熟女| av中文网站| 色播婷婷五月天| 思思re最新视频| 97碰超级人人看| 五月婷婷激情色情网| WW婷婷五月天com| 五月激情小说| 五月婷婷激情视频| 色五月丁香总合网| 亚洲中文字幕AV| 九九热9| 婷婷五月情| 天天操综合网| 天天做好综合色| 色婷婷五月天激情久久| 亚洲精品网站色视频| AAA久久久AAA久久久AAA| 成人精品一区日本无码网| 色婷婷的五月天| 五月丁香在线婷婷蜜桃| 美女要搞搞天天搞搞搞网站| 五月丁香婷婷综合在线| 思恩热国产视频右线观看| 五月天丁香欧美激情| 99国产在线精品视频| 五月天婷婷色色| 久色五月丁香视频| www.五月天婷婷| 99热99热不卡| 日日插日日干| 婷婷五月天激情在线观看| 激情久久久久久久久久久| 性爱人人网| 国产AV一区二区三区日韩| 九九激情综合| 色吧五月婷婷| 色色国产| 91久久精品无码一区二区三区| 久久五月综合| 婷婷九月在线| 91九色精品熟女内射| 六月丁香社区| 五月天综合| 色婷婷视频在线| 婷婷五月精品中文字幕| 夜夜骑夜夜操| 九月丁香婷婷| 性按摩玩人妻HD中文字幕| 婷婷在线视频| 91无码色色| 黄色视频网站在线播放| 超碰成人影视| 任你擦免费视频| 插逼综合网| 亚洲综合视频在线| 婷婷激情蜜桃玖玖丁香| 国产欧美婷婷五月| 精品51XX| 91视频一起草| 欧美日韩成人高清在线| 激情深爱五月天| 亚洲操操操| 丁香五月花| 国内自拍97在线| 婷婷黄色五月| 丁香五月综合色婷婷| 五月天婷五月天综合网在线观| 激情综合网婷婷久久| 激情五月天之五月婷婷| 婷婷五月天国产| 99操久久| www.久久66| 情涩婷婷五月天| 婷婷五月天黄色小说| 婷婷在线播放| 亚洲成av人影院| 九九色插| 丁香五月天婷婷在线视频| 开心婷婷五月激情网小说| 丁香五月婷婷色综合基地| 激情五婷精品网在线观看网址| 色七色九九| 天天做 天天爱| 激情综合色婷婷啪啪六月天| 女人高潮内射99精品| 久综合4| 大香蕉人人网| 婷婷丁香五月久久| 九九re精品视频在线观看| 人妻AV在线| 任我干视频在线观看| 校花娇喘呻吟校长陈若雪视频| 91九九九色在| 久久综合激情五月天| 亚洲色情网站| 国产特级毛片AAAAAAA高清| 欧美啪啪五月天| 操操操www.com| 色色免费网战视频| 五月激情天| 色婷婷av综合网| 天天射综合网站| 婷婷五月天亚洲图片| 97干欧美| sewuyuetingtingiii| 天天噜天天插| 综合五月婷婷| 欧美日韩国产一区二区| 婷婷五月天色综合| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 色玖玖综合网| 五月丁香A∨在线| 怡红院 久久| 丁香六月婷婷综合欧美| 亚洲愉拍99热成人精品| 激情网五夜婷婷| 免费亚洲婷婷五月| Aα在线免费观看| 激情综合网婷婷久久| 97碰超级人人看| 亚洲人成播放网站| 婷婷香五月| 97人人干| 色播五月丁香婷婷| 国产精品18久久久| 五月在线婷色| 欧美人妻一区二区| 九九热AV| 狠狠色成人影片| 99久精品视频| 丁香六月狠狠干| 97操男人的天堂| 婷婷丁香五月六月激情| 另类精品视频在线观看| 亚洲AVDVD| 五月婷婷丁香色播网| 亚洲乱码精品久久久久.. | AV九九| 玖玖精品婷婷| 婷婷少妇激情| 伊人久久99| 亚洲综合在线播放| 97久久视频| 激情五月天视频| 蜜臀av粉嫩av懂色av| 99久在线精品99re8热| 婷婷五月天综合久久日美女| 深爱激情六月天| 日本nghangse中文字幕| 激情五月天网站| 色综合香蕉| 九九热最新| 熟女91九色| 激情久久丁香| www,8050,午夜三级| 激情五月天色色网| 日本九九热| 91人久| 99这里只有精品在线观看| 亚洲愉拍99热成人精品| 开心五月深爱婷婷| 99热天堂| 日本三级大片| 五月深爱网| 9精品国产在热久久| 婷婷色情五月| 五月色婷婷影院| 久久女婷| 亚洲五月天婷婷| 97人人操人人| 91操色| 久久ri精品| 99爱免费视频| 成人av中文字幕| 丁香五月天视频| 日韩狠狠色婷婷| 久久44| 婷婷综合视频| 五月婷婷色丁香| www.婷婷激情网.com| 伊人五月综合网| 99 r热| 精品人妻一区二区三区在| 人妻自慰高清合集| 思思热久久阴99| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 91丨九色丨熟女高潮| 五月天免费色| 久久人人九| 人妻22p| 国产日日操夜夜操的肉棒视频| 成人在线视频男人的天堂4399| 伊人超碰| 色五狠狠| 开心激情色婷婷五月天| 色五月婷婷五月天激情综合| 婷婷五月影院| 天天操中文字幕| 丁香婷婷免费| 免费婷婷| 亚洲视频码| 五月婷婷丁香六月| 色五月大| 五月丁香六月婷婷无码| 一區四區歐美日韓| 欧美六月| 久热久操久热久草国产91| 91超级碰| 婷婷五月丁香六月| 色小说五月天| 激情五月天色爱| 97碰在线视频| 铁牛TV人妻| 国产成人精品一区二三区熟女在线| 五月天婷婷激情在线色图| 六月丁香婷婷视频综合在线观看| 狠狠色丁香久久婷婷综合五月| 99热久久这里只有精品| 欧美25p| 五月天久久婷婷| 激情婷婷五月天网址| 五月婷婷久| 婷婷丁香五月天综合AV| 黄色片精品| 97色射| 色色a| 五月天激情四射网站| 五月WWW| 丁香五月激情欧欧美| 久久久久久综合88| 操操国产| 激情五月天综合网| 婷婷久久精品| 色五月婷婷1| 五月婷婷综合天天操| 天天射网站| 综合网色| 午夜不卡久久精品无码免费| 91狠狠综合久久久| 国产日韩欧美| 国产成人精品亚洲线观看| 亚洲av综合网| 日本99久久| 丁香五月情| 欧美va在线观看| 五月开心色| 五月丁香啪啪伦理电影| 99热这| 九九九九这里只有精品| 丁香六月成人| 激情婷婷五月天| 特级西西4444www无码| 影音先锋人妻出差| 丁香五月激情在线| 九九色色| 激情五月小说婷婷| 日本色婷婷| 色婷婷狠狠| 九九99久久| 色婷婷基地| 久青草影院| 九九热超碰| 最近中文字幕大全免费版在线| 久久人人看| 久久曰曰| 中文字幕人妻一区二区| 9视频1在线| 丁香婷婷五月六月久久| 亚洲综人色综网| 爱之国产色情综合| 婷婷深爱五月丁香网| 狠色色狠网| 丁香午夜天| 五月婷视频| 99热超碰| 婷婷日本在线| 亚洲婷婷丁香| 天天做天天双| 激情五月婷婷丁香综合网| 五月婷婷亚洲| 99re在线观看| 婷婷五月丁香青青草在线| 丁香五月很很肏| 人人性久久| 五月婷婷久久综合| 天天综合在线网| 五月婷婷啪啪网| 色爱亚洲| 日日爽夜夜爽| 婷婷六月天| 9191avse| 五月婷婷我| 日本久久性| CHINESE熟女老女人HD视频| 99色人| 婷婷五月天网址| 激情丁香久久| 欧美日韩成人在线观看| 欧美情色一区| 丁香婷婷啪啪| 丁香五月天网友自拍啪啪啪视频| 久久五月丁香| 欧美色必爱| 99综合视频一体| 色播丁香婷婷五月激情| 亚洲天天| 97日本在线| 深爱女色婷婷丁香五月亚洲图区| 五月天伊人网| 99色爱| WWW免费视频碰碰碰碰| 六月婷婷无码| 亚洲精品国产setv| 婷婷五月丁香色播| 色五月五月丁香| 99精品在线观看视频| 国产偷人爽久久久久久老妇APP| 噜噜狠狠色综合久| 第一区久久网站| 激情五月婷婷| 久久久久久久久久久97| 亚洲成人在线五月天| www.激情五月| 婷婷97碰碰| www一区二区三区| 99在线免费观看| 五月天激情网址| 亚洲丁香网| 99在线观看精品视频| 99热欧美精品| 操骚货在线| 亚洲AV成人精品网站在线播放| 人人色人人摸人人看| 丁香激情五月| 日韩美女羞羞网站在线观看| www色婷婷com| 九热av| 婷婷激情五月天亚洲综合| 五月丁香婷婷基地| 丁香五月亚洲激情婷婷射| 亚洲成人中心| 色婷婷激情| 婷婷五月丁香综合激情| 九月婷婷人人操人人舔人人爱| 欧美激情xxxXX| 一级性爱视频| 婷婷综合在线| 狠狠干夜夜干| 26UUU| 久久五月丁香| 快乐激情五月色婷婷| 婷婷综合干| 丁香综合伊人AV| 69精品人人人人| 婷婷激情五月天激情在线| 99热99在线| 亚洲不卡欧洲| 色婷婷www| 日韩色色色色色| 亚州操人在线视频| 五月激情婷婷图片基地| 99色| 激情五月天色婷婷综合| 超碰成人影视| 色婷婷五月天成人网| 日本视频99| 91精品久久久久久久| 五月婷婷中文字幕| 丁香五月综合| 狠狠狠激情网| 丁香婷婷综合影院| 婷婷激情在线| 综合狠狠伊人| W色综合| 色色 亚洲| 日韩美女羞羞网站在线观看| 亚洲九区| 五月四色色| Av在线资源| 操日视频| 精品一二三区视频立| 大地资源色婷婷视频在线| 日日肏天天操| 亚洲成人网站在线播放| 99亚洲精品| 五月婷婷干| 熟女国产在线一区二区三区四区| 秋霞AV淫| 插少妇综合网| 婷婷狠狠97| 婷婷性爱| 丁香涩涩爱| 超碰在线人人| 六月婷婷综合网2| 亚洲美女网Va| 深爱五月激情网| 五月婷婷黄网站大全| 欧美大道不卡| 日在线V视频在线播放| 国产婷婷综合| 久久久久婷婷五月热综合| 色狠狠色综合久久久绯色aⅴ影视| 播四月婷婷六月丁香| 99久久网站| 超碰在线观看三级片| 99亚洲视频| 噜噜狠狠| 99久久精品国产色欲| 777精品久无码人妻蜜桃| 国产无套精品一区二区| 天天天操天天天爰| 开心五月婷婷婷美女| 午夜天堂一区人妻| 亚洲成人在线免费| 婷婷成人五月天成人文学小说| 激情五月综合网最新| 色五月天婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷婷 | 人人色婷婷| 69堂午夜视频最新地址| 日本久久性| 久久婷综| 五月天婷婷久久| 超碰猛烈的性猛交| 欧美成人精品一区二区 | 天堂综合久| 五月天综合区| 婷婷综合欧美| 色九月婷婷丁香| 日逼影音先锋男人资源站| 青青草激情网| 丁香婷婷六月天| 亚洲色婷婷五月| 亚洲五月天第一综合干| 久久丁香五月| 激情综合网站| 欧美激情-区二区三区| 亚洲精品久久久久久久久久吃药| aa久久| 色噜噜狠狠色综合日日| 狠狠色噜噜色狠狠狠综合久久成人波| 插插插丁香五月婷婷| 淫视馆aV二区一区| 97人人看| 五月丁香久久久久| 欧美性爱一区| 狠狠五月激情丁香六月| 在线观看亚洲AV| 人妻在线观看视频| 日韩三十六页| 五月丁香婷婷激情图片| 草草色情综合网| 久久视频在线视频| 99ER热精品视频| www.色婷婷.com| 天天干夜夜想| 伊人五月天在线| 无码人妻电影| 亚洲最大视频| 色丁香久久| 天天干一干| 亚洲欧美婷婷五月色综合| 久久精彩免费视频| 丁香五月综合| 日本欧美成人片AAAA| 麻豆AV一区二区三区| 欧美成人AAA片一区国产精品| 婷婷性爱| 亚洲视频在线网站| 婷婷五月欧美AA片免费| 亚洲九九婷婷| 97干网站| 色五月综合婷婷久久综合婷婷久久综合婷婷久久综合婷婷久久 | 思思热精品在线视频| 成人看片网站| a在线观看| 双性美人被调教到喷水A片| 青草视频在线播放| 亚洲一区二区色图-亚洲精品国产精品乱码-成人AV | 五月婷婷综合激情| 99热这里只有的精品视| 亭亭玉月丁香| 婷婷永久在线| 国产精产国品一二三在观看| 婷婷天堂综合网| 五月香蕉婷婷| 看黄的网站18禁| 久久996re热这里只有精品无码| 色婷婷色情| 色J香五月天| 色婷婷免费观看| 九九碰九九爱97超碰| 色婷丁香91| 亚洲另类毛片| 综合激情啪啪| 五月婷婷丁香网| 婷婷涩五月| 免费无码毛片一区二区A片| 婷婷五月精品| 91九色精品熟女内射| 五月丁香天天| 久久色五月天| 欧美性生交XXXXX无码小说| 9久热在线精品| 91九色国产| 色婷婷色情| 99热热这里只精品996小说| 91丨九色丨东北熟女| 精品九九久久| 丁香五月亚洲AV| 99日韩网站| 色播五月婷婷| 国产中文字幕在线视频免费观看 | 亚洲五月丁香六月婷婷| 久久视频在线视频| 91人人网| 天天爱夜夜爽| A片试看120分钟做受视频红杏| 六月丁香婷婷大香蕉| 俺来也综合网精品一区| 中文字幕 中文字幕明步| 99热这里是精品| 九月大香蕉| 婷婷丁香五月久久| 亚洲午夜AV| 久久无意婷婷| 激情综合网激情五月网| 亚洲色综合| 久久色吧| 五月婷婷乱| 亚洲精品99| 在线资源av-超碰中文在线-成人AV | 国产操逼网站| 婷婷四色五月| 涩五月婷婷| 婷婷午夜丁香| 天天操天天操天天操天天操天天操| 九九综合色| 超碰大香蕉网| 国精产品一区一区三区有限公司杨 | 激情五月丁香五月| 亚洲成人在线免费| 丁香五月激情网| 人操91在线| www.五月激情红色| 国产成人精品一区二区三区视频 | 激情合网婷婷| 六月丁香五月婷婷| 色婷婷五月天激情| 日韩亚洲视频| 黄色激情久久| 噜噜噜久久| 丁香五月天激情四射网络不好 | 欧美碰碰碰| 久久婷婷五月天激情唯美| 久久在线视频免费观看| 丁香五月AV综合| 激情五月婷婷五月| 91久久久久久| 人妻精品一区二区三区| 欧美日韩999| 激情性爱五月天| 任你搞网站| 日本99在线视频| 97丁香五月| 久久这里只有精品热在99| 久久久久九九九九视屏小说88| 亭亭五月激情亚洲在线| 五月丁香婷婷欧美色图视频五月丁香777电影| 色色亚洲无码| 色婷婷丁香A片区毛片区女人区| 激情综合自拍五月婷婷色五月| 五月天婷婷丁香| 婷婷五月天首页| 日日鲁鲁鲁夜夜爽爽狠狠视频97| 六月伊人婷婷| 熟女色色一区二区| 九九精品视频在线观看| se色综合网| 在线视频99| 国产成人在线精品| 91日本在线观看| 五月丁香在线精品| 九一九九黄色| 9九色首页| 婷婷伊人网| 五月天激情国产综合婷婷婷| 丁香成人综合| 婷婷激情97| 色婷婷在线视频| 成人在线网| 无码人妻少妇色欲AV一区二区| 玖玖资源网站最新站| 色色色com| 综合图片色色| 天天色综合天天| 免费看欧美成人A片无码| 丁香婷在线| 久久五月天网| 亚洲免费婷婷| 久8色色| 丁香五月手机在线| 欧美韩国日本| 亚洲视频图片婷婷五月| 亚洲综合久| 成熟妇人A片免费看网站 | 色爽九九| 婷婷成人在线| 色五月婷婷影视| www.yw尤物| 五月天激情无码高清 | 夜丁香五月婷婷| 五月色丁香| 国自产拍偷拍精品啪啪一区二区 | 五月色网| 久久久久99精品成人片| 99久扒热| 666555。COm毛片| 亚洲综合在线播放| 99综合99| 色丁香五月婷婷| www免费在线视频| 国产激情av| 操逼福利视频| 伊人色综合影院视频| 国产五月视频| 三级黄网站| 狠狠干思思热| 天天爽在线视频| 9久热在线精品| 成功精品影院| 色99热| 婷婷五月色亚洲| 另类图片天天影视在线观看| 婷婷丁香综合在线| 大地9中文在线观看免费高清| 九九视屏| 亚洲国产色色| 五月天成人在线视频丁香| 五月天激情网址| 婷婷六月天国产综合| 久热这里只有精品6| 天天日,天天射,天天舔| WWW五月天| 色综合婷婷| 丁香五月性爱爱五月| 丁香五月欧美婷婷综合| 五月天婷婷社区| 色色色五月婷| 亚洲色无码A片一区二区麻豆| 99riAV国产精品视频| 99免费视频网| www.操逼comm| 天天草天天爱| 亚洲性受XXXX五月丁香| 免费婷婷| 女操碰| 国产色99| 欧美成综合在线观看| 欧美交换配乱吟粗大25P| www色色色com| 91AV婷婷| 玖玖五月丁香| 亚洲色热| 99热色精品| 精品人妻久久久久| 婷婷.com| 激情综合亚洲色婷婷五月| 欧美性丁香色色五月天综合爱爱| 无码se| 婷婷丁香六月| www色色com| 99热99在线| 天天色播| 思思热天天看| 青草青草久热这里只有精品| 日韩欧美颜射| 东京热伊人| 日本三级日本三级三级人妇四虎| 免费啪啪亚州视频| 91操片| 成人网址在线观看| 五月香婷婷| 婷婷激情小说网| 五月色丁香综合| 丁香六月亚洲| 99精彩视频在线观看| 婷婷一本和五月丁香| 五月婷庭丁香在线| 欧美综合五月丁香五月天| 丁香五月婷婷俺也要去| 丁香六月婷婷综合欧美| 五月婷婷五月| 五月婷婷亚洲| 深爱五月婷婷| 蜜臀AV在线观看| 五月婷婷黄色网址| 91综合色噜噜| 五月婷啪啪| 欧美激情综合| 婷婷五日b| 色色五月婷婷丁香| 丁香五月影院| 色色色色色色色色综合网| 99热精品在线| 五月激情四射网站| 亭亭玉月丁香| 超碰91在线| 操人妻90p| 伊人色欲五月天| 狠狠搞狠狠操| 日本色色色| 丰满老熟妇BBBBB搡BBB| 丁香五月伊人| 色丁香五月| 天天天久久久| 五月天六月婷婷电影| 久久9热| 五月天综合在线| 国产毛片操B| 人妻视频在线| 26uuu美女三级视频| 婷婷中文字暮| 99色在线| 国产亚洲AV人片在线| 色综合丁香婷婷| www色婷婷久久综合久色 | 久久99精品视频| 九九热青草| 99久精品视频| 天天综合天天玩夜夜玩天天玩夜夜玩| 久久人妻伊人| 婷婷五月天电影网| 免费观看高清无码| 丁香六月婷月91婷月| 青青草原精品久久| 五月天色丁香| 五月婷av| 伊人婷婷青青cao| 俺也去在线视频| 人人爱国产| 狠狠色狠狠色综合日日91| 可以免费观看的av网址| 天天日天天爱天天噪| 99色色网| 婷婷丁香成人五月天| 五月婷婷网久久| 91黄操| 欧美A片在线视频免费观看| 日本啪啪天堂| 天天舔天天操| 国产欧美日韩综合精品一区二区| 91精品婷婷国产综合| 国产精品蜜臀99| 伊人99热| www亚洲无码| 婷婷丁香第一页| 丁香六月久久| 热996精品在线观看| 五月丁六月香av| 中文字幕成人| www五月天com| 五月婷婷丁香色吧网| 色狠狠综合| 五月丁香亭亭操逼| 久久婷婷综合五月天| 成人做爰高潮A片免费视频| 免费国产视频| 婷婷丁香五月天激情| 青青草伊人婷婷| 婷香五月网在线| 在线看片av| 99热超| 国产五月天欧美色| 波多野结衣不卡AV| 六月丁香婷婷网| 综合色色网| 久久99精品九九久久久婷婷| 97精品自拍视频| 丁香婷婷婷婷十二月在线观看视频| 天天操天天操| 婷婷在线视频| 丁香五月综合色婷婷| 日本色天堂| 9精品视频在线| 第五色婷婷| 密视AV综合在线| 久久99性爱| 婷婷五月丁香性爱| 亚洲色模骚货| 就爱日五月天| 激情五月婷婷老师| 狠狠色综合无线观看| 亚洲人人操BD| 婷婷五月天VI| 色久激情在线| 久久涩视频| 综合综合网| 久99久视频精品| 五月色婷婷激情| 婷婷无五月无码视频| 五月色丁香激情| 丁香色婷婷色手机免费在线| 五月婷婷色吧!| www九九免费视频| 婷婷激情啪啪| 久久99免费视频网站| 黄色激情五月天| 激情婷婷网| 第四色大香蕉| 五月婷婷色情| 性爱视频久久| ji'qing'luan'ren'lun| 影音先锋美国A| 成人电影丁香六月天| 黄页免费一级视频懂色| 丁香五月成人网| 五月天婷婷綜合院| 丁香六月婷婷综合| 色七色九九| 综合欧美五月婷婷| 五月激情六月综合| 91成人电影| 99色色| 亚洲性色XXXXX| 99色免费在线观看| 99热1| 色婷婷婷av| 色综啪啪网| 日韩aaaaa| 久久五月天色婷婷| 一级黄在线| 五月丁香六月婷婷色日| av九九| 免费视频在线观看的网站| 深爱婷婷丁香五月激情| 久久精品夜色噜噜亚洲a∨| 五月丁香婷婷成人网| 激情网开心网| 亚洲熟女乱色综合亚洲网站| 天天色亚洲| 亚洲中文乱字字幕线在永久| 日韩AV一区二区三区| 午夜婷婷| 丁香婷婷伊人| 中文字幕AV网址| 国产偷人爽久久久久久老妇APP| 五月丁香花婷婷玉莉AV| 日韩 中文 欧美| 午夜69成人做爰视频| 爱草人视频| 色婷婷五月六月丁香综合视频| 内射 无码 伊人| www.99热视频| 襙逼网| 99热综合在线| 九九热123| 深夜男女福利刺激影院一区完整| 天天日日天天| 久久久久网站| 欧州婷婷五月天综合| 伊人久久大香网| 九九综合久久| 99色在线视频观看| 五月婷婷www| 六月色婷婷| 婷婷五月天丁香社区| 人人色AV| 91AV婷婷| 欧美精品狠狠色丁香婷婷| 第四色五月天| 激情五月天偷拍综合网| 精品99久久久久成人网站免费| 卡视频1区2区| 强辱丰满人妻HD中文字幕| 久久婷婷五月综合色丁香| www.com操| 久久丁香五月综合六月激情红杏视频| 六月丁香啪| 色婷婷成人做爰A片免费看网站| www.激情| 色色 亚洲| 五月综合婷婷开心网| 在线网黄| 精品九九网| 激情五月天天| 五月婷婷丁香六月| 91久久1118| www.夜夜操| 久热网在线视频| 69五月天视频| 婷婷五月在线免费| 日韩在线99| 亚洲av成人电影在线观看| 九月激情婷婷丁香| 天天做天天爱天天高潮| 99热精品在线观看| 亚洲综合在线播放| 五月婷婷在线视频| 综合久久人妻| site:feetmall.com| 激情综合网婷婷久久| 五月天大香蕉| 激情久久肏屄视频| 丁乡久久| 97成人在线视频精品| 色综啪啪| 人人操人人妻| 夜色热久| 丁香五月婷婷av影院| 曰韩少妇内射免费播放| 超碰免费在线| 国产精品美女| 99热这里只有精品中文字幕| 91人妻PORNY九色大屁股| 婷婷五月综合社区| 亚洲综合草草| 性色婷婷| 色狠狠色| 色情综合| 五月色亚洲| 97色色色| 99热综合| 久久久99精品免费观看| 成人综合网站| 999热这里只有精品| 天天噜噜| 久久久五月四色| 桔色成人在线| 婷婷五月丁香基地| 丁香五月色| 4399人妻无码久久久| 六月婷婷久久| 99在线观看| 热九九精品| 国外亚洲成AV人片在线观看| AA片在线观看视频在线播放| 九九操屄| 欧美婷婷色五月网| www.97干视频| 97在线综合| 久久婷婷青草五月天| 成人羞羞啪啪 全 视频| 国产日日夜夜操| 天天精品视频在线观看视频| 亚洲综合草草| 丁香五月欧美| 色婷婷成人做爰A片免费看网站 | -91九色大屁股| 久久网站免费亚洲| 2025最新亚洲激情在线| 激情五月婷婷色播网| 丁香六月婷婷色XXXXX| 伊人激情综合网| 日本丁香五月| 色色色com| 色玖玖玖| 五月丁香六月激情综合网| 情情五月天色| 高清无码视频网址| 色色综合网站| 99热久久这里只有精品| 综合久久综合五月天婷婷| 亚洲综合草草| 5月丁香婷婷| 婷婷十月激情综合网| 亚洲综合无码| 丁香五月av| 99碰在线视频| 久久机热这里只有精品免费视频| 伊人婷婷激情| 婷婷久久五月天| 99久久综合网| 亚洲综合欧美色丁香婷婷888月图片| 激情婷婷在线中文字幕| 日日干夜夜撸夜夜骑| 精品久久这里热66| 九九aV| 五月婷婷精品视频| 九月丁香婷婷综合激情| 日本颜色视频人人爱| 泰州成人视频| 黄色毛片精品| 色色亚洲无码| 操逼巨乳91| 久久精品A片777777| 小色小蛇伊人婷婷色香五月| 五月色无码| 欧美天堂久久| 丁香婷婷狠狠97| 亚洲中文字幕网| 亚洲va欧洲va国产va不卡| 色播播五月天| sewuyuetingtingiii| 五月丁香六月婷婷在线小说视频| 国产这里只有精品| 国产AV熟妇人震精品一品二区| 欧美久久网| 天天干天天爽天天爽| 日韩色色视频| 亚洲AV无码影院| 五月激情婷婷色| 九九99精品视频在线观看| 久久久五月天婷婷| 成人必爱视| AV在线资源| 亚洲国产色婷婷| www.狠狠干| 丁香婷婷基地| 综合性爱网| 桔色成人在线| 人人人操 超碰| 深爱五月婷婷开心中文字幕| 91久久电影| 极品五月天| 五月色婷婷激情| 狠狠操狠狠插| 九九色精品| 五月婷六月| 五月婷中文娱乐综合| 99热99这里有免费的精品| 婷婷色播婷婷| 日韩欧洲亚洲| 成人AV中文字幕| 国产性爱色| 色久综合天天做视频| .精品久久久麻豆国产精品| 91操操| 超碰免费99| 九九久久高清| 亚洲日日操| 婷婷亚洲在线| 五月开心婷婷| 欧美槡BBBB槡BBB少妇| 激情深爱五月婷婷| 五月婷婷之综合激情| 久久五月激情综合| 久色激情| 国产成人高清| 97人人操| 综合久久高清| 五月激情婷婷综合| 中文字幕成人影视| 啪啪色区| 91狠狠色色丁香婷婷综合久久| 四月婷婷五月丁香| www激情网站| 99热这里都是精品| 97婷婷狠狠久久综合9色| 开心婷婷五月| 国产精品人妻在线网址| 亭亭玉月丁香| 91九色在线视频| 色人久久| site:hcxsz888.com| 色99视频| ss99热|