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

C# 下的LLamaSharp: 高效的本地LLM推理庫,自己寫GPT

人工智能
為了獲得高性能,LLamaSharp 與從 C++ 編譯的本地庫交互,這些庫稱為 backends。我們為 Windows、Linux 和 Mac 提供了 CPU、CUDA、Metal 和 OpenCL 的后端包。您不需要編譯任何 C++ 代碼,只需安裝后端包即可。

LLamaSharp 是一個跨平臺庫,用于在本地設備上運行 LLaMA/LLaVA 模型(以及其他模型)?;?llama.cpp,LLamaSharp 在 CPU 和 GPU 上的推理都非常高效。通過高級 API 和 RAG 支持,您可以方便地在應用程序中部署大型語言模型(LLM)。

GitHub 地址

https://github.com/SciSharp/LLamaSharp

圖片圖片

下載代碼:

git clone https://github.com/SciSharp/LLamaSharp.git

快速開始

安裝

為了獲得高性能,LLamaSharp 與從 C++ 編譯的本地庫交互,這些庫稱為 backends。我們為 Windows、Linux 和 Mac 提供了 CPU、CUDA、Metal 和 OpenCL 的后端包。您不需要編譯任何 C++ 代碼,只需安裝后端包即可。

安裝 LLamaSharp 包:

PM> Install-Package LLamaSharp

圖片圖片

安裝一個或多個后端包,或使用自編譯的后端:

  • LLamaSharp.Backend.Cpu: 適用于 Windows、Linux 和 Mac 的純 CPU 后端。支持 Mac 的 Metal (GPU)。
  • LLamaSharp.Backend.Cuda11: 適用于 Windows 和 Linux 的 CUDA 11 后端。
  • LLamaSharp.Backend.Cuda12: 適用于 Windows 和 Linux 的 CUDA 12 后端。
  • LLamaSharp.Backend.OpenCL: 適用于 Windows 和 Linux 的 OpenCL 后端。

(可選)對于 Microsoft semantic-kernel 集成,安裝 LLamaSharp.semantic-kernel 包。

(可選)要啟用 RAG 支持,安裝 LLamaSharp.kernel-memory 包(該包僅支持 net6.0 或更高版本),該包基于 Microsoft kernel-memory 集成。

模型準備

LLamaSharp 使用 GGUF 格式的模型文件,可以從 PyTorch 格式(.pth)和 Huggingface 格式(.bin)轉換而來。獲取 GGUF 文件有兩種方式:

  1. 在 Huggingface 搜索模型名稱 + 'gguf',找到已經轉換好的模型文件。
  2. 自行將 PyTorch 或 Huggingface 格式轉換為 GGUF 格式。請按照 llama.cpp readme 中的說明使用 Python 腳本進行轉換。

一般來說,我們推薦下載帶有量化的模型,因為它顯著減少了所需的內存大小,同時對生成質量的影響很小。

簡單對話

LLamaSharp 提供了一個簡單的控制臺演示,展示了如何使用該庫進行推理。以下是一個基本示例:

圖片圖片

using LLama.Common;
using LLama;


namespace appLLama
{
    internal class Program
    {
        static void Main(string[] args)
        {
            Chart();
        }


