精品欧美一区二区三区在线观看 _久久久久国色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)推薦
日韩欧美国产午夜精品| 久久久一区二区三区| 久久亚洲精品一区| 久久久久99人妻一区二区三区| 亚洲大胆人体大胆做受1| 99v久久综合狠狠综合久久| 国产精品啪视频| 精品无码久久久久久久| 狠狠做六月爱婷婷综合aⅴ| 宅男噜噜噜66一区二区66| 日韩国产一级片| 高清av在线| 成人午夜免费av| 国产精品三级网站| 中日韩黄色大片| 香蕉久久网站| 亚洲一区二区精品| av av在线| 久久婷婷五月综合色丁香| 亚洲成人在线网站| 中文字幕一区二区三区四区五区六区 | 狠狠一区二区三区| 欧美女孩性生活视频| 欧美日韩精品在线一区二区| 麻豆影院在线| 国产调教视频一区| 国产伦精品一区| 99在线观看精品视频| 日韩在线a电影| 久久久免费精品| 婷婷伊人五月天| 日韩久久精品| 亚洲视频网站在线观看| 国产精品久久无码| 影音先锋欧美激情| 日韩一级在线观看| 天天影视色综合| 三上悠亚国产精品一区二区三区| 亚洲一区二区三区三| 浴室偷拍美女洗澡456在线| 岛国视频免费在线观看| 91免费观看视频| 成人永久免费| 亚洲成人第一区| 国产精品2024| 91久久中文字幕| 国产丝袜视频在线观看| 麻豆精品视频在线观看免费| 国产精品美腿一区在线看| 激情视频网站在线观看| 先锋影音久久久| 欧美亚洲成人xxx| 毛片在线免费视频| 亚洲欧美日韩精品一区二区| 久久人人爽国产| 国产一级av毛片| 国产日韩欧美一区在线 | 日韩精品一区三区| 国产精品久久| 国产精品不卡视频| 日韩精品一线二线三线| 国产在线一二| 国产精品天干天干在线综合| 神马欧美一区二区| 午夜伦全在线观看| 亚洲色大成网站www久久九九| 国产一区免费在线| 香蕉久久一区二区三区| 91麻豆免费在线观看| 免费久久99精品国产自| 国产一级片在线播放| 国产精品美女一区二区在线观看| 亚洲午夜在线观看| 成人免费网站在线观看视频| 亚洲午夜久久久久中文字幕久| 欧美黑人经典片免费观看| av电影一区| 欧美年轻男男videosbes| 69久久精品无码一区二区| 国产伦精品一区二区三区免费优势 | 天堂一区二区三区四区| 亚洲人成77777在线观看网| 人妻互换一区二区激情偷拍| 亚洲乱码精品| 97在线视频免费| 国产精品无码粉嫩小泬| 国内精品久久久久影院色| 国产精品v欧美精品v日韩精品| 亚洲av片一区二区三区| 国产精品你懂的在线欣赏| 欧洲金发美女大战黑人| 老司机深夜福利在线观看| 欧美视频一区在线| 下面一进一出好爽视频| 午夜a一级毛片亚洲欧洲| 一区二区三区国产视频| 黄色一级视频在线观看| 香蕉视频禁止18| h片在线观看视频免费| 欧美性感美女h网站在线观看免费| 看欧美ab黄色大片视频免费 | av理论在线观看| 午夜精品福利在线| 女人高潮一级片| 日韩精品亚洲aⅴ在线影院| 色诱女教师一区二区三区| 五月天婷婷网站| 激情成人午夜视频| 欧美在线激情| av美女在线观看| 在线不卡的av| 久久久久久国产精品无码| 欧美激情1区| 国产欧美一区二区三区久久人妖| 午夜福利一区二区三区| 一区二区成人在线| 最新中文字幕2018| 妖精视频一区二区三区免费观看| 欧美精品在线免费| 一级久久久久久久| 久久夜色精品国产噜噜av| 亚洲av首页在线| 国产精品久久久久久妇女| 日韩电影网在线| 久久婷婷国产麻豆91| 久久99国产精品久久99| 日本一区二区免费看| 7777kkk亚洲综合欧美网站| 欧美精品在线观看一区二区| 成年人免费观看视频网站| 激情综合网址| 国产精品麻豆免费版| 1stkiss在线漫画| 在线91免费看| 老司机深夜福利网站| 日韩av中文字幕一区二区三区| 精品国产区在线| 96av在线| 亚洲精品久久久久久久久久久久| 免费网站看av| 国产成人精品亚洲777人妖| 中文精品视频一区二区在线观看| 另类中文字幕国产精品| 亚洲欧洲自拍偷拍| 国产成人精品777777| 久久精品一区二区三区av| 能在线观看的av网站| 九九在线高清精品视频| 91成人在线观看国产| 日韩大胆人体| 91极品美女在线| 中国特黄一级片| 久久精品999| 影音先锋成人资源网站| 国产视频网站一区二区三区| 久久久av一区| 亚洲AV无码精品色毛片浪潮| 一区二区三区四区蜜桃| 久久久久亚洲AV成人网人人小说| 影音先锋久久| 免费亚洲精品视频| 日韩和的一区二在线| 在线观看91久久久久久| 亚洲永久精品视频| 亚洲视频 欧洲视频| 美女流白浆视频| 欧美精品国产一区| 精品乱码一区二区三区| 国产精品专区免费| 深夜福利一区二区| 国产av无码专区亚洲a∨毛片| 亚洲午夜精品17c| asian性开放少妇pics| 青青草精品视频| 国产在线拍揄自揄拍无码| 动漫av一区| 国产成人在线一区| 超碰在线网址| 亚洲精品国产精品乱码不99按摩 | 欧美日本精品一区二区三区| 精品人妻伦九区久久aaa片| 成人免费三级在线| 丁香婷婷激情网| 这里只有精品在线| 久久综合中文色婷婷| 亚洲欧美在线综合| 97视频在线观看免费| 国产福利第一视频在线播放| 91精品国产高清一区二区三区 | 欧美日韩国产免费一区二区三区| 99久久精品一区二区成人| 欧美高清videos高潮hd| 日本一区二区三区在线观看视频| 欧美日韩在线免费视频| 久久高清无码视频| 久久久99精品免费观看| 久久久久亚洲av无码麻豆| 欧美一区=区| 亚洲啊啊啊啊啊| 精品日韩一区| 国外成人在线视频网站| 国产精品美女午夜爽爽| 97国产精品视频人人做人人爱| 91社区在线| 日韩成人在线电影网| 国产精品久久久久久久久久久久久久久久久久 | 日韩在线高清视频| 婷婷国产在线| 国产欧美一区二区精品久导航 | 国产精品亚洲片夜色在线| h片在线免费观看| 亚洲一区二区精品| 蜜桃在线一区二区| 欧美日韩久久久| 亚洲va在线观看| 亚洲一区二区黄色| 亚洲怡红院在线观看| 久久久精品免费网站| 亚洲精品乱码久久久久久蜜桃欧美| 麻豆成人91精品二区三区| 无码人妻丰满熟妇区96| 精品成人在线| 日韩视频一二三| 久久综合成人| 天堂精品一区二区三区| 亚欧洲精品视频在线观看| 国产精品免费观看高清| 国产午夜久久av| 国产日韩欧美中文在线播放| 日本精品另类| 91精品国产91| 成av人片在线观看www| 欧美激情一区二区久久久| dj大片免费在线观看| 日韩在线视频一区| 色综合久久影院| 丝袜亚洲欧美日韩综合| 国产粉嫩一区二区三区在线观看 | 国产一级久久久久毛片精品| 99久久婷婷国产综合精品| 久久久久亚洲AV成人网人人小说| 国产成人一级电影| 永久av免费在线观看| 国模大尺度一区二区三区| 17c国产在线| 紧缚奴在线一区二区三区| 中文字幕中文在线| 久久99精品久久久久| 91小视频在线播放| 国产原创一区二区| 91网址在线观看精品| 国产一区二区伦理片| 天天av天天操| 成人看片黄a免费看在线| 国产 xxxx| 91麻豆国产自产在线观看| 亚洲人成人无码网www国产| 国产丝袜美腿一区二区三区| 国产性猛交xx乱| 成人免费一区二区三区视频 | 91电影在线观看| 欧美激情一区二区三区免费观看| 欧美午夜影院一区| av观看在线免费| 亚洲成人激情图| 欧美日韩激情视频一区二区三区| 国产亚洲视频中文字幕视频| √新版天堂资源在线资源| 久久久91精品国产| 538视频在线| 国产精品福利网| 久久的色偷偷| 国产伦精品一区二区三区照片| 天天躁日日躁狠狠躁欧美| 日韩国产精品一区二区| 久久久人成影片免费观看| 久久久久久免费看| 日本亚洲视频在线| www.色.com| 99久久99久久综合| 可以免费看av的网址| 一区二区三区美女| 欧美精品一二三四区| 欧美日韩国产不卡| 男人天堂av网| 在线播放国产一区中文字幕剧情欧美 | 国产无人区一区二区三区| 久久精品一区二区三区四区五区 | 91亚洲国产成人久久精品麻豆| 日韩精品一区二区三区蜜臀| 韩日视频在线| 九九九久久久久久| 成人av集中营| 国产中文一区二区| 国产精品88久久久久久| 日韩黄色短视频| 另类的小说在线视频另类成人小视频在线| 欧美性猛交乱大交| 国产日产欧美一区二区视频| 18精品爽视频在线观看| 欧美午夜不卡视频| 亚洲欧洲国产综合| 欧美xxxx18性欧美| 国产精品久久久久77777丨| 精品国产乱码一区二区三区四区 | 黄色www网站| 国产一区在线不卡| 亚洲无人区码一码二码三码的含义| 亚洲综合av网| 国产精品久久久久久久久毛片 | 国产欧美日韩电影| 日韩精彩视频| 欧美三级乱码| 一起操在线视频| 久久久www免费人成精品| 国产亚洲小视频| 91精品国产一区二区三区蜜臀| 欧美男男同志| 91精品国产91| av不卡一区二区| 男女裸体影院高潮| 久久国产免费看| 自拍偷拍亚洲天堂| 精品久久久一区二区| 亚洲va欧美va| 欧美国产视频日韩| 国内不卡的一区二区三区中文字幕| 日本一区二区不卡高清更新| 国产精品日韩| 中文成人无字幕乱码精品区| 亚洲影院在线观看| 国产黄色片免费| 欧美成人精品在线观看| 国产精品高清一区二区| 亚洲综合av一区| 日本不卡一区二区三区| 日本一道本视频| 欧美在线观看视频一区二区三区| 日韩福利一区二区| 日本精品免费观看| 亚洲欧洲免费| av无码精品一区二区三区| 久久久噜噜噜久久中文字幕色伊伊| 日韩精品――中文字幕| 亚洲第一页中文字幕| 高清视频在线观看三级| 国产在线观看一区| 一本色道久久综合| 精品少妇一区二区三区免费观| 色综合天天视频在线观看| 可以在线观看的黄色| 国产精欧美一区二区三区| 成人在线免费观看网站| 一区二区三区 欧美| 国产精品看片你懂得| 国产又爽又黄免费软件| 欧美成人性生活| 亚洲国产aⅴ精品一区二区| 99在线精品免费视频| 成人av综合一区| 国产性生活视频| 色哟哟亚洲精品一区二区| 国产中文欧美日韩在线| 欧美午夜小视频| 久久久久久久久久久久久女国产乱 | 国产高清不卡av| 亚洲制服av| 极品久久久久久久| 91精品国产91久久久久久一区二区| 宅男在线观看免费高清网站| 国产欧美综合精品一区二区| 先锋影音久久| 91传媒免费观看| 亚洲二区中文字幕| 在线看欧美视频| 经典三级在线视频| 91免费在线视频观看| 波多野结衣二区三区| 另类美女黄大片| 日韩欧美中文字幕电影| 亚洲精品20p| 午夜婷婷国产麻豆精品| 91se在线| 国产精品免费一区二区三区在线观看| 久久福利精品| 久久国产高清视频| 日韩精品免费在线视频观看| 欧美aaaaaaaa| 成人在线观看你懂的| 国产亚洲欧美色| 亚洲精品国产精| 国产精品扒开腿做爽爽爽视频| 自拍欧美日韩| 中文字幕免费视频| 日韩午夜av电影| 影音成人av| 国产资源在线视频| 亚洲日本中文字幕区| 男人的天堂在线视频| 不卡一卡2卡3卡4卡精品在|