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

使用本地部署的Hermes 2 Pro 構(gòu)建開放的LLM應(yīng)用程序 原創(chuàng)

發(fā)布于 2024-7-2 10:52
瀏覽
0收藏

譯者 | 布加迪

審校 | 重樓

之前我介紹了如何使用OpenAI最新的LLM GPT-4o,通過函數(shù)調(diào)用將實(shí)時(shí)數(shù)據(jù)引入到??LLM??。在這篇后續(xù)文章中我將介紹使用Hermes 2 Pro -Llama- 3 8B進(jìn)行函數(shù)調(diào)用,這是一種由Nous Research開發(fā)的功能強(qiáng)大的LLM,基于Meta的Llama 3架構(gòu),有80億個(gè)參數(shù)。它是開放模型,我們將在Hugging Face的文本生成推理上運(yùn)行它。

我們將把Fightaware.com的API 與該LLM集成起來(lái),以便實(shí)時(shí)跟蹤航班狀態(tài)。

FlightAware的AeroAPI是開發(fā)人員獲取全面航班信息的一種完美工具。它支持實(shí)時(shí)航班跟蹤、歷史和未來(lái)航班數(shù)據(jù)以及按各種標(biāo)準(zhǔn)進(jìn)行航班搜索。該API以用戶友好的JSON格式呈現(xiàn)數(shù)據(jù),因而高度可用、易于集成。我們將調(diào)用REST API,根據(jù)用戶發(fā)送給LLM的提示獲取航班的實(shí)時(shí)狀態(tài)。

Hermes 2 Pro簡(jiǎn)介

Hermes 2 Pro -Llama- 3 8B擅長(zhǎng)自然語(yǔ)言處理任務(wù)、創(chuàng)意寫作和編程協(xié)助等。它的一項(xiàng)突出功能是出色的函數(shù)調(diào)用功能,便于執(zhí)行外部函數(shù),并檢索與股票價(jià)格、公司基本面、財(cái)務(wù)報(bào)表等相關(guān)的信息。

該模型利用特殊的系統(tǒng)提示和多輪函數(shù)調(diào)用結(jié)構(gòu)以及新的ChatML角色,使得函數(shù)調(diào)用可靠且易于解析。據(jù)基準(zhǔn)測(cè)試顯示,Hermes 2 Pro-Llama-3在與Fireworks AI合作構(gòu)建的函數(shù)調(diào)用評(píng)估中獲得了出色的90%。

本地部署Hermes 2 Pro

就這個(gè)環(huán)境而言,我使用一臺(tái)基于英偉達(dá)GeForce RTX 4090 GPU的Linux服務(wù)器,搭載24GB的VRAM。它運(yùn)行Docker和英偉達(dá)容器工具包,使容器能夠訪問GPU。

我們將使用來(lái)自Hugging Face的文本生成推理服務(wù)器來(lái)運(yùn)行Hermes 2 Pro。

下面的命令在端口8080上啟動(dòng)推理引擎,通過REST端點(diǎn)為L(zhǎng)LM提供服務(wù)。

export token="YOUR_HF_TOKEN"
 
export model="NousResearch/Hermes-2-Pro-Llama-3-8B"
 
export volume="/home/ubuntu/data"
 
docker run --name hermes -d --gpus all -e HUGGING_FACE_HUB_TOKEN=$token --shm-size 1g -p 8080:80 -v $volume:/data ghcr.io/huggingface/text-generation-inference:2.0.3 --model-id $model --max-total-tokens 8096

   	
To test the endpoint, run the following command:

	curl 127.0.0.1:8081  \
  -X POST \
   -H 'Content-Type: application/json' \
 -d '{"inputs":"What is Deep Learning?"}'

如果一切正常,您應(yīng)該看到Hermes 2 Pro的響應(yīng)。

跟蹤航班狀態(tài)的函數(shù)

在繼續(xù)下一步之前,注冊(cè)FlightAware并獲取API密鑰,使用REST API需要API密鑰。免費(fèi)的個(gè)人版本足以完成本教程。

獲得API密鑰后,用Python創(chuàng)建以下函數(shù),以檢索任何航班的狀態(tài)。

import ast
	import json
