精品欧美一区二区三区在线观看 _久久久久国色av免费观看性色_国产精品久久在线观看_亚洲第一综合网站_91精品又粗又猛又爽_小泽玛利亚一区二区免费_91亚洲精品国偷拍自产在线观看 _久久精品视频在线播放_美女精品久久久_欧美日韩国产成人在线

基于知識圖譜的LangChain應(yīng)用實(shí)戰(zhàn)

發(fā)布于 2024-10-18 14:53
瀏覽
0收藏

圖檢索增強(qiáng)生成(Graph RAG)正逐漸流行起來,成為傳統(tǒng)向量搜索方法的有力補(bǔ)充。這種方法利用圖數(shù)據(jù)庫的結(jié)構(gòu)化特性,將數(shù)據(jù)以節(jié)點(diǎn)和關(guān)系的形式組織起來,從而增強(qiáng)檢索信息的深度和上下文關(guān)聯(lián)性。


基于知識圖譜的LangChain應(yīng)用實(shí)戰(zhàn)-AI.x社區(qū)


示例知識圖譜

圖在表示和存儲多樣化且相互關(guān)聯(lián)的信息方面具有天然優(yōu)勢,能夠輕松捕捉不同數(shù)據(jù)類型間的復(fù)雜關(guān)系和屬性。而向量數(shù)據(jù)庫在處理這類結(jié)構(gòu)化信息時(shí)則顯得力不從心,它們更擅長通過高維向量處理非結(jié)構(gòu)化數(shù)據(jù)。在 RAG 應(yīng)用中,結(jié)合結(jié)構(gòu)化的圖數(shù)據(jù)和非結(jié)構(gòu)化的文本向量搜索,可以讓我們同時(shí)享受兩者的優(yōu)勢,這也是本文將要探討的內(nèi)容。

知識圖譜的確很有用,但如何構(gòu)建一個(gè)呢? 構(gòu)建知識圖譜通常是利用圖數(shù)據(jù)表示的強(qiáng)大功能中最困難的一步。它需要收集和整理數(shù)據(jù),這需要對領(lǐng)域知識和圖建模有深刻的理解。為了簡化這一過程,我們開始嘗試使用大型語言模型(LLM)。LLM 憑借其對語言和上下文的深刻理解,可以自動化知識圖譜創(chuàng)建過程中的大部分工作。通過分析文本數(shù)據(jù),這些模型能夠識別實(shí)體,理解它們之間的關(guān)系,并提出如何在圖結(jié)構(gòu)中最佳表示這些實(shí)體。基于這些實(shí)驗(yàn),我們已經(jīng)將圖構(gòu)建模塊的首個(gè)版本集成到了 LangChain 中,本文將展示其應(yīng)用。

相關(guān)代碼已在 GitHub 上發(fā)布。

Neo4j 環(huán)境搭建

為了跟隨本文的示例,您需要搭建一個(gè) Neo4j 實(shí)例。最簡單的方法是在 Neo4j Aura 上啟動一個(gè)免費(fèi)實(shí)例,它提供了 Neo4j 數(shù)據(jù)庫的云版本。當(dāng)然,您也可以通過下載 Neo4j Desktop 應(yīng)用程序來創(chuàng)建一個(gè)本地?cái)?shù)據(jù)庫實(shí)例。

os.environ["OPENAI_API_KEY"] = "sk-"
os.environ["NEO4J_URI"] = "bolt://localhost:7687"
os.environ["NEO4J_USERNAME"] = "neo4j"
os.environ["NEO4J_PASSWORD"] = "password"

graph = Neo4jGraph()

此外,您還需要一個(gè) OpenAI 密鑰,因?yàn)槲覀儗⒃诒疚闹惺褂盟麄兊哪P汀?/p>

數(shù)據(jù)導(dǎo)入

在本次演示中,我們將使用伊麗莎白一世的維基百科頁面。我們可以利用 LangChain 加載器 輕松地從維基百科獲取并分割文檔。