        static async Task Chart()
        {
            string modelPath = @"E:\Models\llama-2-7b-chat.Q4_K_M.gguf"; // change it to your own model path.


            var parameters = new ModelParams(modelPath)
            {
                ContextSize = 1024, // The longest length of chat as memory.
                GpuLayerCount = 5 // How many layers to offload to GPU. Please adjust it according to your GPU memory.
            };
            using var model = LLamaWeights.LoadFromFile(parameters);
            using var context = model.CreateContext(parameters);
            var executor = new InteractiveExecutor(context);


            // Add chat histories as prompt to tell AI how to act.
            var chatHistory = new ChatHistory();
            chatHistory.AddMessage(AuthorRole.System, "Transcript of a dialog, where the User interacts with an Assistant named Bob. Bob is helpful, kind, honest, good at writing, and never fails to answer the User's requests immediately and with precision.");
            chatHistory.AddMessage(AuthorRole.User, "Hello, Bob.");
            chatHistory.AddMessage(AuthorRole.Assistant, "Hello. How may I help you today?");


            ChatSession session = new(executor, chatHistory);


            InferenceParams inferenceParams = new InferenceParams()
            {
                MaxTokens = 256, // No more than 256 tokens should appear in answer. Remove it if antiprompt is enough for control.
                AntiPrompts = new List<string> { "User:" } // Stop generation once antiprompts appear.
            };


            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.Write("The chat session has started.\nUser: ");
            Console.ForegroundColor = ConsoleColor.Green;
            string userInput = Console.ReadLine() ?? "";


            while (userInput != "exit")
            {
                await foreach ( // Generate the response streamingly.
                    var text
                    in session.ChatAsync(
                        new ChatHistory.Message(AuthorRole.User, userInput),
                        inferenceParams))
                {
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.Write(text);
                }
                Console.ForegroundColor = ConsoleColor.Green;
                userInput = Console.ReadLine() ?? "";
            }
        }
    }
}
  1. 模型路徑與參數設置:指定模型路徑,以及上下文的大小和 GPU 層的數量。
  2. 加載模型并創建上下文:從文件中加載模型,并使用參數初始化上下文。
  3. 執行器與對話歷史記錄:定義一個 InteractiveExecutor,并設置初始的對話歷史,包括系統消息和用戶與助手的初始對話。
  4. 會話與推理參數:建立對話會話 ChatSession,設置推理參數,包括最大 token 數和反提示語。
  5. 用戶輸入與生成回復:開始聊天會話并處理用戶輸入,使用異步方法流式地生成助手的回復,并根據反提示語停止生成。

圖片圖片

你會發現中文支持不太好,即使用了千問的量化庫。

中文處理官方例子

我這換成了千問的庫:

using LLama.Common;
using LLama;
using System.Text;


namespace appLLama
{
    internal class Program
    {
        static void Main(string[] args)
        {
            // Register provider for GB2312 encoding
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
            Run();
        }


        private static string ConvertEncoding(string input, Encoding original, Encoding target)
        {
            byte[] bytes = original.GetBytes(input);
            var convertedBytes = Encoding.Convert(original, target, bytes);
            return target.GetString(convertedBytes);
        }


        public static async Task Run()
        {
            // Register provider for GB2312 encoding
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);


            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("This example shows how to use Chinese with gb2312 encoding, which is common in windows. It's recommended" +
                " to use https://huggingface.co/hfl/chinese-alpaca-2-7b-gguf/blob/main/ggml-model-q5_0.gguf, which has been verified by LLamaSharp developers.");
            Console.ForegroundColor = ConsoleColor.White;


            string modelPath = @"E:\LMModels\ay\Repository\qwen1_5-7b-chat-q8_0.gguf";// @"E:\Models\llama-2-7b-chat.Q4_K_M.gguf";


            var parameters = new ModelParams(modelPath)
            {
                ContextSize = 1024,
                Seed = 1337,
                GpuLayerCount = 5,
                Encoding = Encoding.UTF8
            };
            using var model = LLamaWeights.LoadFromFile(parameters);
            using var context = model.CreateContext(parameters);
            var executor = new InteractiveExecutor(context);


            ChatSession session;
            ChatHistory chatHistory = new ChatHistory();


            session = new ChatSession(executor, chatHistory);


            session
                .WithHistoryTransform(new LLamaTransforms.DefaultHistoryTransform());


            InferenceParams inferenceParams = new InferenceParams()
            {
                Temperature = 0.9f,
                AntiPrompts = new List<string> { "用戶:" }
            };


            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("The chat session has started.");


            // show the prompt
            Console.ForegroundColor = ConsoleColor.White;
            Console.Write("用戶:");
            Console.ForegroundColor = ConsoleColor.Green;
            string userInput = Console.ReadLine() ?? "";


            while (userInput != "exit")
            {
                // Convert the encoding from gb2312 to utf8 for the language model
                // and later saving to the history json file.
                userInput = ConvertEncoding(userInput, Encoding.GetEncoding("gb2312"), Encoding.UTF8);


                if (userInput == "save")
                {
                    session.SaveSession("chat-with-kunkun-chinese");
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("Session saved.");
                }
                else if (userInput == "regenerate")
                {
                    Console.ForegroundColor = ConsoleColor.Yellow;
                    Console.WriteLine("Regenerating last response ...");


                    await foreach (
                        var text
                        in session.RegenerateAssistantMessageAsync(
                            inferenceParams))
                    {
                        Console.ForegroundColor = ConsoleColor.White;


                        // Convert the encoding from utf8 to gb2312 for the console output.
                        Console.Write(ConvertEncoding(text, Encoding.UTF8, Encoding.GetEncoding("gb2312")));
                    }
                }
                else
                {
                    await foreach (
                        var text
                        in session.ChatAsync(
                            new ChatHistory.Message(AuthorRole.User, userInput),
                            inferenceParams))
                    {
                        Console.ForegroundColor = ConsoleColor.White;
                        Console.Write(text);
                    }
                }


                Console.ForegroundColor = ConsoleColor.Green;
                userInput = Console.ReadLine() ?? "";


                Console.ForegroundColor = ConsoleColor.White;
            }
        }
    }
}

