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

微軟開源Markdown工具爆了:支持Office文檔,可接多模態(tài)LLM直出報告

人工智能 新聞
以后開發(fā)者們上傳訓練數(shù)據(jù)、微調(diào)LLM應(yīng)用都更方便了。

微軟官方開源了一款文件格式轉(zhuǎn)換工具——MarkItDown

圖片

它不僅可以將常見的Office文檔(Word、PowerPoint、Excel)、PDF、圖像、音頻等轉(zhuǎn)換為對大模型更友好的Markdown格式。

而且還支持集成像GPT-4o這樣的多模態(tài)LLM,可以直接對圖片、音頻文件進行更高級的處理,比如快速輸出商業(yè)報告。

以后開發(fā)者們上傳訓練數(shù)據(jù)、微調(diào)LLM應(yīng)用都更方便了。

發(fā)布僅兩個月,它的GitHub收藏數(shù)就超過了3萬

圖片

具體來說,它支持的文件格式包括:

  • PDF
  • PowerPoint
  • Word
  • Excel
  • 圖像(含OCR和EXIF元數(shù)據(jù))
  • 音頻(含EXIF元數(shù)據(jù)和轉(zhuǎn)錄)
  • HTML
  • 其他基于文本的格式(CSV, JSON, XML)
  • 壓縮包

使用方式上,MarkItDown提供了命令行、Python API以及Docker三種形式。

圖片

熱心網(wǎng)友Aark Kodur還制作了在線版的網(wǎng)頁應(yīng)用,點開網(wǎng)址就能直接試用。

圖片

可接多模態(tài)LLM直接生成報告

哥倫比亞大學講師Tharsis用一個證券報告分析任務(wù)測試了MarkItDown的性能,同時也將它與IBM的熱門Markdown轉(zhuǎn)換庫Docling進行了對比,一起來看看吧。

首先看看兩個庫的基本信息。

MarkItDown是由微軟AutoGen團隊開發(fā)的Python包和CLI,用于將各種文件格式轉(zhuǎn)換為Markdown。

它支持包括PDF、PowerPoint、Word、Excel、圖像(含 OCR 和 EXIF 元數(shù)據(jù))、音頻(含轉(zhuǎn)錄)、HTML以及其他基于文本的格式,是文檔索引和構(gòu)建基于LLM應(yīng)用程序的有用工具。

主要特點:

  • 簡單命令行和Python API接口
  • 支持多種文件格式
  • 集成LLM增強圖像描述
  • 支持批處理能力
  • 支持Docker容器化使用

使用示例:

from markitdown import MarkItDown

md = MarkItDown()
result = md.convert("test.xlsx")
print(result.text_content)

Docling是由IBM研究院開發(fā)的Python包,用于解析和將文檔轉(zhuǎn)換為各種格式。

它提供高級文檔理解能力,重點在于保持文檔結(jié)構(gòu)和格式

主要特點:

  • 支持多種文檔格式(PDF、DOCX、PPTX、XLSX、圖片、HTML 等)
  • 高級PDF解析,包括布局分析和表格提取
  • 統(tǒng)一的文檔表示格式
  • 集成LlamaIndex和LangChain
  • 支持OCR分析掃描文檔
  • 簡單命令行界面

使用示例:

from docling.document_converter import DocumentConverter

converter = DocumentConverter()
result = converter.convert("document.pdf")
print(result.document.export_to_markdown())

本案例研究將主要從美林證券(Merrill Lynch)于2024年12月16日發(fā)布的首席信息官資本市場展望中提取經(jīng)濟預(yù)測

我們將主要關(guān)注該文檔的第7頁,其中包含多個經(jīng)濟變量,這些變量以表格、文本和圖像的混合形式組織。

圖片

FORECAST_FILE_PATH = "../data/input/forecast.pdf"

首先,我們將使用MarkItDown從文檔中提取文本內(nèi)容。

from markitdown import MarkItDown

md = MarkItDown()
result_md = md.convert(FORECAST_FILE_PATH).text_content

接下來,我們使用Docling進行同樣的操作。

from docling.document_converter import DocumentConverter

converter = DocumentConverter()
forecast_result_docling = converter.convert(source).document.export_to_markdown()

這兩個結(jié)果有多相似?

我們可以使用Levenshtein距離來衡量兩個結(jié)果之間的相似度。

