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

解鎖Agentic RAG,使用LangChain和OpenAI進(jìn)行實(shí)踐

發(fā)布于 2024-12-13 13:25
瀏覽
0收藏

Agentic RAG技術(shù)是一種新興的智能體驅(qū)動(dòng)解決方案,能夠應(yīng)對(duì)復(fù)雜的多文檔問答挑戰(zhàn)。這項(xiàng)技術(shù)通過智能化手段,不僅提升了我們處理文本數(shù)據(jù)的效率,還極大地增強(qiáng)了問答系統(tǒng)的準(zhǔn)確性和深度。本文帶大家來了解這項(xiàng)技術(shù),闡述其如何提升信息檢索和分析的效率與準(zhǔn)確性。

1 Agentic RAG簡介

Agentic RAG是由智能體驅(qū)動(dòng)的技術(shù),能夠靈活處理多文檔問答任務(wù)。這項(xiàng)技術(shù)不僅能比較文檔、總結(jié)內(nèi)容,還能對(duì)多個(gè)摘要進(jìn)行對(duì)比分析。

正因如此,我們不完全依賴于大型語言模型,而是通過智能體來承擔(dān)那些需要深思熟慮、邏輯推理、工具運(yùn)用以及持續(xù)學(xué)習(xí)的任務(wù)。Agentic RAG通過智能化手段,提高了解決復(fù)雜問題的能力,讓問答更加高效和精確。

解鎖Agentic RAG,使用LangChain和OpenAI進(jìn)行實(shí)踐-AI.x社區(qū)

2 基本架構(gòu)

基本架構(gòu)是為每個(gè)文檔設(shè)置一個(gè)文檔智能體,每個(gè)文檔智能體都能在其自己的文檔內(nèi)執(zhí)行問答和摘要。

然后,設(shè)置一個(gè)頂級(jí)智能體(元智能體)來管理所有這些較低級(jí)別的文檔智能體。

解鎖Agentic RAG,使用LangChain和OpenAI進(jìn)行實(shí)踐-AI.x社區(qū)

3 技術(shù)棧

技術(shù)棧包括以下幾個(gè)核心組件:

  • Langchain:特別是LCEL,這是用于構(gòu)建大型語言模型(LLM)應(yīng)用的編排框架。
  • OpenAI:提供我們需要的大型語言模型(LLM)。
  • FAISS-cpu:用作向量存儲(chǔ)解決方案。
  • 數(shù)據(jù)源:我們使用ArxivLoader來檢索arXiv上發(fā)表文章的元數(shù)據(jù)。

4 代碼實(shí)現(xiàn)

安裝所需的依賴項(xiàng):

!pip install -qU langchain langchain_openai langgraph arxiv duckduckgo-search
!pip install -qU faiss-cpu pymupdf

設(shè)置環(huán)境變量:

from google.colab import userdata
from uuid import uuid4
import os
#
os.environ['OPENAI_API_KEY'] = userdata.get('OPENAI_API_KEY')
os.environ["LANGCHAIN_TRACING_V2"] = "true"
os.environ["LANGCHAIN_PROJECT"] = f"AIE1 - LangGraph - {uuid4().hex[0:8]}"
os.environ["LANGCHAIN_API_KEY"] = userdata.get('LANGCHAIN_API_KEY')

使用LCEL實(shí)例化一個(gè)簡單的檢索鏈。

from langchain.text_splitter import RecursiveCharacterTextSplitter
from langchain_community.document_loaders import ArxivLoader
from langchain_community.vectorstores import FAISS
from langchain_openai import OpenAIEmbeddings

# 加載特定主題的文檔
docs = ArxivLoader(query="Retrieval Augmented Generation", load_max_docs=5).load()

# 將文檔分割成更小的塊
text_splitter = RecursiveCharacterTextSplitter.from_tiktoken_encoder(
    chunk_size=350, chunk_overlap=50
)

