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

利用Spring Boot以及Spring AI構(gòu)建生成式人工智能應用

人工智能
使用 Spring AI 與各種聊天模型進行集成非常簡單 - 本篇文章展示了一個 Open AI 的集成。然而,對于 Gen AI 或者幾乎任何技術來說,首先至少要熟悉基本概念是非常重要的。然后,嘗試理解如何進行通訊的魔法,最后再開始編寫“生產(chǎn)”代碼。

Spring AI,作為行業(yè)領導者,通過其強大、靈活的API和先進的功能,為各種行業(yè)提供了顛覆性的解決方案。在本專題中,我們將深入探討Spring AI在各領域的應用示例,每個案例都將展示Spring AI如何滿足特定需求,實現(xiàn)目標,并將這些LESSONS LEARNED擴展到更廣泛的應用。希望這個專題能對你有所啟發(fā),更深入地理解和利用Spring AI的無限可能。

Spring框架在軟件開發(fā)領域已經(jīng)有超過20年的歷史,自Spring Boot 1.0版本發(fā)布以來已有10年。現(xiàn)在,無人會質(zhì)疑,Spring創(chuàng)造了一種獨特的風格,使開發(fā)者從重復任務中解放出來,專注于提供業(yè)務價值。隨著時間的推移,Spring的技術深度不斷增強,涵蓋了廣泛的開發(fā)領域和技術。另一方面,隨著更多的專用解決方案得到嘗試,概念的驗證被創(chuàng)建,并最終在項目的保護下得到推廣,其技術廣度不斷擴大。

Spring AI 項目就是一個實例,根據(jù)其參考文檔,該項目旨在簡化當生成式人工智能層需要被引入應用時的開發(fā)過程。開發(fā)者再次從重復任務中解放出來,可以直接通過簡單的接口與預先訓練的模型(包含實際處理算法)進行交互。

通過直接或者通過 Spring AI 以編程方式與生成式預訓練的轉(zhuǎn)換器(GPTs)交互,用戶(開發(fā)者)不需要擁有廣泛的機器學習知識。但作為一名工程師,我強烈認為,即使這些開發(fā)者工具可以方便快捷地使用并產(chǎn)生結(jié)果,我建議我們需要克制自己,警覺觀察,嘗試首先理解基本概念。此外,通過遵循這條路徑,產(chǎn)出的結(jié)果可能會更有價值。

目的

本文介紹了如何將 Spring AI 集成到Spring Boot應用,與OpenAI進行編程交互。我們假定prompt設計一般來說是一種最先進的活動。因此,在實驗過程中使用的prompt非常有教導性,但應用性不大。此處的重點是通訊接口,即 Spring AI API。

實施前

首先要明確自身使用GPT解決方案的理由,除了希望提供更好的質(zhì)量,節(jié)省時間和降低成本。

生成式人工智能據(jù)說擅長執(zhí)行大量耗時的任務,速度更快,效率更高,生成結(jié)果。此外,如果這些結(jié)果進一步經(jīng)過經(jīng)驗豐富且智慧的人類驗證,獲得有用結(jié)果的可能性會增加。

接下來,應抵制立即跳入實施的誘惑,至少要花一些時間熟悉一下一般概念。對生成式人工智能概念的深入探索遠遠超出了本文的范圍。然而,出現(xiàn)在交互中的“主要角色”在下面簡要概述。

舞臺 - 生成式人工智能是人工智能的一部分
輸入 - 提供的數(shù)據(jù)(輸入)
輸出 - 計算結(jié)果(輸出)
大型語言模型(LLM)- 根據(jù)解釋的輸入產(chǎn)生輸出的微調(diào)算法
提示詞- 一種最先進的接口,通過它將輸入傳入模型
提示詞模板 - 允許構(gòu)造結(jié)構(gòu)化參數(shù)化提示的組件
令牌 - 算法在內(nèi)部將輸入轉(zhuǎn)換為令牌,然后使用這些令牌來編譯結(jié)果,并最終從中構(gòu)造輸出
模型的環(huán)境窗口 - 模型限制每次調(diào)用的令牌數(shù)量的閾值(通常,使用的令牌越多,操作就越昂貴)

最后,可以開始實施,但隨著實施的進行,建議回顧和優(yōu)化前兩個步驟。