還可以使用difflib包中的SequenceMatcher來計算一個簡單的分數(shù),這是基于最長公共子序列中匹配數(shù)來衡量兩個字符串相似度的一個簡單度量。

import Levenshtein
def levenshtein_similarity(text1: str, text2: str) -> float:
    """
    Calculate normalized Levenshtein distance
    Returns value between 0 (completely different) and 1 (identical)
    """
    distance = Levenshtein.distance(text1, text2)
    max_len = max(len(text1), len(text2))
    return 1 - (distance / max_len)

from difflib import SequenceMatcher
def simple_similarity(text1: str, text2: str) -> float:
    """
    Calculate similarity ratio using SequenceMatcher
    Returns value between 0 (completely different) and 1 (identical)
    """
    return SequenceMatcher(None, text1, text2).ratio()

   下面是Levenshtein和SequenceMatcher的具體分數(shù):

levenshtein_similarity(forecast_result_md, forecast_result_docling)
0.13985705461925346
simple_similarity(forecast_result_md, forecast_result_docling)
0.17779960707269155

結(jié)果顯示,這兩個結(jié)果非常不同,Levenshtein和SequenceMatcher的相似度得分分別為約13.98%和17.77%。

Docling的結(jié)果是一份相當易讀的Markdown,展示了關(guān)鍵經(jīng)濟變量及其預(yù)測。

相反,MarkItDown的結(jié)果有些雜亂,難以閱讀,但信息確實存在,只是沒有以結(jié)構(gòu)化的格式呈現(xiàn)。

但是,這重要嗎?

先來看看Docling的結(jié)果:

display(Markdown(forecast_result_docling))

圖片

MarkItDown的結(jié)果:

from IPython.display import display, Markdown
display(Markdown(forecast_result_md[:500]))

圖片

現(xiàn)在,讓我們看一下經(jīng)濟預(yù)測的結(jié)果,主要關(guān)注提取CIO的2025E預(yù)測。

圖片

我們將定義一個Forecast pydantic模型來表示由financial_variable和financial_forecast組成的經(jīng)濟預(yù)測。

定義另外一個EconForecast pydantic模型來表示我們想要從文檔中提取的經(jīng)濟預(yù)測列表。

from pydantic import BaseModel
class Forecast(BaseModel):
    financial_variable: str
    financial_forecast: float
class EconForecast(BaseModel):
    forecasts: list[Forecast]

以下為提示模板,其中extract_prompt是用戶希望提取的數(shù)據(jù), doc是待分析的輸入文檔。

BASE_PROMPT = f"""
    ROLE: You are an expert at structured data extraction. 
    TASK: Extract the following data {extract_prompt} from input DOCUMENT
    FORMAT: The output should be a JSON object with 'financial_variable' as key and 'financial_forecast' as value.
    """
prompt = f"{BASE_PROMPT} \n\n DOCUMENT: {doc}"

我們編寫了一個簡單的函數(shù),使用LLM模型(具有結(jié)構(gòu)化輸出)從文檔中提取經(jīng)濟預(yù)測

def extract_from_doc(extract_prompt: str,  doc: str, client) -> EconForecast:
    """
    Extract data of a financial document using an LLM model.
    
    Args:
        doc: The financial document text to analyze
        client: The LLM model to use for analysis
        extract_prompt: The prompt to use for extraction
        
    Returns:
        EconForecasts object containing sentiment analysis results
    """

    BASE_PROMPT = f"""
    ROLE: You are an expert at structured data extraction. 
    TASK: Extract the following data {extract_prompt} from input DOCUMENT
    FORMAT: The output should be a JSON object with 'financial_variable' as key and 'financial_forecast' as value.
    """
    prompt = f"{BASE_PROMPT} \n\n DOCUMENT: {doc}"
    completion = client.beta.chat.completions.parse(
        model="gpt-4o-mini",
        messages=[
            {
                "role": "system",
                "content": prompt
            },
            {"role": "user", "content": doc}
        ],
        response_format=EconForecast
    )
    return completion.choices[0].message.parsed
from dotenv import load_dotenv
import os

# Load environment variables from .env file
load_dotenv(override=True)
from openai import OpenAI
client = OpenAI()

然后,用戶調(diào)用extract_from_doc函數(shù),簡單地定義“2025E 經(jīng)濟預(yù)測”是他們想要從文檔中提取的數(shù)據(jù)。

我們執(zhí)行提取兩次,一次使用MarkItDown,一次使用Docling。