圖片圖片

Winform寫 一個簡單例子

圖片圖片

Chat類:

public class Chat
{
    ChatSession session;




    InferenceParams inferenceParams = new InferenceParams()
        {
            Temperature = 0.9f,
            AntiPrompts = new List<string> { "用戶:" }
        };


    private  string ConvertEncoding(string input, Encoding original, Encoding target)
        {
            byte[] bytes = original.GetBytes(input);
            var convertedBytes = Encoding.Convert(original, target, bytes);
            return target.GetString(convertedBytes);
        }


    public void Init()
        {
            // Register provider for GB2312 encoding
            Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);


            Console.ForegroundColor = ConsoleColor.Yellow;
            Console.WriteLine("This example shows how to use Chinese with gb2312 encoding, which is common in windows. It's recommended" +
                " to use https://huggingface.co/hfl/chinese-alpaca-2-7b-gguf/blob/main/ggml-model-q5_0.gguf, which has been verified by LLamaSharp developers.");
            Console.ForegroundColor = ConsoleColor.White;


            string modelPath = @"E:\LMModels\ay\Repository\qwen1_5-7b-chat-q8_0.gguf";// @"E:\Models\llama-2-7b-chat.Q4_K_M.gguf";


            var parameters = new ModelParams(modelPath)
            {
                ContextSize = 1024,
                Seed = 1337,
                GpuLayerCount = 5,
                Encoding = Encoding.UTF8
            };


            var model = LLamaWeights.LoadFromFile(parameters);
            var context = model.CreateContext(parameters);
            var executor = new InteractiveExecutor(context);
            var chatHistory = new ChatHistory();
            session = new ChatSession(executor, chatHistory);
            session
                .WithHistoryTransform(new LLamaTransforms.DefaultHistoryTransform());
        }


    public async Task Run(string userInput,Action<string> callback)
        {
            while (userInput != "exit")
            {
                userInput = ConvertEncoding(userInput, Encoding.GetEncoding("gb2312"), Encoding.UTF8);


                if (userInput == "save")
                {
                    session.SaveSession("chat-with-kunkun-chinese");


                }
                else if (userInput == "regenerate")
                {
                    await foreach (
                        var text
                        in session.RegenerateAssistantMessageAsync(
                            inferenceParams))
                    {
                        callback(ConvertEncoding(text, Encoding.UTF8, Encoding.GetEncoding("gb2312")));
                    }
                }
                else
                {
                    await foreach (
                        var text
                        in session.ChatAsync(
                            new ChatHistory.Message(AuthorRole.User, userInput),
                            inferenceParams))
                    {
                        callback(text);
                    }
                }


                userInput = "";
            }
        }
}

Form1界面事件:

public partial class Form1 : Form
{
    Chat chat = new Chat();
    public Form1()
    {
        InitializeComponent();
        Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
        chat.Init();
    }


    private  void btnSend_Click(object sender, EventArgs e)
    {
        var call = new Action<string>(x =>
        {
            this.Invoke(() =>
            {
                txtLog.AppendText(x);
            });
        });
        //chat.Run(txtMsg.Text, call);


        Task.Run(() =>
        {
            chat.Run(txtMsg.Text, call);
        });


    }
}

更新例子可以去官網上看,寫的比較專業。

https://scisharp.github.io/LLamaSharp/0.13.0/

責任編輯:武曉燕 來源: 技術老小子
相關推薦

2024-08-13 08:23:43

LLamaSharpLLM推理庫

2024-03-25 14:22:07

大型語言模型GaLore

2025-10-10 02:00:00

2024-12-27 09:08:25

2025-02-25 10:21:15

2023-11-30 15:56:54

大型語言模型人工智能

2011-11-21 14:10:53

C#

2011-07-06 09:46:56

C#

2024-02-26 07:43:10

大語言模型LLM推理框架

2009-08-07 16:19:00

C#下數據庫編程