提示詞

在本次練習中,我們請求如下:

Write {count = three} reasons why people in {location = Romania} should consider a {job = software architect} job. 
These reasons need to be short, so they fit on a poster. 
For instance, "{job} jobs are rewarding."

上面內(nèi)容代表了提示詞模板。按照建議,應作為提示詞的一部分提供清晰的主題,清晰的任務含義以及額外的有用信息,以提高結(jié)果的準確性。

提示詞包含三個參數(shù)

count - 希望作為輸出的原因數(shù)量
job - 感興趣的領域或工作
location - 工作申請者所在的國家,城鎮(zhèn),地區(qū)等

概念驗證

在這篇文章中,簡單的概念驗證目標如下:

將 Spring AI 集成到Spring Boot應用程序并使用它
允許客戶端通過應用程序與 Open AI 進行通信
客戶端向應用程序發(fā)出參數(shù)化的HTTP請求
應用程序使用一個提示詞來創(chuàng)建輸入,發(fā)送給 Open AI 并獲取輸出
應用程序?qū)㈨憫l(fā)送給客戶端

圖片圖片

項目設置

Java 21
Maven 3.9.2
Spring Boot – v. 3.2.2
Spring AI – v. 0.8.0-SNAPSHOT (仍在開發(fā),實驗性)

代碼實現(xiàn)

Spring AI 集成

通常,這是一個基本步驟,不一定值得一提。然而,因為 Spring AI 目前以快照形式發(fā)布,為了能夠集成 Open AI 自動配置依賴,你需要添加一個引用到 Spring 快照倉庫。

<repositories>
    <repository>
        <id>spring-milestones</id>
        <name>Spring Milestones</name>
        <url>https://repo.spring.io/milestone</url>
        <snapshots>
            <enabled>false</enabled>
        </snapshots>
    </repository>
    <repository>
        <id>spring-snapshots</id>
        <name>Spring Snapshots</name>
        <url>https://repo.spring.io/snapshot</url>
        <releases>
            <enabled>false</enabled>
        </releases>
    </repository>
</repositories>

下一步是添加 spring-ai-openai-spring-boot-starter Maven 依賴項。

<dependency>
    <groupId>org.springframework.ai</groupId>
    <artifactId>spring-ai-openai-spring-boot-starter</artifactId>
    <version>0.8.0-SNAPSHOT</version>
</dependency>

Open AI ChatClient 現(xiàn)在是應用程序類路徑的一部分。它是用來向 Open AI 發(fā)送輸入并獲取輸出的組件。

為了能夠連接到AI模型,需要在 application.properties 文件中設置 spring.ai.openai.api-key 屬性。

spring.ai.openai.api-key = api-key-value

它的值代表了用戶的有效API密鑰,用戶將通過此密鑰進行通信。通過訪問[資源2],可以注冊或登錄并生成一個。

客戶端 - Spring Boot應用程序通信

概念驗證的第一部分是客戶端應用程序(例如瀏覽器,curl等)與開發(fā)的應用程序之間的通信。這是通過一個 REST 控制器實現(xiàn)的,可以通過HTTP GET請求訪問。

URL路徑是 /job-reasons,還有之前在定義提示時概述的三個參數(shù),這將導致如下格式:

/job-reasons?count={count}&job={job}&locatinotallow={location}

和相應的控制器:

@RestController
public class OpenAiController {
 
    @GetMapping("/job-reasons")
    public ResponseEntity<String> jobReasons(@RequestParam(value = "count", required = false, defaultValue = "3") int count,
                                             @RequestParam("job") String job,
                                             @RequestParam("location") String location) {
        return ResponseEntity.ok().build();
    }
}

由于來自 Open AI 的響應將是一個字符串,因此控制器返回一個封裝了字符串的ResponseEntity。如果我們運行應用程序并發(fā)出請求,當前響應體部分沒有返回任何內(nèi)容。

客戶端 - Open AI 通信

Spring AI 目前主要關注處理語言并產(chǎn)生語言或數(shù)字的AI模型。在前一類別中, Open AI 模型的例子包括GPT4-openai或GPT3.5-openai。

為了與這些AI模型(實際上是指 Open AI 算法)進行交互, Spring AI 提供了一個統(tǒng)一的接口。