import random
	from datetime import datetime, timedelta
	import requests
	import pytz

	
	def get_flight_status(flight):
	    """Returns Flight Information"""
	

	    AEROAPI_BASE_URL = "https://aeroapi.flightaware.com/aeroapi"
	    AEROAPI_KEY="YOUR FLIGHTAWARE API KEY"
	    
	    def get_api_session():
	        session = requests.Session()
	        session.headers.update({"x-apikey": AEROAPI_KEY})
	        return session
	
	    
def fetch_flight_data(flight_id, session):
	        if "flight_id=" in flight_id:
	            flight_id = flight_id.split("flight_id=")[1]    
	        
	       
 start_date = datetime.now().date().strftime('%Y-%m-%d')
	        end_date = (datetime.now().date() + timedelta(days=1)).strftime('%Y-%m-%d')
	        api_resource = f"/flights/{flight_id}?start={start_date}&end={end_date}"
	        response = session.get(f"{AEROAPI_BASE_URL}{api_resource}")
	        response.raise_for_status()
	        return response.json()['flights'][0]
	
	    def utc_to_local(utc_date_str, local_timezone_str):
	        utc_datetime = datetime.strptime(utc_date_str, '%Y-%m-%dT%H:%M:%SZ').replace(tzinfo=pytz.utc)
	        local_timezone = pytz.timezone(local_timezone_str)
	        local_datetime = utc_datetime.astimezone(local_timezone)
	        return local_datetime.strftime('%Y-%m-%d %H:%M:%S')    
	    
	    session = get_api_session()
	    flight_data = fetch_flight_data(flight, session)
	    
	    dep_key = 'estimated_out' if 'estimated_out' in flight_data and flight_data['estimated_out'] else \
	          'actual_out' if 'actual_out' in flight_data and flight_data['actual_out'] else \
	          'scheduled_out'
	    
	    arr_key = 'estimated_in' if 'estimated_in' in flight_data and flight_data['estimated_in'] else \
	          'actual_in' if 'actual_in' in flight_data and flight_data['actual_in'] else \
	          'scheduled_in'    
	    
	    flight_details = {
	        'flight':flight,
	        'source': flight_data['origin']['city'],
	        'destination': flight_data['destination']['city'],
	        'depart_time': utc_to_local(flight_data[dep_key], flight_data['origin']['timezone']),
	        'arrival_time': utc_to_local(flight_data[arr_key], flight_data['destination']['timezone']),
	        'status': flight_data['status']
	    }
	return json.dumps(flight_details)

	
	flight_info = get_flight_status("EK524")
	print(flight_info)
	#'{"flight": "EK524", "source": "Dubai", "destination": "Hyderabad", "depart_time": "2024-05-23 22:00:00", "arrival_time": "2024-05-24 03:05:00", "status": "Scheduled"}'

雖然代碼簡(jiǎn)單直觀,還是讓我解釋關(guān)鍵步驟。

get_flight_status函數(shù)接受航班參數(shù)(假設(shè)是航班標(biāo)識(shí)符),并以JSON格式返回格式化的航班詳細(xì)信息。它查詢AeroAPI以根據(jù)特定的航班標(biāo)識(shí)符獲取航班數(shù)據(jù),并格式化關(guān)鍵細(xì)節(jié),比如源地、目的地、駛離時(shí)間、到達(dá)時(shí)間和狀態(tài)。

不妨看看腳本的組件:

API憑據(jù):

AEROAPI_BASE_URL是FlightAware AeroAPI的基礎(chǔ)URL。

AEROAPI_KEY是用于身份驗(yàn)證的API密鑰。

會(huì)話管理:

get_api_session:這個(gè)嵌套函數(shù)初始化請(qǐng)求。這將使用API密鑰設(shè)置所需的報(bào)頭,并返回會(huì)話對(duì)象。該會(huì)話將處理所有API請(qǐng)求。

數(shù)據(jù)獲取:

fetch_flight_data:這個(gè)函數(shù)接受flight_id和session作為參數(shù)。它用適當(dāng)?shù)娜掌谶^濾器構(gòu)造端點(diǎn)URL,用于獲取一天的數(shù)據(jù),并發(fā)送GET請(qǐng)求以檢索航班數(shù)據(jù)。該函數(shù)處理API響應(yīng),并提取相關(guān)的航班信息。

