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

基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之上下文重排和壓縮 原創(chuàng)

發(fā)布于 2024-11-26 08:58
瀏覽
0收藏

前言

在上一章??【項(xiàng)目實(shí)戰(zhàn)】基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之ElasticSearch??中,我們?cè)谝呀?jīng)構(gòu)建的Agent框架上,通過集成檢索器將ES檢索器和多路召回檢索器集成進(jìn)來,提升了檢索的召回率。本章,我們將基于項(xiàng)目問題,進(jìn)一步優(yōu)化Agent的檢索能力。

問題

隨著該項(xiàng)目檢索能力的增強(qiáng),我們計(jì)劃對(duì)天池大賽提供的1000個(gè)問題進(jìn)行執(zhí)行,依次評(píng)估我們的系統(tǒng)能力如何。 在這個(gè)測(cè)試過程中,我們發(fā)現(xiàn)了多個(gè)待優(yōu)化的問題,其中有2個(gè)問題的解決值得分享,在此作為記錄以供讀者參考。

問題1:執(zhí)行過程中,偶爾會(huì)出現(xiàn)RAG檢索結(jié)果內(nèi)容過長,超出大模型能夠接收的范圍(如下圖中顯示的status_code=400),導(dǎo)致執(zhí)行中斷

基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之上下文重排和壓縮-AI.x社區(qū)

基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之上下文重排和壓縮-AI.x社區(qū)

問題2:Agent遇到計(jì)算漲幅、收益率等問題時(shí),會(huì)反復(fù)構(gòu)造SQL語句,試圖從數(shù)據(jù)庫中直接查詢出對(duì)應(yīng)的數(shù)據(jù),從而導(dǎo)致思考迭代此處超過限制,程序異常

基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之上下文重排和壓縮-AI.x社區(qū)

優(yōu)化方案

分析上述問題后,我們計(jì)劃對(duì)整體程序進(jìn)行優(yōu)化,優(yōu)化方案如下:

基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之上下文重排和壓縮-AI.x社區(qū)

說明:

  • 針對(duì)問題1,我們計(jì)劃給集成檢索器增加上下文重排和壓縮,以解決長文本問題。
  • 針對(duì)問題2,我們計(jì)劃為Agent掛載更多的工具,進(jìn)而讓Agent使用工具計(jì)算漲幅、收益率等。

優(yōu)化步驟

1、檢索器增加上下文壓縮

優(yōu)化代碼文件:??app/rag/retrievers.py??

from langchain_core.callbacks importCallbackManagerForRetrieverRun
from utils.logger_config importLoggerManager
from langchain_core.retrievers importBaseRetriever
from langchain_core.documents importDocument
from langchain.retrievers importEnsembleRetriever
from langchain.retrievers.multi_query importMultiQueryRetriever
from langchain.retrievers.contextual_compression importContextualCompressionRetriever
from langchain.retrievers.document_compressors importLLMChainExtractor
from rag.elasticsearch_db importElasticsearchDB
# ES需要導(dǎo)入的庫
from typing importList
import logging
import settings
from langchain_community.document_transformers import(
LongContextReorder,
)
from utils.util import get_rerank_model

logger =LoggerManager().logger


classSimpleRetrieverWrapper():
"""自定義檢索器實(shí)現(xiàn)"""

def__init__(self, store, llm, **kwargs):
        self.store = store
        self.llm = llm
        logger.info(f'檢索器所使用的Chat模型:{self.llm}')

defcreate_retriever(self):
        logger.info(f'初始化自定義的Retriever')

# 初始化一個(gè)空的檢索器列表
        retrievers =[]
        weights =[]

# Step1:創(chuàng)建一個(gè) 多路召回檢索器 MultiQueryRetriever
        chromadb_retriever = self.store.as_retriever()
        mq_retriever =MultiQueryRetrieverWrapper.from_llm(retriever=chromadb_retriever, llm=self.llm)

# Step2:創(chuàng)建一個(gè) 上下文壓縮檢索器ContextualCompressionRetriever
if settings.COMPRESSOR_ENABLE isTrue:
            compressor =LLMChainExtractor.from_llm(llm=self.llm)
            compression_retriever =ContextualCompressionRetrieverWrapper(
                base_compressor=compressor, base_retriever=mq_retriever
)
# 開啟開關(guān)就使用壓縮檢索器
            retrievers.append(compression_retriever)
            weights.append(0.5)
            logger.info(f'已啟用 ContextualCompressionRetriever')