ChatClient接口目前支持文本輸入和輸出,并具有簡單的契約。

@FunctionalInterface
public interface ChatClient extends ModelClient<Prompt, ChatResponse> {
    default String call(String message) {
        Prompt prompt = new Prompt(new UserMessage(message));
        return call(prompt).getResult().getOutput().getContent();
    }
 
    ChatResponse call(Prompt prompt);
}

確實如此,功能接口的實際方法通常是被使用的方法。

在我們的概念驗證中,這正是我們所需要的,一種調(diào)用 Open AI 并發(fā)送目標參數(shù)化 Prompt 作為參數(shù)的方式。我們定義了以下的OpenAiService,在其中注入了一個 ChatClient 的實例。

@Service
public class OpenAiService {
 
    private final ChatClient client;
 
    public OpenAiService(OpenAiChatClient aiClient) {
        this.client = aiClient;
    }
     
    public String jobReasons(int count, String domain, String location) {
        final String promptText = """
                Write {count} reasons why people in {location} should consider a {job} job.
                These reasons need to be short, so they fit on a poster.
                For instance, "{job} jobs are rewarding."
                """;
 
        final PromptTemplate promptTemplate = new PromptTemplate(promptText);
        promptTemplate.add("count", count);
        promptTemplate.add("job", domain);
        promptTemplate.add("location", location);
 
        ChatResponse response = client.call(promptTemplate.create());
        return response.getResult().getOutput().getContent();
    }
}

如果應用程序正在運行,那么可以從瀏覽器執(zhí)行以下請求:

http://localhost:8080/gen-ai/job-reasons?count=3&job=software%20architect&locatinotallow=Romania

這下面的結(jié)果被檢索出來的結(jié)果:

利潤豐裕的職業(yè):軟件架構(gòu)師的工作提供了有競爭力的薪酬和出色的增長機會,確保在羅馬尼亞的財務穩(wěn)定和成功。
熱門職業(yè):隨著技術需求的持續(xù)增長,軟件架構(gòu)師在羅馬尼亞和全世界都備受追捧,提供了豐富的就業(yè)前景和就業(yè)保障。
創(chuàng)造性問題解決:軟件架構(gòu)師在設計和開發(fā)創(chuàng)新軟件解決方案中扮演著至關重要的角色,使他們可以釋放他們的創(chuàng)造力,并對各種行業(yè)產(chǎn)生重大影響。

這就是我們所期望的——一個簡易的接口,通過它,可以要求 Open AI GPT模型寫出一些原因,解釋為何在特定地點的特定工作具有吸引力。

調(diào)整和觀察

到目前為止,開發(fā)的簡單概念驗證主要使用了默認的配置。

ChatClient實例可以通過各種屬性根據(jù)所需需要來配置。雖然這超出了本文的范圍,但在這里舉兩個例子。

spring.ai.openai.chat.options.model 指定要使用的AI模型。默認為'gpt-35-turbo',但'gpt-4'和'gpt-4-32k'指定的是最新版本。雖然這些版本都是可用的,但你可能無法使用按使用量付費的計劃來訪問這些版本,但 Open AI 網(wǎng)站上有更多的信息可以幫助你了解如何適應它。

另一個值得一提的屬性是 spring.ai.openai.chat.options.temperature。根據(jù)參考文檔,采樣溫度控制了“回應的創(chuàng)新性”。據(jù)說,較高的值會讓輸出“更隨機”,而較低的值會“更專注和決定性”。默認值為0.8,如果我們將其降低到0.3,重啟應用并再次使用相同的請求參數(shù)詢問,下面的結(jié)果將被檢索出來。

有利可圖的職業(yè)機會:羅馬尼亞的軟件架構(gòu)師工作提供有競爭力的薪水和極好的成長前景,對于尋求財務穩(wěn)定和職業(yè)發(fā)展的個人來說,這是一個吸引人的職業(yè)選擇。
具有挑戰(zhàn)性和智能刺激的工作:作為一名軟件架構(gòu)師,你將負責設計和實現(xiàn)復雜的軟件系統(tǒng),解決復雜的技術問題,并與有才華的團隊合作。這個角色提供了持續(xù)的學習機會和在尖端技術上工作的機會。
高需求和工作保障:隨著對技術和數(shù)字化轉(zhuǎn)型的依賴增加,各行各業(yè)對熟練軟件架構(gòu)師的需求在上升。選擇在羅馬尼亞的軟件架構(gòu)師工作確保了工作安全和廣泛的就業(yè)選擇,無論是在本地還是國際上。