2009-08-07 16:19:00

C#下數據庫編程

2025-04-24 10:26:40

2023-05-09 06:54:34

2009-07-31 16:45:23

ASP.NET數據庫操

2024-03-12 10:05:47

大型語言模型

2025-06-11 02:30:00

2023-05-30 14:17:00

模型推理

2025-07-08 08:38:09

推理錨點LLM大模型

2011-02-23 08:50:22

C#.NETdynamic

2025-08-11 07:00:00

點贊
收藏

51CTO技術棧公眾號

亚洲综合色婷婷| 日本怡春院一区二区| 精品成a人在线观看| 一本大道东京热无码aⅴ| 国产suv一区二区| 国内精品久久久久久久影视麻豆 | 无码无遮挡又大又爽又黄的视频| 欧美日韩国产综合视频| 日本不卡不码高清免费观看 | tube8在线hd| 91美女片黄在线观看| 国产一区二区香蕉| 国产成人亚洲精品自产在线| 久久久久蜜桃| 亚洲桃花岛网站| 国产婷婷在线观看| 欧美另类激情| 欧美色视频日本版| 91国在线高清视频| 福利在线播放| av激情亚洲男人天堂| 成人啪啪免费看| 国产精品欧美综合| 亚洲人人精品| 欧美成人h版在线观看| 久久久久久久久久久久久久久| 亚洲高清999| 欧美日韩成人在线一区| 无码aⅴ精品一区二区三区浪潮 | 久久久男人的天堂| 久久91视频| 色哟哟日韩精品| 日韩av高清在线看片| 特级毛片在线| 亚洲色图欧美在线| 亚洲一区二区三区色| 国产精品久久久久久久龚玥菲 | 欧美一区二区三区在线看 | 国产一区二区精品久久91| 亚洲一区二区三区视频在线播放 | 91人人爽人人爽人人精88v| 欧美一区二区激情视频| 欧美freesex交免费视频| 这里只有精品在线播放| 国产美女免费无遮挡| 欧美自拍一区| 精品国产伦理网| 极品人妻一区二区| 精品一区二区三区免费看| 欧美日韩日本视频| 亚洲高清免费在线观看| 草莓视频成人appios| 91久久久免费一区二区| 国产成人久久婷婷精品流白浆| 牛牛精品一区二区| 亚洲va韩国va欧美va| 国产成人生活片| 欧美aa免费在线| 国模冰冰炮一区二区| 亚洲免费在线观看视频| 天堂资源在线亚洲资源| 污污网站免费在线观看| 成人毛片老司机大片| 成人欧美一区二区三区黑人免费| 99在线观看精品视频| 国产一区三区三区| 91免费看蜜桃| 精品人妻一区二区三区蜜桃| 国产麻豆欧美日韩一区| 欧美网站大全在线观看| 男女激情免费视频| 四虎av在线| 亚洲综合视频在线观看| 久操网在线观看| 精品众筹模特私拍视频| 亚洲国产精品久久久久婷婷884| 美女黄色免费看| 欧美freesex黑人又粗又大| 欧美性xxxx在线播放| 日韩av播放器| 欧美综合影院| 日韩欧美综合在线| 日韩www视频| 国产精品探花在线观看| 日日噜噜噜夜夜爽亚洲精品 | 中文在线观看免费高清| 日本一不卡视频| 成人免费午夜电影| 亚洲精品久久久久久久久久久久久久| 99久久久免费精品国产一区二区| 日本中文不卡| 免费av网站在线观看| 亚洲综合无码一区二区| 免费在线观看毛片网站| **精品中文字幕一区二区三区| 日韩欧美在线不卡| 中文字幕一区二区三区人妻不卡| 久久亚洲国产| 97超碰国产精品女人人人爽| 伊人成人在线观看| 成人精品国产福利| 一本一道久久a久久综合精品| av香蕉成人| 在线国产亚洲欧美| 动漫av在线免费观看| 欧美综合视频| 午夜精品一区二区三区在线视频 | 国产精品av免费| 狠狠操一区二区三区| 欧美三级欧美一级| 久久人妻少妇嫩草av无码专区| 日韩电影免费网址| 91国语精品自产拍在线观看性色 | 久久久精品国产| 久久黄色精品视频| 国产成人午夜电影网| 神马影院一区二区三区| 阿v视频在线观看| 91精品国产美女浴室洗澡无遮挡| 精品国产无码在线观看| 韩国一区二区三区在线观看| 91精品久久久久久| 国产在线资源| 欧美视频不卡中文| 少妇精品无码一区二区三区| 希岛爱理一区二区三区| 国产精品久久久久久久久男 | av在线com| 99精品女人在线观看免费视频| 在线视频亚洲欧美| 九九热精品视频在线| caoporn国产精品| youjizz.com在线观看| 久久视频社区| 欧美成人精品在线视频| 99热这里只有精品99| 中文字幕欧美一| 日韩av卡一卡二| 欧美色女视频| 国产精品男人爽免费视频1| 三级毛片在线免费看| 欧美日韩在线视频一区二区| 亚洲欧美日韩偷拍| 极品少妇一区二区三区| 成人3d动漫一区二区三区91| 免费男女羞羞的视频网站在线观看 | 警花观音坐莲激情销魂小说| 国产精品久久久久77777丨| 亚洲夜晚福利在线观看| 人妻中文字幕一区二区三区| 中文字幕免费在线观看视频一区| 在线观看的毛片| 欧美jizz| 亚洲自拍在线观看| 国产乱妇乱子在线播视频播放网站| 欧美videos中文字幕| 久操视频免费在线观看| 成a人片亚洲日本久久| 少妇高潮喷水在线观看| 亚洲成aⅴ人片久久青草影院| 欧美专区福利在线| 大地资源中文在线观看免费版| 欧美视频一二三区| www日韩在线| 国产成人av影院| 久久国产精品网| 久久99国内| 国产欧美一区二区白浆黑人| 高清免费电影在线观看| 精品国产亚洲一区二区三区在线观看| 久久久久久久伊人| 久久伊99综合婷婷久久伊| 国产精品涩涩涩视频网站| 97视频热人人精品免费| 999在线观看免费大全电视剧| a√中文在线观看| 国产亚洲欧美一区| av男人天堂av| 调教+趴+乳夹+国产+精品| 99久久久无码国产精品衣服| 精品一区二区三区影院在线午夜| 成人区一区二区| 亚洲小说图片视频| 91久久精品一区| 密臀av在线播放| 日韩一区二区三区xxxx| 男人的天堂a在线| 欧美制服丝袜第一页| 欧美黄色一区二区三区| 99久久精品国产导航| 亚洲一级免费在线观看| 亚洲激情午夜| 制服诱惑一区| 日韩成人一级| 亚洲www永久成人夜色| 激情黄产视频在线免费观看| 中文字幕亚洲综合久久筱田步美| 日韩在线视频免费| 欧美高清性hdvideosex| 久久国产黄色片| 亚洲久本草在线中文字幕| 国产艳俗歌舞表演hd| 国产一本一道久久香蕉| 可以免费在线看黄的网站| 欧美日韩国产高清| 亚洲日本理论电影| 天海翼精品一区二区三区| 91香蕉亚洲精品| 无人区在线高清完整免费版 一区二| 免费不卡在线观看av| 国产一级片在线| 亚洲国产精品久久久| 国产免费无遮挡| 欧美中文字幕一二三区视频| 久久夜靖品2区| 一区二区三区欧美激情| 大胸美女被爆操| 久久众筹精品私拍模特| 又黄又色的网站| 国产麻豆91精品| 羞羞的视频在线| 美女精品一区| 自拍日韩亚洲一区在线| 国产精品jizz在线观看美国| 正在播放久久| 93在线视频精品免费观看| 日本一区二区三区视频在线播放 | 五月天在线免费视频| 欧美午夜精品一区二区三区电影| 久久精品日韩| 秋霞综合在线视频| 国严精品久久久久久亚洲影视| 日韩有吗在线观看| 亚洲资源在线看| 国产一区二区三区视频在线| 国产日韩在线看| 先锋影音网一区二区| 国产精品一区二区久久| 日韩av电影资源网| 国产精品久久久久久久久| 欧美成人a交片免费看| 日韩av免费网站| 成人香蕉视频| 国产成人在线播放| 欧美日韩五区| 国产精品中文在线| 羞羞视频在线观看一区二区| 91麻豆国产精品| 成人在线视频www| 91高跟黑色丝袜呻吟在线观看| 国产成人久久精品一区二区三区| 91免费的视频在线播放| 亚洲图色一区二区三区| 国产传媒一区二区| 噜噜噜天天躁狠狠躁夜夜精品| 久久99精品国产一区二区三区| 天堂俺去俺来也www久久婷婷| 久久伊人一区二区| 国产探花在线精品| 亚洲欧美日韩精品在线| 91日韩免费| 香港三级日本三级a视频| 精品成人一区| 国产成人黄色片| 免费国产亚洲视频| 国产毛片久久久久久| 国产suv精品一区二区883| 国产精品扒开腿做爽爽爽a片唱戏 亚洲av成人精品一区二区三区 | 欧美精品久久久久久久久46p| 久久九九久久九九| 日韩在线视频免费看| 一区二区在线观看视频| 日韩aaaaaa| 欧洲一区二区av| 国产欧美久久久精品免费| 亚洲成人激情在线| 国内精品一区视频| 久久国产精品电影| 欧美三级网站| 91精品视频在线免费观看| 99国产精品久久一区二区三区| 欧美成ee人免费视频| 日韩视频在线观看| 精品人妻大屁股白浆无码| 老牛影视一区二区三区| 一卡二卡三卡四卡五卡| 99re成人精品视频| 性少妇xx生活| 精品成人乱色一区二区| 国产一区二区在线播放视频| 亚洲国产成人一区| 一级毛片视频在线| 91sa在线看| 国产亚洲字幕| 天堂av一区二区| 日韩一级网站| 天美一区二区三区| 久久久不卡影院| 激情五月婷婷在线| 欧美日韩小视频| 五月天激情开心网| 久久福利网址导航| 91精品国产66| 久久66热这里只有精品| 一区二区不卡| 波多野结衣天堂| 99视频有精品| 欧美爱爱小视频| 欧美日韩一区三区四区| 亚洲欧洲综合在线| 欧美激情第6页| 四虎在线精品| 婷婷久久伊人| 国产亚洲精品自拍| 亚洲美女精品视频| 亚洲欧美日韩一区| 伊人免费在线观看| 亚洲美腿欧美激情另类| 国产盗摄一区二区| 亚洲综合国产精品| 欧美jizz| 911福利视频| 国产精品视频看| 91黑人精品一区二区三区| 亚洲精品suv精品一区二区| 18在线观看的| 亚洲资源在线看| 亚洲精品电影| www.色就是色.com| 国产精品丝袜久久久久久app| 亚洲影院在线播放| 日韩电影网在线| 国产美女高潮在线观看| 成人欧美一区二区三区视频xxx| 亚洲精品tv久久久久久久久久| 手机免费看av网站| 国产精品久久久爽爽爽麻豆色哟哟| 免费看日批视频| 亚洲美女动态图120秒| 松下纱荣子在线观看| 精品国产一区二区三| 亚洲电影av| 精品1卡二卡三卡四卡老狼| 亚洲午夜av在线| 欧美一区,二区| 国产制服91一区二区三区制服| 亚洲自啪免费| 国产又粗又长又爽| 精品久久久久久久久久| 天堂av手机版| 668精品在线视频| 首页亚洲中字| 毛葺葺老太做受视频| 国产精品丝袜久久久久久app| 一本大道伊人av久久综合| 色噜噜狠狠狠综合曰曰曰| 在线播放成人| 99re6这里有精品热视频| 成人午夜视频在线| 国产微拍精品一区| 亚洲天堂男人天堂| 久久女人天堂| 国内外成人激情免费视频| 成人一区二区三区视频在线观看| 久久精品国产亚洲av无码娇色| 亚洲精品国产精品国产自| 欧美电影免费观看网站| 亚洲福利av| 国产精品一卡二卡| 日本三级中文字幕| 亚洲欧美日韩高清| 国产成人视屏| 欧美精品久久久久久久免费| 国产欧美日韩卡一| 国产精品欧美久久久久天天影视| 色综合久久久888| 日韩超碰人人爽人人做人人添| 日韩av手机版| 亚洲最大成人网4388xx| 男人的天堂在线免费视频| 成人黄色av网站| 亚洲清纯自拍| 日韩在线观看免| 亚洲国产精品字幕| 欧美成人免费全部网站| av在线com| 国产精品剧情在线亚洲| 亚洲精品久久久久久动漫器材一区| 国产91在线播放| 欧美激情偷拍| 天天舔天天操天天干| 精品日本一线二线三线不卡| 户外露出一区二区三区| 4444在线观看| 国产欧美1区2区3区| 草草视频在线播放| 国产精品国产三级国产aⅴ9色| 欧美日韩三级电影在线| 2019男人天堂| 日韩av在线免费看|