else:
# 關(guān)閉開關(guān)就使用多路召回檢索器
            retrievers.append(mq_retriever)
            weights.append(0.5)
            logger.info(f'已啟用 MultiQueryRetriever')

# Step3:創(chuàng)建一個(gè) ES 檢索器
if settings.ELASTIC_ENABLE_ES isTrue:
            es_retriever =ElasticsearchRetriever()
            retrievers.append(es_retriever)
            weights.append(0.5)
            logger.info(f'已啟用 ElasticsearchRetriever')

# 使用集成檢索器,將所有啟用的檢索器集合在一起
        ensemble_retriever =EnsembleRetriever(retrievers=retrievers, weights=weights)
return ensemble_retriever

說明:

  • 首先,我們創(chuàng)建一個(gè)空的檢索器列表,用于存儲(chǔ)啟用的檢索器。
  • 其次,創(chuàng)建一個(gè) ??MultiQueryRetrieverWrapper?? ,用于將ES檢索器與多路召回檢索器集成。
  • 然后,通過 ??ContextualCompressionRetrieverWrapper?? ,為多路檢索器添加上下文壓縮功能。
  • 最后,將檢索器列表與權(quán)重列表傳入集成檢索器,完成集成。

此處,MultiQueryRetrieverWrapper 和 ContextualCompressionRetrieverWrapper 分別是基于 ??MultiQueryRetriever??? 和 ??ContextualCompressionRetriever?? 進(jìn)一步封裝實(shí)現(xiàn)的,在3、中會(huì)詳細(xì)介紹。

2、檢索器增加上下文重排

對(duì)之前實(shí)現(xiàn)的ElasticsearchRetriever增加上下文重排功能,具體代碼如下:

優(yōu)化代碼文件:??app/rag/retrievers.py??

class ElasticsearchRetriever(BaseRetriever):
def_get_relevant_documents(self, query: str, )->List[Document]:
"""Return the first k documents from the list of documents"""
        es_connector =ElasticsearchDB()
        query_result = es_connector.search(query)

# 增加長上下文重排序
        reordering =LongContextReorder()
        reordered_docs = reordering.transform_documents(query_result)
# logger.info(f"ElasticSearch檢索到的原始文檔:")
# for poriginal in query_result:
#     logger.info(f"{poriginal}")

        logger.info(f"ElasticSearch檢索重排后的文檔:")
for preordered in reordered_docs:
            logger.info(f"{preordered}")

        logger.info(f"ElasticSearch檢索到資料文件個(gè)數(shù):{len(query_result)}")

if reordered_docs:
return[Document(page_cnotallow=doc)for doc in reordered_docs]
return []

3、優(yōu)化日志輸出

由于 ??MultiQueryRetriever?? 是langchain已經(jīng)封裝好的檢索器,如果我們需要在其基礎(chǔ)上增加一些功能,比如:增加日志,我們需要對(duì)其進(jìn)行重寫,具體方法:

重寫MultiQueryRetriever

創(chuàng)建一個(gè)新的Class ??MultiQueryRetrieverWrapper???,繼承 ??MultiQueryRetriever??? ,重寫 ??_get_relevant_documents?? 方法,具體代碼如下:

class MultiQueryRetrieverWrapper(MultiQueryRetriever):
def_get_relevant_documents(
        self,
        query: str,
        *,
        run_manager: CallbackManagerForRetrieverRun,
    )->List[Document]:
"""
        對(duì)MultiQueryRetriever進(jìn)行重寫,增加日志打印
        """
        queries = self.generate_queries(query, run_manager)
if self.include_original:
            queries.append(query)
        documents = self.retrieve_documents(queries, run_manager)

# 增加長上下文重排序
        reordering =LongContextReorder()
        reordered_docs = reordering.transform_documents(documents)

        logger.info(f'MultiQuery生成的檢索語句:')
for q in queries:
            logger.info(f"{q}")
        logger.info(f'MultiQuery檢索到的資料文件:')
for doc in documents:
            logger.info(f"{doc}")
        logger.info(f"MultiQuery檢索到資料文件個(gè)數(shù):{len(documents)}")

return self.unique_union(reordered_docs)

重寫ContextualCompressionRetriever