可以看出,這種情況下的輸出更具描述性。

最后一個考慮因素是與獲取的輸出的結(jié)構(gòu)相關的。擁有將實際接收的有效載荷映射到Java對象(例如,類或記錄)的能力將非常方便。截至目前,表示形式是文本形式,實現(xiàn)也是如此。輸出解析器可能實現(xiàn)這一點,類似于Spring JDBC的映射結(jié)構(gòu)。

在這個概念驗證中,我們使用了一個BeanOutputParser,它允許直接將結(jié)果反序列化到Java記錄中,如下所示:

public record JobReasons(String job,
                         String location,
                         List<String> reasons) {
}

通過將 {format} 作為提示文本的一部分,并將其作為指示提供給 AI 模型。

OpenAiService 方法變?yōu)椋?/span>

public JobReasons formattedJobReasons(int count, String job, String location) {
    final String promptText = """
            Write {count} reasons why people in {location} should consider a {job} job.
            These reasons need to be short, so they fit on a poster.
            For instance, "{job} jobs are rewarding."
            {format}
            """;
 
    BeanOutputParser<JobReasons> outputParser = new BeanOutputParser<>(JobReasons.class);
 
    final PromptTemplate promptTemplate = new PromptTemplate(promptText);
    promptTemplate.add("count", count);
    promptTemplate.add("job", job);
    promptTemplate.add("location", location);
 
    promptTemplate.add("format", outputParser.getFormat());
    promptTemplate.setOutputParser(outputParser);
 
    final Prompt prompt = promptTemplate.create();
 
    ChatResponse response = client.call(prompt);
    return outputParser.parse(response.getResult().getOutput().getContent());
}

再次調(diào)用時,輸出如下:

{
    "job":"software architect",
    "location":"Romania",
    "reasons":[
        "High demand",
        "Competitive salary",
        "Opportunities for growth"
    ]
}

格式符合預期,但解釋的原因似乎較少,這意味著需要進行額外的調(diào)整以達到更好的可用性。然而,從概念驗證的角度來看,這是可接受的,因為焦點是形式。

結(jié)論

提示設計是任務的重要部分 - 提示越清晰,輸入越好,輸出的質(zhì)量也就越高。

使用 Spring AI 與各種聊天模型進行集成非常簡單 - 本篇文章展示了一個 Open AI 的集成。

然而,對于 Gen AI 或者幾乎任何技術來說,首先至少要熟悉基本概念是非常重要的。然后,嘗試理解如何進行通訊的魔法,最后再開始編寫“生產(chǎn)”代碼。

最后但同樣重要的是,建議進一步探索 Spring AI API,以了解實現(xiàn)并隨著其不斷發(fā)展和改進保持最新狀態(tài)。


責任編輯:武曉燕 來源: 路條編程
相關推薦

2024-07-09 09:00:00

2025-03-31 09:30:52

2023-08-14 10:38:39

2023-12-25 22:27:38

2025-06-27 03:00:00

2024-02-28 08:00:00

人工智能Slackbot

2023-08-02 18:26:31

2023-05-05 14:02:59

人工智能聊天機器人

2025-02-12 08:07:39

2023-10-08 15:59:43

人工智能AI

2023-08-08 18:08:17

2023-12-11 16:34:35

人工智能GenAI精確編碼

2023-06-13 14:40:50

人工智能AI

2023-07-21 10:56:17

人工智能數(shù)據(jù)中心

2023-11-03 14:23:28

人工智能云技術

2024-05-10 09:38:01

人工智能

2023-11-07 10:20:22

人工智能AI

2022-02-26 19:05:01

AI人工智能機器學習

2023-08-29 11:36:49

2024-04-18 16:12:10

點贊
收藏

51CTO技術棧公眾號

