亚洲有码Av一区二区三区_国产高清啪啪免费视频_69色视频国产_国产成人人人爆出白浆_国产精品自在线拍国_一本久久伊人热热精品无码_午夜性刺激在线看免费带字幕_助力高品质欧美狂喷水_亚洲精品日韩无码_精品无码一区二区三区蜜臀_麻豆高清国产AV_熟妇人素无码中文字幕_亚洲a级片在线观看_国产欧美日韩三区_99国产成人高清在线观看

ARTICLE DETAIL

資訊詳情

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

對話式數(shù)據(jù)分析系統(tǒng):用LLM將自然語言自動轉(zhuǎn)為ECharts配置

對話式數(shù)據(jù)分析系統(tǒng):用LLM將自然語言自動轉(zhuǎn)為ECharts配置 剛做完一個挺有意思的項目對話式數(shù)據(jù)分析系統(tǒng)。用戶輸入一句大白話比如“給我看看最近三個月各區(qū)域的銷售額對比順便標出環(huán)比增長率”系統(tǒng)自動把這句話轉(zhuǎn)成ECharts配置前端直接渲染出圖表。整個過程不需要拖拽組件不需要手寫option全部靠LLM理解意圖、映射數(shù)據(jù)、生成配置。我在這篇文章里把這套東西的完整思路、架構(gòu)設(shè)計、核心代碼、踩坑記錄全部整理出來項目命名為“某對話式數(shù)據(jù)分析系統(tǒng)”以下簡稱“對話分析系統(tǒng)”。希望對正在做類似LLM應(yīng)用落地的朋友有點幫助。這套方案最直接的價值有三個。第一數(shù)據(jù)分析門檻大幅降低業(yè)務(wù)人員不需要懂前端也不需要會寫SQL只要會提問就能看數(shù)據(jù)。第二開發(fā)效率提升明顯原來寫一個圖表配置需要查文檔、調(diào)樣式現(xiàn)在只要Prompt設(shè)計得好LLM生成的配置完成度能做到80%以上。第三對話上下文天然適合多維度的探索式分析用戶可以從“總銷售額是多少”一路追問到“華東區(qū)哪個品類增長最快”系統(tǒng)保持上下文連貫。適合看這篇文章的人主要是這幾類做LLM應(yīng)用開發(fā)的工程師想知道怎么把大模型輸出跟具體業(yè)務(wù)場景做可靠對接前端開發(fā)者想了解ECharts配置的自動化生成思路數(shù)據(jù)分析師或數(shù)據(jù)產(chǎn)品經(jīng)理想低成本實現(xiàn)一個智能BI的Demo。1. 先想清楚自然語言轉(zhuǎn)圖表配置難在哪在寫代碼之前我花了不少時間梳理這個問題的本質(zhì)。表面上這是“把文字變成JSON配置”但實際操作中你會發(fā)現(xiàn)真正的難點根本不在配置生成上而是在“語義理解”和“數(shù)據(jù)對齊”這兩層。1.1 傳統(tǒng)方式的三個明顯痛點傳統(tǒng)的圖表開發(fā)流程通常是前端工程師拿到需求查ECharts文檔手寫option聯(lián)調(diào)數(shù)據(jù)接口最后調(diào)整樣式。這個過程有幾個老生常談但一直沒被很好解決的問題。第一需求溝通成本高。業(yè)務(wù)方說“做個好看的圖”但“好看”的標準是什么柱狀圖還是折線圖顏色用藍色系還是漸變色要不要顯示數(shù)值標簽這些細節(jié)點如果每個都靠溝通確認效率非常低。第二圖表配置的細節(jié)非常多。ECharts的option結(jié)構(gòu)說簡單也簡單說復(fù)雜也復(fù)雜。一個坐標軸就有十多個配置項series里還有堆疊、平滑、動畫、漸變色等用法。稍微沒查文檔就很容易寫錯屬性名或者漏掉必要的配置項導(dǎo)致圖表渲染異常。第三數(shù)據(jù)格式跟圖表類型強耦合。餅圖需要{name, value}結(jié)構(gòu)折線圖需要xAxis的category數(shù)據(jù)和series的data數(shù)組對齊。后端接口返回的數(shù)據(jù)往往不是現(xiàn)成的還需要前端做大量map、filter、reduce的轉(zhuǎn)換操作。1.2 LLM介入之后流程發(fā)生了什么變化LLM介入后原來的“需求 → 設(shè)計 → 開發(fā) → 聯(lián)調(diào)”壓縮成了“提問 → 出配置”。用戶直接用自然語言描述想要看什么系統(tǒng)通過大模型解析意圖、識別維度與指標再從數(shù)據(jù)源取數(shù)并聚合最后生成結(jié)構(gòu)化ECharts配置。這個流程里L(fēng)LM承擔(dān)了最費腦子的部分意圖理解、字段映射、圖表類型選擇、配置內(nèi)容生成。人只需要做兩件事一是把問題描述清楚二是在結(jié)果不滿意時追加一句“換成玫瑰圖”或“不要顯示數(shù)值標簽”。這是典型的“AI Copilot”模式不是替代人而是替代了人跟圖表配置搏斗的過程。1.3 一個關(guān)鍵認知LLM輸出的可靠性取決于約束強度這個項目做下來我最深的體會是LLM生成的自由文本能力很強但直接讓它輸出“JSON配置”時如果不對輸出格式做強制約束結(jié)果會非常不穩(wěn)定??赡艹霈F(xiàn)多余的注釋、Markdown代碼塊標記、錯誤的字段名、字符串和數(shù)值類型混亂等問題。所以整個系統(tǒng)的核心設(shè)計思想就一句話在自由語義和嚴格配置之間搭一座橋。LLM負責(zé)理解自然語言但它輸出的不是裸配置而是經(jīng)過Prompt約束、Schema校驗、兜底修復(fù)三道防線之后才交給前端渲染。這座橋建得牢不牢直接決定了系統(tǒng)的可用性。2. 系統(tǒng)整體架構(gòu)與模塊劃分這個系統(tǒng)的架構(gòu)設(shè)計從一開始就確定了原則只做LLM能做好且適合做的事其他全部用傳統(tǒng)代碼兜住。整體分為四層各司其職。2.1 四層結(jié)構(gòu)對話層、語義層、數(shù)據(jù)層、渲染層對話層負責(zé)接收用戶輸入、維護多輪會話上下文、記錄用戶對配置結(jié)果的修正反饋。語義層核心的Prompt編排與LLM調(diào)用模塊把用戶問題結(jié)構(gòu)化為“意圖 維度 指標 圖表偏好”四要素。數(shù)據(jù)層負責(zé)從數(shù)據(jù)庫中取數(shù)、按維度聚合、把結(jié)果轉(zhuǎn)成ECharts需要的標準數(shù)據(jù)格式。渲染層前端拿到配置和數(shù)據(jù)后直接執(zhí)行同時提供局部修改的入口。每一層都只跟相鄰層通信不跨層調(diào)用。這樣做的最大好處是任何一個模塊出問題都能單獨替換或降級。2.2 為什么選擇ECharts而不是其他圖表庫這個項目選擇ECharts是一個經(jīng)過比較后的決定不是因為它最流行而是它最適合這個場景。對比之下Chart.js的配置簡單但圖表類型較少復(fù)雜統(tǒng)計圖表支持一般。D3.js的定制性最強但學(xué)習(xí)曲線陡峭讓LLM生成D3代碼的難度遠高于生成聲明式配置。而ECharts恰好是聲明式配置的典型代表本質(zhì)上就是一個大的JSON對象這在“大模型生成配置文件”的場景里優(yōu)勢非常明顯。另外ECharts的中文文檔完善社區(qū)方案豐富遇到特殊圖表需求比如桑基圖、主題河流圖時有現(xiàn)成案例。對于LLM應(yīng)用來說訓(xùn)練數(shù)據(jù)里ECharts的示例濃度也相對夠用模型對該配置結(jié)構(gòu)的辨識度明顯更高。2.3 數(shù)據(jù)源與指標體系的預(yù)設(shè)這個環(huán)節(jié)非常重要也是很多人在做類似項目時容易忽略的。直接讓LLM去數(shù)據(jù)庫里查表是不現(xiàn)實的你不可能讓模型知道你的庫里有什么表、字段叫什么、有沒有權(quán)限限制。所以我在數(shù)據(jù)層做了一個“數(shù)據(jù)字典預(yù)設(shè)”的操作。預(yù)先在系統(tǒng)里定義好業(yè)務(wù)指標和維度的映射關(guān)系比如“銷售額” → 字段total_amount聚合方式SUM“訂單量” → 字段order_count聚合方式COUNT“區(qū)域” → 字段region分組維度“時間” → 字段order_date按月份格式化LLM不直接面對數(shù)據(jù)庫它只面對這份數(shù)據(jù)字典輸出“我要用哪些字段、怎么聚合、按什么維度分組”。然后由傳統(tǒng)的代碼模塊把這個結(jié)構(gòu)化描述翻譯成SQL查詢執(zhí)行取數(shù)。這樣做有三重好處安全性可控、生成的SQL不會亂來、字段歧義大幅降低。3. Prompt工程讓LLM穩(wěn)定輸出ECharts配置Prompt是這個項目的靈魂。如果Prompt設(shè)計得不到位后面寫得再漂亮也沒用。這一節(jié)把我反復(fù)迭代出來的Prompt方案完整講清楚。3.1 系統(tǒng)級Prompt的結(jié)構(gòu)化編排我采用的System Prompt分為四個部分角色設(shè)定、任務(wù)定義、數(shù)據(jù)字典、輸出格式要求。下面是一個精簡但完整的示例你是一個數(shù)據(jù)分析助手。你的任務(wù)是根據(jù)用戶提出的問題生成ECharts可視化配置。 可用的數(shù)據(jù)字段 - 日期維度order_date格式 YYYY-MM-DD - 區(qū)域維度region值華東、華南、華北、西南、西北 - 品類維度category值數(shù)碼、家電、服飾、食品 - 指標total_amount銷售額數(shù)值單位元 - 指標order_count訂單量數(shù)值 使用規(guī)則 1. 從用戶問題中提取需要展示的維度和指標。 2. 如果用戶指定了圖表類型優(yōu)先使用指定類型 否則根據(jù)字段性質(zhì)和關(guān)系推薦時間序列用line類別對比用bar占比用pie。 3. 輸出必須是JSON對象包含兩個字段sql和option。 sql字段包含維度和指標信息用query_columns表示。 option字段是ECharts的完整配置對象必須包含title、tooltip、xAxis、yAxis、series。 4. 不要輸出任何解釋性文字不要使用Markdown代碼塊標記只輸出JSON。 本次會話開始。這個Prompt里面值得注意的細節(jié)是我明確說了“不要使用Markdown代碼塊標記”否則LLM很容易把JSON包在json里增加后端解析的額外動作和出錯概率。同時把字段含義和可用值直接寫進Prompt讓LLM能根據(jù)用戶描述精確匹配而不是自己瞎編。3.2 圖表類型的自動推薦規(guī)則最開始的時候我讓LLM完全自由決定圖表類型結(jié)果發(fā)現(xiàn)它經(jīng)常選得不對。比如用戶問“各地區(qū)銷售額情況”它給個雷達圖視覺上好看但信息表達效率其實不高。后來我在Prompt里加了顯式的推薦邏輯效果一下子穩(wěn)定了很多。推薦規(guī)則參考了傳統(tǒng)BI工具的選擇邏輯用戶問題出現(xiàn)“趨勢”“變化”“走勢”等關(guān)鍵詞優(yōu)先折線圖。出現(xiàn)“對比”“排名”“Top”等關(guān)鍵詞或明確提到“柱狀圖”優(yōu)先柱狀圖。出現(xiàn)“占比”“比例”“百分比”或單一維度多指標對比優(yōu)先餅圖或環(huán)形圖。出現(xiàn)“分布”“區(qū)間”“密度”等關(guān)鍵詞優(yōu)先直方圖或散點圖。這個規(guī)則本質(zhì)上是在給LLM一個“決策路徑”比讓它完全自由發(fā)揮要可靠得多。3.3 Few-shot示例的加入時機初期版本沒有加入few-shot效果不穩(wěn)定但勉強能用。但遇到復(fù)雜一點的查詢比如“按區(qū)域和品類兩個維度交叉分析銷售額”模型輸出的SQL字段排列和ECharts配置就可能出現(xiàn)混亂。后來我在Prompt里加入了兩個典型示例一個是簡單的時間趨勢圖一個是帶鉆取的環(huán)形圖。示例會提多個不同場景的few-shot讓模型對不同復(fù)雜度的問題都能找到參照。注意few-shot不是越多越好通常2到3個覆蓋不同難度級別就夠了多了會拉長輸入Token并增加成本。加完few-shot之后配置生成的成功率明顯上了一個臺階。特別是涉及多指標并列展示的場景模型能正確輸出兩個yAxis和兩個series的配置結(jié)構(gòu)。3.4 用戶反饋修正的上下文利用多輪對話是這個系統(tǒng)的亮點但開始我也沒想清楚怎么管理上下文。如果每輪都把全部歷史記錄丟給LLMToken消耗和響應(yīng)延遲都受不了而且很容易導(dǎo)致模型被無關(guān)信息干擾。后來采用的方案是維護一個結(jié)構(gòu)化會話狀態(tài)每輪只保留三部分信息用戶最近的輸入、上一輪的配置修正指令、系統(tǒng)上一輪輸出的圖表配置摘要。在Prompt中以“歷史修改記錄”的形式拼接讓模型知道用戶上一次做了什么調(diào)整。比如用戶第一輪問“看看各區(qū)域銷售額柱狀圖”系統(tǒng)生成柱狀圖第二輪說“改成玫瑰圖并且加上百分比”歷史記錄里就保留“上一輪為bar圖用戶希望改為pie玫瑰圖并顯示百分比”。這樣模型就知道是在原有基礎(chǔ)上修改而不是重新生成一個全新的圖表上下文連貫性就有了保障。4. 核心實現(xiàn)邏輯與關(guān)鍵代碼細節(jié)這一節(jié)是全文最硬核的部分。我會把后端接口、LLM輸出解析、數(shù)據(jù)聚合映射、前端渲染這幾個核心環(huán)節(jié)的代碼邏輯完整走一遍附上關(guān)鍵代碼段和踩坑說明。4.1 后端接口接收自然語言并返回結(jié)構(gòu)化配置后端我用Python FastAPI實現(xiàn)整體是一個輕量級的代理服務(wù)。核心接口就一個接收用戶輸入和會話ID返回ECharts配置和狀態(tài)信息。示例代碼如下from fastapi import FastAPI, HTTPException from pydantic import BaseModel from typing import Optional, List, Dict, Any import json import uuid app FastAPI() class QueryRequest(BaseModel): message: str session_id: Optional[str] None class QueryResponse(BaseModel): session_id: str echarts_option: Dict[str, Any] sql_info: Dict[str, Any] raw_response: str # 模擬會話存儲 session_store: Dict[str, List[Dict[str, str]]] {} app.post(/api/query, response_modelQueryResponse) async def handle_query(req: QueryRequest): if not req.session_id: req.session_id str(uuid.uuid4()) history session_store.get(req.session_id, []) # 調(diào)用核心處理函數(shù) result process_natural_language_query(req.message, history) # 保存會話歷史 history.append({role: user, content: req.message}) history.append({role: assistant, content: result[raw_response]}) session_store[req.session_id] history[-10:] # 只保留最近10條 return QueryResponse( session_idreq.session_id, echarts_optionresult[option], sql_inforesult[sql_info], raw_responseresult[raw_response] )這個接口設(shè)計比較樸素但足夠用。需要注意兩點一是會話存儲簡單用內(nèi)存字典實現(xiàn)了真實項目建議換Redis否則重啟會話就丟了二是歷史記錄做了長度限制避免無限增長導(dǎo)致Token成本失控。4.2 LLM輸出解析從文本到JSON的可靠路徑這是整個項目里最坑的地方。LLM返回的內(nèi)容偶爾會比較不可控有時會非常規(guī)整地直接輸出一個JSON但也有時候會在JSON前后加一些自然語言描述甚至在鍵名里加了沒必要的引號或者把布爾值寫成字符串。我封了一個解析函數(shù)來處理這類問題def parse_llm_json_response(text: str) - dict: # 1. 直接嘗試解析 try: return json.loads(text) except json.JSONDecodeError: pass # 2. 嘗試提取JSON塊兼容 json 或 包裹 import re json_pattern r(?:json)?\s*(.*?)\s* match re.search(json_pattern, text, re.DOTALL) if match: try: return json.loads(match.group(1)) except json.JSONDecodeError: pass # 3. 嘗試從文本中截取第一個 { 到最后一個 } 之間的內(nèi)容 start_idx text.find({) end_idx text.rfind(}) 1 if start_idx ! -1 and end_idx start_idx: try: return json.loads(text[start_idx:end_idx]) except json.JSONDecodeError: pass # 4. 最后兜底拋出明確異常 raise ValueError(f無法從LLM輸出中解析JSON: {text[:200]})實際測試下來這個四級解析方案能覆蓋絕大多數(shù)情況。我強烈建議不要只做第一級直接解析就完事因為LLM輸出的不確定性決定了你必須在解析層面做足夠防御。4.3 數(shù)據(jù)映射SQL信息轉(zhuǎn)成真實查詢結(jié)果前面Prompt里要求LLM輸出sql字段這個字段不是真正的SQL語句而是我自定義的一個結(jié)構(gòu)化查詢描述。例如{ query_columns: { dimensions: [region], metrics: [{field: total_amount, agg: SUM}] }, filter: { date_range: 最近3個月 } }后端拿到這個結(jié)構(gòu)之后再拼接成真的SQL去查數(shù)據(jù)庫。這樣做的好處是LLM不需要知道具體的數(shù)據(jù)庫表結(jié)構(gòu)它只需要理解字段語義真正的SQL生成由代碼完成可靠性和安全性都有保障。import sqlite3 def generate_sql(sql_info: dict) - str: dims sql_info.get(query_columns, {}).get(dimensions, []) metrics sql_info.get(query_columns, {}).get(metrics, []) dim_str , .join(dims) if dims else 1 metric_str , .join([f{m[agg]}({m[field]}) AS {m[field]}_{m[agg].lower()} for m in metrics]) sql fSELECT {dim_str}, {metric_str} FROM sales_data GROUP BY {dim_str} if dims else fSELECT {metric_str} FROM sales_data return sql這里有一個實際項目中很容易踩的坑如果用戶只問“總銷售額是多少”沒有指定維度那GROUP BY子句就不能加否則會按一行返回沒有意義的結(jié)果。所以我在generate_sql函數(shù)里做了判斷沒有任何維度時直接查詢總指標這個邏輯務(wù)必不要忽略。4.4 ECharts配置的二次校正與降噪LLM直接生成的option雖然整體結(jié)構(gòu)正確但偶爾會有一些影響渲染的細節(jié)問題。我寫了一個配置文件的后處理函數(shù)專門處理常見的“低級錯誤”。def normalize_echarts_option(option: dict) - dict: # 確?;九渲庙棿嬖?option.setdefault(tooltip, {trigger: axis}) # 檢測series是否為空列表 if not option.get(series): raise ValueError(圖表配置中series為空無法渲染) # 修正xAxis/yAxis格式ECharts允許對象或數(shù)組但必須保證data存在 if xAxis in option and isinstance(option[xAxis], list): if len(option[xAxis]) 1: option[xAxis] option[xAxis][0] # 確保series.data與xAxis.data長度一致這是一個高頻問題 x_data option.get(xAxis, {}).get(data, []) if isinstance(option.get(xAxis), dict) else [] if x_data: for series_item in option.get(series, []): data_len len(series_item.get(data, [])) if data_len len(x_data): series_item[data] series_item[data][:len(x_data)] return option這里最值得說的是xAxis.data和series.data長度不一致的問題。由于LLM生成的series.data有時候會來自SQL查詢結(jié)果而SQL結(jié)果和維度列表之間存在順序或數(shù)量上的錯位這個不一致會導(dǎo)致圖表顯示不全或坐標軸錯位。寫一個硬性的截斷對齊邏輯能避開不少渲染異常。4.5 前端渲染與配置修正接口前端這一端我選擇了Vue 3 ECharts 5的組件化方案。核心邏輯就是接收后端返回的option塞進ECharts實例監(jiān)聽窗口變化做resize。// ChartRenderer.vue (關(guān)鍵代碼片段) template div refchartEl stylewidth: 100%; height: 480px;/div /template script import * as echarts from echarts; export default { name: ChartRenderer, props: { option: { type: Object, required: true } }, data() { return { chart: null }; }, watch: { option: { deep: true, handler(newVal) { if (!this.chart) return; this.chart.setOption(newVal, true); } } }, mounted() { this.chart echarts.init(this.$refs.chartEl); this.chart.setOption(this.props.option, true); window.addEventListener(resize, this.handleResize); }, methods: { handleResize() { this.chart this.chart.resize(); } }, beforeUnmount() { window.removeEventListener(resize, this.handleResize); this.chart this.chart.dispose(); } }; /script注意一個細節(jié)setOption的第二個參數(shù)我傳了true表示notMerge。這個在多次更新配置時很重要。如果不傳ECharts會做merge操作可能出現(xiàn)上一次圖表殘留的問題比如柱狀圖切換為折線圖時舊的柱子還在。傳true以后每次全量覆蓋配置更新就是干凈的。5. 模型選型與成本控制策略LLM是這個系統(tǒng)的核心動力源選什么模型、怎么控制成本直接影響項目能否從Demo走向落地。這一節(jié)聊聊我實測下來的選型感受和優(yōu)化手段。5.1 不同能力等級模型的表現(xiàn)差異實測了幾款當(dāng)前主流的商用和開源模型簡單對比一個直觀感受輕量級模型或同等級小參數(shù)模型能處理簡單配置生成但復(fù)雜一點就經(jīng)常出錯。特別是多指標、雙y軸、數(shù)據(jù)聚合邏輯容易把配置結(jié)構(gòu)寫亂。中端模型整體可用在加了few-shot之后解決常見圖表生成問題表現(xiàn)不錯。是這個系統(tǒng)的主力模型。高端旗艦?zāi)P土鲿扯群屠斫饬Υ_實更好但成本高出不少。適合用于復(fù)雜查詢、多輪對話語義糾偏的場景不適合作為默認全量調(diào)用。具體到項目里我是按問題復(fù)雜度做模型路由的。簡單問題單指標、單維度走輕量模型復(fù)雜問題多指標、多維分析、圖表修改走中高端模型。這樣既保住了體驗又控制了成本。5.2 成本估算實例假設(shè)一個中等復(fù)雜度的查詢輸入Prompt約1200 Token輸出配置約600 Token。一次調(diào)用的總Token約為1800 Token。按目前的Token計價折算下來單次約為千分之幾元。如果日均調(diào)用1000次一個月成本在幾十元到上百元之間完全在可接受范圍內(nèi)。但如果未來做到企業(yè)級、日調(diào)萬次甚至更多就需要引入更激進的緩存策略和語義分割方案。成本控制我建議一定要做Token統(tǒng)計每個會話、每次請求都記錄Token消耗。有了數(shù)據(jù)才知道哪里該優(yōu)化不能拍腦袋省成本。5.3 緩存策略相同問題不重復(fù)計算用戶經(jīng)常會問重復(fù)或高度相似的問題比如“幫我看一下華東區(qū)銷售額Top10的品類”。這個查詢第一次執(zhí)行后結(jié)果短時間內(nèi)一般不會變化。所以我在后端加了一個簡單但有效的緩存層。緩存Key由兩部分組成session_id message的哈希值。有效期設(shè)個5分鐘到10分鐘。緩存命中直接返回上次的結(jié)果不再調(diào)用LLM和數(shù)據(jù)源。實測命中率大約在20%到30%之間整體響應(yīng)速度和成本都優(yōu)化了不少。5.4 流式輸出的權(quán)衡很多LLM應(yīng)用現(xiàn)在都搞流式輸出但在圖表生成場景里我一開始也做了后來發(fā)現(xiàn)收益不大。圖表配置的生成速度和流式展示的體驗提升對用戶來說感知并不強。因為用戶最終看到的是圖表渲染結(jié)果而不是一行一行地看JSON。所以后端直接用同步接口返回完整配置前端加一個加載動畫簡潔且穩(wěn)定。只有在制作長報告或復(fù)雜洞察分析時流式輸出的價值才會體現(xiàn)出來。6. 常見問題與排查技巧實錄這個項目做了這么久踩過的坑能寫滿一頁A4紙。這一節(jié)把最高頻的問題和排查思路整理成一個速查表按“現(xiàn)象 → 原因 → 做法”的結(jié)構(gòu)羅列方便遇到問題直接對號入座。6.1 圖表渲染空白但控制臺無報錯遇到這個問題我一開始一度懷疑是ECharts版本問題排查了半天發(fā)現(xiàn)不是。后來定位到原因通常有兩個一是series.data為空數(shù)組ECharts不渲染空數(shù)據(jù)但也完全不報錯二是xAxis.data和series.data長度不匹配導(dǎo)致某些數(shù)據(jù)點被丟棄。排查步驟建議固定為先把LLM返回的JSON打印出來檢查series和xAxis的data結(jié)構(gòu)。其次在后端對數(shù)據(jù)長度做一致性校驗發(fā)現(xiàn)不一致時提前修正。6.2 生成的圖表類型不符合用戶預(yù)期用戶說“看下銷售情況”模型給出了餅圖但用戶其實想看的是柱狀圖。這類問題本質(zhì)上不是bug而是意圖理解不夠精準。解決思路有三個層次最簡單粗暴的在Prompt中設(shè)定“當(dāng)用戶未明確指定圖表類型時默認使用柱狀圖”。較推薦的做法把圖表類型選擇權(quán)交給一個單獨的“意圖分類”步驟先判斷用戶想要的圖表類型再讓LLM生成具體配置。體驗最好的做法前端提供圖表類型切換按鈕用戶不滿意時一鍵切換切換時只調(diào)整series類型和對應(yīng)配置不需要重新生成。實際項目中我采用了第二和第三層的結(jié)合既在對話層做了預(yù)分類也在展示層做了快速切換兜底。6.3 某些字段被LLM憑空捏造這個問題在所有LLM應(yīng)用中都會出現(xiàn)圖表配置場景也不例外。模型在生成查詢字段時偶爾會“發(fā)明”一些數(shù)據(jù)字典里根本不存在的字段名。比如數(shù)據(jù)字典里只有total_amount單輸出結(jié)果卻可能出現(xiàn)profit_rate這種虛構(gòu)指標。這種問題的根源是Prompt數(shù)據(jù)字典的語義約束不夠嚴格。我采取了三層防御Prompt里加了硬性限制“只能使用可用字段不得新增字段”。后端解析時加字段白名單校驗一旦發(fā)現(xiàn)未知字段立即拋異常要求模型重新生成。加了重試機制最多重試兩次用模型自己的上一個錯誤輸出來糾正它。def validate_sql_info(sql_info: dict, allowed_fields: set) - bool: dims sql_info.get(query_columns, {}).get(dimensions, []) metrics sql_info.get(query_columns, {}).get(metrics, []) for dim in dims: if dim not in allowed_fields: return False for m in metrics: if m[field] not in allowed_fields: return False return True白名單校驗看起來多做了一步實際上避免了非常多后續(xù)的數(shù)據(jù)查詢報錯和渲染異常。6.4 多輪對話的上下文污染多輪對話是整個系統(tǒng)里維護成本最高的部分。我遇到過一種情況用戶第一輪問的是“華東區(qū)的銷售額”第二輪問“那華南呢”模型把兩輪問題合并成了一個查詢或者按第一輪的維度約束了第二輪的查詢最終結(jié)果不符合預(yù)期。排查后發(fā)現(xiàn)問題出在上下文拼接的方式上。我把完整的歷史記錄拼接后一次性發(fā)給模型模型理解重點發(fā)生了偏移。后來改成“歷史修改指令”模式只保留上一輪的圖表配置和用戶最新的修改要求情況明顯好轉(zhuǎn)。再進一步可以在每輪會話記錄時帶上“當(dāng)前數(shù)據(jù)范圍”摘要模型在生成新查詢時就有明確的基準。6.5 常見問題速查表現(xiàn)象可能原因處理方案前端圖表空白series.data為空或長度不匹配打印JSON檢查data后端做長度校準圖表類型不符預(yù)期意圖解析失敗或Prompt缺乏傾向性增加類型預(yù)分類前端提供手動切換字段不存在模型幻覺白名單校驗異常時重試多輪問題答非所問上下文過載或始終以歷史為主結(jié)構(gòu)化會話狀態(tài)只保留修正指令生成的配置偶爾帶Markdown標記模型輸出格式不穩(wěn)定解析時兼容包裹刪除非JSON內(nèi)容響應(yīng)延遲明顯調(diào)用鏈路太長/模型太重走緩存、模型路由、去掉流式輸出6.6 一個被很多人忽略的細節(jié)代碼塊包裹的冗余處理即便我在Prompt里已經(jīng)明確說了“不要使用Markdown代碼塊標記”模型有時候還是會在輸出中把JSON包在代碼塊里。前端直接傳給后端解析時會失敗。這個問題不復(fù)雜但很影響體驗。我的建議是后端解析的時候做了一層“防呆處理”不管模型輸出什么格式都嘗試提取其中的JSON部分。也就是前面提到的解析函數(shù)第2層和第3層這兩層代碼看著多余實則在真實項目中能省下很多溝通和debug的時間。7. 這個項目的邊界與擴展可能性個人實操回顧做到這個程度這個系統(tǒng)基本達到了“業(yè)務(wù)人員能自己提問、自己看圖”的效果。但我也很清楚它的邊界在哪。數(shù)據(jù)字典預(yù)設(shè)意味著增加一個新的業(yè)務(wù)指標需要手工維護字段映射。圖表類型雖然覆蓋面夠用但遇到非常規(guī)圖表比如關(guān)系圖、樹圖、地圖時生成效果依然不穩(wěn)定。這些限制不是LLM本身的問題而是工程上選擇了“穩(wěn)定優(yōu)先”的路子。從我實操的角度看如果后續(xù)要繼續(xù)演進我會優(yōu)先考慮兩個方向。第一是接上真實的數(shù)據(jù)庫Schema自動發(fā)現(xiàn)機制讓數(shù)據(jù)字典能動態(tài)更新減少人工維護成本。第二是引入“用戶行為反饋信號”比如用戶強行切換了圖表類型、修改了取數(shù)范圍這些行為可以作為隱含標注數(shù)據(jù)用于后續(xù)微調(diào)Prompt或模型。這兩個方向本質(zhì)都是為了讓系統(tǒng)從“固定配方”走向“自適應(yīng)理解”。做出來之后這個對話式數(shù)據(jù)分析系統(tǒng)的落地空間還會更大。8. 最后的幾個實操建議文章寫完之前我再分享三個實用的經(jīng)驗總結(jié)都是踩過坑換來的教訓(xùn)。第一個建議不要把LLM的JSON輸出當(dāng)成理所當(dāng)然。無論Prompt寫得多么嚴格解析層都要做兜底。模型畢竟是概率模型它的輸出天然存在隨機性工程上必須設(shè)計好容錯機制。用模板加校驗加重試的方式把不確定性限制在可控范圍內(nèi)。第二個建議在畫界面之前先把Prompt和數(shù)據(jù)結(jié)構(gòu)跑通。我一開始最先做的是前端以為把ECharts配好就完事了結(jié)果后端LLM輸出的格式頻繁調(diào)整導(dǎo)致前端也跟著改了兩三回。如果先花時間把Prompt、輸出Schema、解析邏輯確定下來再去做前端開發(fā)效率會高很多。第三個建議盡量保留每個請求的完整日志。LLM應(yīng)用的調(diào)試難度遠高于傳統(tǒng)應(yīng)用因為很多問題不是代碼邏輯錯誤而是模型輸出的語義偏差。完整記錄Prompt輸入、模型原始輸出、解析后結(jié)果、最終渲染狀態(tài)排查問題時能省一半以上時間。日志字段用JSON格式存儲后面用來分析模型錯誤模式也能派上大用場。這個項目目前已經(jīng)作為內(nèi)部工具投入使用業(yè)務(wù)同學(xué)用得還挺順手。如果你也在做類似的事情希望里面的經(jīng)驗和代碼片段能幫你少走幾段彎路。有新的想法也歡迎交流。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
WWW美腿丝袜香蕉中文| 亚洲日韩精品久久久久一区壹牛| 亚洲欧美九九九| 欧美三级中文字幕hd| 97碰碰色| 免费看国产曰批40分钟怎么下载| 国产精品久久久久久夜夜夜夜| 入口操逼网站| 久9re热视频这里只有精品| 涩涩久久精品| 久久久久久性爱片| 操屄不卡视频| 国产视频一区二区三区在线免费观看 | 欧美老妇综合网| 日韩av不卡在线观看| 91天天| 久久伊人青青草| 自拍偷拍 日韩无码| 啊啊啊水好多| 女人18精品一区二区三区| 亚洲一区二区三区麻豆传媒| 一本一道人妻久久一区二区三区 | 四虎在线免费视频| 97亚洲综合电影| 日韩黄色成人性爱| 五月天激情婷婷| 精品国产乱码久久久久久口爆网站| 秋霞Av理论一级在线| 欧美东京热青青草| 久久精品超碰| 青青草色AV| 影音资源男人日韩| 国产精品另类一区大香蕉| 成人熟女区| 成人网欧美风情| 欧美一区91大爱| 香蕉婷婷| 伊人婷婷五月天| 亚洲图片色图欧美另类| 国产精品久久天天干| 91美女视频在线观看| 好湿好紧视频| 欧美色图20p| 欧美 日韩第一性色| 综合91网| 性色乱AV一区二区| 91精品人妻一区二区-全集完整版免费正片国语-B02AV | 亚洲一区二区 麻豆传媒| av情色影音| 懂色综合久久久| 婷婷色色五月| 人妻加勒比东京热| 国产丰满少妇久久久精品影院| 亚洲熟女乱色| 国产午夜福利视频在线| 成人久久精品| 99re28在线观看| 人妻激情视频| 黄色电影在线播放综合网站| 操逼免费视频无码国产| 亚洲αv一区二区三区| 奇米狠999| 国产精品一区二区校花| 亚洲操人| 黄色av片三级三级三级免费看| 亚洲成?V人片在线观看福利| 日本色色色视频| 在线看免费无码AV天堂的| 六月丁香啪啪| 麻豆人妻少妇在线免费观看| 日日骚av| 欧美色青| 精品999999| 视频国产欧美在线播放| 女人喷水视频在线观看| 亚洲激情久久| 嫩草影院永久在线制服丝袜| 97超碰公开| 岛国黄片网站| 日韩人妻资源在线看| 玖玖蜜臀资源网| 久久偷偷色综合蜜桃| 国产91美女视频| 国产精品分类在线观看| 婷婷综合久久| 美女网站黄页| 国产又黄又粗的视频| 人人插人人搞人人操| 殴美牲| 麻豆人妻少妇在线免费观看| 五月天亚洲色图| 精品蜜乳AV免费观看| 亚洲精品乱码线路中文字幕 | 亚洲精品无码成人久久久99| 国产99热| 中文字幕 一区二区 亚洲无码| 黑丝日韩av丝袜av| 亚洲高清视频在线免费观看| 九九热精彩视频| 蜜臀99精品国产高清在线观看| 午夜男女爽爽大片免费观看| 99操| 蜜臀aV午夜一区二区三区| 欧美激情在线观看视频| 黄色AAAAA欧美| 福利色色| 91 国产丝袜在线放观看| 亚春色色| 日韩激情中文字幕有码| 亚洲综合图片在线| 国内毛片国产欧美拍| 久色网| 欧美少妇第一页| 十八禁电影伊人网| 日韩在线性爱免费视频| 九九九九日本| 秋霞网—男女啪啪亚洲免费体验区| 亚洲 日本 一 二 三| 中文字幕一二三av| 爽 好舒服 无码刺激久久| 91精品国久久久久久无码| 国产午夜在线观看| 日韩乱码Av| 高清孕妇孕交 交| 秋霞一级视频在线观看免费| 欧美人妻熟女在线| 久久亚洲精品成人av| 97热视频在线观看| 在免费jIzzjIzz在线视频| 无码人妻丰满熟妇奶水区毛片| 志村玲子视频一区二区| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区二区老师黑人潮喷一 | 超碰97网址| 久久激情婷婷| 香蕉在线一区二区三区| 精品一区二区三区麻豆| 九九99久久| 久久久少妇诱惑精品视频| 人人摸.人人色| 日韩二三区| 亚洲欧洲中文日韩女优乱码| 加勒比综合九九99视频在线播放| 人人操 欧美| 亚洲美女精品| 人人看黄色视频| 亚洲不卡av在线| 夜夜草天天| 少妇蜜汁| 久夜视频| 国产日本熟女顶级一区二区三区视频 | 亚洲无码视频免费在线观看网址!| 日本狠狠干| 天天插网| 精品久一区免费| 裸体美女免费看网站青草| 超碰天天去日穴| 91精品久久久久久综合五月天| 日日97| www.人人cao| 五月天人妻综合| 懂色AV一区二区三区| 亚洲乱色熟女一区| 欧美一区二区三区不卡高清视频| 嫩草 我啊~嗯~在线| 亚洲熟妇自偷自拍另欧美| 色综合国产在线观看| 一区二区三区色综合| 新婚人妻扶着粗大强行坐下| 黄片免费视频2019| 97资源站国产精品| 91天美传媒精品| 国产 亚洲 丝袜 制服| 欧美熟妇色| 成人日韩中文字幕| 激激五月| 男女性感激情网站| 舔足天天操天天射| 亚洲精品一卡二卡三卡福利视频网站 | 亚洲在线网站| 亚洲人精品久久久| 91精品人妻啪啪间| 欧美日韩亚洲少妇寂寞影院正在播放| 国产二区视频在线观看电影| 99热精品在线| 日韩欧美字幕亚洲一区二区| 日韩欧美性爱电影在线观看| 懂色av中文字幕一区二区三区天美| 五月婷视频| 天天看精品动漫视频一区| 神马九九九| 99啪啪视频| www狠狠| 伊人成人中文字幕久久网| 日本一道在线播放高清| 在线看污网站| 秋霞福利网| 激情四射婷婷四五月天| 激情综合五月婷婷| 亚洲国产成人高清在线| 国产精品一区av在线| 97超碰精品图片| 色情亚洲日本成人| 志村玲子视频一区二区| 欧美一区二区亚洲天堂| 九月婷婷久久| 99综合免费视频| 一本精品日本在线视频精品 | 天天干天天操天天操夜夜操天天操| 又大又长又爽| 五月综合视频| 日本精品第一视频在'| 国产精品原创巨作?v网站| 国产91 丝袜在线播放00-百度| 日本超碰色精品| 天天爽夜夜欢视| 厕所偷拍在线| 久久久亚洲精品中文字幕人妻| 欧美日韩大陆黑人少妇99| 一区久久久二区| 最新欧美色网| 色噜噜人妻av 中文字幕| 五月丁香网站| 好吊色在线观看| 精品一区二区三区蜜桃臀赵总| 超碰碰碰碰| 久久艹逼视频| 97电影院超碰| 91九色丨国产丨爆乳| 欧美熟妇视频| 超碰碰97| 久久骚少妇| 久久av色| 91neishe| 久9久| 国产激情在线观看| 这里都是精品在线观看| 日韩有码免费视频| 啊啊啊97视频| 日韩欧美中文字亚洲慕| 亚洲国产美女久久久久| 先锋激情∨在线视频播放| 操婢日韩| 艹精品| 中国一级操逼视频| 日韩中文字幕视频在线观看| 91N欧美| 999日韩中文精品观看视频。| 国产熟女少妇一区| 四季AV一区二区凹凸精品小说| 黑丝日韩av丝袜av| 一线黄色免费性爱片| 国模私拍一区二区三区神乳| www.yw尤物| 嗯啊免费视频| 97国产伦理| 99在线精品观看视频中文| 91亚州| 天天躁日日躁狠狠躁| 中国一级αV| 国产精品久久久久无码A√| 国产高清成人传媒影视| 嗯嗯啊啊操死我| 亚码人妻| 欧美色亚洲| 亚洲成人在线高清| 人人扣人人操| 夜夜高潮夜夜爽高清视频一| 影音资源男人日韩| 日韩激情电影中文字幕 | 亚洲精品日日夜夜52| 色婷婷电影网| 大香蕉在线SuP| 天天视频黄| 男男H黄动漫啪啪无遮挡网站| 97色冈| 欧美色图 人妻| 青草一区二区| 欧美日韩一区二区三区四区蜜桃| 久久久久免费少妇| 色九九综合AV| 性爱乱伦一区| 岛国人妻少妇av在线观看| chaopen97久久| 在线视频 亚洲精品| 中国熟女91| 日本淫乱女一区二区三区视频| 影音先锋视频在线| 夜夜高潮夜夜爽| 亚洲校园激情| 一区操逼日比视频| 毛片17S| 夜夜嗨一区二区三区三州加勒比| 一级做受视频免费是看美女| 久久草草欧美精品| 超碰97 线线 在现| www.色婷婷| 玖玖资源视频一区二区三区| 国产超碰在线| 极品少妇久久久| 久久99精品视频| 老熟妇一区二区三区| 超97在线精品视频| 欧亚揄拍偷拍精品视频| 国产欧美日韩在线不卡第一页| 亚洲色图 图片| 国产无码高清操逼视频| 亚洲人妖网| 在线观看亚洲成人精品| 人人摸人人干| 日本1区2区不卡视频| 欧美内射少妇| 亚洲一曲日韩精品| 国产午夜福利合集| 天天综合日韩网| 久久一区二区蜜桃| 久热久一区二区三区| 乱性AV| 91青视频| 91精片| 九色97| 国产精品香蕉热久久新品| 日韩人妻操B| 91肉片| 国产夜夜艹| 色综合国产在线观看| 天天综合网91入口| 国产操操日韩三级黄| 天美传媒av在线| 无码日韩网站| 天天干人人乐| 肥臀熟女福利视频一区二区| 自怕偷自怕亚洲精品| 日韩情色AV| 久久久久久国产精品免费网站| 色香综合天天影视综合| 天综合中文| 国产美女自拍AV| 蜜臀亚洲综合一二三四区| 91动漫操逼视频| 亚州,欧美在线| 天天日天天色| 日婷婷| 走光一区92下载| 日韩精品黄片免费观看| 视频国产成人精品日本亚洲18| 欧洲亚洲人妻无码中字久久三区四区 | 混色激情av| 人妻丰满熟妇一区二区三| 欧美亚洲清纯| 中文字幕久久精品一区| 亚州色交| 免费1级a做爰片观看| 日本五区不卡| 丰满少妇一区二区三区专区| 网页导航五月天免费一二三区| 国产精品伦理| 69视频入口| 欧美亚洲国产日本在线,久久精品国产| 久久久国产成人一区二区三区在线| 青青五月天| 麻豆久久久久久久久丝袜| 日本一区二区不卡精品| 17c在线成人免费A片观看| 快播久久人人aV| 久久国产精品,久久国产| 91在线无码精品秘 软件| 午夜男女爽爽大片免费观看| 啊啊啊啊啊在线| 91国产丝袜美女| 久久久工口| 国产精品99久久久www| 亚洲āv网址在线观看| 亚州,欧美在线| 亚州中文字幕超碰97| 亚洲男人天堂2019| 一块操欧美性爱| 五月婷婷六月丁香网址| 国内偷拍精品一区二区| 久草成人| 欧美性视频二区三区| 用力操死我| 狼天天狼天天大香蕉| 国产超碰| AV不卡在线| 操逼逼一区视频| 亚洲欧美不卡线| 67914在线兔费成人视频| 熟妇人妻一区二区三在线 | 天美传媒在线一区| 狼人综合婷婷激情四射 | 夜夜嗨免费视频| 久久久久久久久久久97| 97综合在线观看| 亚州精人品大香蕉| 操九九九九九九| 精品免费1| 手机av天堂久久久久| 丰满人妻一区二区三区四 | 东北女人性交| 天天干人人乐| 香蕉人欧美综合| 精品人妻一区二区三区免费视频| 夜夜嗨TV| 亚洲日本天堂| 国产91 丝袜在线播放 | 免费啪啪一级视频| 凹凸视频特色日本特黄| 免费视频a级毛片免费视频| 亚洲福利中文字幕在线| 精品妇女一区二区三区| 精品91摸| 丝袜夫妻自拍| 国产诱惑| 99日视频在线免费| 91久久青青草原精品| 亚洲午夜未满十八勿入网站日本又色又爽又黄 | 97色碰| 欧美色图色综合| 久久免费少妇| 91在线视频观看国产| 婷婷91| 啊啊啊啊嗯嗯嗯用力好爽 | 99啪啪视频| 久久精品免视看国产成人﹣蜜臀av一区. 久久精品免视看国产成人,蜜臀av一区 | 丝袜色综合| 97超碰精品图片| 91内射| 97超碰人人模人人拍人人| 2024年最新色情网站在线观看| 欧美性生活免费网| 成人综合色网| 国产情色第一第二页在线观看| 国产蜜臀精品一区二区尤物| 69XX一中文字幕人妻91| 丁香激情网| 中文字幕天天操| 欧美一级二级三级| 青青伊人这里只有精品| 台湾佬激情综合| 91激情国产| 成人一道本免费视频| 六月色色| 国产亚卅97| 青青草久久| 超碰95| 淫荡少妇免费| 日本天堂网| 亚洲情色 自拍| 最新岛国大片| 天天欧美色| 青草伊人网| 国产69精品久久久久99尤物| 青青操在线亚洲视频观看欧美在线 | 久9精品| 99re免费视频精品全部| 91操碰| 一区二区 日韩 欧美 国产 传媒| 九九久久国产精品怡红院| 国产精品久久久久绯色| 免费精品AB| 国产 亚洲 丝袜 制服| 热天堂一区二区| 外国免费性情大片| 日本国产成人亚洲精品无码| 亚洲污污网站| 乱伦1色页| 69AV女优男人的天堂| 91日韩国产欧美亚洲另类精盘州至城都| 乱伦3P视频| 传媒免费一区二区三区| 黄视频免费| 中文有码第五页| 中文一区二区三区影院| 玖玖97综合 | 9久久久久久| 国产精品一二三在线看| 日韩欧美天天爽爽爽天天爽爽| 日韩欧美福利视频看看| 2025亚洲男人天堂| 欧美伊人久久综合网| 打av高清| 91精片| 手机看片1025| 欧美亚洲清纯| 色优久久| 亚洲欧美97| 色五月激情综合网| 色五月av| 操逼网免费无码视频| 欧美亚洲清纯| 天天流夜夜操| 成人午夜高潮av猛片| 人妻熟女一区二区三区在线| 3P乱轮视频| 精品二区三四区五电影| 99色色网| 97在线观看视频| 欧美在线播放aaaa| 国产老太乱伦一区| 欧美18老人禁| 中文字幕十五区| 操逼天美3区| 国产99999久久精品| 亚洲一区二区性爱电影| 天天天干977| 97人肏| 久久久久久九| 99re95| 国产乱色国产精品免费视| 91激情综合| 亚洲另类在线观看| 玖玖爱在线视频免费观看| 欧美亚洲日韩16色| 丁香五月天堂网| 免费无码婬片AAAA片直播色戒| 天天看特黄的免费网站| 日韩女模中文造逼| 麻豆国产精品午夜视频| 97精品一区| 欧美极品女人的天堂| 99e久久国产精品| 激情四射婷婷六月天| 加勒比在线视频| 狼狼色丁香久久婷婷综合五月| 男人天堂毛片| 久久夜嗨| 国产美女高潮叫床视频| 涩综合导航| 九久久精| 91欧美成人色站| 欧美亚洲日本激情在线| 九九九精品成人免费视频小说| 呻吟 欧美 日本 中出| 熟妇高潮一区二区免费视频| 亚洲中文字幕三级在线| 韩国手机不卡无码三级视频| 亚洲精品久久久久久久蜜桃臀| 老女人老91妇女老热女| 中文伊人大香蕉视频| 国产高清MV操逼视频| 人妻另类 专区 欧美 制服| 91精品操美女| 超碰中文字幕人妻草一区| 久久超碰天天| 精品国产99| 九九久久九九久久| 亚洲欧美中文日韩视频中国语 | 亚洲蜜桃V妇女| 97在线视频免费观看| 亚洲第一男人天堂| 美国三级日本三级久久99| 妇人噜噜| 97 亚洲 日韩 欧美 在线| 免费视频a级毛片免费视频| 亚洲欧美日韩二区视频| 色网站导航大全| 色97干| 91AV天美在线视频| 国产精品 午夜福利| 嗯嗯啊啊啊好舒服| 福利风月五月天影院| 性欧美另类高清| 欧美亚涩| 噜噜在线| 日本性爱少妇| 人、人、摸,人、人、草| 亚洲乱码尤物193YW| 日本一区二区三区四区免费观看| 日本免费一级AAA大片器| 亚洲小电影免费涩涩成人在线高清 | 91精品国产91久久青草 | 蜜乳AV一区二区三区四| 岛国免费黄色网址| 男女激情黄色网址| 久久精品三级影视| 五月婷婷六月天| 97色伦欧美| 嗯嗯啊啊啊好舒服| 亚洲有码第一页| 中文字幕第95页| 凹凸 69堂 在线播放| 91bbbbbb| 2017天天插| 久久久96| 久久啊啊| 五月天亚洲色图| 中文字幕久久婷婷丁香五月天 | 人澡逼| 国产二区三区粉嫩在线| 欧美色图91p| 国产AV天美传媒一区二区三区 | 国产不卡精品91| 日本淫色网| 免费亚洲国产精品久久一区| 校园春色中文字幕AV| 久久精品国产72国产精品福利 | 91 手机在线播放 绯色| 婷婷中文网| 婷婷五月av| 欧美制服另类丝袜| 香蕉免费一区二区三区不读| 国内外毛片在线观看| 加勒比综合88| 人人看人人爰人人操| 激情久久久| 青青青国产| 2026国产精品视频| 欧美爱爱97| 蜜乳AV一区| 69超碰综合| 久久一本大香蕉| 色香AV| 亚洲 欧美 日韩 国产一区二区 | 超碰色图| 72av视频| 狠狠操狠狠操操| 欧美午夜视频免费观看| 91丨九色丨东北熟女| 久久97资源 网| 国产三级中文字幕粉嫩| 亚洲高清无毛一区二区| 色欲久久综合| 欧美色图成人网一区二区 | 北约熟女超碰| 婷婷91| 91超碰人人| 久久华人网| 中文字幕亚洲在线一区| 久热久一区二区三区| 97草草| 超碰2017| 久久久精品中文字幕爱豆| 伊人色综合网| 欧美日本视频一区| 加勒比在线观看一区二区| 一二三区在线| 抽插一区二区视频| 日韩国产成人自拍视频| 大香网伊人久久综合网eew| 色逼综合| 国产精品久久久无码AV网站| 97超碰逼| 999久久久国产精品| 搡老熟女老女人老熟妇免费视频| 日韩钢筋无码高清啾啾啾| 国产精品熟女一区二区三区| 99色天堂| 欧美色日本| 思思久热在线精品66| 五月天激情小说| 中文字幕乱妇免费视频| 天天做日日爱夜夜爽| 91艹| 国产精品久久久久久无码红治院| 亚洲网自拍| 亚洲影院成人| 韩日男人的天堂| 欧美v日韩v亚洲v最新在线| 先锋精品av色鲁| 四虎免费在线播放| 美女被艹尤物视频| 青青草五月份天| 中文字幕亚洲在线一区| 色九九久九九| 狠狠久久亚洲欧美专区| 这里只有精品97| 久久婷婷五月天| 久久久一区二区三区麻豆| 亚洲欧洲国产综合av| 久久精品国产97欧美精品亚洲 | 热热色青青草| 久久免费精彩视频| 久久少妇| 五月婷色| 天天操妹子| www.婷婷| 国产日本顶级一区二区三区| 久久五月份| 欧美大香蕉久| 9 9无尺码天堂网| 麻豆这里只有精品| 日韩欧无码一区二区三区免费不卡 | 在线亚洲精品久久久| 国产精品视频麻豆入口| 黑人干亚洲| 极品尤物在线观看| 久久69| 精品91摸| 97色碰| 1024久久高清视频| 激情天天视频| 久久99久久99精品天美传媒棢·纸:. | 丁香九月婷婷| 日本久久综合| 久久精彩免费视频| 精品毛片av一区二区| 91狠狠狠| 天堂九九九九九九九九九| www.91人妻.com| 亚洲极品| 色婷婷小说| 久综合国内精品自在自线| 97超碰伊人| 中文字日本乱码| 亚洲欧美经典一区二区| 妇女性内射冈站HDWWWCOM| 99色在线| 欧美熟妇乱码在线一区| 亚洲 欧美 手机在线观看| 2019天天干| 亚洲精品久久一区二区三区蜜桃臀| 婷婷五月成人| 中文字幕一区二区在线日韩精品| 东京热av影院| 欧美一区二区成人一卡| 人妻嗯啊啊在线播放| 一区二区三区黄色片a| 蜜臀久久99精品久久久久久酒店 | 亚洲色图尤物视频| 91日韩国产欧美亚洲另类精盘州至城都| 欧美激情视频一区二区三区不卡| 日本护士高潮| 五月天久久综合网| 97天堂| 性欧美精| 99久热| 无码人妻精品一区二区中文| 人妻精品一区二区| 人妻少妇久久| 99爱爱| 日韩精品-原创伙伴| 欧美一区二区成人一卡| 青草青青久久久久久国产| 亚洲一区二区精品福利| 丁香六月激情| 亚洲春色一区二区三区| 操熟女91| 欧美日韩亚洲天堂网| 日韩在线视频1234| 欧美亚涩| 在线日韩视频| 人、人、摸,人、人、草| 国产Aα| 国产h小视频在线观看免费| 亚洲熟女一区二区| 激情另类激情| 91制服丝袜| 高颜值美女口爆高潮浪叫| 欧美,日韩,中文,另类| 骚日日av| 久久久噜噜噜久久人妻| 青青欧洲黑| 嗯嗯啊啊好疼| 日韩三级在线观看mp4| 1区2区3区中文字幕日韩| 99999久久久久9国产精品| 国产欧美第五页| 青青草日韩无码| 亚洲高潮少妇| 久久久久久性爱片| 欧亚第一综合网| 麻豆AV96熟妇人妻| 亚洲成人妻日韩在线| 国产精品丝袜久久亚洲不卡| 国产精品久久久久久9999| 激情婷婷丁香| 亚州色图欧美色图| 高清孕妇孕交 交| 欧美精品宗合| 免费视频在线一区二区不卡| 日本十八禁免费看污网站| 人人操人人操人人操人人操人人操人人人11.CM | 午夜.DJ高清在线观看免费7| 精品国产一区二区三区香蕉欧美| 乱欲一区二区| 国产原创剧情在线丝袜| 99热精品在线在线| 久jiu久神马影院| 色婷婷综合久久久久中文一区二区| 久久国产对白激情浪潮| 一二三四视频在线社区中文字幕| 国产精品69久久久久孕妇欧美 | 欧美人妻制服| 日韩兔费看黄片| 日熟女| 久久久久久人妻一区精品色欧美| 中国少妇XXXX做受| 91超碰人人操| 婷婷激情一区二区三区俺也去| 久久6热精品99视频| 日夜精品| 强奸抽插av| 大色综合网| 女人天堂AV五区在线| 欧美亚洲美少妇一区二区| 97精品一区| 亚洲熟妇一,二,三期| 国产高清MV操逼视频| 亚洲日本成人动漫| 中文字幕第23区| 99在线精品视频| 久久久久亚洲?V片无码V| 丁香六月婷婷久久综合| 亚洲污一污二| 91久久婷婷| 亚洲精品性爱片| 久久精彩视频| 久久宗合亚洲| 免费操逼91| 九九黄色视频在线观看| 美女淫穴| 日噜夜夜夜夜夜夜夜夜夜夜爽爽爽爽爽爽爽爽爽爽爽爽 | 宗合情欲网| 97在线/亚洲| 先锋影音av先锋一区| 99ri视频| 偷拍网站久久男女男| 欧美在线综合| 在线无码网站| 夜夜狼人妻| 欧洲综合色图| 九九色逼| 日韩无码久久熟女一级片| 久久97| 无码免费精品高清| 97 超碰 人人做 人人爱| 91精片| 一区三区啪啪| 男人的天堂2000| 国模无码人体一区二区三| 性吧在线视频| 日本一卡二区在线| 国产懂色精品国产av| 欧美 亚洲 另类 综合| 亚欧无码线免费观看视频| 日本三级大片| 亚欧美无遮挡| 亚洲精品精品一区二区| 九九综合网| 欧美少妇性爱网站| 亚洲精品一卡二卡三卡福利视频网站| 日韩少妇无码| 天天日天天操心| 久久大香蕉97| 欧美精品自慰系列寂寞少妇| 免费国产| 视频一区二区三区精品| 国产欧美一区二区| 亚洲?V高清一区二区三区尤物| 91亚洲黑人| 91狠狠| 在线女人91| 91久久| 日本免费中文一区二区三区四区| 黑人精品欧美一区二区蜜桃| 狠狠干综合| 男人天堂欧美| 91骚妇| 嫩草美女久久| 你草精品在线视频| 秋霞久久亚洲精品成人| 亚洲男人综合网| 欧美人妻精品一区二区| 一区二区三区四区在线不卡| 亚洲福利中文字幕在线| 易易A毛视频| 鲁鲁色综合网| 国产 日韩,欧美 自拍| 男女91| 日本孕妇一区二区视频操逼免费看| 天天影视色香色欲| 999精品国产高清一区二区| 九九热精彩视频| 婷婷五月天影院| 精品亚洲| 欧美性暴力猛交XXXX| 人人操人人插人人摸人人干| 操91| 国产精品久久久鸭无码的功能| 久久99干一本高清| 97国产精品国| 亚洲精品第一| 大香蕉综合网| 精品一二三区四视频| 久久女婷| 亚洲国产成人综合碰碰三级经典| 黑人中出21连凳花野真衣| 亚洲高清无码在线桃色| 91性网| 草b在线 | 97精品在线| 亚洲欧洲偷拍一区| 台湾成人无码AV| 精品人妻一区二区三区视频在线| 91新在线欧美| 91GD.COM| 日韩国产精品人妻无码久久久| 亚洲限制级| 色婷久久| 殴美性天天| 一本久久精品中文字| 亚洲天堂区| 首页中文字幕中文字幕免费| 乱伦熟女论坛| 久久久久久久久9| 麻豆国产成人精品| 无码99| a v网站在线播放| 欧美日韩中文视频播放| 欧美青青草视频| 亚洲另类久操网| 国产粉嫩出水在线播放| 亚洲国产成人7777| 国产精品成人午夜福利| 日本精品久久久久久久| 欧美另类色| 91色婷婷综合久久中文字幕二区| se吧提供国产乱老熟视频胖女人| 岛国天天午夜影院传媒网| 五十路熟女工口 | 夜夜爽77777| 亚洲 欧美 手机在线观看| 国产精品黑人一区二区三区| AV天堂因数| 亚洲一区制服诱惑| 欧美日韩婷婷中文| 天天干天天操天天拍| 婷婷综合五月| 亚洲国产午夜真人一级片中文字幕精品黄网站| 人妻一区二区三区四区视频| 啊啊啊啊嗯嗯在线久久久| 玖玖草久草99蜜月一区二区三区| 青苹果影院男人的天堂| 99丝袜福利在线播放| 99精彩视频| 日本精品成人无码| 92午夜免费福利视频| 超碰色男人操熟女| 国产AAAAAABBBBB| 欧洲久久一二线| 综合久久2017| 巨乳特殊服务按摩| 欧美春色| av线电影| 禁十八久久| 特级大荫道BBwBBwBBW| 青青草原狼av| 蜜桃精品一区二区三区ww| 小草三级久久观看| 久久婷婷一区二| 蜜臀久久99精品久久久久久久久| 九九综合久久| 开心五月婷婷| 国产女人高潮视频| 色香阁在线| 精品久久久久,69国产成人精| 少妇一线天久久久久久| 亚洲性爱高潮影院| www鬼畜国产男人的天堂| 欧美大码在线视频| 国产美脚女优尤物在线观看| 久久视网78| 欧洲一区二区三区免费| 一区| 91天美传媒在线| 欧洲与亚洲欧美精品中文字幕| 精品成人女人久久| 毛片99-全集电影手机免费观看完整-B029AV| 热久久无毒不卡| 日韩一级二级三级| 日韩精品资源专区二区| 亚洲天堂中文字| 精品超碰国产| 九久久九精品视频| 嫩草影院永久在线制服丝袜| www.成人无码| 国产高清成人免费视频| 成人精品一区二区91毛片不卡| 少妇干B| 婷婷色五月激情| 欧美精品四区| 东北老女人的激情视频| 亚拍在线| 男人的天堂久久狠| 超碰欧美97| 久久久久亚洲av综合波多野制衣| 最新啪啪视频| 久久久9品一区二区三区| 加勒比东京热五月天天堂网| 麻豆尤物视频网| 日韩精品在线视频在线观看| 日韩中文字幕二区| 夜夜夜夜夜夜夜夜夜狠狠狠狠狠狠狠 | 五月丁香| 天天操女人| av东京热男人的天堂| 亚洲人妻五月丁香婷婷| 黑人精品一区二区在线播放| 成人性爱美曰韩| 欧美综合站| 国产偷人妻精品一区二区在线| 超碰97国产欧美| www亚洲免费| 激情视频网址| 一区二区三区四区久久视1| 加勒比无码毛片| 白丝被操91| 99久久99九九99九九九| 97视频7| 偷拍99| 亚洲av性爱电影| 最新国产亚洲精品精品国产亚洲综合| 久草精品热视| 9九九国产| 老司机深夜18禁污污网站| 97干在线| 裸体女人草逼视频播放一区,二区,三区,四区,五区 | 免费夜夜爱黄色视频毛片| 91处女在线视频| 久操操AV电影| 黑操B| 欧美极品少妇| 秋霞免费无码视频日韩A片 | 蜜臀一二三| 大色综合| 天天躁日日躁XXXXYY| 操b网站亚洲无码| 男人天堂东京热| 秋霞视频一区二区 | 日本激情免费大片| 成人日本精品九区| 亚洲欧美黄| 一区二区娱乐网站| 蜜桃丰满熟妇av无码区不卡| 操b在线观看| 亚洲一区中文字幕久久,果冻传媒一区二区天美传媒 | 欧美曰韩国产精品| 丝袜人妻av一区二区| 欧美性猛交美女自慰91| 欧美高清16| 99热9| 自拍啪啪视频| 久久久免费一级黄片| 96国产污污污丝袜| 国产一区二区三区免费视频在性观看| 久久婷婷色综合一区二区三区| 91亚洲网站| 色婷久久| 精品国产国产AV| 人人艹亚洲| 亚洲素人网| 91 亚洲 欧美 日韩 国产 综合| 日韩色女精品| 欧美日韩国产色图在线| 日本高清一本二本免费不卡| 亚洲成人性爱在线观看| 欧美桃色网| 99操99| 夜夜欧美| 天天色综亚洲91污| 久久久无码精品人妻二区 | 啊啊啊啊在线播放| 欧美性爱视频免费一区一A| 欧美激情亚洲情色| 日韩av不卡在线观看| 亚州精品人妻一二三区| 无码伊人久久大杳蕉中文无码| 色色青青久久| 国产福利精品最新在线| 床戏久久久av一区二区麻豆| 五月婷婷大香蕉| 99999国产精品| 猛交交| 麻豆精品一区二区三区四区免费观看| 最新欧洲欧美日本激情网站| 日韩欧美亚欧在线视频| 伊人精品视频| 国产呦精品一区二区三区下载| sewuyueav| 麻豆九九九| 91天堂色男人的天堂| 人人妻人人玩人人澡人人爽| 免费看污网站| 福利伊人玖玖国产| 啊啊啊啊好爽好舒服一区二区易域| 亚洲综合有玛| 亚洲中文日韩精品| 超碰97色| 久久久久久91香蕉国产| 午夜无码精品免费看性色| 婷婷国产精品一区二区| 操九九九九九九| 操逼片国产| 中文字幕乱妇免费视频| 国产精品制服丝袜中文字幕日韩一区二区三区 | 久久熟女嫩草成人片免费| 99久久com免费视频′| 日韩av不卡在线看| 天天操福利视频综合网站| 久久久9品一区二区三区| 乱伦av国产| 春色综合网| 久久夜夜夜| 色色热| 99re免费视频精品全部| 欧美一品道| 啊好爽受不了无码| 成人黑料社久久| 欧美呦呦性爱| 亚州男人天堂| 色眯眯av| 久久人妻丝袜一区二区三| 91在线视频观看国产| 中欧人妻丝袜中文字幕| 91精品又粗又猛又爽| 人妻久热在线| 99久久网站| 国产日韩欧美操逼视频| 精品传媒在线一区| 久久精品视频一区三区小泽玛利亚| 天无日色综合| 黄片不用下载在线观看| 在线人成亚洲视频免费观看| 91熟女丨91老女人| 激情婷婷丁香网| 午夜天堂网| 男人的天堂啪啪| 人人摸人人叼| 第四色奇米影视777| 九九九免费视频| 欧美日韩不卡传媒| 欧美亚洲高清不卡| 精品久一区免费| 志村玲子视频一区二区| 亚欧高清v| 久操网视频| 乱伦熟女专区| 精品人妻一区二区三区日产| 亚洲乱熟女一区二区| 另类视频在线| 884t在线| 乱伦av麻豆| 男人天堂黄片| 午夜精品久久久久久久久久蜜桃| 极品国产内射| 欧美极品| 熟女少妇视频| 欧美人妻一区二区| 国产后入清纯| 亚洲人久久久网| 国产精品视频播放| 男人天堂日日夜夜| 大香蕉十区| 天色综合网| 九九热男人天堂| 爱爱动态120秒| 欧美图片偷拍| 久久久影院| 久久99国产综合精品女同| 欧美大码在线视频|