時(shí)間轉(zhuǎn)換:

utc_to_local:根據(jù)提供的時(shí)區(qū)字符串將UTC時(shí)間(來(lái)自API響應(yīng))轉(zhuǎn)換為本地時(shí)間。該函數(shù)幫助我們獲得基于城市的到達(dá)和駛離時(shí)間。

數(shù)據(jù)處理:

腳本根據(jù)可用的估計(jì)時(shí)間或?qū)嶋H時(shí)間確定駛離和到達(dá)時(shí)間的鍵,并返回到計(jì)劃時(shí)間。然后,它構(gòu)造一個(gè)含有格式化航班詳細(xì)信息的字典。

使用本地部署的Hermes 2 Pro 構(gòu)建開放的LLM應(yīng)用程序-AI.x社區(qū)

上述截圖顯示了我們從FlightAware API收到的從迪拜飛往海得拉巴的阿聯(lián)酋航空EK524的響應(yīng)。請(qǐng)注意,到達(dá)和駛離時(shí)間基于城市的當(dāng)?shù)貢r(shí)間。

我們旨在將該函數(shù)與Gemini 1.0 Pro集成,使其能夠?qū)崟r(shí)訪問航班跟蹤信息。

將函數(shù)與Hermes 2 Pro集成

先使用以下命令安裝最新版本的Hugging Face Python SDK:

pip install --upgrade huggingface_hub

導(dǎo)入模塊,并通過將客戶端指向TGI端點(diǎn)來(lái)初始化客戶端。

from huggingface_hub import InferenceClient

client = InferenceClient("http://127.0.0.1:8080")

接下來(lái),定義函數(shù)模式,采用的格式與OpenAPI函數(shù)調(diào)用的格式一樣。

tools = [
    {
        "type": "function",
        "function": {
            "name": "get_flight_status",
            "description": "Get status of a flight",
            "parameters": {
                "type": "object",
                "properties": {
                    "flight": {
                        "type": "string",
                        "description": "Flight number"
                    }
                },
                "required": ["flight"]
            }
        }
    }
]

這將使用LLM用作工具的一個(gè)或多個(gè)函數(shù)填充列表。

使用本地部署的Hermes 2 Pro 構(gòu)建開放的LLM應(yīng)用程序-AI.x社區(qū)

現(xiàn)在,我們將創(chuàng)建接受提示并確定是否需要調(diào)用函數(shù)的聊天機(jī)器人。如果需要調(diào)用,則LLM先返回函數(shù)名和需要調(diào)用的參數(shù)。函數(shù)的輸出作為第二次調(diào)用的一部分發(fā)送給LLM。最終的響應(yīng)將根據(jù)函數(shù)的輸出得到與事實(shí)相符的正確答案。

def chatbot(prompt):
    messages = [
        {
            "role": "system",
            "content": "You're a helpful assistant! Answer the users question best you can based on the tools provided. Be concise in your responses.",
        },
        {
            "role": "user",
            "content": prompt
        },
    ]
 
    response = client.chat_completion(messages=messages, tools=tools)
    tool_calls = response.choices[0].message.tool_calls
 
    if tool_calls:
        available_functions = {
            "get_flight_status": get_flight_status,
        }
        
        for tool_call in tool_calls:
            function_name = tool_call.function.name
            function_to_call = available_functions[function_name]
            function_args = tool_call.function.arguments
        
            function_response = function_to_call(flight=function_args.get("flight"))
            
            messages.append(
                {
                    "role": "tool",
                    "name": function_name,
                    "content": function_response
                }
            )
            
        final_response = client.chat_completion(messages=messages)
        return final_response
        
    return response

目標(biāo)LLM期望的提示的自動(dòng)格式化是使用Hugging Face Python庫(kù)的一個(gè)好處。比如說(shuō),使用函數(shù)時(shí),Hermes 2 Pro的提示需要按照特定的格式進(jìn)行結(jié)構(gòu)化:

<|im_start|>system
You are a function calling AI model. You are provided with function signatures within XML tags. You may call one or more functions to assist with the user query. Don't make assumptions about what values to plug into functions. Here are the available tools: [{'type': 'function', 'function': {'name': 'get_stock_fundamentals', 'description': 'Get fundamental data for a given stock symbol using yfinance API.', 'parameters': {'type': 'object', 'properties': {'symbol': {'type': 'string'}}, 'required': ['symbol']}}}] Use the following pydantic model json schema for each tool call you will make: {'title': 'FunctionCall', 'type': 'object', 'properties': {'arguments': {'title': 'Arguments', 'type': 'object'}, 'name': {'title': 'Name', 'type': 'string'}}, 'required': 

['arguments', 'name']} For each function call return a json object with function name and arguments within XML tags as follows:

{'arguments': , 'name': }
<|im_end|>

同樣,函數(shù)的輸出可以以以下格式發(fā)送到LLM:

<|im_start|>tool

{"name": "get_stock_fundamentals", "content": {'symbol': 'TSLA', 'company_name': 'Tesla, Inc.', 'sector': 'Consumer Cyclical', 'industry': 'Auto Manufacturers', 'market_cap': 611384164352, 'pe_ratio': 49.604652, 'pb_ratio': 9.762013, 'dividend_yield': None, 'eps': 4.3, 'beta': 2.427, '52_week_high': 299.29, '52_week_low': 152.37}}

<|im_end|>

確保提示遵循該模板需要仔細(xì)格式化。InferenceClient類可高效地處理這種轉(zhuǎn)換,使開發(fā)人員能夠在提示中使用系統(tǒng)、用戶、工具和助手角色的熟悉的OpenAI格式。

在首次調(diào)用聊天完成API時(shí),LLM給出以下答案作為響應(yīng):

使用本地部署的Hermes 2 Pro 構(gòu)建開放的LLM應(yīng)用程序-AI.x社區(qū)

隨后,在調(diào)用函數(shù)之后,我們將結(jié)果嵌入到消息中并將其發(fā)回給LLM。

使用本地部署的Hermes 2 Pro 構(gòu)建開放的LLM應(yīng)用程序-AI.x社區(qū)

正如您所見,集成函數(shù)調(diào)用的工作流程與OpenAI非常相似。

現(xiàn)在是時(shí)候調(diào)用聊天機(jī)器人并通過提示來(lái)測(cè)試它了。

res=chatbot("What's the status of EK226?")
print(res.choices[0].message.content)

聊天機(jī)器人的完整代碼如下所示。

from huggingface_hub import InferenceClient

client = InferenceClient("http://127.0.0.1:8080")


tools = [
    {
        "type": "function",
        "function": {
            "name": "get_flight_status",
            "description": "Get status of a flight",
            "parameters": {
                "type": "object",
                "properties": {
                    "flight": {
                        "type": "string",
                        "description": "Flight number"
                    }
                },
                "required": ["flight"]
            }
        }
    }
]


def chatbot(prompt):
    messages = [
        {
            "role": "system",
            "content": "You're a helpful assistant! Answer the users question best you can based on the tools provided. Be concise in your responses.",
        },
        {
            "role": "user",
            "content": prompt
        },
]


    response = client.chat_completion(messages=messages, tools=tools)
    tool_calls = response.choices[0].message.tool_calls

    if tool_calls:
        available_functions = {
            "get_flight_status": get_flight_status,
        }
        
        for tool_call in tool_calls:
            function_name = tool_call.function.name
            function_to_call = available_functions[function_name]
            function_args = tool_call.function.arguments
        
            function_response = function_to_call(flight=function_args.get("flight"))
            
            messages.append(
                {
                    "role": "tool",
                    "name": function_name,
                    "content": function_response
                }
            )
            
        final_response = client.chat_completion(messages=messages)
        return final_response
        
    return response


res=chatbot("What's the status of EK226?")

print(res.choices[0].message.content)

原文標(biāo)題:??Building an Open LLM App Using Hermes 2 Pro Deployed Locally??,作者:Janakiram MSV