精品在线一区二区三区| 伊人影院综合在线| 91超薄肉色丝袜交足高跟凉鞋| 少妇高潮一区二区三区99小说| 第一会所sis001亚洲| 一区二区欧美在线观看| 国产午夜精品全部视频在线播放| 国产乱人伦精品一区二区三区| 一级黄色在线观看| 日韩欧美影院| 亚洲综合免费观看高清完整版在线 | 欧美在线视频一区| 一级黄色大片儿| 成年人在线观看网站| 1769国产精品视频| 亚洲精品久久嫩草网站秘色| 国产日韩精品在线观看| 制服 丝袜 综合 日韩 欧美| √8天堂资源地址中文在线| 国产主播一区二区三区| 日韩中文有码在线视频| 美女一区二区三区视频| 久草在线网址| 天堂精品中文字幕在线| 亚洲人成欧美中文字幕| 999精品网站| 国产大片在线免费观看| 热久久国产精品| 上原亚衣av一区二区三区| 国产精品一区二区在线免费观看| 97成人超碰| 国产精品久久久久天堂| 成人h视频在线| 欧美日韩色视频| 欧洲大片精品免费永久看nba| 国产精品久99| 91精品网站| 国产无遮挡免费视频| 极品国产人妖chinesets亚洲人妖| 亚洲成人免费av| 欧美日韩国产三区| 亚洲熟妇av乱码在线观看| 亚洲成人免费| 亚洲精品一区二区三区影院| 欧美色图另类小说| 成人免费在线视频网| 北条麻妃一区二区三区| 伦伦影院午夜日韩欧美限制| 肉丝美足丝袜一区二区三区四| 午夜伦理在线视频| 成人小视频在线观看| 97在线视频免费播放| 香港三级日本三级| 国产一区二区精品调教| 亚洲免费在线视频一区 二区| 成人免费看片网址| 色一情一乱一伦| 99精品在线| 亚洲成av人片在线观看香蕉| 又色又爽又高潮免费视频国产| 中文字幕在线免费| 成人在线一区二区三区| 亚洲影院色在线观看免费| 日本一区二区免费在线观看| 欧美三级情趣内衣| 日韩一区二区三| 国产熟女高潮视频| 黄色网址在线免费观看| 99精品视频在线观看免费| 国产精品成久久久久三级| h色网站在线观看| 亚洲理论电影| 欧美男同性恋视频网站| 国产老熟妇精品观看| 理论片午午伦夜理片在线播放| av网站一区二区三区| 国产日韩欧美亚洲一区| 91精品国产乱码久久久久| 亚洲精品激情| yw.139尤物在线精品视频| 久久久久国产精品区片区无码| 婷婷精品久久久久久久久久不卡| 五月激情六月综合| 免费成人深夜夜行网站视频| 深夜福利视频在线免费观看| 国产电影一区在线| 国产极品精品在线观看| 日本一区二区网站| 久久亚洲图片| 91麻豆国产精品| 欧美三级网站在线观看| 亚洲综合电影一区二区三区| 九九热这里只有精品免费看| 国产真人真事毛片视频| 亚洲都市激情| 日韩中文字幕免费视频| 久久久久久久久久久久国产| 99久久夜色精品国产亚洲1000部| 欧美成年人视频网站| 亚洲aaa视频| 精品久久久久久久| 久久久精品免费视频| 我不卡一区二区| 成人性生交大片免费看96| 欧美久久一二三四区| 亚洲欧洲国产视频| av一区二区高清| 欧美极品美女电影一区| 老妇女50岁三级| 91九色精品| 69影院欧美专区视频| 日产欧产va高清| 美女一区二区三区在线观看| 国产精品高潮在线| 性猛交xxxx乱大交孕妇印度| 国产精品资源网站| 亚洲尤物视频网| 四虎电影院在线观看| 久久亚洲影视婷婷| 欧美国产综合视频| 中文在线手机av| 夜夜嗨av一区二区三区中文字幕| 国产乱子夫妻xx黑人xyx真爽 | 精品欧美一区二区三区| 成人一级生活片| 午夜小视频在线观看| 欧美视频自拍偷拍| 天天操狠狠操夜夜操| 欧美日韩卡一| 欧美一区永久视频免费观看| 深夜做爰性大片蜜桃| 日韩在线观看一区二区三区| 一本一本久久a久久精品牛牛影视 一本色道久久综合亚洲精品小说 一本色道久久综合狠狠躁篇怎么玩 | 99精品国产一区二区三区2021| 国产一区二区三区视频在线观看 | 黄a在线观看| 欧美中文字幕一区| www.精品在线| 制服丝袜日韩| 欧美在线性爱视频| 视频在线观看你懂的| 香蕉av福利精品导航| 久草青青在线观看| 奇米影视777在线欧美电影观看| 亚洲欧美在线磁力| 日韩av大片在线观看| 日韩电影在线免费观看| 国产免费一区二区三区在线观看| 国产乱码精品一区二三区蜜臂| 国产一区视频网站| 亚洲免费精品视频| 成人影音在线| 色国产精品一区在线观看| 免费成人黄色大片| 极品国产人妖chinesets亚洲人妖 激情亚洲另类图片区小说区 | 6080国产精品| 一区二区国产在线| 57pao国产精品一区| 自拍偷拍色综合| 久久嫩草精品久久久精品一| 黄色a级片免费| 欧美精品一区二区三区中文字幕| 国产精品国产三级国产专播精品人 | 国产精品亚洲第一| 日韩精品视频在线观看视频| 日韩美女在线看免费观看| 欧美猛男男办公室激情| 福利视频第一页| 国产在线精品不卡| 国产 欧美 日本| 视频福利一区| 国产精品视频1区| 人妻丰满熟妇av无码区hd| 国产女人aaa级久久久级| 欧美美女黄色网| 你懂得影院夜精品a| 在线观看国产精品淫| 国产又粗又猛又爽又黄的视频一| 亚洲乱码一区二区三区在线观看| 久久久久国产免费| 先锋影音国产一区| 国产又爽又黄ai换脸| 午夜日韩成人影院| 亚洲国产精品大全| 日韩在线播放中文字幕| 亚洲欧洲国产日韩| 国产熟人av一二三区| 国产精品久久久久蜜臀 | 日本午夜在线亚洲.国产| 国产女18毛片多18精品| 久久久99精品久久| 秋霞无码一区二区| 欧美少妇性xxxx| 2022国产精品| 欧美日韩激情电影| 欧美国产日产韩国视频| 国产一区二区女内射| 亚洲国产婷婷综合在线精品| 欧美高清精品一区二区| 一区二区日韩免费看| 国产精品国产三级欧美二区| 最新av在线播放| 亚洲男子天堂网| 丰满少妇xoxoxo视频| 国产精品久99| 中文乱码人妻一区二区三区视频| 久久精品国产亚洲一区二区三区| 日韩国产一区久久| 日韩免费va| 欧美激情第三页| 香蕉视频在线看| 欧美久久婷婷综合色| 五月婷婷色丁香| 久久综合狠狠综合久久激情| 中文字幕在线视频精品| 久久大逼视频| 日本午夜一区二区三区| 欧美va在线观看| 久久久久久91香蕉国产| 免费黄网站在线| 国产亚洲美女久久| 五月天激情婷婷| 色综合久久精品| 免费a级黄色片| 视频一区视频二区在线观看| www.日本三级| 91精品啪在线观看国产81旧版| 日本精品免费| 五月天亚洲一区| 国产精品一区二区三区不卡 | 亚洲精品白浆| 精品国产视频在线| 91网在线播放| 永久免费精品影视网站| 日本私人网站在线观看| 亚洲国产美女精品久久久久∴| 在线能看的av| 亚洲韩国精品一区| 草视频在线观看| 成人免费在线播放视频| 日本免费网站视频| 中文字幕二三区不卡| 国产精品999.| 精品制服美女丁香| 在线免费看v片| 韩国毛片一区二区三区| www插插插无码视频网站| 夜色77av精品影院| 久久青青草原一区二区| 日本午夜精品久久久久| 国产精品视频色| 欧洲亚洲精品| 91在线网站视频| 日本在线视频一区二区三区| 99re国产| 欧美日韩国产网站| 国产精品男人的天堂| 韩国精品视频在线观看 | 911亚洲精品| 国产精品久久久久久久久久久久午夜片| 最新国产一区二区| 国产三区精品| 国产99亚洲| 国产精品国产三级国产aⅴ浪潮| 亚洲成人不卡| 国产精品一区二区在线| 久久爱www.| 国产精品视频久久久久| 日韩毛片网站| av日韩免费电影| 欧美精品密入口播放| 欧洲成人一区二区| 天天做天天爱综合| 国产精品入口芒果| 视频一区欧美精品| 91国内在线播放| 成人av资源网站| 人妻aⅴ无码一区二区三区| 中文字幕在线一区| 伊人国产在线观看| 欧美在线|欧美| 精品区在线观看| 亚洲精品在线91| 亚洲免费视频网| 欧美嫩在线观看| 亚洲精品久久久久久久久久| 欧美乱妇15p| www.色亚洲| 亚洲性线免费观看视频成熟| 国产婷婷视频在线| 欧美亚洲一级片| 国产一区二区三区黄网站| 国产精品视频大全| 一区二区三区四区视频免费观看 | 98精品视频| 欧美一级二级三级| 91精品国产视频| 成人中文字幕在线播放| 激情视频一区| 特级西西人体www高清大胆| 鲁大师影院一区二区三区| 人人爽人人爽av| 久久久三级国产网站| 午夜爱爱毛片xxxx视频免费看| 日韩人体视频一二区| 国产后入清纯学生妹| 91麻豆精品国产91久久久 | 欧美一区二区综合| 一区二区日韩欧美| 少妇激情一区二区三区| 成人免费毛片嘿嘿连载视频| 999福利视频| 一本色道久久综合亚洲aⅴ蜜桃| 不卡视频在线播放| 最近中文字幕2019免费| 在线观看网站免费入口在线观看国内| 97色在线播放视频| 精品成人18| 杨幂一区欧美专区| 四虎国产精品免费观看| 三上悠亚久久精品| 国产成人精品免费一区二区| 精品国产乱码久久久久软件| 一女三黑人理论片在线| 成人免费毛片嘿嘿连载视频…| 欧洲精品在线视频| 一区二区网站| 精品日韩在线播放| 美女www一区二区| 波多野在线播放| 日韩欧美国产激情| 高潮毛片又色又爽免费| 色呦呦网站一区| 少妇av在线播放| 欧美精品激情在线观看| 久久免费精品| 日本xxxxx18| 激情综合色综合久久综合| 日韩欧美视频免费观看| 精品视频在线免费观看| 国产裸体永久免费无遮挡| 在线精品视频视频中文字幕| sis001欧美| 91色中文字幕| 亚洲久久久久| 午夜激情影院在线观看| 中文字幕人成不卡一区| 亚洲性生活大片| 色七七影院综合| 国产黄色一区| 一区二区三区我不卡| 伊人天天综合| 欧美双性人妖o0| 《视频一区视频二区| 中文字幕在线播放av| 精品久久久久久久久久久久久久久久久 | 91午夜在线播放| 欧美成人一品| 午夜精品久久久内射近拍高清 | 日韩有码一区二区三区| 国产亚洲精品熟女国产成人| 欧美三级欧美一级| 精品国产丝袜高跟鞋| 亚洲a级在线观看| 日韩一区二区免费看| 少妇大叫太粗太大爽一区二区| 在线亚洲精品福利网址导航| 午夜看片在线免费| 2019国产精品视频| 日韩香蕉视频| 精品无码人妻一区二区免费蜜桃| 欧美日韩一区视频| 日韩少妇视频| 日本不卡二区| 久久99精品久久久久| 亚洲国产精品成人无久久精品| 亚洲精品之草原avav久久| 欧美激情福利| 人人干视频在线| 国产欧美精品一区aⅴ影院| 国产丝袜视频在线观看| 97国产精品视频| 久久国产亚洲| 人妻无码视频一区二区三区| 国产精品三级电影| 亚洲精品人妻无码| 国产精品扒开腿做| 欧美福利影院| 国产sm调教视频| 日韩精品一区二区三区四区 | 色综合色综合色综合色综合| 一区二区三区精品| 国产九色在线| 国产伦精品一区二区三毛| 日本美女视频一区二区| 国产一级一片免费播放放a| 这里只有精品丝袜| 神马久久资源| 屁屁影院ccyy国产第一页| 国产午夜亚洲精品午夜鲁丝片|