extract_prompt = "Economic Forecasts for 2025E"
md_financials = extract_from_doc(extract_prompt, forecast_result_md, client)
docling_financials = extract_from_doc(extract_prompt, forecast_result_docling, client)

響應(yīng)是一個包含F(xiàn)orecast對象列表的EconForecast對象,如pydantic模型中定義的那樣。

md_financials
EconForecast(forecasts=[Forecast(financial_variable='Real global GDP (% y/y annualized)', financial_forecast=3.2), Forecast(financial_variable='Real U.S. GDP (% q/q annualized)', financial_forecast=2.4), Forecast(financial_variable='CPI inflation (% y/y)', financial_forecast=2.5), Forecast(financial_variable='Core CPI inflation (% y/y)', financial_forecast=3.0), Forecast(financial_variable='Unemployment rate (%)', financial_forecast=4.3), Forecast(financial_variable='Fed funds rate, end period (%)', financial_forecast=3.88)])

然后我們可以將響應(yīng)轉(zhuǎn)換為pandas DataFrame格式,以便于比較。

df_md_forecasts = pd.DataFrame([(f.financial_variable, f.financial_forecast) for f in md_financials.forecasts], 
                      columns=['Variable', 'Forecast'])
df_docling_forecasts = pd.DataFrame([(f.financial_variable, f.financial_forecast) for f in docling_financials.forecasts], 
                      columns=['Variable', 'Forecast'])
df_md_forecasts

圖片

df_docling_forecasts

圖片

MarkItDown和Docling的結(jié)果完全相同,與文檔中的真實值準確匹配。

這表明,盡管從人類閱讀的角度來看,MarkItDown的輸出看起來不太易讀,但在此特定情況下,兩種方法都使LLM以相同的準確性成功提取經(jīng)濟預(yù)測數(shù)據(jù)

現(xiàn)在,讓我們關(guān)注資產(chǎn)類別權(quán)重

我們將從文檔中提取資產(chǎn)類別權(quán)重,并比較MarkItDown和Docling的結(jié)果。

目前信息呈現(xiàn)的結(jié)構(gòu)相當不同。CIO的觀點信息以“underweight”開始,經(jīng)過“neutral”,達到“overweight”。

實際信息在圖表中以一些彩色點標出。讓我們看看我們是否可以從文檔中提取這些信息。

圖片

用戶只需定義以下數(shù)據(jù)以提取:“截至2024年12月3日的資產(chǎn)類別權(quán)重(-2至2的刻度)”。

這樣,我們預(yù)計“underweight”將映射為-2,“neutral”映射為0,“overweight”映射為2,之間還有一些數(shù)值。

extract_prompt = "Asset Class Weightings (as of 12/3/2024) in a scale from -2 to 2"
asset_class_docling = extract_from_doc(extract_prompt, forecast_result_docling, client)
asset_class_md = extract_from_doc(extract_prompt, forecast_result_md, client)
df_md = pd.DataFrame([(f.financial_variable, f.financial_forecast) for f in asset_class_md.forecasts], 
                 columns=['Variable', 'Forecast'])
df_docling = pd.DataFrame([(f.financial_variable, f.financial_forecast) for f in asset_class_docling.forecasts], 
                 columns=['Variable', 'Forecast'])

現(xiàn)在我們構(gòu)建一個DataFrame來比較MarkItDown和Docling的結(jié)果,并添加一個包含從文檔中手動提取的真實值的“true_value”列。

# Create DataFrame with specified columns
df_comparison = pd.DataFrame({
    'variable': df_docling['Variable'].iloc[:-1],
    'markitdown': df_md['Forecast'],
    'docling': df_docling['Forecast'].iloc[:-1],  # Drop last row
    'true_value': [1.0, 0.0, 1.0, 1.0, 1.0, -1.0, 0.0, -1.0, 1.0, 1.0, -1.0, 0.0, -1.0, 0.0, -1.0]
})


display(df_comparison)

圖片

然后我們計算出Docling和MarkItDown的準確率:

# Calculate accuracy for markitdown and docling
markitdown_accuracy = (df_comparison['markitdown'] == df_comparison['true_value']).mean()
docling_accuracy = (df_comparison['docling'] == df_comparison['true_value']).mean()

print(f"Markitdown accuracy: {markitdown_accuracy:.2%}")
print(f"Docling accuracy: {docling_accuracy:.2%}")
Markitdown accuracy: 53.33%
Docling accuracy: 93.33%