創(chuàng)建一個(gè)新的Class ??ContextualCompressionRetrieverWrapper???,繼承 ??ContextualCompressionRetriever??? ,重寫 ??_get_relevant_documents?? 方法,具體代碼如下:

class ContextualCompressionRetrieverWrapper(ContextualCompressionRetriever):
from typing importAny,List
def_get_relevant_documents(
        self,
        query: str,
        *,
        run_manager: CallbackManagerForRetrieverRun,
        **kwargs: Any,
    )->List[Document]:
"""
        對(duì)ContextualCompressionRetriever進(jìn)行重寫,增加日志打印
        """

        docs = self.base_retriever.invoke(
            query, cnotallow={"callbacks": run_manager.get_child()},**kwargs
)
if docs:
            compressed_docs = self.base_compressor.compress_documents(
                docs, query, callbacks=run_manager.get_child()
)
            logger.info(f'壓縮后的文檔長度:{len(compressed_docs)}')
            logger.info(f'壓縮后的文檔:{compressed_docs}')
returnlist(compressed_docs)
else:
return []

4、給Agent增加更多工具

實(shí)現(xiàn)工具函數(shù):計(jì)算股票年化收益率

代碼文件:??app/finance_bot_ex.py??

# 定義股票年化收益率計(jì)算函數(shù)
# 年化收益率定義為:((有記錄的一年的最終收盤價(jià)-有記錄的一年的年初當(dāng)天開盤價(jià))/有記錄的一年的當(dāng)天開盤價(jià))* 100%。
def calculate_stock_annualized_return(final_closing_price: float, initial_opening_price: float) -> float:
    """
    計(jì)算股票年化收益率
    """
    annualized_return = ((final_closing_price - initial_opening_price) / initial_opening_price) * 100
    return annualized_return

Agent增加工具

在??init_agent??函數(shù)中,增加工具函數(shù),具體代碼如下:

代碼優(yōu)化文件:??app/finance_bot_ex.py??

definit_agent(self):
# 初始化 RAG 工具
        retriever_tool = self.init_rag_tools()

# 初始化 SQL 工具
        sql_tools = self.init_sql_tool(settings.SQLDATABASE_URI)

# 創(chuàng)建系統(tǒng)Prompt提示語
        system_prompt = self.create_sys_prompt()

# 創(chuàng)建Agent
        agent_executor = create_react_agent(
            self.chat,
            tools=[
                get_datetime,
                calculate_stock_annualized_return,# 增加自定義的計(jì)算年化收益率工具
                retriever_tool]+ sql_tools,
            state_modifier=system_prompt,
            checkpointer=MemorySaver()
# state_modifier=modify_state_messages,
)
return agent_executor

4、驗(yàn)證測(cè)試

完成上述檢索器的優(yōu)化之后,我們使用test_framework.py進(jìn)行驗(yàn)證,驗(yàn)證結(jié)果如下:

問題1解決效果

1. 用戶輸入問題,觸發(fā)RAG檢索的 MultiQueryRetriever 檢索器

基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之上下文重排和壓縮-AI.x社區(qū)

2. 通過上下文壓縮之后,原本 MultiQueryRetriever 檢索到的資料文件數(shù)量由12個(gè)減少到1個(gè)。

基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之上下文重排和壓縮-AI.x社區(qū)

3. 通過上下文壓縮之后,原本 ElasticsearchRetriever 檢索到的資料文件數(shù)量由3個(gè)減少到2個(gè)。

基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之上下文重排和壓縮-AI.x社區(qū)

4. 最后,將兩個(gè)檢索器的結(jié)果進(jìn)行整合后,大模型給出最終答案。

基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之上下文重排和壓縮-AI.x社區(qū)

問題2解決效果

1. 我們輸入問題:計(jì)算代碼000798股票在2020年的年化收益率,保留兩位小數(shù)。

基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之上下文重排和壓縮-AI.x社區(qū)

2. Agent分析問題后,形成SQL查詢語句:獲取2020年第一天開盤價(jià)以及2020年最后一天的收盤價(jià)

基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之上下文重排和壓縮-AI.x社區(qū)

3. Agent獲得開盤價(jià)和收盤價(jià)之后,調(diào)用我們提供的 calculate_stock_annualized_return 函數(shù)計(jì)算年化收益率,并返回結(jié)果。

基于Agent的金融問答系統(tǒng):RAG的檢索增強(qiáng)之上下文重排和壓縮-AI.x社區(qū)

結(jié)束語