# 讀取維基百科文章
raw_documents = WikipediaLoader(query="Elizabeth I").load()

# 定義分塊策略
text_splitter = TokenTextSplitter(chunk_size=512, chunk_overlap=24)
documents = text_splitter.split_documents(raw_documents[:3])

現(xiàn)在是時(shí)候根據(jù)獲取的文檔來構(gòu)建圖譜了。為此,我們開發(fā)了一個(gè) LLMGraphTransformer 模塊,它極大地簡化了在圖數(shù)據(jù)庫中構(gòu)建和存儲知識圖譜的過程。

llm=ChatOpenAI(temperature=0, model_name="gpt-4-0125-preview")
llm_transformer = LLMGraphTransformer(llm=llm)

# 提取圖數(shù)據(jù)
graph_documents = llm_transformer.convert_to_graph_documents(documents)

# 存儲到 neo4j
graph.add_graph_documents(
  graph_documents, 
  baseEntityLabel=True, 
  include_source=True
)

您可以指定知識圖譜生成鏈?zhǔn)褂媚姆N LLM。目前,我們只支持 OpenAI 和 Mistral 的函數(shù)調(diào)用模型。不過,我們計(jì)劃未來會擴(kuò)展 LLM 的選擇范圍。在這個(gè)例子中,我們使用的是最新的 GPT-4。需要注意的是,生成的圖譜質(zhì)量很大程度上取決于您使用的模型。理論上,您應(yīng)該選擇能力最強(qiáng)的模型。LLM 圖轉(zhuǎn)換器返回的圖文檔可以通過 add_graph_documents 方法導(dǎo)入到 Neo4j。baseEntityLabel 參數(shù)為每個(gè)節(jié)點(diǎn)添加了一個(gè)額外的 __Entity__ 標(biāo)簽,以增強(qiáng)索引和查詢性能。include_source 參數(shù)則將節(jié)點(diǎn)與其原始文檔關(guān)聯(lián)起來,便于數(shù)據(jù)追溯和理解上下文。

您可以在 Neo4j 瀏覽器中查看生成的圖譜。

基于知識圖譜的LangChain應(yīng)用實(shí)戰(zhàn)-AI.x社區(qū)

結(jié)合混合(向量 + 關(guān)鍵字)和圖檢索方法。

請注意,這張圖片僅為了清晰展示,只展示了生成圖譜的一部分。

RAG 的混合檢索

在圖譜生成之后,我們將采用一種混合檢索方法,結(jié)合向量和關(guān)鍵字索引以及圖檢索技術(shù),用于 RAG 應(yīng)用。

基于知識圖譜的LangChain應(yīng)用實(shí)戰(zhàn)-AI.x社區(qū)

結(jié)合混合(向量 + 關(guān)鍵字)和圖檢索方法。

上圖展示了一個(gè)檢索過程,從用戶提出問題開始,然后由 RAG 檢索器處理。這個(gè)檢索器結(jié)合了關(guān)鍵字和向量搜索來篩選非結(jié)構(gòu)化文本數(shù)據(jù),并將其與從知識圖譜中提取的信息結(jié)合起來。由于 Neo4j 同時(shí)支持關(guān)鍵字和向量索引,您可以使用單一數(shù)據(jù)庫系統(tǒng)實(shí)現(xiàn)所有三種檢索方式。這些來源的數(shù)據(jù)將被送入 LLM,以生成并提供最終答案。

非結(jié)構(gòu)化數(shù)據(jù)檢索器

您可以使用 Neo4jVector.from_existing_graph 方法為文檔添加關(guān)鍵字和向量檢索功能。該方法為混合搜索方法配置了關(guān)鍵字和向量搜索索引,目標(biāo)是標(biāo)記為 Document 的節(jié)點(diǎn)。如果缺少文本嵌入值,它還會自動計(jì)算。

vector_index = Neo4jVector.from_existing_graph(
    OpenAIEmbeddings(),
    search_type="hybrid",
    node_label="Document",
    text_node_properties=["text"],
    embedding_node_property="embedding"
)

