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

使用知識圖譜,大幅提升RAG準確性

人工智能
通過引入LLMGraphTransformer,知識圖譜的生成過程將變得更加流暢和易于訪問,這使得任何希望使用知識圖譜提供的深度和上下文來增強他們RAG應用程序的人都能更加輕松地使用它。

圖形檢索—增強生成(GraphRAG)的發(fā)展勢頭日益強勁,已成為傳統(tǒng)向量搜索檢索方法的有力補充。這種方法利用圖數(shù)據(jù)庫的結構化特性,將數(shù)據(jù)組織為節(jié)點和關系,從而增強了檢索信息的深度和上下文關聯(lián)性。

知識圖譜示例知識圖譜示例

圖形擅長以結構化方式表示和存儲異構和互連的信息,能夠輕松捕獲不同數(shù)據(jù)類型之間的復雜關系和屬性。相比之下,向量數(shù)據(jù)庫通常難以處理此類結構化信息,因為它們的優(yōu)勢在于通過高維向量處理非結構化數(shù)據(jù)。在RAG應用程序中,可以將結構化的圖數(shù)據(jù)與非結構文本的向量搜索相結合,以獲得雙方的優(yōu)勢。這就是將在這篇文章中展示的內(nèi)容。

一、知識圖譜很好,但如何創(chuàng)建?

構建知識圖譜通常是最富挑戰(zhàn)性的一步。它涉及數(shù)據(jù)的收集和結構化,這需要對領域和圖建模有深入的理解。

為了簡化這一過程,可以嘗試使用大語言模型(LLM)。憑借對語言和上下文的深刻理解,LLM可以自動完成知識圖譜創(chuàng)建過程的大部分工作。通過分析文本數(shù)據(jù),這些模型可以識別實體、理解它們之間的關系,并建議如何在圖結構中最好地表示它們。

作為這些實驗的結果,我們已經(jīng)在LangChain中添加了第一版的圖構建模塊,將在這篇文章中進行演示。

代碼可在GitHub上獲取。

【GitHub】:https://github.com/tomasonjo/blogs/blob/master/llm/enhancing_rag_with_graph.ipynb

Neo4j環(huán)境設置

需要設置一個Neo4j實例,請按照本文章中的示例操作。最簡單的方法是在Neo4j Aura(https://neo4j.com/cloud/platform/aura-graph-database/)上啟動一個免費實例,它提供Neo4j數(shù)據(jù)庫的云實例?;蛘?,也可以通過下載Neo4j Desktop應用程序(https://neo4j.com/download/),并創(chuàng)建一個本地數(shù)據(jù)庫實例,從而設置Neo4j數(shù)據(jù)庫的本地實例。

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()

此外,還必須提供一個OpenAI密鑰,因為我們將在這篇文章中使用他們的模型。

二、數(shù)據(jù)導入

在本演示中,我們將使用伊麗莎白一世的維基百科頁面。我們可以使用LangChain加載器無縫地獲取和拆分來自維基百科的文檔。

【伊麗莎白一世維基百科】:https://en.wikipedia.org/wiki/Elizabeth_I

【LangChain加載器】:https://python.langchain.com/v0.1/docs/modules/data_connection/document_loaders/

# 讀取維基百科文章
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)在是時候根據(jù)檢索到的文檔構建一個圖了。為此,我們實現(xiàn)了一個LLMGraphTransformer模塊,它大大簡化了在圖數(shù)據(jù)庫中構建和存儲知識圖譜的過程。

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
)

可以定義希望知識圖譜生成鏈使用的LLM。目前,我們只支持來自OpenAI和Mistral的函數(shù)調(diào)用模型。但是,我們計劃在未來擴展LLM的選擇范圍。在這個例子中,我們使用的是最新的GPT-4。請注意,生成的圖的質量很大程度上取決于使用的模型。理論上,總是希望使用最強大的模型。LLM圖轉換器返回圖文檔,這些文檔可以通過add_graph_documents方法導入到Neo4j中。baseEntityLabel參數(shù)為每個節(jié)點分配一個額外的__Entity__標簽,以增強索引和查詢性能。include_source參數(shù)將節(jié)點鏈接到它們的源文檔,以便于數(shù)據(jù)追溯和上下文理解。

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