基于Agent的金融問答系統(tǒng)系列文章在此告一段落了。 在這個(gè)項(xiàng)目中,我們不只利用AI技術(shù)完成了項(xiàng)目課題,其中也不乏應(yīng)用了軟件工程的一些方法論,而最為重要的是:我們解決了一個(gè)又一個(gè)的問題。 最后,附帶一張黑神話悟空的圖片,希望看到此篇文章的你我一同共勉。

?

本文轉(zhuǎn)載自公眾號(hào)一起AI技術(shù) 作者:Dongming

原文鏈接:??https://mp.weixin.qq.com/s/M7kgzGc8sY4CxXOLcs8ZSQ??

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
標(biāo)簽
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
在线免费黄色网| 欧美日韩在线观看一区| 免费中文字幕在线| 无人区乱码一区二区三区| 亚洲三级久久久| 国产亚洲欧美一区二区三区| 四虎成人永久免费视频| 伊人久久大香线蕉| 91麻豆精品国产91久久久久久 | 在线观看欧美日韩国产| 国产精品自拍视频在线| free性欧美| 国产清纯美女被跳蛋高潮一区二区久久w | 中出视频在线观看| 日韩欧美一区二区三区免费观看| 亚洲色图.com| 久久超碰亚洲| 国产精品无码免费播放| 国产情侣一区| 日韩色av导航| 黄色在线观看av| 欧一区二区三区| 在线视频国内一区二区| 亚洲 欧美 综合 另类 中字| 韩国三级在线观看久| 麻豆专区一区二区三区四区五区| 久久久久久久久国产| 亚洲精品午夜视频| 国产精品任我爽爆在线播放| 欧美乱妇20p| 久久久免费视频网站| av免费在线网站| 国产日韩影视精品| 精品国产aⅴ麻豆| 国产xxxxxx| 美女国产一区二区三区| 啪一啪鲁一鲁2019在线视频| 国产性猛交普通话对白| 99久久精品国产亚洲精品| 亚洲欧美激情视频| 波多野结衣加勒比| 美女精品久久| 91精品在线一区二区| 能在线观看的av网站| 91桃色在线| 亚洲综合一区二区| 麻豆md0077饥渴少妇| 在线毛片网站| 亚洲国产精品传媒在线观看| 欧美日韩精品免费观看| 亚洲色图21p| 成人精品免费看| 97人人香蕉| 国产欧美一级片| 久久机这里只有精品| 国产精品国产自产拍高清av水多| 久久久免费高清视频| 99精品国产在热久久| 久久久久久久久久久成人| 欧美成人精品欧美一级私黄| 亚洲精品久久久| 久久五月情影视| 成年人午夜剧场| 在线成人超碰| 伊人伊成久久人综合网站| 西西444www无码大胆| 久久99国内| 在线日韩av观看| 九九热久久免费视频| 大色综合视频网站在线播放| 搡老女人一区二区三区视频tv| 国产又粗又长又黄的视频| 午夜激情久久| 欧美精品aaa| 日韩av大片在线观看| 免费看黄裸体一级大秀欧美| 国产精品7m视频| 在线观看国产精品入口男同| 国产一区二区0| 国产精品乱码一区二区三区| 深夜福利视频在线免费观看| 久久欧美中文字幕| 日本一区二区在线视频观看| 日韩成人影视| 一区二区三区在线观看网站| 国产不卡一区二区视频| 超碰一区二区| 欧美精品在线视频| 永久免费未满蜜桃| 国产精品探花在线观看| 久久国产一区二区三区| 九九热这里有精品视频| 亚洲一区欧美二区| 国产在线观看一区二区三区| 亚洲国产成人精品一区二区三区| 99久久综合精品| 日日噜噜噜噜夜夜爽亚洲精品| 免费高清完整在线观看| 婷婷六月综合亚洲| 日日躁夜夜躁aaaabbbb| 综合激情五月婷婷| 一色桃子一区二区| 久久久久97国产| 青青草原综合久久大伊人精品优势| 99re在线观看视频| 韩国中文免费在线视频| 亚洲综合激情网| www.中文字幕在线| 国产精品一区二区精品视频观看| 亚洲精品美女久久久久| 三级黄色录像视频| 99在线|亚洲一区二区| 成人国产精品一区二区| 婷婷国产在线| 一区二区高清免费观看影视大全| 男人透女人免费视频| 91精品国产自产精品男人的天堂| 国产亚洲一级高清| 日本五十路女优| 国产专区欧美精品| 日本成人黄色免费看| 欧美人与性动交α欧美精品济南到 | 日韩电影中文 亚洲精品乱码| 91香蕉视频污在线观看| 亚洲欧美久久| 国产伦精品一区二区三毛| 麻豆视频在线观看免费网站| 91久久精品网| www.88av| 亚洲高清资源| 亚洲jizzjizz日本少妇| 尤物网在线观看| 色视频成人在线观看免| 粉嫩av懂色av蜜臀av分享| 欧美精品九九| 亚洲精品免费av| 欧美激情午夜| 欧美色窝79yyyycom| 91视频免费观看网站| 99精品国产在热久久下载| 粉嫩av免费一区二区三区| 免费a级在线播放| 欧美日韩一区小说| 日本污视频网站| 三级亚洲高清视频| 日本高清不卡一区二区三| 亚洲天堂av在线| 日韩精品中文字幕视频在线| 韩国av免费观看| 99久久亚洲一区二区三区青草| 欧美狂野激情性xxxx在线观| 中文在线综合| 668精品在线视频| 性xxxx视频| 欧美色videos| 波多野吉衣中文字幕| 亚洲综合欧美| 欧美三日本三级少妇三99| 欧美一级大片| 伊人久久精品视频| 成人黄色片在线观看| 国产精品乱人伦中文| 亚洲美女性囗交| 久久精品免费一区二区三区| 亚洲专区国产精品| 丁香花在线高清完整版视频| 精品国产91九色蝌蚪| 久久精品久久国产| 91在线丨porny丨国产| 欧美成人一区二区在线观看| av在线不卡免费观看| 国产精品自产拍高潮在线观看| 日本黄色片在线观看| 欧美一级专区免费大片| 久久精品国产亚洲AV无码男同| aaa欧美日韩| 无码少妇一区二区三区芒果| 99久久.com| 岛国一区二区三区高清视频| 中文在线8资源库| 有码中文亚洲精品| www.色呦呦| 欧美视频在线视频| 日韩一卡二卡在线观看| 国产成人免费在线观看不卡| 男人日女人下面视频| 欧美亚洲国产一区| 999日本视频| 亚洲最大网站| 久久久成人的性感天堂| 天天操天天操天天干| 91成人在线精品| 亚洲欧美精品aaaaaa片| 不卡视频免费播放| 天天视频天天爽| 亚洲精品看片| 一本一本a久久| 久久精品国产亚洲blacked| 国产精品成人免费电影| 青草青在线视频| 在线一区二区日韩| 三级在线观看网站| 欧美精品日日鲁夜夜添| 日韩字幕在线观看| 中文字幕亚洲在| 亚洲乱码国产乱码精品精大量| 九九在线精品视频| 99re在线视频免费观看| 午夜精品久久| 亚洲精品在线视频观看| 欧美黄色录像| 亚洲自拍偷拍福利| 97成人超碰| 91成人在线播放| 3d玉蒲团在线观看| 丝袜一区二区三区| 三级av在线播放| 精品久久国产97色综合| 91精东传媒理伦片在线观看| 欧美午夜影院在线视频| 久草中文在线视频| 亚洲欧洲一区二区在线播放| 91视频在线网站| 99在线精品视频| 日本人dh亚洲人ⅹxx| 日韩福利电影在线| 久久久久久久久久久视频| 欧美精品国产| japanese在线视频| 第九色区aⅴ天堂久久香| 欧美人与性禽动交精品| japanese色系久久精品| 亚洲自拍偷拍第一页| 国产激情综合| 亚洲va久久久噜噜噜久久天堂| 51一区二区三区| 国产成人精品999| 偷拍视频一区二区三区| 欧美性视频网站| 欧美办公室脚交xxxx| 性欧美xxxx交| а√天堂资源官网在线资源| 高清一区二区三区日本久| 美女网站视频在线| 欧美黑人xxxⅹ高潮交| 影音先锋男人资源在线| 久久av红桃一区二区小说| 国产区在线观看| 久久香蕉频线观| 91小视频xxxx网站在线| 欧美日韩福利视频| 神马午夜伦理不卡| 欧美高清视频一区二区| 美女尤物在线视频| 97色在线视频观看| av综合电影网站| 国产精品成人一区| 伊人久久精品| 91传媒视频在线观看| 88久久精品| 久久久av水蜜桃| 精品国产乱码久久久| 亚洲人一区二区| 亚洲最新av| 欧美成人精品免费| 久久不射网站| 污污视频网站免费观看| 麻豆国产精品官网| 被黑人猛躁10次高潮视频| 国产91精品露脸国语对白| 97人妻精品一区二区三区免费| 91原创在线视频| 五月婷六月丁香| 亚洲欧美日韩国产综合| 国产亚洲色婷婷久久99精品| 精品成人国产在线观看男人呻吟| 久久人妻免费视频| 欧美日韩国产高清一区| 成人免费观看在线视频| 亚洲男人天堂网站| 欧美r级在线| 亚洲97在线观看| 电影亚洲一区| 国产精品一区二区三区不卡| 国产欧美高清视频在线| 视频一区二区视频| 国产精品试看| 欧洲美女亚洲激情| 91麻豆国产精品久久| 波多野结衣家庭教师在线观看| 亚洲精品午夜久久久| 亚洲黄色小说图片| 91.com视频| 青青久草在线| 免费成人高清视频| 性欧美1819sex性高清| 91在线中文字幕| 久久99精品久久久久久园产越南| 黄色一级片网址| 久久中文在线| 色哟哟视频在线| 国产精品进线69影院| 天天操天天射天天爽| 欧美日韩不卡视频| 少妇激情av一区二区| 萌白酱国产一区二区| 成人mm视频在线观看| 精品久久精品久久| 在线精品国产| 久久99999| 久久影院午夜片一区| 国产1区2区3区4区| 欧美日韩一区三区| 欧美91精品久久久久国产性生爱| 欧美成人在线免费| 黄色精品视频| 农村寡妇一区二区三区| 韩日视频一区| 在线观看日本www| 中文字幕av在线一区二区三区| 97超碰人人干| 精品久久一二三区| 成人看av片| 国产精品网站视频| 国产一区毛片| 黄在线观看网站| av电影天堂一区二区在线观看| 欧美日韩国产精品综合| 欧美精品xxxxbbbb| 在线免费黄色| 国产精品视频一区二区高潮| 免费久久久久久久久| 欧美成人三级在线视频| 成人午夜私人影院| 欧美成人手机视频| 欧美一级电影网站| 国产黄a三级三级三级av在线看| 国产日韩亚洲欧美| 欧洲杯足球赛直播| 日本久久精品一区二区| 久久久久亚洲蜜桃| 无码人妻一区二区三区免费| 亚洲男人天堂手机在线| 在线人成日本视频| 鲁丝一区二区三区免费| 国产精品久久久久久久免费软件| 亚洲精品国产成人av在线| 亚洲综合色成人| 手机看片福利在线| 欧美在线视频网| 久久91成人| 一区二区成人网| 国产精品久久久久久亚洲毛片| 中文字幕在线观看你懂的| 伊人亚洲福利一区二区三区| 欧美少妇激情| 亚洲国产精品影视| 国产精品白丝jk白祙喷水网站| 久草免费新视频| 亚洲黄页网在线观看| 周于希免费高清在线观看| 欧美一区激情视频在线观看| 日韩国产精品久久| 日本二区三区视频| 日韩欧美国产成人一区二区| 波多野结衣在线观看| 精品免费日产一区一区三区免费| 久久精品人人做人人爽电影蜜月| 精品国产成人亚洲午夜福利| 欧美日韩久久久| 91亚洲天堂| 欧美成人在线免费观看| 免费高清成人在线| 青青草免费av| 亚洲精品福利在线观看| 亚洲不卡系列| 潘金莲一级淫片aaaaaa播放1| 高清不卡一二三区| 免费观看日批视频| 美女扒开尿口让男人操亚洲视频网站| 99re热精品视频| 91最新在线观看| 亚洲精品美国一| 色吊丝在线永久观看最新版本| 国产精品无码专区在线观看| 狠狠入ady亚洲精品| 欧美 日韩 成人| 日韩三区在线观看| 欧美最新精品| 久久久久久久久久久久久国产| 99精品久久久久久| 一级黄色大片免费| 8x拔播拔播x8国产精品| 欧美第十八页| 久久久久久久无码| 91精选在线观看| 亚洲伦乱视频| 国产手机免费视频| 国产精品天美传媒沈樵| 日韩一级免费毛片|