Docling的準確率達到了93.33%,僅缺失一個值。MarkItDown的準確率為53.33%,在細微的資產(chǎn)類別權(quán)重表現(xiàn)較差。

在這種情況下,LLM從Docling的結(jié)構(gòu)化解析的輸出確實比從MarkItDown的無結(jié)構(gòu)化輸出中提取了更精確的信息。

更穩(wěn)健的分析將需要在大量樣本數(shù)據(jù)上運行多次數(shù)據(jù)提取以估計錯誤率。

如果我們想系統(tǒng)地從文檔中提取所有表格呢?

我們可以通過簡單地訪問DocumentConverter對象的tables屬性來使用 Docling 實現(xiàn)這一點。

import time
from pathlib import Path
import pandas as pd
from docling.document_converter import DocumentConverter
def convert_and_export_tables(file_path: Path) -> list[pd.DataFrame]:
    """
    Convert document and export tables to DataFrames.
    
    Args:
        file_path: Path to input document
        
    Returns:
        List of pandas DataFrames containing the tables
    """
    doc_converter = DocumentConverter()
    start_time = time.time()
    
    conv_res = doc_converter.convert(file_path)
    
    tables = []
    # Export tables
    for table in conv_res.document.tables:
        table_df: pd.DataFrame = table.export_to_dataframe()
        tables.append(table_df)


    end_time = time.time() - start_time
    print(f"Document converted in {end_time:.2f} seconds.")
    
    return tables
# Convert and export tables
tables = convert_and_export_tables(Path(FORECAST_FILE_PATH))

我們觀察到Docling從文檔中提取了7個表格。按照文檔中出現(xiàn)的順序,從上到下、從左到右導出表格。

len(tables)

下面,我們可以看到成功提取的第一個表格是關(guān)于股票預(yù)測的,第二個是關(guān)于固定收益預(yù)測的,以及最后一個包含首席投資官股票行業(yè)觀點的表格。

display(tables[0])

圖片

display(tables[1])

圖片

display(tables[6])

圖片

回到MarkItDown,它的一個重要特性是可以集成一個多模態(tài)LLM,從圖像中提取信息并進行分析與描述。

md_llm = MarkItDown(llm_client=client, llm_model="gpt-4o-mini")
result = md_llm.convert("../data/input/forecast.png")

以下是我們從輸入文檔的圖像中獲取的描述。

display(Markdown(result.text_content))

圖片

總體而言,該描述在某種程度上是準確的,但包含了一些不準確之處,包括:

  • 關(guān)于板塊權(quán)重,描述中提到“在美國小盤成長股方面存在低配頭寸”,但從資產(chǎn)類別權(quán)重圖表來看,美國小盤成長股實際上顯示為超配頭寸(綠色圓圈)。
  • 描述中提到“在公用事業(yè)和金融等某些板塊存在超配頭寸”,但從首席投資官股票板塊觀點來看,這兩個板塊都顯示為中立頭寸,而非超配頭寸。
  • 對于固定收益,描述中提到“10年期(4.03%)”收益率,但圖片顯示的是30年期收益率為4.03%,而實際上10年期收益率為4.40%。

可以說,描述中的這些不準確之處可能是底層大型語言模型無法處理圖像的結(jié)果。需要進一步研究來確定是否確實如此。

更多好用的轉(zhuǎn)換庫

網(wǎng)友們還分享了其他好用的格式轉(zhuǎn)換庫,比如MinerUPandoc等。

MinerU收藏數(shù)超過2.4萬,還增加了對json格式的支持。

圖片

而Pandoc收藏數(shù)超過3.5萬,支持的文件類型更廣泛,甚至還包括輸出epub、ipynb等等。

下次需要將文件轉(zhuǎn)換成LLM容易處理的數(shù)據(jù)格式的時候,都可以試試哦!

圖片

在線版:https://www.getmarkdown.com/MarkltDown

庫地址:github.com/microsoft/markitdown

責任編輯:張燕妮 來源: 量子位
相關(guān)推薦

2024-12-18 10:22:49

2025-01-08 08:21:16

2025-05-06 08:40:00

2023-03-10 13:03:09

人工智能模型

2021-03-08 05:52:16

微軟Office新版 Office

2023-08-04 13:22:46

AI開源

2024-12-18 18:57:58

2024-12-17 12:08:21

IAA多模態(tài)LLM

2024-01-11 16:24:12