然后,您可以使用 similarity_search 方法來調(diào)用向量索引。

圖檢索器

另一方面,配置圖檢索器雖然更為復(fù)雜,但提供了更大的靈活性。在這個(gè)例子中,我們將使用全文索引來識別相關(guān)節(jié)點(diǎn),然后返回它們的直接鄰域。

基于知識圖譜的LangChain應(yīng)用實(shí)戰(zhàn)-AI.x社區(qū)

圖檢索器示意圖

圖檢索器首先識別輸入中的相關(guān)實(shí)體。為了簡化,我們指導(dǎo) LLM 識別人物、組織和地點(diǎn)。為了實(shí)現(xiàn)這一點(diǎn),我們將使用 LCEL 配合新加入的 with_structured_output 方法。

# 從文本中提取實(shí)體
class Entities(BaseModel):
    """識別實(shí)體相關(guān)信息。"""

    names: List[str] = Field(
        ...,
        descriptinotallow="文本中出現(xiàn)的所有人物、組織或商業(yè)實(shí)體的名稱",
    )

prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "您正在從文本中提取組織和人物實(shí)體。",
        ),
        (
            "human",
            "請按照給定格式從以下輸入中提取信息:{question}",
        ),
    ]
)

entity_chain = prompt | llm.with_structured_output(Entities)

讓我們來實(shí)際測試一下:

entity_chain.invoke({"question": "阿梅莉亞·埃爾哈特在哪里出生?"}).names
# ['阿梅莉亞·埃爾哈特']

很好,現(xiàn)在我們能夠在問題中識別出實(shí)體,接下來我們將使用全文索引將這些實(shí)體映射到知識圖譜中。首先,我們需要定義一個(gè)全文索引,并創(chuàng)建一個(gè)函數(shù)來生成全文查詢,這個(gè)查詢允許一定程度的拼寫錯(cuò)誤,這里我們不詳細(xì)展開。

graph.query(
    "CREATE FULLTEXT INDEX entity IF NOT EXISTS FOR (e:__Entity__) ON EACH [e.id]")

def generate_full_text_query(input: str) -> str:
    """
    為給定的輸入字符串生成全文搜索查詢。

    該函數(shù)構(gòu)建一個(gè)適用于全文搜索的查詢字符串。它通過將輸入字符串分割成單詞,并對每個(gè)單詞附加一個(gè)相似性閾值(允許2個(gè)字符變化),然后使用 AND 運(yùn)算符將它們組合起來。這對于將用戶問題中的實(shí)體映射到數(shù)據(jù)庫值非常有用,并且能夠容忍一些拼寫錯(cuò)誤。
    """
    full_text_query = ""
    words = [word for word in remove_lucene_chars(input).split() if word]
    for word in words[:-1]:
        full_text_query += f"{word}~2 AND"
    full_text_query += f"{words[-1]}~2"
    return full_text_query.strip()

現(xiàn)在,讓我們整合所有步驟。

# 全文索引查詢
def structured_retriever(question: str) -> str:
    """
    收集問題中提到的實(shí)體的鄰域信息
    """
    result = ""
    entities = entity_chain.invoke({"question": question})
    for entity in entities.names:
        response = graph.query(
            """CALL db.index.fulltext.queryNodes('entity', $query, 
            {limit:2})
            YIELD node,score
            CALL {
              MATCH (node)-[r:!MENTIONS]->(neighbor)
              RETURN node.id + ' - ' + type(r) + ' -> ' + neighbor.id AS 
              output
              UNION
              MATCH (node)<-[r:!MENTIONS]-(neighbor)
              RETURN neighbor.id + ' - ' + type(r) + ' -> ' +  node.id AS 
              output
            }
            RETURN output LIMIT 50
            """,
            {"query": generate_full_text_query(entity)},
        )
        result += "\n".join([el['output'] for el in response])
    return result