圖片圖片

生成圖的一部分。

請注意,該圖像只代表生成的圖的一部分。

三、用于RAG的混合檢索

在圖生成之后,我們將使用混合檢索方法,將向量和關鍵字索引與圖檢索相結合,用于RAG應用程序。

圖片圖片

混合(向量+關鍵字)和圖檢索方法的結合。

該圖展示了一個檢索過程,首先是用戶提出問題,然后將問題導向RAG檢索器。該檢索器使用關鍵字和向量搜索來搜索非結構化文本數(shù)據(jù),并將其與從知識圖譜收集的信息相結合。由于Neo4j同時支持關鍵字和向量索引,因此可以使用單一的數(shù)據(jù)庫系統(tǒng)實現(xiàn)所有三種檢索選項。從這些來源收集的數(shù)據(jù)被輸入到LLM中,以生成并提供最終答案。

3.1 非結構化數(shù)據(jù)檢索器

可以使用Neo4jVector.from_existing_graph方法為文檔添加關鍵字和向量檢索。該方法為混合搜索方法配置關鍵字和向量搜索索引,目標是標有Document的節(jié)點。此外,如果缺少文本嵌入值,它還會計算這些值。

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)用向量索引。

3.2 圖檢索器

另一方面,配置圖檢索器更為復雜,但提供了更多自由度。這個例子將使用全文索引來識別相關節(jié)點,并返回它們的直接鄰域。

圖片圖片

圖檢索器。

圖檢索器首先識別輸入信息中的相關實體。為簡單起見,我們指示LLM識別人物、組織和位置。為此,我們將使用LCEL和新添加的with_structured_output方法來實現(xiàn)這一目標。

# 從文本中提取實體
class Entities(BaseModel):
    """Identifying information about entities."""

    names: List[str] = Field(
        ...,
        descriptinotallow="All the person, organization, or business entities that "
        "appear in the text",
    )

prompt = ChatPromptTemplate.from_messages(
    [
        (
            "system",
            "You are extracting organization and person entities from the text.",
        ),
        (
            "human",
            "Use the given format to extract information from the following "
            "input: {question}",
        ),
    ]
)

entity_chain = prompt | llm.with_structured_output(Entities)

讓我們來測試一下。

entity_chain.invoke({"question": "Where was Amelia Earhart born?"}).names
# ['Amelia Earhart']

太好了,現(xiàn)在我們可以檢測問題中的實體了,讓我們使用全文索引將它們映射到知識圖譜中。首先,我們需要定義一個全文索引和一個可以生成全文查詢的函數(shù),其中允許有一些拼寫錯誤,這里就不詳細介紹了。

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

def generate_full_text_query(input: str) -> str:
    """
    Generate a full-text search query for a given input string.

    This function constructs a query string suitable for a full-text search.
    It processes the input string by splitting it into words and appending a
    similarity threshold (~2 changed characters) to each word, then combines 
    them using the AND operator. Useful for mapping entities from user questions
    to database values, and allows for some misspelings.
    """
    full_text_query = ""
    words = [el for el in remove_lucene_chars(input).split() if el]
    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)在,讓我們把它們?nèi)拷M合起來。

# 全文索引查詢
def structured_retriever(question: str) -> str:
    """
    Collects the neighborhood of entities mentioned
    in the question
    """
    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ù)首先檢測用戶問題中的實體。接下來,它會遍歷檢測到的實體,并使用Cypher模板檢索相關節(jié)點的鄰域。讓我們來測試一下!

print(structured_retriever("Who is Elizabeth I?"))
# Elizabeth I - BORN_ON -> 7 September 1533
# Elizabeth I - DIED_ON -> 24 March 1603
# Elizabeth I - TITLE_HELD_FROM -> Queen Of England And Ireland
# Elizabeth I - TITLE_HELD_UNTIL -> 17 November 1558
# Elizabeth I - MEMBER_OF -> House Of Tudor
# Elizabeth I - CHILD_OF -> Henry Viii
# and more...