chunked_documents = text_splitter.split_documents(docs)
#
# 實(shí)例化嵌入模型
embeddings = OpenAIEmbeddings(model="text-embedding-3-small",openai_api_key=os.environ['OPENAI_API_KEY'])
# 創(chuàng)建索引-將文檔塊加載到向量存儲(chǔ)中
faiss_vectorstore = FAISS.from_documents(
    documents=chunked_documents,
    embedding=embeddings,
)
# 創(chuàng)建檢索器
retriever = faiss_vectorstore.as_retriever()

生成RAG提示:

from langchain_core.prompts import ChatPromptTemplate

RAG_PROMPT = """\
使用以下上下文回答用戶的查詢。如果你不能回答問題,請(qǐng)回答“我不知道”。

問題:
{question}

上下文:
{context}
"""

rag_prompt = ChatPromptTemplate.from_template(RAG_PROMPT)

實(shí)例化LLM:

from langchain_openai import ChatOpenAI

openai_chat_model = ChatOpenAI(model="gpt-3.5-turbo")

構(gòu)建LCEL RAG鏈:

from operator import itemgetter
from langchain.schema.output_parser import StrOutputParser
from langchain.schema.runnable import RunnablePassthrough

retrieval_augmented_generation_chain = (
       {"context": itemgetter("question") 
    | retriever, "question": itemgetter("question")}
    | RunnablePassthrough.assign(cnotallow=itemgetter("context"))
    | {"response": rag_prompt | openai_chat_model, "context": itemgetter("context")}
)
#
retrieval_augmented_generation_chain

響應(yīng):

{
  "response": "AIMessage(cnotallow='Retrieval Augmented Generation 是一種結(jié)合了深度學(xué)習(xí)技術(shù)和傳統(tǒng)檢索技術(shù)的文本生成范式。它通過顯式獲取知識(shí)以插件方式,引領(lǐng)了許多NLP任務(wù)的可擴(kuò)展性和可能緩解文本生成的難度。它涉及從檢索到的人類編寫的參考資料中生成文本,而不是從頭開始生成。', response_metadata={'token_usage': {'completion_tokens': 73, 'prompt_tokens': 2186, 'total_tokens': 2259}, 'model_name': 'gpt-3.5-turbo', 'system_fingerprint': 'fp_b28b39ffa8', 'finish_reason': 'stop', 'logprobs': None})",
  "context": "[Document(page_cnotallow='...'), Document(page_cnotallow='...'), Document(page_cnotallow='...')]"
}

構(gòu)建工具箱:

為了使智能體能夠回答各種問題并引入外部知識(shí),通常會(huì)給其配備一個(gè)工具箱。

