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

ARTICLE DETAIL

資訊詳情

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

基于RAG的私有知識(shí)庫(kù)問答系統(tǒng)實(shí)戰(zhàn):從文檔預(yù)處理到檢索增強(qiáng)生成

基于RAG的私有知識(shí)庫(kù)問答系統(tǒng)實(shí)戰(zhàn):從文檔預(yù)處理到檢索增強(qiáng)生成 簡(jiǎn)介這是一套基于RAG檢索增強(qiáng)生成技術(shù)的私有知識(shí)庫(kù)問答系統(tǒng)完整項(xiàng)目面向計(jì)算機(jī)相關(guān)專業(yè)需要完成畢業(yè)設(shè)計(jì)、期末大作業(yè)或課程設(shè)計(jì)的學(xué)生也適合想學(xué)習(xí)RAG落地實(shí)踐的開發(fā)者參考。項(xiàng)目代碼注釋詳細(xì)經(jīng)過嚴(yán)格調(diào)試簡(jiǎn)單部署即可運(yùn)行系統(tǒng)功能完善、界面美觀具備知識(shí)庫(kù)管理、智能檢索問答等核心能力屬于導(dǎo)師認(rèn)可的高分畢設(shè)作品。資源包共545個(gè)文件約126MB以145個(gè)Python源碼文件為核心輔以96個(gè)pyc編譯文件、166個(gè)png界面截圖、23個(gè)md說明文檔同時(shí)包含9個(gè)pdf文檔、35個(gè)js前端腳本及css、yaml、json等配置與依賴文件代碼、文檔、素材一應(yīng)俱全。目前已有1860人學(xué)習(xí)下載。源碼帶有清晰注釋新手也能讀懂可直接作為畢業(yè)設(shè)計(jì)或課程設(shè)計(jì)提交也可在此基礎(chǔ)上擴(kuò)展二次開發(fā)對(duì)理解RAG檢索生成流程、私有化知識(shí)庫(kù)搭建具有很高的參考價(jià)值。1. 基于RAG的私有知識(shí)庫(kù)問答系統(tǒng)畢業(yè)設(shè)計(jì)里最值得一試的“萬(wàn)能殼子”站在畢業(yè)設(shè)計(jì)的選題清單前大多數(shù)人的第一反應(yīng)是做一個(gè)XX管理系統(tǒng)但如果你盯上基于RAG的私有知識(shí)庫(kù)問答系統(tǒng)要交付的就不是又一個(gè)CRUD而是一個(gè)能“看懂”你喂給它的文檔、并按提問給出帶出處回答的系統(tǒng)。RAG檢索增強(qiáng)生成會(huì)把私有文檔切碎、向量化、存進(jìn)向量庫(kù)用戶提問時(shí)先檢索最相關(guān)的片段再讓大模型基于這些片段作答。它直接解決一個(gè)真實(shí)痛點(diǎn)通用大模型不知道你內(nèi)部文檔里的內(nèi)容微調(diào)貴且周期長(zhǎng)RAG用最少的算力把“陌生文檔”變成“可回答的問題”。這個(gè)方向適合想兼顧算法認(rèn)知和工程落地、又不想把畢業(yè)設(shè)計(jì)做成純調(diào)包演示的本科生和研究生源碼和文檔說明寫透了答辯時(shí)連“創(chuàng)新點(diǎn)”都能順著檢索鏈路往下講。2. 先把知識(shí)庫(kù)做成“能檢索的樣子”文檔歸一化、切塊與Embedding選型2.1 私有知識(shí)庫(kù)的常見來源PDF、Word、公眾號(hào)文章怎么歸一化“私有知識(shí)庫(kù)”聽起來高大上落到文件系統(tǒng)里無非是幾十個(gè)PDF、若干Word/Pages文檔、Markdown筆記還有從微信讀書或公眾號(hào)里存下來的網(wǎng)頁(yè)。常見做法是先把所有格式歸一成純文本后續(xù)的切塊、向量化才有統(tǒng)一入口。PDF用pdfplumberWord用python-docxHTML用BeautifulSoup這是我在多個(gè)項(xiàng)目里試下來最穩(wěn)的組合。from pathlib import Path import pdfplumber from docx import Document from bs4 import BeautifulSoup def load_document(path: str) - str: p Path(path) suffix p.suffix.lower() if suffix .pdf: text [] with pdfplumber.open(path) as pdf: for page in pdf.pages: text.append(page.extract_text() or ) return \n.join(text) if suffix .docx: doc Document(path) return \n.join(para.text for para in doc.paragraphs) if suffix in (.html, .htm): soup BeautifulSoup( p.read_text(encodingutf-8, errorsignore), html.parser ) for tag in soup([script, style]): tag.decompose() return soup.get_text(\n) return p.read_text(encodingutf-8, errorsignore)這段代碼做三件事按后綴分發(fā)解析器PDF每頁(yè)單獨(dú)提取并按頁(yè)拼接HTML先刪掉script和style再取文本。邏輯上要注意extract_text()對(duì)掃描件返回空字符串所以給它兜底o(hù)r 避免整頁(yè)內(nèi)容在后續(xù)處理里靜默丟失Word只取段落文本表格里的內(nèi)容會(huì)丟掉如果知識(shí)庫(kù)里有表格型制度文件要看后面避坑章節(jié)的處理方案。把公眾號(hào)文章存進(jìn)知識(shí)庫(kù)我一般不是去爬而是直接復(fù)制全文到Typora或Obsidian里存成Markdown再走上面的Markdown分支。這樣做的好處是保留了小標(biāo)題結(jié)構(gòu)后面按標(biāo)題切塊時(shí)能拿到干凈的語(yǔ)義邊界也天然避開了網(wǎng)頁(yè)里導(dǎo)航、廣告等噪聲文本的干擾。2.2 Embedding模型選型中文私有文檔的四個(gè)候選檢索質(zhì)量的上限由Embedding模型決定不是由大模型決定。這個(gè)順序很多同學(xué)搞反先定LLM然后隨便用一個(gè)Embedding檢索效果差就開始調(diào)Prompt這是本末倒置。建議先做一輪Embedding選型再回去定生成模型。下面這組對(duì)比是我在中文制度類文檔上常用的候選模型維度是否可本地部署中文效果備注BAAI/bge-large-zh-v1.51024是好密集檢索基線需要配合查詢指令前綴BAAI/bge-m31024是好支持多語(yǔ)言和多粒度內(nèi)存占用偏大text2vec-base-chinese768是中資源占用低適合老舊電腦跑演示云端API百煉、千帆等不等否好零部署但要把文檔內(nèi)容傳到外部私有場(chǎng)景慎用私有知識(shí)庫(kù)的核心訴求恰好在“私有”二字上一般優(yōu)先推薦bge-m3或bge-large-zh-v1.5。前者在長(zhǎng)文檔和混合語(yǔ)言場(chǎng)景更穩(wěn)后者單機(jī)幾個(gè)GB內(nèi)存就能跑。選型時(shí)有一個(gè)容易踩的坑不同Embedding模型產(chǎn)出的向量維度不一樣切換模型之后必須重建向量索引否則FAISS加載時(shí)直接把進(jìn)程崩掉這屬于“換了模型忘了索引”的低級(jí)事故避坑章節(jié)里我會(huì)展開講。另外知識(shí)圖譜型知識(shí)庫(kù)KG與RAG知識(shí)庫(kù)是兩條不同的路線。KG適合實(shí)體關(guān)系密集的場(chǎng)景比如公安案件、企業(yè)供應(yīng)鏈關(guān)系查詢但構(gòu)建圖譜的標(biāo)注和抽取成本很高RAG知識(shí)庫(kù)更適合制度文本、操作手冊(cè)這類“一段話講清楚一件事”的內(nèi)容。畢業(yè)設(shè)計(jì)里如果選的是制度問答老老實(shí)實(shí)走RAG就夠了別為了湊創(chuàng)新點(diǎn)硬上KG。2.3 圖片和表格要不要進(jìn)知識(shí)庫(kù)熱搜里常有人問“RAG知識(shí)庫(kù)能存儲(chǔ)圖片嘛”。純文本RAG處理不了圖片像素但有兩種變通一是用多模態(tài)Embedding把圖片和文字一起向量化二是先把圖片轉(zhuǎn)成文字描述再入庫(kù)。畢業(yè)設(shè)計(jì)不建議引入多模態(tài)顯得復(fù)雜且答辯不好講。更實(shí)用的做法是把圖片中的文字用OCR識(shí)別出來跟圖片的上下文文本拼在一起表格則按行轉(zhuǎn)成鍵值對(duì)文本再入庫(kù)。常見做法是把表格轉(zhuǎn)成“列名: 值; 列名: 值”的拼接文本例如“姓名: 張三; 部門: 研發(fā)部”而不是直接喂原始表格。原因在于切塊和Embedding對(duì)純排版結(jié)構(gòu)不敏感鍵值對(duì)文本的語(yǔ)義密度遠(yuǎn)高于帶空格的表格原樣。這一步雖然土但能顯著減少后端生成的幻覺。數(shù)據(jù)清洗時(shí)再順手做兩步去掉連續(xù)空行和亂碼字符按標(biāo)題把一篇長(zhǎng)文檔預(yù)切成小節(jié)這樣切塊器工作的目標(biāo)粒度從“整本手冊(cè)”變成“一個(gè)章節(jié)”召回效果會(huì)明顯提升。3. 用Python把“檢索生成”串起來最小可跑的RAG流水線3.1 本地向量庫(kù)FAISS bge-m3 的建庫(kù)與檢索一個(gè)能拿來答辯的RAG系統(tǒng)最核心的代碼量其實(shí)只有兩百行左右。我強(qiáng)烈建議不要一上來就套LangChain的完整流程畢業(yè)設(shè)計(jì)里要先自己手寫一遍Embedding和檢索哪怕后面用框架重構(gòu)成產(chǎn)品形態(tài)答辯時(shí)也能講清楚“向量從哪來、索引長(zhǎng)什么樣、檢索怎么算相似度”。下面這套最小可跑的組合直接用SentenceTransformer加載本地中文Embedding模型用FAISS建密排索引。from sentence_transformers import SentenceTransformer from langchain_text_splitters import RecursiveCharacterTextSplitter import faiss import numpy as np model SentenceTransformer(BAAI/bge-m3) splitter RecursiveCharacterTextSplitter( chunk_size500, chunk_overlap50, separators[\n\n, \n, 。, , , ], ) def load_documents(file_paths: list[str]) - list[str]: # file_paths 來自上一章 load_document 的歸一化結(jié)果 return [load_document(fp) for fp in file_paths] def build_index(docs: list[str]): chunks [ c for doc in docs for c in splitter.split_text(doc) ] vectors model.encode( chunks, normalize_embeddingsTrue ).astype(float32) index faiss.IndexFlatIP(vectors.shape[1]) index.add(vectors) return index, chunks def search(index, chunks, query, k4): query_vec model.encode( [query], normalize_embeddingsTrue ).astype(float32) scores, idx index.search(query_vec, k) return [ (float(scores[0][i]), chunks[idx[0][i]]) for i in range(k) ]代碼邏輯分三塊切塊器把每個(gè)文檔切成500字的小段段間重疊50字模型把每段變成1024維向量normalize_embeddingsTrue讓向量落在單位球面上檢索用IndexFlatIP也就是內(nèi)積相似度歸一化之后的內(nèi)積等價(jià)于余弦相似度。參數(shù)上chunk_size500對(duì)制度條款類中文文本是安全起點(diǎn)overlap50能避免句子被從中間腰斬。這里有個(gè)容易忽略的細(xì)節(jié)split_text返回的是字符串列表RecursiveCharacterTextSplitter的順序是先按“\n\n”切再按句號(hào)切最后按空格這意味著Markdown的段落邊界會(huì)被優(yōu)先保留比固定長(zhǎng)度硬切合理得多。如果裝不上langchain-text-splitters也可以手寫一個(gè)按標(biāo)點(diǎn)切塊的函數(shù)但多級(jí)分隔符的優(yōu)先級(jí)順序要保留。3.2 生成環(huán)節(jié)Ollama 本地大模型 帶出處約束的Prompt檢索拿到top-k片段之后生成環(huán)節(jié)的任務(wù)是“忠實(shí)復(fù)述”不是“自由發(fā)揮”。我用Ollama跑本地模型比如qwen2.5:7b通過OpenAI兼容接口調(diào)用這樣一個(gè)Client可以在本地和云端API之間平滑切換。Prompt里的核心約束是只能依據(jù)給定資料作答資料里沒有的內(nèi)容要明說不知道。from openai import OpenAI client OpenAI( base_urlhttp://127.0.0.1:11434/v1, api_keyollama, # Ollama 本地服務(wù)不校驗(yàn) key占位即可 ) def ask(query: str, hits: list[tuple[float, str]], top_k: int 3): context \n\n.join([ f片段{i1}{text} for i, (_, text) in enumerate(hits[:top_k]) ]) prompt ( 你是一個(gè)嚴(yán)謹(jǐn)?shù)膯柎鹬?。?qǐng)只根據(jù)下面的資料回答問題。\n 資料中沒有的信息請(qǐng)回答“資料中未找到相關(guān)內(nèi)容”不要編造。\n 回答時(shí)標(biāo)注你引用的片段編號(hào)。\n\n f資料\n{context}\n\n f問題{query} ) resp client.chat.completions.create( modelqwen2.5:7b, messages[{role: user, content: prompt}], temperature0.2, max_tokens512, ) return resp.choices[0].message.content這里temperature0.2是為防止模型在事實(shí)問答里“文采飛揚(yáng)”從而引入幻覺max_tokens512對(duì)大多數(shù)制度問答夠用。讓模型標(biāo)注片段編號(hào)有兩個(gè)作用一是給用戶提供出處答辯時(shí)這是很好的加分項(xiàng)二是當(dāng)模型引用了不存在的片段或半句話你能從編號(hào)反查是切塊問題還是檢索問題。實(shí)際演示時(shí)一個(gè)常見的翻車現(xiàn)場(chǎng)是模型滔滔不絕地把檢索片段之外的知識(shí)也講出來所以Prompt里“不要編造”這五個(gè)字往往比調(diào)大top_k更管用。生成這一步還有個(gè)小技巧把之前的問答歷史拼進(jìn)上下文實(shí)現(xiàn)多輪追問。簡(jiǎn)單做法是維護(hù)一個(gè)messages列表把前一輪的user/assistant內(nèi)容追加進(jìn)去但要注意上下文膨脹超過模型窗口后反而把檢索片段擠掉。我一般只保留最近兩輪對(duì)話再多就截?cái)唷?.3 手寫流水線 vs Dify/開源知識(shí)庫(kù)畢業(yè)設(shè)計(jì)怎么選熱搜里頻繁出現(xiàn)Dify知識(shí)庫(kù)和開源知識(shí)庫(kù)很多同學(xué)會(huì)糾結(jié)畢業(yè)設(shè)計(jì)要不要直接用Dify拉流水線我的看法是Dify適合做產(chǎn)品原型和現(xiàn)場(chǎng)演示但如果論文要求“實(shí)現(xiàn)一個(gè)系統(tǒng)”直接拖節(jié)點(diǎn)很容易被答辯老師問住——你寫進(jìn)論文的“創(chuàng)新點(diǎn)”會(huì)變成“配置點(diǎn)”。手寫代碼的另一個(gè)好處是能精確監(jiān)控每個(gè)環(huán)節(jié)的耗時(shí)和丟失率Dify里的“知識(shí)庫(kù)排隊(duì)中”這類黑匣子狀態(tài)到了答辯現(xiàn)場(chǎng)很難解釋。不過這并不意味著不該了解Dify。它的知識(shí)庫(kù)本質(zhì)就是文檔集、切塊策略、向量庫(kù)、檢索參數(shù)四件套你完全可以在論文的“系統(tǒng)設(shè)計(jì)”章節(jié)畫同樣的四層結(jié)構(gòu)再用自己的Python代碼逐層落地。開源知識(shí)庫(kù)也可以拿來對(duì)比選型但源碼級(jí)研究還是回到FAISS與SentenceTransformer這條主線最省力。底線是界面可以用現(xiàn)成框架套但檢索和生成的鏈路代碼必須能在自己機(jī)器上從零跑通否則論文的“系統(tǒng)實(shí)現(xiàn)”站不住。4. 讓回答從“能跑”到“靠譜”三個(gè)必調(diào)參數(shù)、混合檢索與Reranker4.1 三個(gè)必調(diào)參數(shù)chunk_size、chunk_overlap、top_k把系統(tǒng)跑通只需半天調(diào)參卻可能花掉一周因?yàn)槊總€(gè)參數(shù)都直接影響檢索命中率而命中率又決定生成質(zhì)量。三個(gè)必調(diào)參數(shù)是chunk_size切塊大小、chunk_overlap切塊重疊、top_k送入生成模型的片段數(shù)量。chunk_size語(yǔ)義上等于“模型一次能看到的資料粒度”。設(shè)置太小比如200一個(gè)完整的條款被攔腰拆散檢索到的是殘句設(shè)置太大比如1000向量里混入太多無關(guān)信息相似度被稀釋。中文制度文檔一般從400到600之間起步。chunk_overlap是防止句子被從中間切開導(dǎo)致語(yǔ)義斷裂的緩沖經(jīng)驗(yàn)值是chunk_size的10%到20%。top_k則需要在“上下文完整”和“上下文干凈”之間平衡top_k2時(shí)上下文很干凈但容易漏關(guān)鍵出處top_k6時(shí)召回高但Prompt會(huì)塞進(jìn)噪聲。我常用top_k4做默認(rèn)值再配合重排序修正。調(diào)參不能靠手感要寫一個(gè)離線評(píng)估腳本把幾十個(gè)“問題-標(biāo)準(zhǔn)答案”喂進(jìn)去算召回率。def evaluate_params( docs: list[str], qa_pairs: list[dict], chunk_size: int, overlap: int, top_k: int, ) - float: splitter RecursiveCharacterTextSplitter( chunk_sizechunk_size, chunk_overlapoverlap, separators[\n\n, \n, 。, , , ], ) chunks [ c for doc in docs for c in splitter.split_text(doc) ] # 注意chunk_size 變了之后必須重建索引 vectors model.encode(chunks, normalize_embeddingsTrue).astype(float32) index faiss.IndexFlatIP(vectors.shape[1]) index.add(vectors) hit 0 for item in qa_pairs: hits search(index, chunks, item[question], ktop_k) texts [text for _, text in hits] if any(item[golden] in text for text in texts): hit 1 return hit / len(qa_pairs)這段代碼把“問題-包含答案的片段原文”作為測(cè)試集統(tǒng)計(jì)top_k召回里是否出現(xiàn)答案所在片段。如果數(shù)據(jù)里沒有一塊完整片段包含答案說明chunk_size太小把答案切碎了。這個(gè)“答案落在一個(gè)chunk里”的比率就是檢索系統(tǒng)的底氣比率低于70%先別急著調(diào)Prompt回來調(diào)切塊。參數(shù)說明上chunk_size和overlap在切塊時(shí)就決定了chunk集合的形狀改完必須重建索引top_k只影響檢索讀取多少片段不需要重建索引可以快速掃幾個(gè)值。所以調(diào)參順序是先固定top_k4用腳本掃chunk_size和overlap再固定最優(yōu)切塊掃top_k。批量跑的時(shí)候把結(jié)果記錄成CSV方便寫進(jìn)論文的“實(shí)驗(yàn)與分析”章節(jié)。很多人工標(biāo)注問答對(duì)的同學(xué)會(huì)忽略一點(diǎn)測(cè)試集要和調(diào)參過程分離留出至少10個(gè)“沒用來調(diào)參”的問題做最終驗(yàn)證否則調(diào)參過程會(huì)過擬合到自己這批題上。4.2 混合檢索BM25補(bǔ)上精確匹配的盲區(qū)向量檢索用語(yǔ)義相似度找“意思相近”的片段但對(duì)專有名詞、工號(hào)、公文編號(hào)這類精確字符串并不敏感。比如你問“請(qǐng)找出編號(hào)為ZD-2024-001的制度文件”語(yǔ)義向量很可能把它匹配到“制度文件”上而丟掉編號(hào)?;旌蠙z索的常見做法是對(duì)同一批chunk同時(shí)建BM25倒排索引和向量索引檢索時(shí)分別取結(jié)果再用帶權(quán)重的分?jǐn)?shù)融合合并。from rank_bm25 import BM25Okapi # 中文按字切分最穩(wěn)按詞切分容易切錯(cuò)專有名詞 tokenized_chunks [list(chunk) for chunk in chunks] bm25 BM25Okapi(tokenized_chunks) def hybrid_search(query: str, k: int 4, alpha: float 0.5): vec_scores, vec_idx index.search( model.encode([query], normalize_embeddingsTrue).astype(float32), k * 2, ) bm25_scores bm25.get_scores(list(query)) max_bm25 max(bm25_scores) or 1.0 vec_norm [float(s) for s in vec_scores[0]] max_vec max(vec_norm) or 1.0 combined {} for pos, i in enumerate(vec_idx[0]): combined[i] alpha * (vec_norm[pos] / max_vec) for i in range(len(chunks)): bm25_part (1 - alpha) * (bm25_scores[i] / max_bm25) combined[i] combined.get(i, 0.0) bm25_part top_indices sorted( combined, keylambda i: combined[i], reverseTrue, )[:k] return [(combined[i], chunks[i]) for i in top_indices]上面的權(quán)重融合先把向量分?jǐn)?shù)和BM25分?jǐn)?shù)各自歸一化到0到1再用alpha做線性加權(quán)否則兩類分?jǐn)?shù)量綱不同相加沒有意義。中文場(chǎng)景我建議按單字切分而不是按詞因?yàn)榉衷~器對(duì)制度文本里的新詞很容易切錯(cuò)。alpha控制語(yǔ)義和精確匹配的側(cè)重制度編號(hào)多的文檔alpha取0.4以下口語(yǔ)化問答多alpha取0.6以上?;旌蠙z索不是越復(fù)雜越好但BM25插件的成本極低且在答辯里屬于“檢索策略有改進(jìn)”的加分點(diǎn)。4.3 用Cross-Encoder做重排序粗排精排的經(jīng)典打法向量檢索的第一階段是雙塔結(jié)構(gòu)速度快但精度有限第二階段用Cross-Encoder把查詢和每個(gè)候選片段拼起來打分精度高但慢。RAG流水線里常見做法是向量和BM25各召回幾十分交給重排序模型統(tǒng)一打分再取top_k送入生成。這個(gè)“粗排精排”的思路在搜索引擎里是標(biāo)配放到RAG里一樣成立。from transformers import AutoTokenizer, AutoModelForSequenceClassification import torch tokenizer AutoTokenizer.from_pretrained(BAAI/bge-reranker-v2-m3) reranker AutoModelForSequenceClassification.from_pretrained( BAAI/bge-reranker-v2-m3 ) reranker.eval() def rerank(query: str, candidates: list[tuple[float, str]], top_k: int 3): pairs [(query, text) for _, text in candidates] inputs tokenizer( pairs, paddingTrue, truncationTrue, max_length512, return_tensorspt, ) with torch.no_grad(): scores reranker(**inputs).logits.squeeze().tolist() scored sorted( zip(scores, candidates), keylambda x: x[0], reverseTrue, ) return [item for _, item in scored[:top_k]]Cross-Encoder一次只能處理一對(duì)文本所以它只能在“候選數(shù)量已經(jīng)很小”的環(huán)節(jié)用。我一般讓向量檢索先召回30個(gè)候選重排序后取4個(gè)進(jìn)入生成這樣既保住了檢索的廣度又把生成環(huán)節(jié)的上下文噪聲壓到了最低。這個(gè)設(shè)計(jì)在代碼上成本不高但能在論文里放一張“加Reranker前后回答準(zhǔn)確率對(duì)比”的圖屬于投入產(chǎn)出比很高的優(yōu)化點(diǎn)。需要注意bge-reranker-v2-m3按查詢與片段對(duì)打分分?jǐn)?shù)含義是相關(guān)性不能直接和向量相似度比較。5. 避坑指南最常翻車的五個(gè)地方現(xiàn)象、原因、解決5.1 PDF表格整段消失檢索永遠(yuǎn)命不中現(xiàn)象喂進(jìn)知識(shí)庫(kù)的PDF里有幾張帶邊框的表格任何關(guān)于表格內(nèi)容的問題都檢索不到。 原因pdfplumber的extract_text()只提取文字流邊框表格的單元格文本會(huì)被漏掉或亂序。 解決表格頁(yè)面先用page.find_tables()拿到單元格坐標(biāo)逐格取文本再按行合并也可以直接用page.extract_tables()但合并單元格會(huì)拆成空值。畢業(yè)設(shè)計(jì)數(shù)據(jù)量通常不大我一般優(yōu)先人工整理成Markdown表格再入庫(kù)既不丟信息又省調(diào)錯(cuò)時(shí)間。如果表格實(shí)在太多再用腳本處理別上來就全自動(dòng)否則你會(huì)花一下午查數(shù)據(jù)去哪了。5.2 切塊把句子攔腰截?cái)啻鸢赣肋h(yuǎn)差后半句現(xiàn)象檢索命中的片段總是“半句話”模型生成時(shí)只能說一半怎么調(diào)Prompt都沒用。 原因切塊器按固定字?jǐn)?shù)切分沒有感知句號(hào)逗號(hào)separators里沒放中文標(biāo)點(diǎn)。 解決RecursiveCharacterTextSplitter的separators按順序嘗試邊界要把“?!焙汀啊狈旁诳崭袂懊嫒绻袎K器不支持多級(jí)分隔符就在切之前先給文本做預(yù)分段再按chunk_size聚合。檢查方法是打印前20個(gè)chunk看有多少以句號(hào)結(jié)尾。以我的經(jīng)驗(yàn)中文文本如果chunk里句號(hào)結(jié)尾占比低于80%切塊策略就該調(diào)了。5.3 檢索到了但回答“未找到”Prompt把答案憋壞了現(xiàn)象檢索出的片段明明包含答案模型卻回答“資料中未找到相關(guān)內(nèi)容”。 原因兩個(gè)常見原因一是top_k2導(dǎo)致答案片段被截到上下文之外二是Prompt要求模型“只能根據(jù)資料回答”時(shí)模型過于保守或者max_tokens太小把答案截?cái)嗔恕?解決先打印送入生成模型的context確認(rèn)答案是否真的在context里。若不在調(diào)高top_k若在問題出在生成環(huán)節(jié)把Prompt改為“優(yōu)先依據(jù)資料回答資料不足時(shí)請(qǐng)說明”并調(diào)大max_tokens。這條排查順序非常重要檢索問題先于生成問題不要在沒看context時(shí)瞎調(diào)Prompt。5.4 換Embedding模型后進(jìn)程崩潰索引維度寫死了現(xiàn)象上午用bge-large-zh建好庫(kù)下午換bge-m3程序啟動(dòng)直接段錯(cuò)誤退出。 原因FAISS索引在創(chuàng)建時(shí)確定了向量維度IndexFlatIP(dim)已經(jīng)寫死新模型維度不同index.add()會(huì)內(nèi)存越界。 解決每次切換模型后把索引文件和chunk文本一起重建。建議把模型名和維度寫進(jìn)索引文件名比如index_bge-m3_1024.faiss加載時(shí)先校驗(yàn)維度再加載。FAISS索引文件本身可刪可重建真正怕的是chunk文本和索引順序?qū)Σ簧纤运饕募cchunks的序列化文件要成對(duì)保存。5.5 檢索出“相似但不相關(guān)”的片段長(zhǎng)尾問法搞不定現(xiàn)象用戶用自然口語(yǔ)提問檢索結(jié)果卻總是另一份相似文檔的片段。 原因雙塔Embedding對(duì)字面差異敏感對(duì)語(yǔ)義改寫不夠魯棒或者測(cè)試集里這一類問題本身就少切塊與模型都沒針對(duì)性優(yōu)化。 解決混合檢索里的BM25能兜住字面匹配Reranker能修正語(yǔ)義排序二者疊加后此類現(xiàn)象大幅減少。另一個(gè)有效手段是給查詢加一個(gè)重寫步驟把口語(yǔ)問題改寫成規(guī)范問句再檢索比如“工資什么時(shí)候發(fā)”改寫成“工資發(fā)放時(shí)間”。這個(gè)邏輯可以寫成一個(gè)小函數(shù)也可以讓生成模型在檢索前代為改寫但畢業(yè)設(shè)計(jì)階段用規(guī)則或Few-shot最省錢可控。6. 進(jìn)階用離線評(píng)估和鏈路快照給答辯交一份能復(fù)現(xiàn)的數(shù)字6.1 三個(gè)離線指標(biāo)替代“我覺得變好了”把系統(tǒng)調(diào)到位之后最容易被忽略的是評(píng)估。答辯最怕老師說“這個(gè)效果是你自己調(diào)出來的換一批文檔還能用嗎”。我最后做的一道工序是把評(píng)估腳本固化召回率k、答案中含golden片段的比例、單次問答的生成時(shí)長(zhǎng)中位數(shù)。每改一個(gè)參數(shù)命令行跑一遍輸出對(duì)比表。這里的關(guān)鍵是測(cè)試集要留出一部分“沒參與調(diào)參”的問題防止過擬合到自己這批文檔上。6.2 把一次問答的完整鏈路dump下來另一個(gè)實(shí)用技巧是把每次問答的chunk片段、Prompt、模型輸出全部存成JSON文件翻車時(shí)對(duì)著JSON看是哪一環(huán)出了問題而不是盯著終端猜測(cè)。鏈接口返回異常、檢索為空、生成超時(shí)分別記不同的錯(cuò)誤碼答辯現(xiàn)場(chǎng)出了問題也能說“這是哪一層的日志”。def save_trace(question, hits, final_answer, pathtrace.jsonl): import json record { question: question, hit_chunks: [text[:100] for _, text in hits], answer: final_answer, } with open(path, a, encodingutf-8) as f: f.write(json.dumps(record, ensure_asciiFalse) \n)這段代碼把當(dāng)前問題的檢索片段截?cái)嗪笈c最終答案一起落盤。字段刻意只保留前100字避免日志文件膨脹你要做的就是每改一次參數(shù)后跑一批問題對(duì)比兩次的JSON記錄看答案是變好了還是只是換了個(gè)說法。我最深的教訓(xùn)是第一次做RAG時(shí)花了三周調(diào)大模型最后發(fā)現(xiàn)70%的問題來自切塊和Embedding而不是LLM。所以我強(qiáng)烈建議你先跑通離線評(píng)估再去做界面和包裝。希望幫到你。本文還有配套的精品資源點(diǎn)擊獲取
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
亚洲午夜AV| 丁香五月激情啪啪啪啪| 色播五月网| 色综合中文色综合网| 久久九九99| 久久久久er热| 五月丁香啪啪综合网| 色哟哟精品| 国产婷伊人| 区美毛片子| 米奇影视资源婷婷狠狠色激情欧美五月丁香 | 91操网| 色婷婷成人做爰A片免费看网站| 人妻精品一区二区三区| 99热这里只有精品最新网址| 色情播放| 婷婷亚洲丁香五月| 婷婷丁香成人在线视频| 开心六月婷| 1234操逼网| 国产美女无遮挡裸体毛片A片| 色色狼人综合| 五月丁香六月激情| 青草五月天| 99色色最新视频| 国产精品电影| 五月丁香啪啪| 大香蕉啪啪网| 蜜臀丁香黄色婷婷五月天| 日韩精品一曲二曲三曲四曲五曲| 丁香五月狠狠在线观看| 超碰人人摸人人操| 婷婷五月天99综合网站| 综合久久五| 欧美日综合| A在线观看| www.深爱激情| 亚洲视色| 热久久这里只有精品| site:ornaments52.com| 精品成人无码A片观看香草视频| 色婷婷五月天中文字幕| 婷婷丁香77777| 日本69日人视频| 久热伊人9| 91国产精品视频播放| 亚洲爆乳无码精品AAA片蜜桃| 91啪啪视频| 超碰色综合| www.激情五月| 五月婷婷99热| 日本色色色| 日本九九九九| 青青草青青草五月天| 任你艹| 婷婷丁香久久| 五月伊人91| 丁香色婷婷色手机免费在线| 亚洲精品444久久久久久| 日本成人内射| 99re免费在线视频| 色五月激情问网站| site:ornaments52.com| 天天干一干| 9l视频自拍九色9l视频在线观看| 超碰狠狠操| 99久视频| 99色热综合| 九月激情婷婷丁香| 青青999| 激情av网| 99免费视频| 五月色综合| 国产亚洲色婷婷久久99精品91| 天天色天天| 深爱激情五月天| 日本欧美成人片AAAA| 欧亚成人A片一区二区| 另类少妇人与禽zOZZ0性伦| 久久久国产精品黄毛片| 婷婷丁香综合| 天天开心婷婷丁香五月| 激情五月天色婷婷综合| 综激情网| 亚洲操女| 91偷拍视频| 97在线精品| 精品国产va久| 激情五月婷婷五月丁香五月开心五月| 91日韩在线| 疯狂做受XXXX高潮A片| 麻豆观看夏晴子| 久操香蕉| 久久精品爱爱| 激情婷婷六月天| 涩涩涩五月天| 色色色色色日韩午夜激情| 丁香五月婷婷Av| 天天揷综合网| 久久久91| 六月丁香激情网| 五月丁香久| 色五月综合在线| 欧美成人AAA片一区国产精品| 超碰人人在线观看| 天天操夜夜啊| 五月激情六月丁香| 人人摸人人操人人爱| 久久婷婷五月综合啪| 亚洲小视频免费观看| 亚洲激情区| 丁香五月色网| 色情网综合| AV在线大香蕉| 九九婷婷网五月天| 亚洲精品又粗又大又爽A片| av操B网站| 五月丁香成人| 国产精品人妻在线网址| 日屌日日操日日色| 婷婷色情 | 久99视频在线观看| 99精品视频网站| 99热综合| 91丨九色丨熟女|新版| 东北婷婷五月天| 99亚洲视频| 亚洲无AV在线中文字幕| 噜噜噜噜婷婷五月天| 色婷婷久久综合丁香五月| 精品久久99码| 99日本在线| 噜噜色com| 深爱激情综合| AV九九| 天天爽天天摸人妻综合网| 天天干天天色综合| 九九热大香蕉| 亚洲婷婷基地| 99九精品| 俺去也综合| 国产乱人偷精品人妻A片| 夜夜久久综合网| 日日操日日干| av操逼网| 色综合网综合| 亚洲深喉AV| 99热9| 丁香激情四射| 婷婷五月丁香欧洲| 99激情视频| 免费日本aⅴ中文字幕| 成人婷婷色五月天| 色婷婷成人做爰A片免费看网站| 超碰人人91| 婷婷激情社区| 婷婷性爱五月天丁香网| 99热无码首页| 人人操人人添人人摸97| 五月丁香婷婷成人网| 日本eVa一区=区视频| 久久这里面只有精品视频| 成人综合AV| 日本三级片片| 五月婷婷色播| 色99自拍| 9l视频自拍九色9l视频自拍九色9l社区 | 色婷婷99| 激情另类综合| 少妇AB又爽又紧无码网站| 6月丁香婷婷| 99熟女视频| 六月婷婷七月丁香| 九九久久99| 色婷婷香蕉| 综合激情在线| www.激情.com.| 丁香六月啪| 五月婷婷色综图片| 99热这里只有精品在线观看| 五月丁香婷婷无码A∨| 五月婷婷丁香六月| 丁香婷停五月激情综合深爱| 久草婷| 五月婷婷丁香网| 区啪精品| 久久婷五月天| 99热大片| 99re热在线视频观看| 五月激情综合网| 精品99视频| 天天肏夜夜肏| 婷婷成人五月天一区| 极品精品一区二区三区在线| 久久精彩视频| 天天情天天狠天天透| 狠狠操综合| 丁香伊人激情| 欧美婷婷丁香五月| 色五月在线观看| 久久er九九| 久9精品视频在线| 狠狠做深爱婷婷久久综合一区| 9999热精品| 九九热啪啪| 99久久婷婷国产综合精品青桔| 日日日日日| 欧美天天性| 操日本色| 五月婷婷啪啪| 国产激情综合五月久久| 在线观看熟女少妇| 99在线免费视频播放| 婷婷色片| 九九一综合精品| 色色影院黄大片| 综合色播| 五月婷婷激情日本| 九九草热在线观看| 天天看A片| 亚洲V国产V欧美V久久久久久| 欧美一级操逼视频| 色综合色欲综合天天免费| 9色天堂| 99精品热视频| 色色网五月激情| 99在线观看精品| 国产小精品| 五月天婷婷激情在线色图| 五月婷婷综合网| 99久| 思思热在线视频精品| 婷婷五月天欧美图片在线播放电驴| 久草五月婷婷| 五月婷婷9| 五月丁香六月婷婷网| 操射国产日本| 九九视频这里是精品五月| 亚洲婷婷丁香五月| 五月天开心色色网| www.色五月| 99re思思久久| 五月丁香亭亭天天舔| 久久久久激情| 欧美色碰| 97超级碰碰碰久久久| 色欧洲| 久久人妻伦理| 欧美Va在线| 狠狠操狠狠爱| 丁香五月婷婷激情尤物| 草久私拍| 激情五月婷婷综合网| 亭亭五月色男人| 热99只有里视频| 密黄站| 亚洲黄3级片网站欧美| 91打屁股免费看| 五月天激情四射| 五月天五月天激情网| 伊人久久激情图区五月| 97在线精品视频| 91干99| 久久99久久99精品,久国产,久久精品免费,99久在线,久久久久国产精品免费网站,9 | 91丨九色丨老熟女激情| 色噜噜狠狠色综无码久久合欧美| 丁香五月婷婷在线| 久久九九网| 五月色色激情网| 内射丰满人妻| 日夜夜天天| 日日噜狠狠色综| 俺去也综合| 国产精品色婷婷久久久精品| 99热官网精品在线| 中文字幕1区2区。| 97伊人综合婷婷| 久久综合网桃花| 激情丁香图片| 五月久久婷婷成人网| 国熟女视频| 热久久思思热思思| 亚洲丁香五月深爱五月| 婷婷黄色五月天在线视频| 五月丁香狠狠爱| 特级操b片| 色色五月婷| 可以看的av| 天天做天天爱天天综合| 99久久6| 六月婷婷激情小说网| 五月天色综合服务平台| 五月婷婷五月天天| 夜夜骑福利资源| 丁香五月23111| 色色成人網| 久久无码激情视频| 影音先锋 91工厂| 五月熟妇婷婷久久| 玖玖资源站视频| 日日操天天爽| 亚洲综合五月天| 丁香五月六月综合激情| 激情综合网址| 五月综合色| wwwss在线观看| 久久婷五月| 久久人妻高清中文| 深爱五月激情| 天天日天天插| 久热re视频在线观看网站| 中文AV在线观看| 婷婷久久久久久久| 女婷久久| 很很色丁香久久停停| 五月婷婷色播视频| 亚洲色色在线| 这里只有免费精品| 99热综合网| 激情五月天影院| 性一交一乱一交A片久| 婷婷综合仓库中文| 日本免费91| 91成人品| 狠狠狠狠操| www.婷婷五月| 婷婷五月天综合网| 一区二区三区四区牛| 色色色地址| 欧洲激情网站| 六月丁香婷婷五月| 亚洲AAA| 五月开心激情| 狠狠操狠狠插| 伊人九九九久| 亚洲视频a| 五月激情婷婷色| 五月婷色激情五月| 天天色播| 色拍九九九| 操操人人| 开心色五月天久久久久久久| 五月丁香六月激情欧美综合| 精品综合网在线| 999精品乱码77777| 丁香激情六月天婷婷| 久久一品区| 五月天另类小说亚洲| 激情性爱五月| 99激情在线| 欧美视频五区| 婷婷六月色开| 9久热| 婷婷综合97| 99视频激情四射| 亚洲五月天激情| www.一起草av| 丁香婷婷激情六月五月开心| 色色五月天com| 婷婷五月天开心激情网| 久久这里面只有精品视频| 678五月丁香亚洲综合| 五月婷婷六月丁香在线| 熟妇人妻中文字幕无码老熟妇| 激情五月天婷婷色色色色色色色色色色色| 欧美成人无码一区二区三区| 96精品久久久久久久久| 182tv992tv人之初午夜免费观看| 五月丁香六月婷婷,婷| 婷婷五月另类网站| 精品一二三区久久AAA片| 久久超视频| 五月婷婷黄色视频| 任你草| 午夜爱插插| 99色 色| 丁香五月性| 91激情五月开心| 九九偷拍网| 亚洲婷婷丁香五月亚洲| 俺去也综合| 丁香六月成人网| 成人小说 五月天 婷婷| 超碰免费在线| 欧美精产国品一二三区| 五月婷婷六月色| 成人无码免费一区二区中文| 天天日狠狠| 激情文学久久| 五月婷婷黄色| 久热黄色| 米奇影视五月天| 伊人五月天久久| 天堂中文国产| 五月天久久婷婷婷| 综合aV在线| 综合性爱网| 丁香五月手机在线| 人人综合91网| 66成人网| 色五月婷婷大香蕉| 七七九色| 五月丁香免费视频| 啪啪91| 久九色| 【乱子伦】黄色| 亚洲天堂久久| 色狠狠狠干| 婷婷色色五月天| 激情综合五| 婷婷久久丁香五月| 大香蕉九九| 婷婷91| 久操福利| 国产这里只有精品| 五月丁香啪啪拍| 五月天激情小说网| 天天开心AV色综合婷婷五月天| 任你艹| 久久亚洲色导航| 天天爽天天操| 俺也去综合| 伊人网色婷婷五月天| 激情五月丁香激情综合网| 午夜天堂一区人妻| 啪啪六月婷婷| 成人婷婷深爱综合网| 色婷婷丁香女女| www.99热视频| 日本女人久久| 99久扒热| 玖玖五月丁香| 亚洲视频码| 欧美性生交XXXXX无码小说| 五月丁香婷婷深深爱| 丁香六月激情综合网| 久久六月天| 日韩一级| 狠狠干五月丁香综合网| 99毛片| 色色色色色色网站| 丁香五月激情月| 久久3级片| 99啪啪网| 另类图片 五月激情| 伊人激情综合| 婷婷精品在线| 呦呦视频无码播放| 99九九视频精彩在线| 97av在线视频| 亚洲综合狠狠艹| 天天综合91入口| 国产无套精品一区二区| 一本综合丁香日日狠狠色| 天堂亚洲 在线| 91操人视频| 97超碰9久热婷婷热| 色色色网站| 午夜婷婷丁香| 色婷婷色综合| 久久草大香蕉| 天天拍天天操| 色婷婷六月综合| 久xxxx| 啊v视频在线观看| 亚洲成人黄色网| 99热日韩| 色综合久久88色综合天天| 久久99久久99精品免视看婷| 五月天社区狠狠| 婷婷五月色播| jizzdr| 色婷婷六月| 9九色首页| 婷婷综合色| 婷婷综合| 综合色色五月| 超碰网站在线观看| 噜噜噜狠狠色综合| 丁香综合伊人AV| 久久九九大香蕉电院| 亚洲色 视频| 操熟女成人网| 国产精品日日躁夜夜躁| 极品精品一区二区三区在线| 欧美操人| 婷婷情色五月天| 丁香五月综合在线| 久99视频在线观看| 9色在线视频精品观看| 99精色| 午夜色丁香| 日操夜操天天操不卡| 99爱在线| 91九色在线| 99热骚货| 激情五月天婷婷| 综合99综合久久久久久久| 九九综合精品| 色色色色色九九九九九| 亚欧州精品视频| 国产乱码久久| 婷婷五月天激情免费在线观看| 国产内射婷婷| 婷婷性爱网| 色婷婷五月天视频在线| 2023天天日夜夜爽| 婷婷五月天受日本法律保护| 九九热自拍| 九九综合九| 丁香六月婷| 婷婷涩涩五月天| 天天爽综合网| 国产精品-第3页-91JQ就要激情网91JQ5.JQJQ926.XYZ| 99A级片| 9久热在线视频| 开心五月激情网| 99热这里是精品| 国产亚洲精品AAAAAAA片| 97色色视频| 中文久久婷婷| 襙比视频| 久九色| www.99色在线| 超碰在线看| 色色色色色色色色色999| 综合久久综合| 超级碰碰碰久久网站| 五月丁香激情四射综合| 丁香五月天在线| 亚洲精品大片| 99热 在线播放| 亚洲激情校园| 丁香狠狠色婷婷久久无码视频| 婷婷综合网| 婷婷精品| 99热大全在线观看| AV堂狠狠干| 热99国产精品| www.婷婷网| 婷婷香香五月| 六月丁香射婷婷欧美色图片| 五月综亚洲| 无码毛片992367| 婷婷五月丁香色情| 99热这里精| 五月天激情网址| 色婷婷影音| 99久久思思| 激情五月天色| 五月丁香色婷婷基地| 五月丁香在线国产| 涩涩涩婷婷| 五月永久激情| 久久这里有精品视频在线免费观看| 五月婷婷激情综合视频| 天天色噜| 九色视频91| 高清无码入口| 白人荫道BBWBBB大荫道| 丁香五月婷婷图片综合| 97色图片中文字幕视频在线观看| 99色色| 欧洲MV日韩MV国产| 久久码久久无清| 百度4399有码精品V在线观看| 丁香狠狠色婷婷| 99综合一区| www.色五月| 玖玖在线| 天堂资源欧日浪女在线播放| 中文字幕成人| 午夜成人AV在线| 五月丁香婷婷激情澎湃四射| 丁香五月天在线| 五月婷婷色五月| 色欲婷婷五月天丁香| 夜夜夜夜夜操| 97啪在线观看视频| 五月丁香综合成人社区| 美女亚洲五月丁香| 婷婷五月天资源| 色五月激情五月开心五月| 色五月在线播放| 欧美性生交XXXXX无码小说| 亚洲综合色激情色五月| 99热国产| 深爱激情久久| 91九色精品女同系列| 五月激情在线| 丁香六月欧美| 五月激情五月丁香| 五月丁花六月丁香综合| 热99这里只有精品视频| 亚洲视频二区| 国产在线网| 五月天婷婷色色网| 午夜爱爱爱成人| 久久这里只有精品热在99| 97色色婷婷| 操操操91| 亚洲人人96@| 婷婷五月婷婷| 男女啪啪做爰高潮无遮挡| 久久亚洲天堂| 亚洲综合色五月| 五夜丁香| 婷婷五月天天| 天天弄天天爽| 婷婷六月色开 | 99er日韩| Www.sesese丁香| 久热只有精品| 五月色导航| 婷婷五月另类网站| 91久久久久久久久18| 久久在这里有精品| 天天透天天干| 99超级碰免费视频| 五月开心久久| 色黑鬼导航| 超碰97久久| 这里只有精彩视频| 色色丁香五月| 欧美三级巜人妻互换| 色亭亭五月天丁香综合AV - 百度 - 百度| 91九色视频| 69久久久| 九九碰九九爱97超碰| 99视频在线观看网址| 五月丁香亚洲校园欧美| 91主播在线| 色五月首页| 丁香五月婷婷色情综合| 華人性愛AV在線| 男人視頻站| 婷婷五月在线视频| 色欲婷婷五月天| 五月天激情.com| 丁香五月欧美激情| aaaa.黄| AA片在线观看视频在线播放| 热久久视频99| 九九热只有精品6| 99热网址| 色香久久| 99久热在线精品99re6热| 色五月激情网| 五月天色区| 五月丁香六月婷婷啪啪| 丁香蜜臀黄色婷婷五月天| 9月色婷婷| 激情亭亭五月| 久久精品系列| 日本久草福利| 狠狠做深爱婷婷久久综合一区| 4399无码视频| 另类国产综合| 精品9久| 亚洲综合狠狠艹| 婷婷丁香激情五月天色色| 99精品偷自拍| 亚洲综合色丁香婷婷六月| 99国产精品白浆在线观看免费| 五月天激情综合在线| 丁香色色网| 亚洲超碰在线| 97热这里只有精品| 天天日,天天射,天天插| 国产精品一区在线观看你懂的| 这里只有精品视频222| 第四色五月天| 99re这里只有精品国产99| 亚洲无码色| www。五月天。com| 日韩丁香涩| 国产成人99久久亚洲综合精品| 婷婷五月天综合久久日| 色久天| 大香蕉久久婷婷| 欧美天堂久久| 婷婷五月天av网| 亚洲V国产V欧美V久久久久久| 五月婷婷另类| se色婷婷视频| 亚洲精品大片| 亚洲欧美综合7777色婷婷| 99性色| 管管補管管紱| www.色五月| 色色色综合色| 成 人片 黄 色 大 片| 五月综合六月丁| 久久九九@| 激情五月婷黄版| 丁香五月综合激情性爱| 五月丁香综合啪啪| 天天日综合网射| 69精品人人人人| 婷五月丁香| 9这里只有精品| 九九久久网| 中文字幕,综合,91| 99在线视频免费| av在线播放网址| 亚洲色婷婷五月天| 久久思思精品| 久99久在线| 欧美情色电影一区二区| 激情五月婷婷| 最新午夜理论片| 色情五月| 激情九月婷婷| 91午夜激情| 好好干Av| www网站在线观看| 久久婷婷五月| 天天干狠狠艹| 激情影院内射| 99丁香五月婷婷在线| 人人摸人人干| 色欲午夜无码久久久久久张津瑜 | 五月婷婷激情综合| 丁香五月之久操视频| 97视频91| 99热的无码| 日本不卡高字幕在线2019| 玖玖热视频| 激情五月婷婷丁香六月| 久久九九re热| 丰满少妇猛烈A片免费看观看| 99热成人| 丁香五月丁香伊人| 色五月天激情| 婷婷色色欧美| 610018岁成人视频| 日日撸夜夜操| 日本色色网站| 操逼棍操逼| 成久综合视频| 欧美综合123区| 好吊兆人妻| 深爱综合网| 亚洲人人操| 丁香五月天啪啪激情综合网| VA婷婷| www,com,五月色色| 久久曰9| 久久久久久人妻| 91碰视频| 激情视频综合| 五月丁香六月婷婷网站| 中文成人在线| 99久久婷婷国产综合| 日本久久爱| 久久五月婷婷综合网| 丁香五月自拍| 亚洲天堂热| 五月丁香最新| 婷婷五月美女直播| 黄急一级视频| 久久丁香婷| 99碰超| 婷婷五月天激情小说| 婷婷丁香五月亚洲综合网在线视频观看| 婷婷99狠狠| 91打屁股视频网站| 五月丁香婷婷色| 原琪琪色影院| 9久精品视频| 久久久久久9热不雅视频| 亚洲中字AV电影在线网站| 99久久精品免费精品国产_国产精品久久久久久_国产在线|日韩_久久国产精品电影 | 婷婷五月激情在线视频| 婷婷色无码| 久久丁香五月综合六月激情红杏视频| 91色在线/日韩| 色色九九五月天 | 久热网在线视频| ss99热| 手机AVAV天堂看网| www.五月婷婷久久.com| 激情综合五月色在线| 激情婷婷五月天| 亚洲激情另类| 婷婷综合网| 丁香激情五月| 亚洲精品无AMM毛片| 激情五月综合网| 99免费在线视频| 99爱精品| 激情99热| 这里只有精品视频免费在线观看| 99re久久| 五月天大香蕉| 婷婷五月视频| 日韩乱轮AV| 五月色婷婷激情| 97丁香视频| 国产在这里只有精品| 美腿丝袜AV天堂网| 色五月欧美| 日本人人草草| 五月婷色色| 婷婷色激情网| 久99999热视频在线观看免费| 五月丁香婷婷俺| 婷婷婷婷婷婷婷五月丁香| 国产在这里只有精品| 亚洲旡码| 六月激情综合| 久久桃花网色婷婷| 欧美69色| 黄网在线免费观看| 久久在线视频只有这里有精品| 久久人人人人妻| 色永久| 五月丁香自拍| 五月婷婷色| 激情婷婷丁香| 国产资源在线视频| 超碰在线免费观看日韩| 色色丁香色五月| 日本久久婷婷| 激情婷婷人妻| 开心五月天激情网站| 91碰碰视频| 五月丁香综合| 激情婷婷99| 日韩AV片| 综合性视频99| 五月婷婷激情综合av| 99精品网| 激情综合文学| 亚洲激情五月| wwW天天干| 六月丁香婷婷五月| 97碰在线| 熟女强人妻一区二区三区四区无| 激情av在线| 久久6这里只有精品| 日本色狠狠| 色综合伊人网| 99丝袜精品视频网站| 五月丁香综合啪啪| 开心婷婷五月中文字幕组| 五月婷婷人人人操| 婷婷97色| 深夜男女福利刺激影院一区完整| 五月开心激情网| 中文字幕,综合,91| 午夜无码熟熟妇丰满人妻| 精品亚洲日韩99欧美片| 综合久久丁香婷婷,五月婷婷六月丁香,开心激情综合网,六月丁香在线观看,婷婷丁 | 精品国产乱码久久久久久免费| 婷婷五月综合色拍| 狠狠婷婷色综合| 色婷婷在线播放| 丁香五月天AV| 丁香伊人激情| 五月丁香六月综合情在线观看 | 99精品无码| 狠狠色综合777| 操碰91| 在线看黄色| 99热人人操人人操| 最近免费中文字幕大全高清大全1| 九九热精品99| jiqingliuyuetian| 五月色欧洲| 五月婷婷av| 色综合久久88色综合天天看| 日本在线观看99| 久久婷五月天| 在线观看免费狠狠色丁香香综合| 亚洲婷婷开心五月| 免费国产VA国产免费| 99熟女| 日韩一级网站| 亚洲无码影音| 丁香六月激情综合网| 色色色婷婷五月天| 久久 无毛。| www激情网| 激情网五月天| 97综合在线| 99九九玖玖| 涩涩激情五月婷婷| 新激情五月天色播| 丁香六月综合激情| 综合99久久| 亚洲精品婷婷| 婷婷六月天| 婷婷五月激情在线| 婷婷综合中文| 亚洲激情网站无码| sewuyuejiqingwang| 99爱在线精品视频免费观看| 婷婷五月天综合久久| 精品人妻久久久久| 婷婷碰碰| 丁香五月天婷婷中文| 国产精品久久久久久久久久| 成人网址在线观看| 五月丁香啪啪啪啪| 久久久jd| AV在线大香蕉| 久久婷婷五月综合激情国产| 99视频只有精品| 色综合女人99| 激情丁香五月天图片| 啪啪日本欧美| 天天视频亚洲| 九九XX视频| 丁香五月冃欧美| 在线视频区| 5月丁香六月婷婷| 午夜无码熟熟妇丰满人妻 | 色色色色色色网站| 亚洲AVwwwwwww| av五月天婷婷丁香| 午夜福利成人AV91| 婷婷精品性视频| 男人的天堂97| 欧美va在线观看| 六月撸婷婷| 中文资源在线a| 色一情一乱一乱一区91Av| 九九RE视频在线精品| 丁香五月成人社区| 超碰成人在线观看| 伊人五月天| 大香蕉AV电影在线| WWW色色色COm| 激情五月天婷婷免费观看| 精品少妇蜜臀91| 亚洲色欲AAAAAA| 综合XX网| 五月婷婷中文| 婷婷丁香色无五月| 丁香九月婷| 色狠狠色噜噜AV天堂五区| 超碰免费人人肏| 国产婷婷综合在线免费视频| 激情小说五月丁香在线视频观看视频| 色五月av伊人| 狠狠色丁香婷婷久久综合| 婷婷丁香五月亚洲17cao| 亚洲超碰中文字幕| 亚洲超碰在线| 内射爽无广熟女亚洲| 五月激情婷婷播播网| 91综合视频在线| 色呦呦美女| 色色网站在线免费观看视频| 日韩AV无码影片| 舔色婷婷| 色色色色色综合| 亚洲综合激情五月久久| 欧洲亚洲欧洲99久久| 日韩啪啪自拍| 99碰碰| 精品国产va久| 五他月天啪啪啪| 99综合久久| 开心五月色婷| 亚洲成人av在线播放| 26uuu成人网| 99色热综合| www久久艹| 67194国产| 色 色 色综合com| 婷婷偷拍网| 区欧美日韩成人| 99re在线观看| 久久婷婷五月草视频| 亚洲六月色婷婷| 丰满老熟妇BBBBB搡BBB| 婷婷亚洲综合| 精品人妻伦| 九月丁香八月婷婷久久综合久97| 五月天婷婷在线AN| 亚洲色色香蕉| 婷婷五月天天天日日夜夜| 精品国婬伦V无码久久久| 婷婷色综合| 天天色综合网1| 99在线精品视频免费| 在线超碰免费| 91Chinese在线| 欧美色爱五月天| 99热在线99| 97色综合视频| 五月丁香啪啪网| www,com,五月色色| 三级成人网站| 午夜大香蕉| www久久久久久久| 五月开心网| 久久婷婷综合国产| 99国产小视频| 丝袜激情网| 午夜AV网| 国产欧美性成人精品午夜| 97欧美在线| 婷婷色网站| 色色热99| 亚洲精品99| 另类精品视频在线观看| 五月丁香花开综合网| 天天日天天色| 精品在线| 国产人妻人伦精品一区二区| 五月丁香综合啪啪啪啪啪| 亚洲五月婷婷| 中文字幕黄色片| 99热.com| 丁香五月婷婷激情小说| 色吧五月婷婷| 激情综合国产| 欧美成人五月天| 久久婷婷五月综合色播| 丁香色婷婷| 激情婷婷丁香五月天| 五月婷婷 自拍| 九九婷| 一本大道熟女人妻中文字幕在线| 操久久网| 神马欧美精| 五月激情网站| 欧洲亚洲激情五月天在线| 五月婷婷新网站| 婷婷的99视频网站| 91九色熟女| 久久色午夜在线导航| 婷婷天堂综合网| 熟女少妇内射日韩亚洲| 久操操| 五月丁香777| 九九热精品| 婷婷综合色| 婷婷成人视频| 天天做天天爱天天综合| WWW激情五月天| 五月天色婷婷视频| 日本熟女视频一区二区| 99玖玖免费视频| 最新色色五月天| 色色综合激情| 亚州操操| 亚洲一区二区无遮挡A片| 涩涩婷婷五月| 91久久久久久久久久| 综久久久| 五月叮香啪| 91久草五月天婷婷| 五月丁香综合中文| 日本久久人| 婷婷丁香成人五月天| 欧美色色色色色色| 激情丁香五月AV| 五月丁香婷婷成人版| 91人人澡人人爽人人看| 1区2区视频| 中美日韩成人在线| 激情综合五月天| 欧美性生交XXXXX无码小说| 另类图片五月天| 伊人久久艹| 亚洲12p| 综合色色五月| 五月丁香天堂| 日韩AV在线免费观看| 97干综合网| 色婷婷久久综合| 亚洲激情AV| 丁香五月婷婷丫| 欧美激情-区二区三区| 激情五月婷婷色| 99精品视频网| 久9精品视频| 天天干天天插| 666555。COm毛片| 狠狠操狠狠色| 99综合熟女| 色婷婷综合久久久久| 美女亚洲五月丁香| 五月丁香色婷婷综合| 亚洲天堂aaa| 日本啪啪网| 色综合五月天| 北条麻妃伊人 | 天天艹天天综合网| 色高清无码视频| 可以免费看AV网站| 91碰碰视频| 91丨九色丨熟女高潮| 超碰成人黄色网| 伊人九九热| 肏日网在线看| 久久久久久久久久8888| 影音先锋 91工厂| 99精品小视频| 婷婷色五月激情| 99婷婷狠狠成为人免费视频| 黄色AAAAAAA| 99久久婷婷| 六月五月久久丁香| 五月天婷婷基地| www.zbzhongsen.com| 五月丁香亭亭电影久久| 99人人操人人爱久久久| 婷婷综合五月| 日本五月丁香| 天天干天天操天天射| 婷婷六月天| 九月婷婷综合在线| 丁香六月婷婷| 激情五月天小说视频| 在线成人网址| 色偷偷综合| 欧美超碰亚洲| 五月丁香啪啪啪免费看| 久久综合激情婷婷激情| 天天狠天天叉| 另类图片五月激情| 色噜噜狠狠色综合日日| 99免费视频网| 五月婷久久| 39视频第二区| 色婷婷在线视频久| 可以免费看的AV网站| 久久综合99| 91九色在线视频| 五月综合亚洲| www99热| 狠狠色综合网站久久久久| 99综合视频在线| 亚洲综合五月天| 久久久久久久久久8888| 香蕉中文在线| 99热在线中文字幕| 九热免费视频| 丁香婷婷六月| 大波美女VA网站| www.色综合.com| 日韩精品在线观看9| 99热视| 香蕉操亚洲| 午夜福利成人AV91| 九九热区一区二区三区| 日本啪啪网| www.九九婷婷| 99极品视频| www99精品| 99热一本久道| 手机激情网| 色九月婷婷| 色五月婷婷久久| 五月天亚洲综合网| 99色嘟嘟精品网站| 天天色天天干天天插| 大香蕉啪啪| 国产免费av在线| 九九热在线99| 99年操人人爽| 色黑鬼导航| 538在线精品| 久热69| 噜噜狠狠色综无码久久合欧美| 婷婷丁香无码专区| 丁香六月天AV| 五月丁香| 久久人人超| 婷婷五月天久久| 99re视频在线精品| 五月丁香欧美在线| 三男玩一女三A片| 欧美成人无码一区二区三区| 久久久久er热| 久久伦乱| 丁香 久久| 黄网在线观看免费| 久久人妻伊人| 色色色丁香| 日日夜夜综合| 日韩限制级大尺度黑料泄密大尺度视频一区二区在线观看 | 另类图片激情五月| 狠狠色综合777| 亚洲免费婷婷| 婷婷中文字幕| 日本婷婷色| 大香蕉啪啪网| 色天天综合成人网| 午夜激情综合| 99热最新国内| 91偷拍视频| 天天做综合网色综合| 色噜噜狠噜噜视频| 成人在线日韩| 有码一区二区三区| 热的五码久久精品| 五月丁香婷婷激情澎湃四射| 五月丁香久久久久| 琪琪色五月婷婷老师| 九九碰九九爱97超碰| 开心五月色婷婷综合开心网| 亚洲高清在线| 伊人久久大香线蕉综合网站| 99亚色色色| 五月丁香婷婷爱| 色综合色香蕉网| 五月婷婷99热| 人人摸人人搞| 五月婷婷之综合激情| AV在线免费网站| 色99在线视频| 九九热再线九九视频免费在线观看| 激情五月天婷婷| 这里只有国产精品在线| 色九月综合| 五日激情综合| 超级碰碰碰97免费| 丁香五月Av| 五月天开心婷婷久久| 亚洲精品白浆高清久久久久久 | 屁股翘好撅高迎合跪趴| 丁香五月,激情五月,深爱五月| 亚洲AV日韩AV永久无码网站| 99热青青草原| 在线日韩av| 性爱网五月天| 五月丁香怕啪啪| 国产精产国品一二三在观看| 日日狠狠久久偷偷四色综合免费 | 五月天com| 狠狠色狠狠鲁| 五月天激情日色在线| 亚洲av网站在线观看| 婷婷丁香五月激情综合站_久久五月丁香激情综合_开心五月综合激情综合五月_婷 | 超色欲天天| 久久综合爱| 天天插夜夜爽| 超碰伊人碰婷婷五月| 五月丁香婷婷基地| 六月色色综合| 久久久色情| 五月婷婷色五月| 五月天大香蕉| 婷婷99综合| 丁香五月最新地址| tingting五月天亚洲| 久久性都花花世界成人免费视频| pom538精品视频| 亚洲色激婷| AV操一操| 综合网五月| 涩婷婷五月天| 久久五月天色婷婷| 婷婷久久网| 丁香五月综合AV在线| 狠狠舔| 久久全意婷婷| 色情综合| 思思国产99| 狠狠色五月激情|