3.3 最終檢索器

正如開頭提到的,我們將結合非結構化檢索器和圖形檢索器,創(chuàng)建傳遞給LLM的最終上下文。

def retriever(question: str):
    print(f"Search query: {question}")
    structured_data = structured_retriever(question)
    unstructured_data = [el.page_content for el in vector_index.similarity_search(question)]
    final_data = f"""Structured data:
{structured_data}
Unstructured data:
{"#Document ". join(unstructured_data)}
    """
    return final_data

由于我們使用的是Python,因此只需使用f-string將輸出連接起來即可。

四、定義RAG鏈

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

template = """Answer the question based only on the following context:
{context}

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

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

最后,我們可以繼續(xù)測試我們的混合RAG實現(xiàn)。

chain.invoke({"question": "Which house did Elizabeth I belong to?"})
# 搜索查詢:Which house did Elizabeth I belong to?(伊麗莎白一世屬于哪個王朝?)
# 'Elizabeth I belonged to the House of Tudor.'('伊麗莎白一世屬于都鐸王朝。')

此示例還加入了一個查詢重寫功能,使RAG鏈能夠適應并支持追問的對話環(huán)境。鑒于我們使用的是向量和關鍵字搜索方法,我們必須重寫后續(xù)問題以優(yōu)化我們的搜索過程。

chain.invoke(
    {
        "question": "When was she born?",
        "chat_history": [("Which house did Elizabeth I belong to?", "House Of Tudor")],
    }
)
# 搜索查詢:When was Elizabeth I born?(她出生于何時)
# 'Elizabeth I was born on 7 September 1533.'('伊麗莎白一世于1533年9月7日出生。')

可以觀察到,When was she born?首先被重寫為When was Elizabeth I born? 。然后使用重寫后的查詢來檢索相關上下文并回答問題。

五、輕松增強RAG應用程序

通過引入LLMGraphTransformer,知識圖譜的生成過程將變得更加流暢和易于訪問,這使得任何希望使用知識圖譜提供的深度和上下文來增強他們RAG應用程序的人都能更加輕松地使用它。

【GitHub】:https://github.com/tomasonjo/blogs/blob/master/llm/enhancing_rag_with_graph.ipynb

責任編輯:武曉燕 來源: Python學研大本營
相關推薦

2024-10-07 08:49:25

2025-03-06 10:41:32

2025-04-01 04:25:00

RAG數(shù)據(jù)檢索

2024-01-09 14:05:15

大型語言模型RAG向量數(shù)據(jù)庫

2024-02-26 00:00:00

RAG系統(tǒng)圖譜

2017-03-06 16:48:56

知識圖譜構建存儲

2025-04-27 00:10:00

AI人工智能知識圖譜

2021-01-19 10:52:15

知識圖譜

2024-03-26 00:00:07

2009-08-12 09:27:31

Google搜索

2021-01-25 10:36:32

知識圖譜人工智能

2025-10-28 04:00:00

GraphRAG節(jié)點

2021-05-10 17:40:14

AI 數(shù)據(jù)人工智能

2020-09-24 18:07:04

華為云食道癌方案

2023-08-22 15:34:01

Python開發(fā)

2025-05-15 09:43:15

知識圖譜向量數(shù)據(jù)庫RAG

2025-06-06 01:00:00

AI人工智能知識圖譜

2024-06-03 07:28:43

2024-10-12 08:03:25

2025-06-30 13:57:59

開源模型AI
點贊
收藏

51CTO技術棧公眾號

亚洲精品自拍网| 久久精品国产综合精品| 国产一区二区三区视频播放| 九九九伊在线综合永久| 国产精品99久久久久久宅男| 九九精品在线观看| 在线黄色免费网站| 亚洲女同志freevdieo| 国产日韩欧美精品一区| 成人国产精品久久久| 国产精品成人av久久| 97一区二区国产好的精华液| 欧美三级xxx| 伊人情人网综合| 黄频网站在线观看| 日韩一区精品视频| 欧美另类精品xxxx孕妇| 国产精品揄拍100视频| 国产极品一区| 亚洲成a人在线观看| 日本一区视频在线观看| 国产黄色大片网站| 另类av一区二区| 久久精品视频在线播放| 天天躁日日躁狠狠躁免费麻豆| av中文在线观看| 99视频一区| www.久久久久| 在线观看国产免费视频| 台湾佬中文娱乐久久久| 亚洲激情校园春色| 日韩欧美三级电影| 天天综合永久入口| 国产一区二区免费视频| 国产成人综合久久| 日本三级欧美三级| 91嫩草亚洲精品| 亚洲精品日韩欧美| 激情小说欧美色图| 欧美啪啪网站| 欧美性猛交xxxx久久久| 超碰人人爱人人| 69久久夜色| 2021国产精品久久精品| 亚洲最大av在线| 中文字幕在线观看国产| 午夜亚洲福利在线老司机| 久久伊人色综合| 国产123在线| 伊人成综合网yiren22| 精品盗摄一区二区三区| 国产精品v欧美精品v日韩精品| 亚洲久久久久久久| av自拍一区| 日韩一级完整毛片| 狠狠躁狠狠躁视频专区| caoporn视频在线| 亚洲免费观看高清完整版在线观看 | 欧美一级生活片| 日本阿v视频在线观看| 快射av在线播放一区| 中文字幕欧美激情| 日本婷婷久久久久久久久一区二区| 日韩精品一区不卡| 羞羞视频在线观看欧美| 97超级碰碰人国产在线观看| 国产一级片久久| 欧美人与禽猛交乱配视频| 久久精品中文字幕一区| 五月天免费网站| 日韩免费看片| www.久久久久久.com| 国产91在线播放九色| 日本a口亚洲| 亚洲丝袜av一区| av av在线| 久久久免费毛片| 日韩av网站导航| 精品夜夜澡人妻无码av| 亚洲人成亚洲精品| 亚洲欧美国产高清va在线播| xxxx黄色片| 欧美亚洲国产日韩| 亚洲精品视频久久| 国产男男chinese网站| 久久影院资源站| 亚洲乱码一区av黑人高潮| 香蕉视频久久久| 欧美国产一级| 久久天天躁狠狠躁夜夜爽蜜月| 91porn在线| 麻豆一区二区麻豆免费观看| 亚洲男人的天堂网站| 欧美一区二区三区成人精品| 欧美极品在线观看| 日韩三级成人av网| 亚洲av鲁丝一区二区三区 | 久久精品国产久精国产| 国产精品∨欧美精品v日韩精品| 欧美黄片一区二区三区| 在线观看不卡| 欧美在线观看网址综合| a片在线免费观看| 国产精品18久久久| 狠狠色噜噜狠狠色综合久| 污污网站免费在线观看| 免费视频观看成人| 国产高清不卡一区| 国产伦理久久久| 国产1区2区3区在线| 中文字幕中文字幕中文字幕亚洲无线| av一区二区三区免费| 亚洲精华国产精华精华液网站| 精品一区二区三区日韩| 肥熟一91porny丨九色丨| 天堂中文在线观看视频| 亚洲国产精品成人久久综合一区| 蜜桃传媒视频麻豆第一区免费观看 | 伊人久久久久久久久久久| 小向美奈子av| 亚洲电影av| 国产精品久久久久久久久久久新郎 | 国产一区二区视频在线看| 日韩极品精品视频免费观看| 成人在线视频免费播放| 日韩欧美高清在线播放| 欧美极品少妇xxxxⅹ裸体艺术| 男人晚上看的视频| 中文欧美日韩| 91香蕉国产在线观看| 三级毛片在线免费看| 亚洲伦理在线精品| 熟女人妇 成熟妇女系列视频| 在线成人视屏| 日韩精品专区在线影院重磅| 国产原创剧情av| 五月精品视频| 国产精品福利网站| 色婷婷av一区二区三区之e本道| fc2成人免费人成在线观看播放| 亚洲一区二区在线| av亚洲在线| 欧美午夜精品久久久久久人妖| 91专区在线观看| www.成人| zzijzzij亚洲日本成熟少妇| 人妻 日韩精品 中文字幕| 国产宾馆实践打屁股91| 日韩欧美视频一区二区三区四区| 女女色综合影院| 欧美视频在线观看免费| 欧美一级片黄色| 欧美 日韩 国产一区二区在线视频| 久久av.com| 波多野结衣毛片| 99久久精品情趣| 中文字幕无码精品亚洲资源网久久| 日韩在线观看不卡| 亚洲电影免费观看| 久久精品免费在线| 极品美女销魂一区二区三区| 五月天亚洲综合小说网| 性欧美hd调教| 亚洲欧美国产制服动漫| 久久久久99精品成人片三人毛片| 另类小说一区二区三区| 欧美精品亚洲精品| 欧美片第1页| 亚洲精品国精品久久99热一| 久久成人在线观看| 成人综合在线观看| 日韩成人手机在线| 精品欧美午夜寂寞影院| 91国产美女视频| 三级做a全过程在线观看| 精品美女国产在线| 中文字幕xxx| 天堂一区二区在线| 亚洲一区在线直播| 亚洲精品一区av| 久久999免费视频| 亚洲av无码国产精品久久不卡| 91麻豆蜜桃一区二区三区| 欧美三级一级片| 欧美精品一区二区久久| 国产精品7m视频| 在线观看a视频| 91麻豆精品国产91久久久久 | 日韩亚洲欧美成人一区| 青青草免费av| www.日韩大片| 午夜免费一区二区| 我不卡影院28| 国产精品视频福利| 亚洲啊v在线| 色噜噜狠狠狠综合曰曰曰| 国产成年妇视频| 亚洲一区二区三区自拍| 香蕉久久久久久av成人| 国产精品婷婷| 日韩经典在线视频| 精品精品视频| 欧美在线观看网址综合| 日韩在线观看www| 精品国产免费一区二区三区四区| 亚洲综合久久av一区二区三区| 国产美女一区| 亚洲精品在线视频观看| 日韩精品成人| 国产成人精品日本亚洲| 成人影欧美片| 亚洲精品自拍偷拍| 亚洲天堂男人网| 亚洲成va人在线观看| 日韩福利在线视频| 国产真实乱偷精品视频免| 国产日韩一区二区在线| 欧美精品99| 清纯唯美一区二区三区| 成人线上播放| 成人妇女免费播放久久久| 草草视频在线| 久久中国妇女中文字幕| 欧美理论在线观看| 日韩欧美第一区| 一区二区乱子伦在线播放| 精品福利在线视频| 黄色一级大片在线免费观看| 久久中文字幕电影| 国产免费无码一区二区| 麻豆精品久久久| 黄色动漫在线免费看| 欧美日本久久| 在线观看欧美激情| 国产尤物久久久| 国产91视觉| 欧美不卡高清一区二区三区| 97热精品视频官网| 在线看三级电影| 深夜福利亚洲导航| 男人天堂网在线观看| 欧美va亚洲va国产综合| 91禁在线观看| 欧美三级欧美一级| 久久精品久久久久久久| 亚洲www啪成人一区二区麻豆| 欧美在线一级片| 国产综合色视频| 久热精品在线播放| 日本中文字幕一区二区视频| 日本三级免费网站| 中日韩视频在线观看| av在线播放亚洲| 在线国产精品一区| 欧美一级爱爱视频| 99久久99热这里只有精品| 亚洲欧美精品| 日韩精品四区| 一个色的综合| 91久久夜色精品国产按摩| 亚洲国产一区二区三区在线播| 亚洲成人1区| 成人免费网站在线看| 亚洲一区二区av| 国产日韩欧美中文在线播放| 狂野欧美性猛交xxxx| 欧美性受xxxx白人性爽| 在线最新版中文在线| 欧美在线视频网站| 韩国美女久久| 国产精品亚洲аv天堂网| 久久久精品一区二区毛片免费看| 欧美国产亚洲视频| 成人在线影视| 欧美激情国产日韩精品一区18| 国产区视频在线| 一区二区三区亚洲| 香蕉视频免费在线播放| xxx欧美精品| 在线观看av免费| 欧美激情视频一区二区三区不卡| 国产二区在线播放| 最近的2019中文字幕免费一页| 精品女同一区二区三区| 欧美大肚乱孕交hd孕妇| 特黄视频在线观看| 亚洲欧洲国产精品| 最新电影电视剧在线观看免费观看| 欧美videos中文字幕| 五月婷婷免费视频| 亚洲三级 欧美三级| 欧美香蕉爽爽人人爽| 色爱av美腿丝袜综合粉嫩av| 五月花成人网| 欧美中文在线视频| 91成人抖音| 91免费观看| 欧美极品中文字幕| 2021狠狠干| 亚洲欧美日本日韩| 国产欧美激情视频| 成人97人人超碰人人99| 中文字幕在线免费看线人| 国产精品成人免费精品自在线观看| 亚洲乱码国产乱码精品精大量| 不卡视频一二三四| 国产精品成人在线视频| 艳妇臀荡乳欲伦亚洲一区| 你懂的国产在线| 色爱区综合激月婷婷| www.好吊色| 在线观看免费高清视频97| 免费在线看电影| 国产精品一区二区三区免费视频 | 丰满肉肉bbwwbbww| 亚洲欧美日韩区| 免费看a在线观看| 欧洲午夜精品久久久| 韩国成人在线| 国产伦精品一区二区三区视频黑人| 国产成人精品亚洲线观看| 日韩在线导航| 国产农村妇女精品一二区| 三级黄色片播放| 欧美激情一区二区在线| 日韩精品久久久久久久| 欧美在线你懂的| 亚洲欧美日韩动漫| 欧美夫妻性视频| 懂色aⅴ精品一区二区三区| 精品一区二区三区日本| 欧美国产另类| 在线免费观看av的网站| 91社区在线播放| 香蕉视频一区二区| 日韩午夜激情视频| 日韩精品视频在线观看一区二区三区| 亚洲欧美在线免费| 韩国日本一区| 亚洲自拍偷拍视频| 日韩av三区| 精品无码国模私拍视频| 国产精品一区二区久激情瑜伽 | 久久久久免费看| 欧美精品 日韩| av中文天堂在线| 国产成人亚洲综合91精品| 精品久久对白| 中文字幕精品在线播放| 日本午夜一区二区| 波多野结衣一本| 欧美视频裸体精品| 黄色的视频在线免费观看| 国产精品九九久久久久久久| 久久香蕉国产| 四虎国产精品永久免费观看视频| 久久―日本道色综合久久| 狠狠人妻久久久久久| 一本色道久久88精品综合| 日本欧美在线| 亚洲区成人777777精品| 盗摄精品av一区二区三区| 国产一级免费观看| 亚洲美女性视频| 成人福利一区二区| 最新av在线免费观看| 国产成人av电影在线播放| 国产欧美日韩另类| 国产亚洲视频在线观看| 国产电影一区| 无码人妻丰满熟妇区96| 久久久久久久久一| 国产免费的av| 91av网站在线播放| blacked蜜桃精品一区| 亚洲一区二区三区四区精品| 亚洲第一精品在线| 国产三级在线观看| 亚洲japanese制服美女| 夜久久久久久| 182在线观看视频| 亚洲精品国产福利| 日本午夜精品久久久久| 丝袜人妻一区二区三区| 中文字幕av一区二区三区高| 亚洲xxxx天美| 国产精品高清在线观看| 午夜久久美女| 国产亚洲精品熟女国产成人| 日韩欧美亚洲国产精品字幕久久久| 成年人黄视频在线观看| 国产亚洲欧美另类一区二区三区| 欧美特黄一区| 精品人体无码一区二区三区| 精品国产伦一区二区三区观看体验| 超碰caoporn久久| 欧美日韩高清免费| 福利视频网站一区二区三区| 中国女人一级一次看片| 午夜精品视频在线|