structured_retriever 函數(shù)首先識別用戶問題中的實(shí)體,然后遍歷這些實(shí)體,使用 Cypher 模板檢索相關(guān)節(jié)點(diǎn)的鄰域信息。讓我們來實(shí)際測試一下!

print(structured_retriever("伊麗莎白一世是誰?"))
# 伊麗莎白一世 - BORN_ON -> 1533年9月7日
# 伊麗莎白一世 - DIED_ON -> 1603年3月24日
# 伊麗莎白一世 - TITLE_HELD_FROM -> 英格蘭和愛爾蘭女王
# 伊麗莎白一世 - TITLE_HELD_UNTIL -> 1558年11月17日
# 伊麗莎白一世 - MEMBER_OF -> 都鐸王朝
# 伊麗莎白一世 - CHILD_OF -> 亨利八世
# 等等...

最終檢索器

正如我們一開始提到的,我們將結(jié)合非結(jié)構(gòu)化和圖檢索器來創(chuàng)建最終的上下文,這將傳遞給 LLM。

def retriever(question: str):
    print(f"搜索查詢:{question}")
    structured_data = structured_retriever(question)
    unstructured_data = [el.page_content for el in vector_index.similarity_search(question)]
    final_data = f"""結(jié)構(gòu)化數(shù)據(jù):
{structured_data}
非結(jié)構(gòu)化數(shù)據(jù):
{"#Document ".join(unstructured_data)}
    """
    return final_data

由于我們使用的是 Python,我們可以使用 f-string 輕松地將輸出合并。

定義 RAG 鏈

我們已經(jīng)成功實(shí)現(xiàn)了 RAG 的檢索組件。接下來,我們將引入一個(gè)提示,它利用混合檢索器提供的上下文來生成響應(yīng),從而完成 RAG 鏈的實(shí)現(xiàn)。

template = """根據(jù)以下上下文回答問題:
{context}

問題:{question}
"""
prompt = ChatPromptTemplate.from_template(template)

chain = (
    RunnableParallel(
        {
            "context": _search_query | retriever,
            "question": RunnablePassthrough(),
        }
    )
    | prompt
    | llm
    | StrOutputParser()
)

最后,我們可以測試我們的混合 RAG 實(shí)現(xiàn)。

chain.invoke({"question": "伊麗莎白一世屬于哪個(gè)家族?"})
# 搜索查詢:伊麗莎白一世屬于哪個(gè)家族?
# '伊麗莎白一世屬于都鐸王朝。'

我還加入了一個(gè)查詢重寫特性,使得 RAG 鏈能夠適應(yīng)允許后續(xù)問題的對話環(huán)境。鑒于我們使用了向量和關(guān)鍵字搜索方法,我們需要重寫后續(xù)問題以優(yōu)化搜索過程。

chain.invoke(
    {
        "question": "她何時(shí)出生?",
        "chat_history": [("伊麗莎白一世屬于哪個(gè)家族?",
        "都鐸王朝")],

    }
)
# 搜索查詢:伊麗莎白一世何時(shí)出生?
# '伊麗莎白一世出生于1533年9月7日。'

您可以看到,'她何時(shí)出生?' 首先被重寫為 '伊麗莎白一世何時(shí)出生?'。然后使用重寫后的查詢來檢索相關(guān)上下文并回答問題。

總結(jié)

隨著 LLMGraphTransformer 的引入,生成知識圖譜的過程現(xiàn)在應(yīng)該更加順暢和易于訪問,這使得任何想要通過知識圖譜提供的深度和上下文來增強(qiáng)其基于 RAG 的應(yīng)用的人更容易上手。這只是一個(gè)開始,因?yàn)槲覀冇?jì)劃進(jìn)行更多的改進(jìn)。

本文轉(zhuǎn)載自 ??AI小智??,作者: AI小智