人工智能RAG

2021-02-20 21:06:19

微軟Edge瀏覽器

2023-12-25 13:24:00

模型OCR頁面

2024-02-29 12:56:00

AI訓練

2024-11-21 08:46:52

2014-03-28 10:43:32

iPad

2023-11-07 18:08:03

GPT-4模型

2023-07-11 09:37:24

CoDiAI 模型

2025-03-19 09:30:00

2023-03-10 13:30:01

微軟人工智能

2024-12-16 07:00:00

2021-06-15 10:58:17

微軟officeMSGraph安全漏洞
點贊
收藏

51CTO技術(shù)棧公眾號

日韩av一二三| 精品国产三级a∨在线| 特级西西人体4444xxxx| 成a人片在线观看| 久久视频一区| 亚洲视频专区在线| 一区二区三区入口| 日本高清视频在线播放| 国内精品写真在线观看| 中文在线不卡视频| gai在线观看免费高清| 精品孕妇一区二区三区| 全部av―极品视觉盛宴亚洲| 日韩在线播放视频| 日本在线视频播放| 中文字幕影音在线| 国产精品色哟哟网站| 成人免费福利在线| 天堂网一区二区三区| 国产精品免费大片| 欧美一区二区视频网站| 欧美久久在线观看| 成人精品福利| 成人精品国产免费网站| 国产91九色视频| 中文字幕人妻一区二| 色综合久久中文| 欧美挠脚心视频网站| 青草视频在线观看视频| 欧美日韩在线中文字幕| 国内精品久久久久影院薰衣草| 欧美激情a∨在线视频播放| 丰满圆润老女人hd| 欧美大片91| 色综合视频在线观看| 手机在线视频你懂的| 天堂av电影在线观看| 国产伦精一区二区三区| 日韩免费av一区二区| 免费在线观看黄色av| 视频一区中文| 精品久久久久久久久久久久久久久久久| 女人另类性混交zo| 激情图片在线观看高清国产| 日本一区二区三区四区在线视频 | 成人综合网网址| 九九九国产视频| 国产精品久久久久久久免费观看| 亚洲精品影视在线观看| 国产又粗又猛又爽又黄| 香蕉成人影院| 欧美色欧美亚洲高清在线视频| 在线免费观看成人网| 你懂的在线播放| 91丨九色丨国产丨porny| 3d动漫精品啪啪一区二区三区免费| 无码人妻丰满熟妇精品| 亚洲精品乱码久久久久久蜜桃麻豆| 日韩中文字幕网站| 亚洲AV无码成人精品区明星换面| 免费看久久久| 欧美精品一区二区三区蜜桃| 性鲍视频在线观看| 精品国产亚洲一区二区在线观看| 欧美日韩在线直播| 校园春色 亚洲色图| 成人勉费视频| 日韩欧美在线视频观看| 久久国产成人精品国产成人亚洲| 波多野结衣视频一区二区| 亚洲宅男天堂在线观看无病毒| 中文字幕剧情在线观看一区| 午夜不卡视频| 中文字幕一区日韩精品欧美| 少妇特黄a一区二区三区| 欧美zozo| 91首页免费视频| 99re在线国产| 高清毛片aaaaaaaaa片| 成人在线视频一区| 国产私拍一区| 囯产精品一品二区三区| 成人动漫一区二区| 久久伊人一区| a天堂中文在线| 日韩毛片在线免费观看| 精品一区二区成人免费视频| av中文字幕在线观看| 一区二区三区在线观看动漫| 嫩草影院中文字幕| 欧美a级在线观看| 欧美日韩精品中文字幕| 日本在线视频www| 日韩欧美精品一区二区综合视频| 欧美私模裸体表演在线观看| 九九热精品在线播放| 精品一区二区三区亚洲| 欧美成人a在线| 添女人荫蒂视频| 精品日韩免费| 久久色精品视频| 久久久久久蜜桃| 香蕉久久夜色精品国产| 国产精品视频区| 性少妇videosexfreexxx片| 成人黄色国产精品网站大全在线免费观看| 韩国一区二区三区美女美女秀 | 日韩一区二区三区四区视频| 91精品啪在线观看国产18| 欧美激情一区二区三区高清视频| 日韩精品成人一区| 日韩国产高清影视| 91网免费观看| 欧美午夜黄色| 亚洲男人的天堂网| 国产精品免费成人| 国产精品久久久久久av公交车| 亚洲成av人影院在线观看| 国产精品亚洲无码| 在线看片不卡| 国产suv精品一区二区| av小说天堂网| 国产亚洲精品资源在线26u| 在线观看av的网址| 日韩大尺度黄色| 日韩亚洲欧美一区| 国产调教在线观看| 亚洲美女毛片| 91麻豆国产精品| 国产精品99999| 亚洲永久免费视频| 日本网站在线观看一区二区三区| 91黄色8090| 一区二区三区免费观看视频| 不卡一二三区首页| 黄色高清视频网站| 欧美三级网址| 亚洲韩国青草视频| 欧美视频www| 先锋影音久久| 精品91免费| 永久免费网站在线| 欧美日韩成人一区二区| 中文字幕在线免费看线人| 91精品啪在线观看国产18| 国产成人在线视频| 神马久久高清| 亚洲成人综合网站| 国产资源中文字幕| 日韩欧美一区二区三区在线视频| 欧美亚洲成人xxx| 亚洲精选一区二区三区| 日韩美女久久久| 中文字幕第17页| 成人在线丰满少妇av| 清纯唯美日韩制服另类| 飘雪影视在线观看免费观看| 亚洲国产成人av网| 色哟哟网站在线观看| 天天综合久久| 91九色视频导航| av天在线观看| 欧美三级中文字幕在线观看| 欧美激情aaa| 久久福利影视| 麻豆久久久9性大片| 涩涩视频在线| 亚洲欧美日韩精品久久亚洲区| www..com国产| 不卡欧美aaaaa| 日日橹狠狠爱欧美超碰| 国产一区丝袜| 欧美在线一区二区视频| 天天av综合网| 色94色欧美sute亚洲线路一久 | 精品久久久久久无码国产| 国产精品人人人人| 97se亚洲国产综合自在线不卡| 成年人看的毛片| 欧美日日夜夜| 国产成人精品电影| av中文字幕一区二区三区| 精品婷婷伊人一区三区三| jizz日本在线播放| 麻豆国产91在线播放| 亚洲一区三区在线观看| 一区二区三区日本视频| 美女福利精品视频| 丰满岳乱妇国产精品一区| 精品国产鲁一鲁一区二区张丽| 自拍偷拍中文字幕| 久久97超碰国产精品超碰| 欧美 国产 精品| 好吊妞视频这里有精品| 68精品久久久久久欧美| 亚洲欧洲国产综合| 一本色道久久综合精品竹菊| 国产传媒国产传媒| 久久99国产精品免费| 大胆欧美熟妇xx| 免费看成人哺乳视频网站| 国产日韩欧美中文| 国产三区在线观看| 亚洲精品国精品久久99热| 国产午夜免费视频| 久久久久久久久久久99999| 色综合色综合色综合色综合| 欧美激情无毛| 美女一区视频| 国产精品蜜月aⅴ在线| 久久亚洲欧美日韩精品专区| 秋霞av鲁丝片一区二区| 91久久精品一区二区| 五月综合色婷婷| 成人永久免费视频| 欧美综合在线观看视频| 68国产成人综合久久精品| 99电影网电视剧在线观看| 蜜桃视频成人m3u8| 日韩中文字幕av| www.日日夜夜| 欧美性猛交xxxx乱大交| 肉色超薄丝袜脚交69xx图片| 成人午夜av影视| 五月激情五月婷婷| 国产视频一区欧美| 大地资源网在线观看免费官网| 一区二区小说| 国产一区二区久久久| 97色婷婷成人综合在线观看| 日本欧美一二三区| 欧洲黄色一区| 久久久国产视频| 国产粉嫩一区二区三区在线观看| 精品国产91久久久久久久妲己| 黄色大全在线观看| 欧美日韩色婷婷| 久久99久久久| 亚洲视频免费观看| 美国精品一区二区| 久久精品亚洲精品国产欧美| 97精品人人妻人人| 精品一区二区免费看| 国产三级日本三级在线播放 | 亚洲国产一二三精品无码| 精品一区免费| 国产精品三区在线| 亚洲精品一区国产| 成人国产精品一区二区| 成人视屏在线观看| 欧美做受高潮1| 黄色激情在线播放| 午夜精品99久久免费| 黄色在线观看网站| www.日本久久久久com.| 成年人视频在线观看免费| 亚洲欧美日韩高清| 五月激情丁香婷婷| 亚洲福利视频二区| 老熟妇高潮一区二区高清视频 | 国产又粗又猛又黄| 欧美综合一区二区| 啪啪小视频网站| 欧美在线观看视频一区二区| 91porny九色| 在线看国产一区| 波多野结衣理论片| 欧美亚洲综合网| 亚洲一级黄色大片| 91精品在线观看入口| 99久久国产免费| 日韩欧美一区二区免费| 亚洲精品网站在线| 日韩成人久久久| 黄色片在线播放| 色777狠狠综合秋免鲁丝| 老司机av在线免费看| 中文字幕日韩欧美| 国产成人l区| 久久久久国产精品免费网站| 国产在线精彩视频| 国产成人精品一区二区在线| 99re久久| 91免费欧美精品| 国产精品22p| 青青草久久网络| 欧美freesextv| 黑人巨茎大战欧美白妇| 国产情侣久久| 欧美性猛交xxx乱久交| 久久精品国产成人一区二区三区| 色噜噜狠狠一区二区三区狼国成人| 激情图片小说一区| 色呦色呦色精品| 成人午夜短视频| wwwwxxxx国产| 中文字幕佐山爱一区二区免费| 成人性生活毛片| 亚洲国产aⅴ天堂久久| 亚洲GV成人无码久久精品| 欧美日韩电影在线| 色婷婷av一区二区三区之e本道| 亚洲色图色老头| 黄色网页在线播放| 91国产美女在线观看| 91成人在线| 99精彩视频| 国产一区二区精品福利地址| aaa免费在线观看| 亚洲女优在线| 夜夜爽久久精品91| 久久精品无码一区二区三区 | 亚洲精品视频在线观看网站| 日韩xxx高潮hd| 51精品国自产在线| 美国成人毛片| 欧美激情免费视频| 欧美综合社区国产| 久久亚洲午夜电影| 欧美激情五月| 日韩肉感妇bbwbbwbbw| 成人av网站大全| 日本黄区免费视频观看| 欧美日韩国产在线看| 国产精品一品二区三区的使用体验| 亚洲精品不卡在线| a在线免费观看| 国产精品无av码在线观看| 国产精品网在线观看| 宅男噜噜99国产精品观看免费| 亚洲欧洲综合| 欧美视频亚洲图片| 久久久久久久网| 国产特黄大片aaaa毛片| 91精品国产色综合久久ai换脸 | 在线观看麻豆蜜桃| 91av在线免费观看| 99tv成人影院| 亚洲欧美精品在线观看| 久久久精品日韩| 精品国产av色一区二区深夜久久| 亚洲色图19p| 在线观看毛片av| 日韩av网站大全| a视频在线观看免费| 日本精品免费观看| 高潮久久久久久久久久久久久久| 在线视频福利一区| 亚洲精品免费观看| 国产一区二区在线免费播放| 久久综合九色欧美综合狠狠| 国产成人无码精品亚洲| 亚洲精品一区在线观看| 美女精品视频| 99精品国产一区二区| 欧美久久影院| 亚洲av综合色区无码另类小说| 亚洲日本va在线观看| 国产精品久久久久久久久久久久久久久久久久 | 免费cad大片在线观看| 国产麻豆视频精品| 91社区视频在线观看| 欧美自拍偷拍午夜视频| 精品无人乱码| 国产精品久久久久久一区二区| 免费精品国产| www.xxx亚洲| 国产精品免费av| 国产又粗又猛视频免费| 欧美精品在线视频观看| 久久一级大片| 国产青草视频在线观看| av欧美精品.com| 日日噜噜噜噜人人爽亚洲精品| 精品香蕉一区二区三区| 欧美成人a交片免费看| 青青草成人网| 麻豆视频一区二区| 中文字幕人妻一区二| 欧美va亚洲va在线观看蝴蝶网| 日韩伦理av| 久久av免费观看| 日韩电影在线看| 99久久久免费精品| 欧美另类一区二区三区| 日本中文字幕电影在线免费观看| 国产日韩欧美日韩| 91精品推荐| 在线观看网站黄| 午夜在线成人av| 国产三区四区在线观看| 国产日产亚洲精品| 国产精品一区二区三区四| 欧美一区二区三区精品| 成av人片在线观看www| 亚洲v欧美v另类v综合v日韩v| 国产91丝袜在线观看| 精品无码一区二区三区的天堂| 欧美激情久久久| 日韩电影在线视频|