?著作權(quán)歸作者所有,如需轉(zhuǎn)載,請(qǐng)注明出處,否則將追究法律責(zé)任
標(biāo)簽
已于2024-7-2 11:05:57修改
收藏
回復(fù)
舉報(bào)
回復(fù)
相關(guān)推薦
亚洲一区二区在线免费观看| 国产mv久久久| 日本道中文字幕| 日本不卡网站| 亚洲欧美自拍偷拍| 精品毛片久久久久久| 性色av免费观看| 91tv官网精品成人亚洲| 亚洲激情成人网| 我看黄色一级片| 不卡的av影片| 国产精品传媒视频| 精品日本一区二区三区在线观看| 免费看av在线| 亚洲人体大胆视频| 日韩视频免费看| 欧美激情aaa| 中文字幕久久精品一区二区| 精品视频1区2区3区| 成人免费毛片在线观看| 日本在线看片免费人成视1000| 成人h版在线观看| 成人午夜激情网| 欧美一区二区激情视频| 欧美午夜在线视频| 自拍偷拍亚洲精品| 中文字幕在线观看的网站| 日韩视频一区二区三区四区| 欧美性生活一区| 免费国产a级片| 日本在线观看高清完整版| 中文在线免费一区三区高中清不卡| 国产一级精品aaaaa看| 888奇米影视| 久久九九99| 911国产网站尤物在线观看| 青草影院在线观看| av资源久久| 亚洲色图综合久久| 在线免费观看麻豆| 青青视频一区二区| 亚洲大胆人体在线| 国产高清成人久久| 91久久精品无嫩草影院| 日韩一区二区影院| aaa一级黄色片| 欧美大片网站| 欧美日韩国产色站一区二区三区| 日韩视频免费在线播放| 一区二区三区电影大全| 精品国产精品自拍| 女人和拘做爰正片视频| 中文字幕在线直播| 色欧美日韩亚洲| 久久久久久久久久福利| 婷婷六月国产精品久久不卡| 色综合久久天天| 日韩a在线播放| 成人软件在线观看| 欧美无砖专区一中文字| www欧美激情| 99蜜月精品久久91| 91麻豆精品国产综合久久久久久| 亚洲无在线观看| 精品成人18| 日韩欧美黄色影院| 亚州av综合色区无码一区| 精品日产乱码久久久久久仙踪林| 亚洲精品电影网站| 免费看污黄网站在线观看| 宅男在线一区| 在线观看日韩欧美| 黄视频网站免费看| 一区三区视频| 欧美亚洲在线视频| 自拍偷拍精品视频| 国产精品资源在线观看| 精品久久久久久亚洲| 国产视频精选在线| 亚洲精品视频自拍| 成人一对一视频| 丝袜美腿一区| 日韩欧美一级在线播放| 特大黑人巨人吊xxxx| 成人羞羞视频在线看网址| 久久久精品电影| 日韩 欧美 中文| 美女视频黄 久久| 91超碰在线电影| 青青草视频免费在线观看| 国产精品乱人伦| 8x8ⅹ国产精品一区二区二区| 天堂av中文在线观看| 欧美日韩国产小视频在线观看| 91精产国品一二三| 女厕嘘嘘一区二区在线播放 | 国产私拍一区| 99青草视频在线播放视| 亚洲福利视频一区| 伊人成人222| 香蕉视频一区| 久精品免费视频| 中文 欧美 日韩| 成人av在线观| 伊人情人网综合| 在线一区av| 欧美xxxx在线观看| youjizz亚洲女人| 日韩亚洲国产精品| 51国产成人精品午夜福中文下载| 黄色片免费在线| 亚洲成人综合在线| 黄色a级三级三级三级| 免费一区二区三区视频导航| 大胆人体色综合| a片在线免费观看| 91蜜桃视频在线| 久操网在线观看| 国产精品亚洲四区在线观看| 亚洲男人天堂古典| 国产真实乱偷精品视频| 久久99精品国产91久久来源 | 91tv精品福利国产在线观看| 奇米一区二区三区四区久久| 蜜桃久久一区二区三区| 亚洲日本成人在线观看| 欧美日韩亚洲自拍| 国产精品免费不| 欧美亚洲激情在线| 天天操天天射天天| 亚洲一区二区中文在线| 三级一区二区三区| 色喇叭免费久久综合| 国产999精品久久久| 天天躁日日躁狠狠躁伊人| 亚洲午夜一区二区| 一区二区三区人妻| 亚洲一区二区三区无吗| 91精品久久久久久久久久另类| 韩国精品视频| 欧美在线啊v一区| www.99热| 免费人成在线不卡| 午夜精品视频在线观看一区二区| 奇米777日韩| 亚洲人成在线观看| 国语对白做受69按摩| 久久久高清一区二区三区| 国产在线青青草| 久久91麻豆精品一区| 日产精品99久久久久久| 精品推荐蜜桃传媒| 欧美性一级生活| www.xx日本| 激情六月婷婷久久| 久久久99精品视频| 4438全国亚洲精品观看视频| 欧美黄色性视频| 日本高清视频免费观看| 天天色天天爱天天射综合| 中国黄色a级片| 欧美a级理论片| 成年人黄色在线观看| 日韩精品视频一区二区三区| 欧美国产亚洲精品久久久8v| 亚洲aaa在线观看| 日本乱码高清不卡字幕| 自拍偷拍你懂的| 国产精品18久久久| 国产精品久久..4399| 视频国产一区| 国产色视频一区| 青草在线视频在线观看| 日韩精品中文字| 中文字幕一区二区人妻痴汉电车| 中文字幕一区av| 欧美熟妇精品一区二区蜜桃视频| 午夜亚洲性色视频| 亚洲黄色一区二区三区| 日韩黄色av| 日本免费在线精品| av网站导航在线观看免费| 亚洲大胆人体在线| 又骚又黄的视频| 亚洲福利电影网| 中文字幕精品亚洲| a在线播放不卡| 中文字幕在线视频精品| 国产欧美日韩综合一区在线播放 | 国产人成在线视频| 日韩欧美一级片| 国产女主播喷水视频在线观看 | 欧美 日韩 精品| 国产精品久久久久久久久搜平片| 国产国语老龄妇女a片| 日韩精品免费专区| 国产女主播自拍| 三级电影一区| 鲁丝一区二区三区免费| 日韩欧美久久| 国产精品一区二区三区久久 | 国产一区二区丝袜高跟鞋图片| xxxx视频在线| www国产精品视频| 九色在线免费| 亚洲成人av资源网| 国产剧情精品在线| 91福利精品第一导航| 国产一级生活片| 亚洲桃色在线一区| 内射毛片内射国产夫妻| 91蜜桃网址入口| 精品伦一区二区三区| 久久精品99国产精品| 37pao成人国产永久免费视频| 国内视频精品| www.午夜色| 国产伦精品一区二区三区视频| 成人在线免费观看一区| 亚洲最大的免费视频网站| 青青草成人在线| 1区2区在线| 欧美久久久精品| 男人天堂久久久| 在线看日韩欧美| 免费在线视频你懂得| 亚洲第一页中文字幕| 成人免费公开视频| 日韩欧美在线不卡| 伊人精品一区二区三区| 欧美在线一二三四区| 9i精品福利一区二区三区| 狠狠操狠狠色综合网| 四虎永久在线精品| 亚洲国产精品人人做人人爽| 免费毛片在线播放免费| 亚洲自拍偷拍麻豆| 免费一级片在线观看| 伊人色综合久久天天人手人婷| 秋霞欧美一区二区三区视频免费| 欧美激情在线一区二区| 极品人妻videosss人妻| 国产色91在线| 91av手机在线| 国产精品素人视频| 日本裸体美女视频| 亚洲男同1069视频| 久久久久99精品| 午夜精品一区在线观看| 男女视频免费看| 色综合久久久久久久| 黄色网址中文字幕| 欧美人成免费网站| 国产精品一区二区人人爽| 91精品国产综合久久精品app | 50度灰在线观看| 亚洲视频电影在线| 国产精品自拍合集| 亚洲精品视频啊美女在线直播| 久久久性生活视频| 视频一区欧美日韩| 麻豆三级在线观看| 毛片av中文字幕一区二区| 亚洲一区二区偷拍| www.日本不卡| 女人黄色一级片| 亚洲欧美色图小说| 久一视频在线观看| 欧美性感美女h网站在线观看免费| 无码人妻丰满熟妇区五十路| 欧美日韩情趣电影| 亚洲国产综合网| 亚洲精品一区二区网址| 亚洲1卡2卡3卡4卡乱码精品| 理论片在线不卡免费观看| 黄网站在线观| 国产精品va在线播放| 日韩在线精品强乱中文字幕| 国模精品娜娜一二三区| 久久国产亚洲| 欧美视频在线观看视频| 奇米影视一区二区三区| 美女又黄又免费的视频| 久久久久亚洲蜜桃| 来吧亚洲综合网| 欧美日韩亚洲精品一区二区三区| 亚洲精品一区二区二区| 亚洲成人久久网| √天堂资源地址在线官网| 国外成人性视频| 97久久精品一区二区三区的观看方式| 国产精品18毛片一区二区| 国产欧美一区| 久久久久99精品成人片| 美女脱光内衣内裤视频久久影院| 日本一级大毛片a一| 国产精品人妖ts系列视频| 日韩网红少妇无码视频香港| 欧美图区在线视频| 午夜黄色小视频| 久久这里只有精品视频首页| 不卡av影片| 国产欧美一区二区三区另类精品| 久久性感美女视频| 九一国产精品视频| 国产精品一二三四区| 国产欧美小视频| 高跟丝袜欧美一区| 性欧美8khd高清极品| 亚洲最大中文字幕| 九色porny丨入口在线| 亚洲一区二区久久久久久久| 成人3d动漫在线观看| 男人天堂1024| 成人免费观看男女羞羞视频| 日韩精品123区| 欧美三级中文字幕| 你懂的免费在线观看| 午夜剧场成人观在线视频免费观看| 色综合视频一区二区三区日韩| 久久久久久久免费| 一区二区日韩免费看| 无码国产精品一区二区高潮| 国产精品国产精品国产专区不蜜 | 亚洲а∨天堂久久精品喷水 | 欧美理论视频| 免费av网址在线| 久久综合色婷婷| 亚洲日本韩国在线| 亚洲国产欧美一区| 9lporm自拍视频区在线| 99porn视频在线| 欧美日韩国产高清| 日本少妇一区二区三区| 亚洲色图视频免费播放| 国产绿帽一区二区三区| 色偷偷av亚洲男人的天堂| 韩国女主播一区二区| 日本一区二区三区视频免费看| 性色一区二区三区| 97伦伦午夜电影理伦片| 在线中文字幕一区| 91网在线播放| 国产乱人伦真实精品视频| 99久久99视频只有精品| 男人添女人下面免费视频| 国产精品三级视频| 一本色道久久综合熟妇| 免费av一区二区| 日韩成人久久| 人妻av中文系列| 91在线精品一区二区三区| 亚洲 欧美 中文字幕| 一本色道久久综合亚洲精品小说 | 欧美日韩成人一区二区| 欧洲不卡视频| 99久久久精品免费观看国产| 亚洲大胆av| 国产精品亚洲无码| 欧美日韩高清一区二区三区| 好吊日视频在线观看| 99国产在线视频| 亚洲女优在线| 国产传媒视频在线| 日韩视频在线一区二区| 1024在线看片你懂得| 欧美下载看逼逼| 激情小说亚洲一区| 国产午夜免费视频| 亚洲欧美国产视频| 国产精久久一区二区| 和岳每晚弄的高潮嗷嗷叫视频| 26uuu亚洲婷婷狠狠天堂| 中文字幕一区2区3区| 欧美风情在线观看| 亚洲调教一区| 日韩视频在线观看一区二区三区| 亚洲一区二区视频| 可以在线观看的av| 91文字幕巨乱亚洲香蕉| 亚洲永久免费| 女同久久另类69精品国产| 亚洲国产精品小视频| 懂色aⅴ精品一区二区三区| 国产精品国产三级国产专区51| 91蜜桃免费观看视频| 国产美女永久免费| 91精品国产91久久| 91超碰成人| 干b视频在线观看| 精品久久久久久久一区二区蜜臀| 中文字幕人成乱码在线观看| 粉嫩av一区二区三区天美传媒| 91亚洲国产成人精品一区二三| 在线免费看毛片| 97视频在线免费观看| 伊人久久大香线| 免费看黄色三级| 亚洲精品第一页| 中文在线综合|