LangChain社區(qū)的存儲(chǔ)庫(https://github.com/langchain-ai/langchain/tree/master/libs/community/langchain_community/tools)中提供了眾多工具,這里選擇了幾種來使用,這樣可以更直觀地展示LangGraph的循環(huán)特性。

具體來說,將整合以下工具:

  • Duck Duck Go網(wǎng)絡(luò)搜索(https://github.com/langchain-ai/langchain/tree/master/libs/community/langchain_community/tools/ddg_search)
  • Arxiv學(xué)術(shù)文獻(xiàn)檢索(https://github.com/langchain-ai/langchain/tree/master/libs/community/langchain_community/tools/arxiv))

from langchain_community.tools.ddg_search import DuckDuckGoSearchRun
from langchain_community.tools.arxiv.tool import ArxivQueryRun
from langgraph.prebuilt import ToolExecutor
tool_belt = [
    DuckDuckGoSearchRun(),
    ArxivQueryRun()
]

tool_executor = ToolExecutor(tool_belt)

實(shí)例化OpenAI函數(shù)調(diào)用:

from langchain_core.utils.function_calling import convert_to_openai_function
#
model = ChatOpenAI(temperature=0)
#
functions = [convert_to_openai_function(t) for t in tool_belt]
model = model.bind_functions(functions)

使用LangGraph:

LangGraph通過StatefulGraph來實(shí)現(xiàn),這個(gè)結(jié)構(gòu)使用AgentState對(duì)象在圖的不同節(jié)點(diǎn)間傳遞信息。

雖然有很多配置選項(xiàng),但核心是AgentState對(duì)象,它被存儲(chǔ)在一個(gè)TypedDict中。這個(gè)對(duì)象的鍵是“messages”,對(duì)應(yīng)的值是一個(gè)BaseMessages的序列,每當(dāng)狀態(tài)發(fā)生變化時(shí),新的消息就會(huì)被添加到這個(gè)序列中。

from typing import TypedDict, Annotated, Sequence
import operator
from langchain_core.messages import BaseMessage

class AgentState(TypedDict):
  messages: Annotated[Sequence[BaseMessage], operator.add]

構(gòu)建節(jié)點(diǎn)

call_model是一個(gè)節(jié)點(diǎn),將...嗯...調(diào)用模型

call_tool是一個(gè)節(jié)點(diǎn),將調(diào)用工具

```python
from langgraph.prebuilt import ToolInvocation
import json
from langchain_core.messages import FunctionMessage

def call_model(state):
  messages = state["messages"]
  response = model.invoke(messages)
return {"messages" : [response]}

def call_tool(state):
  last_message = state["messages"][-1]

  action = ToolInvocation(
      tool=last_message.additional_kwargs["function_call"]["name"],
      tool_input=json.loads(
          last_message.additional_kwargs["function_call"]["arguments"]
      )
  )

  response = tool_executor.invoke(action)

  function_message = FunctionMessage(cnotallow=str(response), name=action.tool)

return {"messages" : [function_message]}

構(gòu)建工作流:

from langgraph.graph import StateGraph, END

workflow = StateGraph(AgentState)

workflow.add_node("agent", call_model)
workflow.add_node("action", call_tool)
workflow.nodes

設(shè)置入口點(diǎn):

workflow.set_entry_point("agent")

構(gòu)建條件邊進(jìn)行路由:

def should_continue(state):
  last_message = state["messages"][-1]

if"function_call"notin last_message.additional_kwargs:
    return"end"

return"continue"

workflow.add_conditional_edges(
    "agent",
    should_continue,
    {
        "continue" : "action",
        "end" : END
    }
)

最后將條件邊連接到智能體節(jié)點(diǎn)和動(dòng)作節(jié)點(diǎn):

workflow.add_edge("action", "agent")

編譯工作流:

app = workflow.compile()
#
app

調(diào)用LangGraph - 提問:

from langchain_core.messages import HumanMessage

inputs = {"messages" : [HumanMessage(cnotallow="在大型語言模型的背景下,RAG是什么?它是什么時(shí)候出現(xiàn)的?")]}
response = app.invoke(inputs)
print(response)

響應(yīng):

{
  "messages": [
    HumanMessage(cnotallow="在大型語言模型的背景下,RAG是什么?它是什么時(shí)候出現(xiàn)的?"),
    AIMessage(cnotallow='', additional_kwargs={'function_call': {'arguments': '{"query":"RAG in the context of Large Language Models"}', 'name': 'duckduckgo_search'}}, response_metadata={'token_usage': {'completion_tokens': 25, 'prompt_tokens': 171, 'total_tokens': 196}, 'model_name': 'gpt-3.5-turbo', 'system_fingerprint': 'fp_b28b39ffa8', 'finish_reason': 'function_call', 'logprobs': None}),
    
FunctionMessage(cnotallow="大型語言模型(LLMs)是處理和生成文本的非常強(qiáng)大的工具。然而,它們天生難以理解更廣泛的信息背景,特別是在處理長篇對(duì)話或復(fù)雜任務(wù)時(shí)。這就是大型上下文窗口和檢索增強(qiáng)生成(RAG)發(fā)揮作用的地方。這些先進(jìn)的、泛化的語言模型是在龐大的數(shù)據(jù)集上訓(xùn)練的,使它們能夠理解和生成類似人類的文本。在RAG的背景下,LLMs被用來基于用戶查詢和從向量數(shù)據(jù)庫檢索的上下文信息生成完整的響應(yīng)。在語言模型快速發(fā)展的背景下,檢索增強(qiáng)生成(RAG)和長上下文大型語言模型(LLMs)之間的辯論引起了廣泛關(guān)注。檢索增強(qiáng)生成(RAG)是一個(gè)AI框架,通過將模型基于外部知識(shí)源來補(bǔ)充LLM的內(nèi)部信息表示,從而提高LLM生成響應(yīng)的質(zhì)量。在基于LLM的問答系統(tǒng)中實(shí)施RAG有兩個(gè)主要好處:它確保模型有... RAG代表檢索增強(qiáng)生成。RAG使大型語言模型(LLM)能夠訪問和利用最新的信息。因此,它提高了LLM的響應(yīng)質(zhì)量和相關(guān)性。下面是一個(gè)簡單的RAG實(shí)現(xiàn)圖。", name='duckduckgo_search'),
    AIMessage(cnotallow="在大型語言模型(LLMs)的背景下,RAG代表檢索增強(qiáng)生成。它是一個(gè)AI框架,通過將模型基于外部知識(shí)源來補(bǔ)充LLM的內(nèi)部信息表示,從而提高LLM生成響應(yīng)的質(zhì)量。RAG使LLM能夠訪問和利用最新的信息,從而提高模型生成的響應(yīng)的相關(guān)性和質(zhì)量。RAG作為增強(qiáng)LLM在理解和生成類似人類文本的能力的方式,在語言模型快速發(fā)展的領(lǐng)域中出現(xiàn)。", response_metadata={'token_usage': {'completion_tokens': 117, 'prompt_tokens': 491, 'total_tokens': 608}, 'model_name': 'gpt-3.5-turbo', 'system_fingerprint': 'fp_3bc1b5746c', 'finish_reason': 'stop', 'logprobs': None})
  ]
}

響應(yīng)內(nèi)容:

RAG代表檢索增強(qiáng)生成,在大型語言模型(LLMs)的背景下。它是一個(gè)AI框架,通過將模型基于外部知識(shí)源來補(bǔ)充LLM的內(nèi)部信息表示,從而提高LLM生成響應(yīng)的質(zhì)量。RAG使LLM能夠訪問和利用最新的信息,從而提高模型生成的響應(yīng)的相關(guān)性和質(zhì)量。RAG作為增強(qiáng)LLM在理解和生成類似人類文本的能力的方式,在語言模型快速發(fā)展的領(lǐng)域中出現(xiàn)。

提問:

問題 = "檢索增強(qiáng)生成論文的主要作者是誰 - 他們參加了哪所大學(xué)?"

inputs = {"messages" : [HumanMessage(cnotallow=問題)]}

response = app.invoke(inputs) print(response['messages'][-1].content)

**響應(yīng):**

關(guān)于“檢索增強(qiáng)生成”論文的主要作者是Huayang Li。不幸的是,提供的摘要中沒有提到他們參加的大學(xué)。

**提問:**

問題 = "檢索增強(qiáng)生成論文的主要作者是誰?"

inputs = {"messages" : [HumanMessage(cnotallow=問題)]}

response = app.invoke(inputs)
print(response['messages'][-1].content)

響應(yīng):論文“檢索增強(qiáng)文本生成”的主要作者是Huayang Li、Yixuan Su、Deng Cai、Yan Wang和Lemao Liu。

本文轉(zhuǎn)載自 ??AI科技論談??,作者: AI科技論談

標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
中文字幕有码视频| 人妖粗暴刺激videos呻吟| 午夜视频在线观看网站| 7799精品视频天天看| 国产精品久久国产精品99gif| 夜夜爽av福利精品导航| aaa一区二区三区| 国产欧美韩日| 亚洲精品乱码久久久久久黑人| 91成人在线| japanese色国产在线看视频| 亚洲综合国产激情另类一区| 色噜噜狠狠狠综合曰曰曰88av| 香蕉视频色在线观看| 98色花堂精品视频在线观看| 久久精品亚洲国产奇米99| 成人有码在线视频| 中文字幕精品三级久久久 | 2022国产精品| 青青青国产在线| 先锋资源久久| 精品小视频在线| 色天使在线观看| 极品av在线| 亚洲美女少妇撒尿| 日本免费高清一区| 秋霞网一区二区| 久久er99精品| 日本久久久久久| 久热精品在线观看| 亚洲成人精选| 在线看欧美日韩| 黄色工厂在线观看| 综合激情网...| 久久久久久一区二区三区| 成人免费高清视频在线观看| 日本高清视频精品| 免费在线视频观看| 第一会所亚洲原创| 精品亚洲一区二区| 91超薄肉色丝袜交足高跟凉鞋| 成人一区视频| 色综合久久九月婷婷色综合| 精品无码国产一区二区三区av| 国产区在线观看| 国产精品人妖ts系列视频| 蜜桃成人在线| 图片区 小说区 区 亚洲五月| 国产老肥熟一区二区三区| 国产精品免费一区二区三区都可以 | 免费无遮挡无码永久在线观看视频| 欧美一级本道电影免费专区| 亚洲精品综合精品自拍| 亚洲一区二区在线免费| 国产精品白浆| 亚洲国产精品va在看黑人| 色欲欲www成人网站| 麻豆精品国产| 日韩视频中午一区| 午夜诱惑痒痒网| 亚洲精品成a人ⅴ香蕉片| 欧美午夜理伦三级在线观看| 91色国产在线| 久久精品嫩草影院| 欧美日韩一级片网站| 亚洲久久中文字幕| 成人国产精品一区二区网站| 欧美夫妻性生活| 182午夜视频| 国产视频网站一区二区三区| 日韩欧美在线影院| 在线xxxxx| 全球av集中精品导航福利| 日韩极品精品视频免费观看| 国产精品亚洲无码| 欧美亚洲国产精品久久| 日韩一区二区福利| 印度午夜性春猛xxx交| 欧美网站在线| 欧美一区二区三区……| 波多野结衣在线电影| 久久国产精品72免费观看| 成人亲热视频网站| 国产 日韩 欧美 精品| 成人avav影音| 香蕉久久免费影视| av在线免费网站| 精品女厕一区二区三区| 日本熟妇人妻xxxxx| 激情久久一区二区| 日韩久久久精品| 国产精品无码一区二区三区免费 | 精品一区二区三区不卡 | 2021久久国产精品不只是精品| 日韩国产精品一区二区| 黄视频网站在线看| 午夜成人免费电影| 亚洲精品午夜在线观看| 日韩视频一二区| 亚洲欧美日韩中文视频| 精品国产视频在线观看| 国产欧美一级| 91在线观看免费| 男人久久精品| 一卡二卡三卡日韩欧美| 黄色av免费在线播放| 精品视频一二| 一本色道久久88综合亚洲精品ⅰ| 成年人二级毛片| 99伊人成综合| 91香蕉电影院| 毛片网站在线| 亚洲二区视频在线| 天堂av8在线| 台湾色综合娱乐中文网| 久久成人精品电影| 久久久久精彩视频| 99久久精品国产导航| 日本美女爱爱视频| 欧美与亚洲与日本直播| 亚洲国产第一页| 久久精品一区二区三区四区五区| 一本久道综合久久精品| 91香蕉亚洲精品| 福利在线观看| 狠狠做深爱婷婷久久综合一区| 91欧美一区二区三区| 精品久久视频| 97成人精品区在线播放| 午夜久久久久久久久久| 国产精品国产a| 国产激情在线观看视频| 日韩美脚连裤袜丝袜在线| 色综合久久悠悠| 国产又黄又粗又长| 国产精品视频看| 人妻无码视频一区二区三区| 任我爽精品视频在线播放| 欧美精品激情在线| www.国产.com| 一区二区三区在线高清| 午夜大片在线观看| 日韩国产一区二区| 国产成人中文字幕| 黄色av免费在线看| 色综合一个色综合| 日韩精品卡通动漫网站| 亚洲一区欧美二区| 久久久久久欧美精品色一二三四| 国产拍在线视频| 亚洲福利视频网| 日韩av电影网| 波多野结衣91| 欧美丰满熟妇bbbbbb百度| 久久超级碰碰| 欧美一区二区三区……| 青草久久伊人| 色天使色偷偷av一区二区| 天天躁日日躁aaaxxⅹ | 91国内在线播放| 色综合咪咪久久网| 成人福利网站在线观看11| 巨大荫蒂视频欧美大片| 欧美一级黄色大片| 久久久精品99| 99久久综合狠狠综合久久| 18禁免费无码无遮挡不卡网站| 九九热hot精品视频在线播放| 韩国三级电影久久久久久| 天堂国产一区二区三区| 欧美性猛交xxxx乱大交蜜桃 | 中文字幕亚洲成人| 日本精品一区在线| 中文无码久久精品| 国产一区喷水| 欧美大胆成人| 久久九九亚洲综合| 免费的黄色av| 91传媒视频在线播放| 午夜国产福利视频| 国产电影一区二区三区| 久色视频在线播放| 欧洲乱码伦视频免费| 亚洲一区二区三区777| 波多野结衣在线高清| 亚洲性线免费观看视频成熟| 国产又大又黑又粗| 精品久久久国产| 蜜桃av免费在线观看| 国产福利91精品一区| 国产又大又硬又粗| 天天做天天爱综合| 国产呦系列欧美呦日韩呦| 成人免费网站www网站高清| 久久精品精品电影网| 人妻少妇精品无码专区久久| 在线观看亚洲精品视频| 亚洲国产精品久| 2021久久国产精品不只是精品| 爽爽爽在线观看| 亚洲每日在线| 先锋影音男人资源| 91麻豆成人精品国产免费网站| 午夜影视一区二区三区| 日韩综合在线视频| 欧美一级黄色录像| 好吊色欧美一区二区三区| 美女久久久久久久久久| 免费大片黄在线| 国产视频一区三区| 欧美日韩国产精品自在自线| 亚洲www在线| 美女扒开腿免费视频| 黄色片在线免费看| 激情六月综合| 欧美性感一类影片在线播放| 91精品国产综合久久香蕉922| 亚洲麻豆一区二区三区| 视频一区二区三区不卡 | 日韩电影在线观看永久视频免费网站| 日韩成人在线资源| 国产第一页在线播放| 牛牛精品一区二区| 国产自产视频一区二区三区| 精品少妇一区二区三区日产乱码| 久久96国产精品久久99软件| 天天操天天干天天操天天干| 999福利在线视频| 日韩成人一级大片| 亚洲免费av电影| 欧美视频在线第一页| 国产男人搡女人免费视频| 任你躁在线精品免费| 亚洲三级在线观看| 国产精品久久久久久久久久久久久久 | 亚洲国产美女精品久久久久∴| 免费在线一区二区| 国产污视频在线看| 亚州综合一区| 欧美香蕉大胸在线视频观看| 不卡视频一区二区三区| 久草视频免费播放| 久久99精品久久久野外观看| 国产精品久久久久四虎| 国产精品99久久久久久www| 成人精品在线观看视频| av网站在线看| 成人18精品视频| 久久久视频免费观看| 性高潮免费视频| 桃色av一区二区| 国产精品丝袜黑色高跟| 国产乱人伦真实精品视频| 三叶草欧洲码在线| 免费h视频在线观看| 久久久精品天堂| 成人在线激情视频| 日韩成人高清视频| 日韩激情一区| 555www色欧美视频| 亚洲精品二区| 国产精品久久久久久69| 国产精品久久| 日韩久久免费视频| 日本999视频| 亚洲成人生活片| 91欧美极品| 亚洲另类春色国产| 国产一区玩具在线观看| 最近中文字幕免费视频| 粉嫩一区二区| 亚洲天堂网中文字| 久久精品日产第一区二区三区乱码 | 7777精品| 国产精品久久看| 国产欧美一区二区| 成人在线一级片| 成人免费网站视频| 国产99久久精品| 大胆欧美人体视频| 五月天国产视频| 免费观看成人高潮| 国产在线不卡一区| 精品国偷自产在线视频99| 久久网站免费视频| 日本一区高清| 在线亚洲观看| 国产视频精品va久久久久久| av一区二区三区免费观看| 91中文字幕在线播放| 国产一区不卡| 欧美在线观看一区| 亚洲国产婷婷香蕉久久久久久99| 探花视频在线观看| 欧州一区二区| 91.成人天堂一区| www.av91| 国产三级视频在线看| 久久99久久99精品免视看婷婷| 在线看片第一页欧美| 尤物网站在线看| 黄色在线观看视频网站| 成人黄色av电影| 国产91精品在线播放| 一级在线观看视频| 6080亚洲理论片在线观看| 福利一区福利二区微拍刺激| 亚洲国产欧美一区二区三区不卡| 午夜精品久久久久久久第一页按摩 | 日韩电影不卡一区| 欧美精品乱人伦久久久久久| 国风产精品一区二区| 视频在线不卡| 国产精品一区二区三区99| 日本a级片电影一区二区| 丁香花五月激情| 免费欧美视频| 亚洲激情成人网| www.色欧美| 一根才成人网| 舔着乳尖日韩一区| 欧美爱爱视频网站| www.亚洲.com| 成人av资源在线| 懂色一区二区三区av片| 亚洲av无码乱码国产精品fc2| 国产精品日韩久久久| 久热爱精品视频线路一| 婷婷国产成人精品视频| 免费看成人哺乳视频网站| 亚洲精品videossex少妇| 亚洲第一天堂久久| 国产在线一在线二| 91久色porny| 欧美12av| 天堂а在线中文在线无限看推荐| 成人av高清在线| 国产精品国产三级国产专区53 | 久久亚洲国产成人精品性色| 在线看片不卡| 欧美成人三级视频网站| 久久精品国产亚洲AV无码麻豆| 亚洲综合色站| 久久精品色欧美aⅴ一区二区| 国产老头老太做爰视频| 亚洲国产精品久久久久蝴蝶传媒| 裸体女人亚洲精品一区| 青青草原国产视频| 国内成人在线| 97av在线播放| 中文字幕高清在线免费播放| 日本欧美一区二区| 91美女片黄在线观| 日韩一区二区三区不卡| 26uuu欧美| 日日噜噜噜夜夜爽爽| 四虎影院观看视频在线观看| 亚洲成人精品影院| 日韩大片一区二区| 91免费精品国偷自产在线在线| 亚洲国产欧美久久| 18啪啪污污免费网站| 午夜精品久久| 国产精品成人免费视频| 99免费在线视频| 99国产精品久久| 亚洲国产精品女人| 竹内纱里奈兽皇系列在线观看| 欧美日韩精品综合在线| 美女黄色一级视频| 999成人网| 欧美一级在线亚洲天堂| 亚洲毛片欧洲毛片国产一品色| 国产视频一区二区在线观看| 8x8ⅹ国产精品一区二区二区| 99精品国自产在线| 日韩精品中文字幕在线观看| 国产在线免费视频| 激情成人综合网| 神马影院午夜我不卡| 亚洲一级少妇| 亚洲精品电影在线观看| 精品少妇theporn| 国产精品亚洲专一区二区三区| 亚洲一区3d动漫同人无遮挡| av在线不卡精品| 亚洲人成伊人成综合网久久久| 久久精品亚洲无码| 成人网在线播放| 男人日女人的bb| 涩涩屋成人免费视频软件| 另类美女黄大片| 亚洲av激情无码专区在线播放| 欧美日韩一区免费| 91成人破解版| 男人的天堂久久精品| 日韩亚洲一区在线播放| 成人免费在线电影网| 青青久久av北条麻妃海外网| 飘雪影视在线观看免费观看|