已于2024-10-21 09:35:04修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
国产高清在线a视频大全 | 成人国产精品一级毛片视频| 日韩欧美在线字幕| 亚洲一区三区视频在线观看| 国产成人精品白浆久久69| 亚洲高清激情| 日韩在线观看网址| www.88av| 高清久久精品| 色网站国产精品| 国内外成人激情免费视频| 亚洲 美腿 欧美 偷拍| 久久国产精品99久久人人澡| 亚洲一区自拍偷拍| 秋霞毛片久久久久久久久| 99精品在线视频观看| 亚洲在线观看| 欧美激情视频播放| 少妇愉情理伦三级| 日本中文字幕在线一区| 91精品国产综合久久久久久久| 你懂的av在线| 欧美videossex| 中文字幕在线观看一区二区| 久久伊人一区| 人妻无码中文字幕免费视频蜜桃| 麻豆精品在线播放| 日韩男女性生活视频| 国产亚洲欧美精品久久久久久| 色777狠狠狠综合伊人| 精品视频在线播放色网色视频| 午夜影院免费观看视频| 国产精品亲子伦av一区二区三区| 精品magnet| 国产一线二线三线女| caopen在线视频| 国产精品久久一卡二卡| 亚洲高清在线观看一区| 国产在线中文字幕| 久久影院视频免费| 51精品国产人成在线观看| 一本色道久久综合亚洲| 男女男精品视频网| 国产第一区电影| www.欧美色| 性高湖久久久久久久久| 91爱爱小视频k| 久久久久久久久久99| 中文字幕一区二区三区欧美日韩| www.日韩免费| 很污很黄的网站| 久久福利综合| 久久亚洲欧美日韩精品专区 | 亚洲精品成人精品456| 一区精品在线| 日本激情在线观看| 亚洲视频一区在线观看| 91香蕉视频网址| av在线影院| 一区二区成人在线| 国产精品成人久久电影| 小草在线视频免费播放| 一本一本久久a久久精品综合麻豆| 国产午夜福利100集发布| 午夜影院一区| 欧美三级日韩三级国产三级| 奇米视频888| 欧美电影在线观看一区| 亚洲一区二区综合| 国产aaa免费视频| 成人bbav| 91电影在线观看| 91看片破解版| 一区二区三区视频免费视频观看网站| 精品久久国产字幕高潮| 蜜桃精品成人影片| 欧美日韩在线网站| 久久综合久久88| 91精品国产乱码久久久张津瑜| 另类av一区二区| 国产欧美一区二区三区久久 | 亚洲精品www| 人妻精品久久久久中文| 天天色天天射综合网| 欧美激情xxxx| 国产成人一级片| 久久精品噜噜噜成人av农村| 91免费观看| 日韩二区三区| 亚洲欧美中日韩| 国产免费观看高清视频| 一区二区三区| 日韩高清av一区二区三区| 国产日韩精品中文字无码| 国产精品多人| 国产精品一区二区久久| 少妇无码一区二区三区| 国产精品成人一区二区艾草| 成人免费性视频| 中韩乱幕日产无线码一区| 精品国产自在久精品国产| 亚洲v国产v欧美v久久久久久| 综合一区在线| 国产精品成人国产乱一区| 高h震动喷水双性1v1| 欧美国产欧美综合| 精品久久久久久无码中文野结衣| 在线成人视屏| 亚洲国产精品中文| 激情五月婷婷在线| 美女脱光内衣内裤视频久久网站| 国产日韩欧美亚洲一区| 麻豆影视在线观看_| 色综合天天综合| 99精品一区二区三区无码吞精| 大胆日韩av| 欧美最近摘花xxxx摘花| www.五月婷婷| 亚洲三级免费观看| 在线观看免费成人av| 欧美国产不卡| 国模私拍视频一区| 99精品视频在线播放免费| 欧美高清在线精品一区| 欧美精品色婷婷五月综合| 中文无码日韩欧| 久久久国产精品视频| 最新中文字幕第一页| 99视频在线观看一区三区| 91视频 - 88av| 国产一区精品二区| 精品精品国产国产自在线| 国产成人av免费| 久久精品视频在线免费观看 | 国产精品国产精品88| 青青青伊人色综合久久| 日本不卡一区二区三区视频| 日韩影院在线| 亚洲精品美女久久久| 日韩欧美亚洲一区二区三区| 成人自拍视频在线| 女人床在线观看| 中文字幕一区二区三区日韩精品| 久久影院免费观看| 国产黄色片网站| 一区二区三区中文字幕电影 | 欧美午夜网站| 少妇久久久久| 日韩av在线电影网| 国产又大又黄视频| av在线不卡电影| 免费不卡av在线| 精品三级av在线导航| 午夜精品视频网站| 四虎精品在永久在线观看| 丁香五六月婷婷久久激情| 蜜桃精品成人影片| 日韩高清在线一区| 一级二级三级欧美| 精品国产一区二| 欧美激情免费视频| 三级在线观看| 欧美视频你懂的| 看免费黄色录像| 成人永久看片免费视频天堂| av黄色在线网站| 精品一区二区三区在线| 成人黄色免费网站在线观看| 中文字幕资源网在线观看| 日韩免费在线观看| 亚洲va在线观看| 欧美国产成人在线| 欧美视频亚洲图片| 99热在线精品观看| 日本在线一区| 美女国产精品久久久| 国产做受69高潮| 国产裸舞福利在线视频合集| 欧美剧在线免费观看网站 | 色播色播色播色播色播在线| 欧美私人免费视频| 中文字幕影音先锋| 91碰在线视频| 青青草久久伊人| 99精品视频免费观看| 亚洲精品无人区| 中文字幕久久精品一区二区| 欧美又大又粗又长| a天堂中文在线官网在线| 亚洲精品成人网| 亚洲中文一区二区三区| 午夜在线成人av| 亚洲一级片在线播放| 成人福利在线看| 色啦啦av综合| 裸体一区二区| 美女av免费观看| 色喇叭免费久久综合网| 国产亚洲精品自在久久| 欧美在线se| 欧美做爰性生交视频| 在线电影福利片| 最好看的2019的中文字幕视频| 亚洲国产剧情在线观看| 欧美日韩中文国产| 国产毛片aaa| 亚洲色图都市小说| 青青青视频在线免费观看| av不卡免费电影| 日本中文字幕在线不卡| 欧美a级一区二区| 日本不卡在线观看视频| 狠狠入ady亚洲精品经典电影| 性欧美videosex高清少妇| 欧美尿孔扩张虐视频| 91视频免费网站| 日韩在线电影| 国产精品第三页| 欧美第一视频| 欧美亚洲免费电影| av午夜在线观看| 欧美激情一级精品国产| 国产原厂视频在线观看| 上原亚衣av一区二区三区| 高清日韩av电影| 亚洲欧美一区二区激情| 色呦呦免费观看| 日韩精品一区二区三区视频在线观看| 亚洲一卡二卡在线观看| 欧美午夜在线观看| 手机av免费观看| 日本高清无吗v一区| 中文字幕超碰在线| 欧美日韩国产在线看| 日韩精品视频免费播放| 午夜激情一区二区| 亚洲激情视频一区| 亚洲成人动漫一区| 在线观看亚洲欧美| 疯狂做受xxxx高潮欧美日本| 日韩精品一区二区不卡| 五月婷婷久久综合| 国产女同在线观看| 欧美日韩免费观看中文| 五月婷婷中文字幕| 色综合久久久网| 中文字幕精品视频在线观看| 欧美专区日韩专区| 中文无码精品一区二区三区| 欧美视频一区二区在线观看| 在线观看日批视频| 8v天堂国产在线一区二区| 国产99999| 亚洲国产精品系列| 欧美黄色小说| 日韩色av导航| 91精选在线| 午夜免费久久久久| 日韩性xxx| 国产日韩换脸av一区在线观看| 日韩专区视频| 国产精品久久久久久久久久久久午夜片| 91国内精品| 久久久久天天天天| 成人羞羞网站入口| 成人在线观看毛片| 一二三区精品| 性生活免费在线观看| 国产九色精品成人porny| 超碰caoprom| 国产婷婷色一区二区三区在线| 国产真人真事毛片视频| 亚洲免费av高清| 日本五十熟hd丰满| 在线精品视频免费观看| 国产精品无码AV| 亚洲精品美女在线| 日本亚洲精品| 91黄色8090| 亚洲午夜剧场| 精品网站在线看| 青青草国产成人a∨下载安卓| 99精品视频网站| 一本色道88久久加勒比精品| 国产精品v日韩精品v在线观看| 国产精品小仙女| 一区二区精品免费| 一区二区三区四区在线免费观看| 啦啦啦免费高清视频在线观看| 欧美精品一级二级| 日本天堂在线| 欧美日韩高清区| 国产精品66| 国产综合18久久久久久| 午夜国产一区二区| 欧美色图另类小说| 国产福利精品导航| 能直接看的av| 午夜一区二区三区视频| 91麻豆一区二区| 亚洲人成网在线播放| 三级资源在线| 国产专区精品视频| 国产精品三级| 精品少妇在线视频| 国产一区二区三区不卡在线观看| 最新中文字幕视频| 一个色妞综合视频在线观看| 亚洲午夜激情视频| 亚洲欧美中文日韩v在线观看| 欧美亚洲天堂| 亚洲va电影大全| 日本一本不卡| 国产xxxxx在线观看| 不卡一区二区在线| 久久老司机精品视频| 欧美久久免费观看| 川上优的av在线一区二区| 午夜精品久久久久久99热| 久久精品九色| 正义之心1992免费观看全集完整版| 亚洲尤物影院| 成人免费毛片日本片视频| 亚洲午夜在线视频| a毛片在线免费观看| 久久精品国产亚洲| 欧美美女福利视频| 亚洲制服中文| 久久99精品久久久久| 国产高清一区二区三区四区| 黑人巨大精品欧美一区免费视频| 丰满人妻一区二区三区四区53| 欧美另类99xxxxx| 美女精品久久| 日韩精品久久一区二区| 国产精品系列在线观看| 国产性生活大片| 欧美人妖巨大在线| 日本视频不卡| 91免费观看网站| 亚洲女同中文字幕| 日本黄色三级网站| 夜夜精品视频一区二区| 成人h动漫精品一区二区无码 | 欧美一区二区三区在线观看| 日本暖暖在线视频| 成人国产精品免费视频| 亚洲精品久久| 中文字幕 欧美 日韩| 亚洲综合网站在线观看| 免费观看毛片网站| 91高清免费视频| 我的公把我弄高潮了视频| 99精品偷自拍| 欧美日韩 一区二区三区| 中国人与牲禽动交精品| 国产精品3区| 久久国产精品视频在线观看| 久久综合五月天婷婷伊人| 亚洲国产成人精品女人久久| 一区二区三区精品99久久| 亚洲ww精品| 妺妺窝人体色www看人体| 不卡一卡二卡三乱码免费网站| av一级在线观看| 久热99视频在线观看| xvideos.蜜桃一区二区| 欧美污视频网站| 国产精品久久久久久亚洲毛片| 国产又粗又猛又爽又黄视频| 欧美丰满少妇xxxxx| 亚洲三级精品| 国内av一区二区| 亚洲国产成人va在线观看天堂| 日韩av成人| 成人免费淫片aa视频免费| 在线国产日韩| www..com.cn蕾丝视频在线观看免费版| 欧美精品自拍偷拍| 午夜不卡影院| 麻豆md0077饥渴少妇| 97久久久精品综合88久久| 亚洲一区 中文字幕| 高清亚洲成在人网站天堂| 日韩欧美中文| 中文字幕 日本| 欧美片在线播放| 成人免费观看在线观看| 亚洲欧美国产不卡| av在线播放成人| 国产在成人精品线拍偷自揄拍| 97视频免费观看| 一区二区三区在线观看免费| 香蕉网在线播放| 日韩一级片网站| 日韩毛片一区| 国产不卡一区二区视频| 亚洲欧美一区二区视频| 日韩精品123| 国产99在线免费|