99精品久久精品一区二区-亚洲熟妇无码?v在线播放-日本国产精品无码字幕在线观看-久久久亚洲永夜AV-亚洲一级无码一区二区一-免费国产成高清人在线视频-中文字幕乱码免费观看-国产毛片精品妇女久久久

ARTICLE DETAIL

資訊詳情

深耕商務建站與企業(yè)官網運營的一線實戰(zhàn)洞察。

從零搭建AI對話App:IDEA+Vue3+pnpm全流程實戰(zhàn)

從零搭建AI對話App:IDEA+Vue3+pnpm全流程實戰(zhàn) 最近在做AI對話App的項目原本以為所有工作量都會集中在模型調優(yōu)和對話體驗上真正動手才發(fā)現(xiàn)很多人第一步就卡在了“項目創(chuàng)建和運行”這里。倒不是說這一關有多難而是從空目錄到服務能本地跑起來的整個流程里藏著大量“默認你會但新手根本不知道”的細節(jié)技術棧怎么選、IDEA 2024怎么建Web項目、前端怎么用pnpm初始化、后端模型API怎么接、遇到報錯怎么定位……這篇文章就把我這次從零開始搭建并跑通AI對話App的完整過程寫下來適合正在準備做AI應用開發(fā)、想搞懂項目創(chuàng)建到運行全流程的人參考。1. AI對話App的骨架設計先定形態(tài)再選技術棧1.1 你的App到底屬于哪一類做AI對話App之前先別急著打開IDE而是要回答一個問題你做的“App”是給用戶在瀏覽器里用的Web應用是打包成安卓/iOS的手機客戶端還是偏向Agent自動化任務的工具型應用這個問題的答案直接決定了項目創(chuàng)建方式。我這次的目標是一個功能完整的對話應用用戶輸入問題后端調用大模型接口模型流式返回內容前端實時展示。最常見、也最適合快速驗證的形態(tài)就是前后端分離的Web應用——瀏覽器即App開發(fā)調試成本最低后續(xù)要轉成手機App也可以用同一套后端接口。技術棧選型上后端我用了Java 17 Spring Boot 3.x前端用Vue 3 Vite pnpm。沒有用更花哨的方案原因后面逐一說明。1.2 技術棧選型的真實理由后端選擇Spring Boot 3最重要的原因是生態(tài)成熟。Spring Boot自帶內置Tomcat項目創(chuàng)建完成后不需要額外配置外部容器直接Run就能起服務這對“讓項目先跑起來”這個目標非常友好。IDEA 2024對Spring Boot的支持已經很完善創(chuàng)建Web項目、運行、斷點調試都是點按操作不需要自己手搓一堆配置文件。Java本身的類型安全也讓大模型接口返回的數(shù)據結構處理更可控——那些字段是String、那些是List、哪些可能為空編譯期就能發(fā)現(xiàn)一堆低級錯誤。前端選Vue 3 Vite是因為它足夠輕。Vite的冷啟動速度非??旄耐甏a頁面秒級刷新開發(fā)體驗比老一代構建工具好太多。pnpm則解決了node_modules體積大、依賴安裝慢的問題同一個項目用npm要裝一分鐘用pnpm可能十幾秒就完事而且磁盤占用只有npm一半不到。移動端后續(xù)如果要接Flutter也不影響——Flutter項目可以直接復用這個后端接口只是把UI層換成Dart代碼。提示技術棧沒有絕對的對錯核心是“能讓你最快跑起來并驗證想法”。團隊熟悉哪套用哪套不要為了追新而選擇一個沒人會的框架。1.3 運行環(huán)境清單項目能跑起來依賴以下運行環(huán)境建議提前確認環(huán)境版本要求用途JDK17及以上Spring Boot 3.x要求Java 17起步Maven3.6及以上后端依賴管理Node.js18及以上前端構建工具鏈pnpm8及以上前端依賴安裝Redis5.0及以上會話上下文緩存可選但推薦大模型API Key任意兼容OpenAI協(xié)議的服務對話能力的來源這里特別說明一下Redis如果只是本地開發(fā)、單用戶調試可以先用內存Map存會話不引入Redis。但如果目標是做出一個支持多會話的AI對話App建議從一開始就引入Redis。因為大模型對話需要攜帶上下文也就是把歷史消息一起傳給模型這些消息存在哪里、怎么和用戶Session關聯(lián)用Redis是教科書級的標準答案。2. 項目創(chuàng)建的真實操作IDEA 2024 Vite pnpm一個都不能少2.1 用IDEA 2024創(chuàng)建Spring Boot后端項目打開IDEA 2024選擇新建項目。這里要注意新版IDEA的創(chuàng)建向導和舊版有區(qū)別項目類型要選Spring Boot而不是傳統(tǒng)的Java Web項目模板。Java版本選17構建工具選MavenSpring Boot版本選3.2.x這類穩(wěn)定版本。依賴項勾選Spring Web、Spring Validation、Spring Data Redis、Lombok。創(chuàng)建完成后IDEA會自動生成標準的Maven項目結構src/main/java、src/main/resources、pom.xml。第一個坑往往出現(xiàn)在這里——Maven依賴下載。由于網絡原因maven-central倉庫下載可能非常慢甚至失敗。解決方案是在Maven的settings.xml中配置阿里云鏡像之后pom.xml里的依賴基本秒下。第二個坑是IDEA本身沒有自動識別Maven項目導致右側Maven面板為空。遇到這種情況在pom.xml上右鍵選擇“Add as Maven Project”即可。對于IDEA運行Java Web項目的配置Spring Boot時代已經不需要手動配置外部Tomcat了。spring-boot-starter-web依賴自帶內嵌Tomcat直接運行src/main/java下的SpringBootApplication主類內置容器就會啟動在8080端口。如果是老的Servlet項目才需要配置Artifacts和外部Tomcat這一點在新手群里經常被混淆。2.2 用Vite和pnpm初始化前端項目前端項目創(chuàng)建有兩種方式一種是用IDEA自帶的前端項目向導另一種是用命令行。我習慣用命令行因為更通用換到任何環(huán)境都能復現(xiàn)pnpm create vite ai-chat-web -- --template vue執(zhí)行后會生成一個Vite Vue 3的項目骨架。進入目錄安裝依賴cd ai-chat-web pnpm install這里大概率會遇到熱詞里那條經典報錯——“pnpm : 無法將“pnpm”項識別為 cmdlet、函數(shù)、腳本文件或可運行程序的名稱”。原因很簡單pnpm是用npm全局安裝的但安裝目錄沒有加入系統(tǒng)PATH。排查鏈路是這樣的先確認npm install -g pnpm是否成功再執(zhí)行npm config get prefix查看全局安裝路徑最后把該路徑加入系統(tǒng)環(huán)境變量Path重新打開終端pnpm -v就正常了。前端項目還要裝幾個必要的庫pnpm add axios element-plusaxios用來發(fā)HTTP請求element-plus提供對話列表、輸入框、消息氣泡等UI組件省去手寫組件的成本。UI組件的選擇不會影響項目能不能跑但能讓你把更多精力放在業(yè)務邏輯而非樣式上。2.3 初始化配置application.yml和.env應該寫什么后端配置文件在src/main/resources/application.yml。最基本的配置如下server: port: 8080 spring: application: name: ai-chat-server data: redis: host: localhost port: 6379 ai: model: api-key: ${AI_API_KEY} base-url: https://api.example.com/v1 chat-model: deepseek-chat max-tokens: 2048 temperature: 0.7api-key用環(huán)境變量的方式注入而不是把真實Key寫死在配置文件里。這個習慣很重要因為項目一旦提交到Git倉庫然后推到公開平臺寫死在代碼里的Key就等于泄露了。base-url是模型API的服務地址兼容OpenAI協(xié)議的服務基本都長這樣只是域名不同。前端環(huán)境變量在項目根目錄創(chuàng)建.env文件VITE_API_BASE_URLhttp://localhost:8080前后端分離開發(fā)時前端頁面跑在5173端口后端接口跑在8080端口瀏覽器訪問前端頁面發(fā)請求到后端就存在跨域問題。所以開發(fā)階段更推薦的做法是在Vite配置里加代理讓前端請求/api開頭的路徑時自動轉發(fā)到后端這樣在代碼里只需要寫相對路徑。Vite的vite.config.js配置如下import { defineConfig } from vite; import vue from vitejs/plugin-vue; export default defineConfig({ plugins: [vue()], server: { port: 5173, proxy: { /api: { target: http://localhost:8080, changeOrigin: true } } } });這套配置意味著前端頁面發(fā)起fetch(/api/chat/stream)時實際請求會被Vite開發(fā)服務器轉發(fā)到http://localhost:8080/api/chat/stream瀏覽器端不存在跨域問題后端也不需要額外開啟CORS。2.4 建立一次“無AI版”的聯(lián)調在接入模型API之前先讓前后端能通過一次最簡單的接口調用聯(lián)通。后端寫一個健康檢查接口RestController RequestMapping(/api/ping) public class PingController { GetMapping public MapString, String ping() { return Map.of(message, pong); } }前端在頁面里調用一次const res await fetch(/api/ping); const data await res.json(); console.log(data.message); // pong這一步驗證的是整個鏈路前端端口、代理轉發(fā)、后端啟動、端口監(jiān)聽、響應序列化。如果這里通了說明項目創(chuàng)建和基礎運行沒有任何問題接下來的AI對話接入就純粹是業(yè)務邏輯了。我見過太多人一上來就直接寫對話接口結果前端怎么調都不通排查半天發(fā)現(xiàn)是代理沒配上浪費時間。3. 接入模型API是核心從HTTP請求到SSE流式的完整鏈路3.1 為什么走HTTP協(xié)議而不是官方SDK很多模型服務商都提供了官方SDK比如用Python的openai庫一行代碼就能調用模型。但我的建議是如果后端是Java直接走HTTP協(xié)議反而更可控。原因有三個第一減少項目依賴。SDK本質上是把HTTP請求封裝了一層引入一個SDK就是引入一堆傳遞依賴一旦SDK版本更新引起沖突排查成本遠高于自己寫一個WebClient方法。第二Java生態(tài)下官方對大模型接口的封裝普遍一般錯誤信息經過SDK透傳后往往丟失原始響應體出了問題很難定位。第三直接走HTTP意味著可以方便地切換任何兼容OpenAI協(xié)議的模型服務只需要改配置里的base-url和model名稱代碼一行不用動。3.2 后端實現(xiàn)流式對話WebClient FluxAI對話最核心的體驗是“打字機效果”也就是模型生成內容邊生成邊顯示。實現(xiàn)方式不是普通的一次性HTTP請求而是長連接流式傳輸技術術語叫SSEServer-Sent Events服務器推送事件。SSE協(xié)議非常簡單服務端按行返回數(shù)據每行格式是data: 內容以空行分隔不同消息。Java后端用Spring WebFlux里的WebClient發(fā)起流式請求代碼結構如下Service public class ChatServiceImpl implements ChatService { private final WebClient webClient; private final ModelProperties properties; public ChatServiceImpl(ModelProperties properties) { this.properties properties; this.webClient WebClient.builder() .baseUrl(properties.getBaseUrl()) .defaultHeader(HttpHeaders.AUTHORIZATION, Bearer properties.getApiKey()) .build(); } public FluxServerSentEventString stream(String sessionId, ListMessage messages) { return webClient.post() .uri(/chat/completions) .bodyValue(Map.of( model, properties.getChatModel(), messages, messages, stream, true, max_tokens, properties.getMaxTokens(), temperature, properties.getTemperature() )) .retrieve() .bodyToFlux(String.class) .mapNotNull(this::parseContent); } }這里有幾個關鍵決策要解釋。stream: true告訴模型服務端返回SSE格式的流。bodyToFlux(String.class)表示響應體按字符串行讀取。每個String對象包含一行SSE數(shù)據需要從中解析出data:前綴后面的JSON再從JSON的choices[0].delta.content字段取出本次增量的文本。mapNotNull負責過濾掉心跳包這類無內容的數(shù)據。我最初踩過的一個坑是超時配置。Spring WebClient默認的響應超時對于流式接口來說太短了模型思考時間長一點就會斷開連接。解決方法是給WebClient設置讀取超時比如60秒甚至更長HttpClient httpClient HttpClient.create() .option(ChannelOption.CONNECT_TIMEOUT_MILLIS, 10000) .doOnConnected(conn - conn.addHandlerLast(new ReadTimeoutHandler(120))); SslContext sslContext SslContextBuilder.forClient().build(); WebClient webClient WebClient.builder() .clientConnector(new ReactorClientHttpConnector(httpClient, sslContext)) .build();3.3 前端解析流式返回ReadableStream逐字讀取前端拿到SSE流之后不能用普通的response.json()去解析而是要讀取response.body也就是ReadableStream。核心代碼如下const response await fetch(/api/chat/stream, { method: POST, headers: { Content-Type: application/json }, body: JSON.stringify({ sessionId, messages }) }); const reader response.body.getReader(); const decoder new TextDecoder(utf-8); let buffer ; while (true) { const { done, value } await reader.read(); if (done) break; buffer decoder.decode(value, { stream: true }); const lines buffer.split(\n); buffer lines.pop() || ; for (const line of lines) { if (line.startsWith(data: )) { const payload line.slice(6); if (payload [DONE]) continue; const json JSON.parse(payload); const content json.choices[0]?.delta?.content || ; if (content) { appendMessage(content); // 追加到當前回答氣泡 } } } }buffer的作用非常關鍵。網絡傳輸是按字節(jié)包過來的一次reader.read()返回的數(shù)據不一定是完整的一行可能半行也可能多行。所以要把讀到的字節(jié)先追加到buffer里再按換行符切分最后一行沒有換行符的字節(jié)留在buffer里等待下一次讀取合并。這就是流式解析的經典處理方式我一開始沒寫buffer結果模型輸出的內容經常被截斷成亂碼排查了很久才定位到是分幀拼接的問題。為什么選SSE而不是WebSocket這是很多人的疑問。AI對話本質上是從服務端到客戶端單向的流式傳輸用戶發(fā)消息是一次獨立的POST請求服務端回傳是一路流。這種“一上多下”的模型用SSE天然合適實現(xiàn)簡單、自動支持HTTP重連、穿透代理容易。WebSocket是雙向全雙工功能更強但如果只是為了接收模型輸出用它屬于殺雞用牛刀還多引入一套連接管理的復雜度。3.4 上下文管理讓每輪對話“記得住”模型本身不記憶任何歷史對話所謂上下文就是每次請求都帶上之前的消息記錄。一個標準的消息結構是這樣的[ {role: system, content: 你是一個友好的AI助手}, {role: user, content: 什么是AI}, {role: assistant, content: AI是人工智能的縮寫……}, {role: user, content: 它有什么用} ]后端收到新對話請求時根據sessionId從Redis取出歷史消息數(shù)組拼裝上新消息一起發(fā)給模型。模型返回的content再追加到歷史消息中存回Redis。這樣每一輪對話都攜帶全部歷史模型就能“記得”之前聊過什么。token長度的問題需要提前預防。對話越長歷史消息越多超出模型的上下文窗口就會報錯。我的處理方式是設定一個最大歷史長度比如只保留最近10輪對話超過時丟棄最舊的消息。這個策略在AI對話App開發(fā)里非常常見屬于在“記憶深度”和“token成本”之間尋找平衡點ListMessage trimmed new ArrayList(history); while (trimmed.size() MAX_MESSAGES) { trimmed.remove(1); // 保留第一條system消息移除舊的user/assistant消息 }4. 讓項目跑起來的細節(jié)啟動順序、代理轉發(fā)與第一次對話實測4.1 后端啟動步驟與配置檢查后端啟動步驟順序很重要。先啟動Redis如果本地裝了再啟動Spring Boot主類。如果Redis沒啟動Spring Data Redis的配置會自動重試連接項目啟動會拖時間甚至直接失敗。Redis是本地開發(fā)環(huán)境最容易忽略的外部依賴建議用Docker一條命令起docker run -d -p 6379:6379 --name redis redis:7-alpine啟動Spring Boot后看控制臺日志。出現(xiàn)Started AiChatServerApplication表示啟動成功Tomcat started on port 8080表示端口監(jiān)聽正常。如果端口被占用會報Port 8080 was already in use。處理方式有兩種改端口或者找到占用進程殺掉。Windows下查看端口占用netstat -ano | findstr 8080 taskkill /PID 進程號 /F這里有個經驗Java項目的報錯信息一定要完整看完。很多人看到紅色日志就慌其實關鍵信息往往在最后幾行。比如APPLICATION FAILED TO START下面的Description和Action兩段直接告訴你哪里配置錯了、應該怎么改照著做就行。4.2 前端啟動步驟與聯(lián)調檢查前端啟動只需要一條命令pnpm devVite默認把服務跑在http://localhost:5173。打開瀏覽器按F12打開開發(fā)者工具切到Network面板重新刷新頁面如果看到/api/ping請求返回200和{message:pong}說明代理配置成功。如果報錯優(yōu)先檢查vite.config.js的proxy配置確認target端口和實際后端端口一致。一個非常容易踩的坑是后端端口改了但前端代理沒同步改結果所有請求全部返回404。另一個坑是代理配置里的changeOrigin必須設為true否則后端拿到的Host頭是前端地址某些鑒權邏輯會出問題。4.3 第一次完整對話實測前后端聯(lián)通后把對話請求真正發(fā)出去。第一次實測建議不要畫太多UI就在頁面里寫一個最簡單的輸入框和按鈕點擊后調用3.3節(jié)那段fetch代碼。如果頁面上正??吹健按蜃謾C效果”的文字逐字出現(xiàn)恭喜你整個AI對話App的核心鏈路已經完全跑通了。實測出現(xiàn)的攔路虎主要集中在三類第一類是401鑒權失敗。控制臺輸出Invalid authentication credentials八成是環(huán)境變量AI_API_KEY沒生效。IDEA里配置環(huán)境變量要在Run Configuration的Environment variables里填或者在啟動前用命令行export AI_API_KEYxxxx設置。直接在application.yml里寫死api-key: ${AI_API_KEY}但沒設環(huán)境變量啟動時會得到一個占位符字符串而不是真實Key。第二類是404。請求/api/chat/stream返回404先看Controller路徑和請求路徑是否完全一致再看produces MediaType.TEXT_EVENT_STREAM_VALUE有沒有寫對。還有一個隱蔽問題Spring Boot 3中如果Controller方法接收Flux返回值必須引入spring-boot-starter-webflux依賴否則不會按SSE處理。第三類是流式內容不展示。接口能通但內容是等全部生成完才一次性顯示。這種問題幾乎都是請求頭里少了Accept: text/event-stream或者前端用了response.json()而不是讀response.body。按下F12看響應類型如果Content-Type是application/json而不是text/event-stream就說明后端SSE沒有生效。4.4 數(shù)據庫和Key的安全配置一個成熟的項目從一開始就應該把敏感配置隔離。API Key不要出現(xiàn)在任何代碼文件里統(tǒng)一走環(huán)境變量。如果是在IDEA里調試可以在.env文件或IDEA的環(huán)境變量配置中維護如果是在服務器上跑Linux的export或systemd的EnvironmentFile都能實現(xiàn)同樣的效果。Redis如果部署在公網一定要設置密碼不要用默認端口無鑒權裸奔否則掃描工具會直接連上去刪庫。5. 運行期高頻報錯的排查鏈路從命令行到瀏覽器逐個擊破5.1 “無法將pnpm項識別為cmdlet”不只是環(huán)境變量這條報錯在Windows環(huán)境非常典型但原因不止一個。最常見的情況是pnpm沒經過npm全局安裝。安裝命令npm install -g pnpm如果npm -v本身都報錯那是Node.js沒裝好需要去官網重新下載安裝包。如果npm正常但pnpm命令找不到那么執(zhí)行npm config get prefix把看到的路徑一般是C:\Users\你的用戶名\AppData\Roaming\npm加入系統(tǒng)PATH然后完全關閉并重新打開終端再執(zhí)行pnpm -v。更隱蔽的情況是用PowerShell執(zhí)行pnpm時報同一個錯但CMD里執(zhí)行卻正常。這是因為PowerShell和CMD讀取PATH的時機不同修改系統(tǒng)PATH后PowerShell需要以管理員身份重啟才生效。原理是PowerShell的$env:Path會在會話啟動時緩存一次舊會話里新加的路徑不會自動刷新。解決辦法就是新開終端這個坑不知道坑了多少人。5.2 “運行失敗請查看提示信息”先分清是哪一類問題開發(fā)過程中經??吹健斑\行 core 失敗請查看提示信息”這類模糊報錯。我的排查思路是分層定位先把問題歸到以下幾類報錯類型典型表現(xiàn)排查方向編譯錯誤紅字出現(xiàn)Compilation failure看具體報錯的Class和行號依賴錯誤找不到jar包或模塊檢查Maven/Gradle倉庫配置端口沖突Port already in usenetstat查端口并結束進程配置錯誤Failed to bind properties看是哪個配置項綁定失敗運行時異常NullPointerException等看堆棧第一行的業(yè)務位置大部分“失敗”提示后面都會跟具體信息關鍵是訓練自己讀完整日志的能力。Java報錯堆棧從最底下往上讀第一個出現(xiàn)的at com.xxx是你自己代碼的位置上面那些at org.springframework基本都是框架內部調用不用深究。找到自己代碼里的第一行問題基本就在那里。5.3 請求轉發(fā)失敗、CORS跨域、Key未配置的高頻問題這三個問題是前后端分離項目里最容易挨個遇到的。CORS跨域的表現(xiàn)是瀏覽器控制臺報Access to XMLHttpRequest at http://localhost:8080/... from origin http://localhost:5173 has been blocked by CORS policy。如果采用Vite代理前端請求都發(fā)到相對路徑就不會觸發(fā)跨域。如果確實需要前端直連后端地址比如后端部署在測試服務器上最省事的方式是后端加一個CORS配置類Configuration public class CorsConfig implements WebMvcConfigurer { Override public void addCorsMappings(CorsRegistry registry) { registry.addMapping(/api/**) .allowedOrigins(http://localhost:5173) .allowedMethods(GET, POST, OPTIONS) .allowedHeaders(*); } }注意allowedOrigins不要寫成*否則在需要攜帶cookie的后續(xù)開發(fā)中會踩坑。Key未配置的報錯通常是401 Unauthorized或者Invalid API Key。我開發(fā)時習慣在啟動時打印一段日志顯示Key的前幾位和長度不打印完整Key方便快速確認環(huán)境變量是否加載成功。這個做法在排查環(huán)境差異時特別有效。5.4 換機器、換平臺后“程序無法運行”的真相熱詞里有一條很典型的報錯“程序claude.exe無法運行: 指定的可執(zhí)行文件不是此操作系統(tǒng)平臺的有效應用程序”。這個現(xiàn)象解釋起來很簡單——下載了和當前操作系統(tǒng)不匹配的二進制文件比如在Windows 11上裝了Linux版本的程序或者在64位系統(tǒng)上執(zhí)行了32位程序。解決方式就是去官網重新下載對應平臺的安裝包沒有別的捷徑。這類錯誤在AI相關工具上特別常見因為這些工具的官方下載頁通常同時提供Windows、macOS、Linux多個版本默認展示的可能是當前瀏覽器系統(tǒng)識別的版本但有人為了下載“推薦版”或“最新版”而手動選擇選錯了平臺就會觸發(fā)這條報錯。凡是遇到“不是有效應用程序”的說法優(yōu)先檢查系統(tǒng)架構x86、x64、ARM和操作系統(tǒng)類型是否正確。6. 從能運行到能交付Agent能力與移動端擴展6.1 什么是Agent開發(fā)讓對話App不只是聊天項目跑通了AI對話不再是“一問一答”的演示下一步就有兩個方向可以走一個是把App做得更像一個Agent另一個是把Web App打包成真正的移動端應用。所謂Agent開發(fā)簡單理解就是讓模型不只輸出文本還能調用工具完成實際操作。比如用戶說“幫我查一下今天的天氣”模型不直接回答而是識別出這是一個查詢需求生成一個工具調用請求后端收到后調用天氣API把結果返回給模型模型再用自然語言把天氣情況表達出來。這個模式目前在行業(yè)里非常流行因為它讓AI從“聊天機器人”變成了“能辦事的助手”。最小實現(xiàn)路徑是給模型定義一組JSON格式的函數(shù)列表模型根據用戶輸入決定是否調用某個函數(shù)、參數(shù)是什么。后端在收到函數(shù)調用請求后真正執(zhí)行函數(shù)把執(zhí)行結果作為一條新的role: tool消息追加到上下文中再讓模型基于工具結果生成最終回復。這就是Agent開發(fā)最基礎的協(xié)議鏈路。6.2 移動端方向用Flutter復用同一套后端如果你真的需要把App上架到手機應用商店不建議在Web端之外再寫一套邏輯而是用同一個后端前端換成Flutter。熱詞里“如何用Android Studio創(chuàng)建Flutter項目”操作路徑很清晰Android Studio里安裝Flutter插件New Project選擇Flutter填好包名用內置模擬器直接跑。也可以用命令行的方式flutter create ai_chat_app創(chuàng)建出的Flutter項目中l(wèi)ib/main.dart是入口用http包或dio包訪問后端接口。由于是獨立App而不是瀏覽器頁面跨域概念不存在但需要注意網絡安全配置Android 9及以上默認禁止明文HTTP請求Debug環(huán)境需要允許cleartextTraffic才能訪問http://前綴的后端地址。這個坑很隱蔽項目能編譯、能啟動但請求后端一直失敗最后發(fā)現(xiàn)是系統(tǒng)網絡安全策略禁止了非HTTPS流量。6.3 本地模型部署的另一種選擇如果不想依賴在線API想要完全本地化運行模型可以關注低顯存運行模型的方案。核心思路是模型量化——把模型的權重精度從FP16降到INT4或INT8顯存占用能降低百分之七八十同時在推理引擎層面做優(yōu)化。目前比較成熟的方案是配合Ollama這類本地推理工具下載量化版本模型一行命令就能啟動一個兼容OpenAI協(xié)議的本地服務此時base-url直接指向http://localhost:11434/v1后端代碼完全不用改。本地模型部署需要注意兩點一是模型參數(shù)量要和顯卡顯存匹配比如8GB顯存跑7B量化模型已經比較吃力14B以上的模型至少需要16GB二是推理速度受CPU內存帶寬影響較大沒有獨顯的機器跑起來會很慢更適合做原型驗證而不是生產環(huán)境。項目從創(chuàng)建到運行的全流程走通之后我再回看這次實操最大的體會是工程上的問題90%都不是“智商的差距”而是“經驗的有無”。那些讓人頭疼的報錯本質都是環(huán)境變量、依賴版本、端口配置、網絡策略這幾個固定環(huán)節(jié)的排列組合。把這套排查思路變成肌肉記憶再做任何AI應用項目創(chuàng)建和運行這一關基本不會再攔人了。最后補充一個小技巧每次項目跑通一個階段比如后端啟動成功、前端代理聯(lián)通、SSE流式返回正常都值得把這時的依賴清單、配置文件、啟動命令完整記錄到項目的README里。這樣下次換一臺電腦或者隔幾個月再看這個項目不用靠回憶照著文檔十分鐘就能重新跑起來。這個習慣幫我省下的時間遠比我寫文檔花掉的時間要多得多。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
色欲AVV| 五月婷婷激情中心| 欧美色色网| 国产67194| 99ri网站在线观看| 激情五月色综合网| 99热久| 五月综合无码| 无码人妻激情| 色九月丁香婷婷蜜桃在线观看| 91天天操天天干天天射| 六月婷婷激情| 五月在线| 99热这里只有精品4| 色情五月天小说| 人人操操97| AAA久久| 久月婷婷| 亚洲色五月| 色小说五月婷婷| 色九区| 无码一级片| 免费视频WWW在线观看网站| 乱码操操| 另类专区在线| 人人爱操| 亚洲AV成人在线| 五月婷婷成人| 色碰碰视频| 第五色婷婷| 国产性色蜜乳| 伊人婷婷五月天av| 色丁香影院| 欧美槡BBBB槡BBB少妇| 色色综合色视频| 激情综合色婷婷啪啪六月天| 91精品综合久久婷婷九色| 欧美偷偷操| 99精品视频在线观看| 九九99精品视频在线观看| 殴美日韩成人| 色色色综合网| WWW.国产| 久在线88综合| 色婷大香蕉| 久久久天堂国产精品女人| 国产人妻人伦精品一区二区 | 色婷婷亚洲婷婷| 欧洲毛片基地c区| 五月婷婷9| 午夜婷婷久久 | 日亚二欧美| 五月婷婷,六月丁香| 97婷婷五月| 99色色色色| 婷婷五月天激情五月天| 野战毛片三一3| 狠狠xx| 丁香五月天视频在线播放| 五月综合激情视频| a久久| 日韩另类在线观看| 婷婷99狠狠躁天天躁| 婷婷五月天AV| 艹色18p| 强伦轩人妻一区二区电影| 久操福利| 天天色综合色色色色色。| 激情五月开心五月在线视频| 狠狠操在线视频| 五月丁香激情综合欧美| 五月天色影院| 五月丁香婷婷综合| 99re资源在线视频导航| 日韩无码人妻一区二区| 色色色综合网| 丁香五月激情无码视频| 91人操人人人操人| 久热免费视频| 色99无码| 欧美天天综合网站上去吧| 亚洲激情色色| 人人澡玖玖一| 色五月婷婷五月久久| 91色欲综合| 91人碰| a在线观看| 26uuu色噜噜精品一区| 中国AV性爱观看| 婷婷六月激情在线视频| 婷婷午夜天| 在线观看免费视频| 99日逼视频| 五月丁香| 色五月婷婷五月天激情综合| 在线1青婷| 秋霞AV淫| 教师性爱毛片| 激情五月婷黄版| 日日操,日日爽| 少妇水多A片太爽了| 久久色五月天| 亚洲色五月天是什么| 欧美六月婷婷| 激情五月综亚网| 看片视频在线免费日产在线看| 天堂A∨在线| 色.五月综合网| 久久精品99久久久久久| 五月丁香综合啪啪| 五月天色影院| 日本色久| 激情五月开心五月丁香五月| 青草青草视频2免费观看| 六月丁香成人| 日本熟妇精品99| 亚洲AAAA网| 99re久热只有精品6在线直播| 久久婷五月婷| 欧美A级网站| 伊久久婷婷| 日本婷婷网| 97人人搞| 婷婷综合网| 蜜桃人妻无码AV天堂三区| 五月丁香A∨在线| 激情六月丁香综合| 激情婷婷人妻| 色色97丁香婷婷五月天| 欧美丁香六月在线观看视频| 欧美久热| 亚洲人妻一区二区 | 91人人看| 色婷婷伦理| 另类激情五月| 色综合九九| 99热精品在线观看| 69久久99精品久久久久婷婷| 99在线精品视频| 欧美日韩国产一二区| 五月婷婷六月丁香综合视频在线| 欧美一级色| 色丁香久久| www.91.com黄| 色婷五月婷婷| 五月丁香色五月| 9色在线| 久久婷婷综| 亚洲热久久| 双性美人被调教到喷水A片| 丁香婷婷九月| 婷婷免费视频| 中文不卡一二三区| 国产精品成人网址| 日本久久人| 99热 在线播放| 婷婷五月天色综合| 色综合色色色色| 99热这里只有精品国产首页| 91互操| 99热只有| 日本精品在线噜噜噜| 香蕉久久国产AV一区二区| av在线激情| 婷婷五月日本| 亚洲激情av| 99色中文| 五月丁香AV、伊人业余、性色熟妇| 婷婷丁香成人| 亚艹艹| 日韩欧美性爱| 九九热超碰| 色色操| 激情五月婷| 色亚洲中文| 操操操97| 五月丁香色色| 干婷婷五月天| 天天综合久久| 青草网在线观看| 久久性爱网站| 99热最新精品| 97干干干丁香| 亚洲乱码w在线观看| 五月丁香久人妻中文| 久久久中文| wwW天天干| 五月婷婷影视| 亚洲激情五月| 五月婷婷第四色| 成人一级片| 少妇人妻人伦A片| 色五月天视频| 99热99久久| 丁香五月婷婷免费视频| 99视频久久| 日本色婷婷久久99精品91| 91/九色黑人| 超碰人人干| 久久成人综合五月天| 99啪在线| Blackedraw视频一区二区| 婷婷天天日婷婷| 色婷婷手机在线| 久cao香蕉影院| 偷拍91九色| 九九这里只这里只有精品| av五月天婷婷丁香| 中字幕视频在线永久在线观看免费 | 国产精品久久久久久久久久| 欧美性猛交99久久久99| 。久久久久久久久久久久久久人妻| 99久久97久久欧美综合网| 五月激情在线| 久久婷婷网| 这里只有九九精品| 九九热只有这里是精品| 久久久com| 一本到不卡高清DVD| 人妻中文在线| 丁香婷婷91在线观看视频| 啪啪激情网站| www,色中色| 97精品自拍| 丁香影院五月综合| 内射 无码 伊人| 26UUU精品一区二区| 五月丁香啪啪伦理电影| 欧洲第一久色| 色婷五月天网站| 国产精品社区| www99在线观看视频| 91色色色视频| a免费在线| 九九伊人网| 97人人搞| 欧洲亚洲免费视频9| 99色视频免费在线规看| 婷婷五月激情欧美大胆视频| 激情五月丁香色婷婷| 97人人操| 日日干天天射| 亚洲操逼网| 九九色大香蕉| 人人澡玖玖一| 色九九综合| 国产日韩av片| 深夜男女福利刺激影院一区完整| 99啪啪网| 91久久久久久久| 免费AV在线| 四季日韩AV无码综合| 婷婷五月天99综合网站| 6 9式性爱视频在线播放| 久久精品A片777777| 亚洲乱码日产精品BD| 99热这里只有精品9| 亚洲第一黄网| 色999亚洲人成色| 99精色| 玖玖热视频| 中文字幕av久久爽一区| 超碰av在线| 99免费在线视频| 99精彩视频| 激情综合五月| 日本色超碰| 99re视频在线精品| 91久久精品无码一区二区三区| 99热超碰天堂网| 五月丁香最新| 天搞天天天天天| 99热 这里只有精品 国产 日韩| 婷婷五月综合婷婷| 久久99热精品a片在线观看| 操你av| 操骚货在线| www.婷婷.com| 丁香五月五月婷婷欧美大香蕉| 97超碰,人人舔,人人操,人人摸| 少妇高潮呻吟A片免费看软件| 亚洲日韩操B| 99色综合久久| 97在线视频人妻九色| 久久大香蕉| 人人操Av| 色色色热| 看片视频在线免费日产在线看| 丁香五月偷拍| 婷五月天| 99er国产| 99热官网| 97精品人人A片免费看| 亚洲成人日韩无码精品| 97人妻碰碰中文无码久热丝袜| 六月激情久久婷婷| 思思热这里只有精品| 51XX午夜影福利| 91碰碰| 人妻在线观看视频| 4399成人黄A片| 六月丁香婷婷开心综合基地| 97操视频| 99丝袜精品视频网站| 丁香五月91| 色久五月| 97碰在线视频| 色天使色婷婷| 十月丁香九月婷婷综合| 99热免费| 激情亚洲婷婷| 色在线视频网2025| 国产成人AV| AV成人在线播放| 翔田千里aV中文字幕| 天天操婷婷| 伊人激情| 五月丁香美女| 久99视频在线观看| 麻豆精品| 逼里香不卡| 97av在线视频| 五月开心婷婷极品激情| 丁香婷婷六月天| 日韩啪啪视品| 五月色丁香婷婷中文字幕| 97香蕉久久超级碰碰高清版| 欧美精品A片一区在线观看| 99视频精品视频| 色九九九九| 丁香五月综合网| 五月丁香啪啪网| 婷婷六月激情综合| 蒲京久久无码视频| 亚洲99在线视频| 色日本五月天| 他改变了拜占庭| 欧美大道不卡| 久久性刺激| 国精产品久久| www色哟哟| 婷婷五月天Av| 草草夜夜操| 综合激情开心五月| 五月丁香久久| 激情综合网,五月| 亚洲五月婷| 秋霞日本免费毛片A片| 国产高清RV综合aVa| 99激情| 久久人操| 五月丁香偷拍| 婷婷五月天.com| 丁香五月婷婷六月| 日韩欧美一区二区三区四区| www.久久| 亚洲人妻一区二区| 91/九色黑人| 婷婷综合网站| 日韩久久日| 色播丁香婷婷五月激情| 色网站9| 丁香六月天堂| 9久久网| 五月激情婷婷丁香天堂| WWW久| 中文字幕激情综合| 丁香五月色情| 亚洲精品V天堂中文字幕| 亚州激情在线视频| 久婷狼色诱惑在线| 五月婷婷丁香五月 | 国产偷人爽久久久久久老妇APP| 爱性综合网| A久久| 26UUU在线观看| 色青青电影色五月| 婷婷六月综合基地| site:xmssd.com| 乱岳熟女50岁| 激情五月,婷婷五月,丁香五月| 五月久久| 26uuu欧美日本| 婷婷激情丁香五月天综合| 东京热免费视频| 人人色AV| 久Se视频在线观看| 这里只有精品视频在线| 丁香五月天激情视频| 久久婷中文字幕| 欧美在线97| 色五月婷婷激情综合网| 亚洲永远av在线播放| 激情99| 综合色情网| 97色色视频| 五月婷婷六月少妇激情| 午夜大香蕉| 最近免费中文字幕大全高清大全1| 思思w99| 成人短视频在线免费观看| 婷婷久久大香蕉| www.色婷婷。com| www91色网站| 超碰在线免费9| 色色色色色级无码| 婷婷五月综合啪| 婷婷欧美| 1024操逼视频| 亚洲人妻五月丁香婷婷| 这里有精品99| 99狠狠操一| 91热爆在线| 色婷婷色婷婷五月| 色综合久久五月| 91美女啪啪| 色播五月婷婷| 色爱综合网| 五月天伊人日日噜影片AV| 丁香色成人| 精品少妇人妻AV无码专区偷人 | 五月婷婷大香蕉| 99在线国| bbwcuckold精品熟妇| 久久婷婷五月综合一| 久久女婷| 色色色欧美| 婷婷五月天狠狠| 激情另类综合| 超碰人人色| 日韩啪啪自拍| 久久5 9视频免费观看| 五月天婷婷色色| 色综合激情| 欧美天天干五月丁香| 9久久久久久久久久久| 91久久久久| 色色国产| 亚洲综合五月天| 97视频久久| 丁香五月激情视频| 九九久久综合网站| 亚洲综合婷婷| 99热精品一区| ,99视频久久| 色五月天丁香| 97人人做| 色综合九九色综合88| 色播五月丁香综合| 996热re视频在线观看视频| 亚洲精品国产A久久久久久| 天天综合网在线| 久久激情综合| 五月天社区| 婷婷五月婷婷| 人人草人人爱| 激情图片婷婷| 97在线精品视频| 少妇综合网| 婷婷五月天电影网| 丁香综合婷婷五月天| 99热在线观看精品免费| 丁香色五月婷婷| 激情五月天激情综合网| 五月婷婷婷| 国产密乳av一区二区三区四区| 五月天婷婷中文字幕在线播放| 久久一二三视频| 丁香五月激情澎湃一区| 天天日,天天射,天天舔| 人妻内射视频| 人人操91| 六月丁香婷| 伊人无码高清| 夜色热久| 182TV大香蕉| 久一网站| 99热欧美在线观看| 五月天婷婷永久免费视频| 99热99精品在线观看| 五月中旬婷婷丁香六| 五月婷综合性中心| 美女五月天| 五月激情网站| 大香蕉人妻| 国产精品18久久久| 九九热内射| 六月婷婷最新网址| 蜜臀AV在线成人| 九九热这里有精品23| 丁香开心深爱| 97色色色色色| 五月婷婷激情综合网| 天天干,夜夜爽| 欧美97超碰| 丁香综合久久| 九热在线这里有精品6| 天天干肏夜夜| 综合色影院| 中文AV网站| 中文字幕成人网站| 色五月婷婷综合在线| 天天爽人人综合免费7799| 91精品无码| 色九九综合色| 国产精品美女久久久久AV超清| 婷婷色综合| 人妻VideOssS人妻| 停婷丁五月在线| 婷婷中文在线| 天天爽夜夜爽夜夜爽精品视频 | 久久婷婷精品| 久久狼人天堂| 99热在线观看亚洲区| 噜噜色噜噜网| 少妇性按摩无码中文A片| 久久婷婷五月综合色播| 91精品久久久久久久久久久久| 久久婷婷五月综合色天| 六月丁香婷| 玖玖资源站国产| 成人九九视频| 中文字幕av久久爽一区| 色婷婷狠狠18yy| 久久婷婷丁香视频网| WWW久久久| 伊人久久五月天| 五月丁香婷婷基地| 激情综合色播| 成人.在线日韩| 五月婷婷之综合激情在线| 亚洲婷婷五月天在线激情综合网| 这里只有精品免费视频在线观看| 精品人人操| 久久婷婷五月综合色区| 久久九色| 五月六月婷婷| 婷婷狠狠综合网入口| 大香蕉久久婷婷| 日日干天天射| 婷婷刺激综合| 五月伊人91| 五月激情六月| 婷婷五月天激情电影| 免费看欧美成人A片无码| 日韩国产在线免费观看| 99视频精品8 | 狠狠色综合网| 久久久性爱视频| 蜜桃五月天| 亚洲天堂热| 99ri在线播放| 情婷婷五月天| 色九区| 色五月天激情| 五月天婷婷色| 婷婷五月激情在线| 天天檫天天爽| www.超碰| 婷婷香香五月| 在线只有精品| 久热99| 99在线观看视频蜜臀| 成年人丁香五月| 婷婷丁香综合| 99热只有| 色吊丝av中文字幕| 人人人va亚洲视频在线| 香蕉99网| 99亚洲大片精品永久在线观看 | 天天日日夜夜| 色五月天丁香| 欧美噜噜免费观看| 亚洲综合激情五月久久| 丁香婷婷五月天校园春色| 丁香桃色网| 五月丁香自拍| 九月婷婷激情| AV大香蕉| www.久久爱| 五月停视频天堂| 激情五月www| www.色五月| 午夜电影网VA内射| 国产精品成人网址| 天天色,天天日,天天做| 色五月大| 六月婷婷av| 丁香亚洲色综合| 终合激情网| 中文字幕在线人妻| 色色色国产| 狼人狠狠操| 大香蕉网站,大香蕉综合| 午夜成人AV在线| 日本一级特黄大片AAAAA级| 九九AV在线| 婷婷五月天AV| 26uuu国产色| 懂色av粉嫩av蜜臀av| 天天干天天玩天天夜天天射天天操天天日蜜臀少妇 | 超级碰碰一区| 大香蕉婷婷丁香天堂AV| 9色在线| 色婷婷成人做爰A片免费看网站| 婷久看人爽| 亚洲无AV在线中文字幕| 五月婷婷激情综合av| 9999热在线免费观看| 日韩av在线电影| 青青操avbb| 99国产精品白浆在线观看免费 | 国模淫穴色图| 99re6热在线精品视频播放速度| 久久久久久久久久8888| 色色网站在线免费观看视频| 国产探花一片区| 五月天婷婷视频小说| 91碰免费视频| 激情四射五月天| 婷婷丁香高潮了| 五月天婷婷亚洲| 五月丁香婷婷色色色| 亚洲色色色色色| 亚洲综合欧美色丁香婷婷888月图片 | 久久久人妻人伦| 无码成人AAAAA毛片AI换脸| 日韩在线五月天婷婷| AV五月丁香| 中文字幕日产A片在线看| 婷婷五月丁综合| 噜噜狠狠| 91怕怕网| 五月开心播播网| 色五婷婷开心缴| 97操在线视频| 超碰成人AV| 色噜噜狠狠色综无码久久合欧美| 婷婷五月天激情文学| 亚洲天堂爱爱| 五月天婷婷青青草| 丰满人妻一区二区三区| 久草五月天| WWW、日本色丁香、co m| 亚洲成Av人片乱码色第1集| 丁香五月天综合| 五月色综合| 日日爽日日爽| 欧美黄色一级录像| 欧美97色| 五月婷在线视频免费看| 婷婷 亚洲图片 丁香| 天天操五月天| 一起草日本| 色色无码| 午夜九九九九九九九九九九九九九| 婷婷五月天综合中文| 婷婷综合网站| 欧日韩成人| 久久电影五月天丁香电影| 色99网| 亚洲综合久| 99精在线| 色停停五月天| 色婷婷丁香五月天| 久久久91| 99热91| 日韩久综合| 久久爱综合| 国产精品久久久久久喷浆| 婷婷无码五月天| 亚洲久久婷婷丁香五月天| 色综合com| 丁香五月婷婷啪啪啪| 人人看人人97| 激情五月综合第一页| 一级片无码| 国产亚洲成AV人片在线观黄桃| 色墦五月丁香| 亚洲精品成人| 婷婷综合五月天| 色婷视频| 五月丁香六月婷婷无码| 激情深爱综合网| 婷婷丁香五月,狠狠综合| 99热这里只有精品官网| 99成人无码| WWW,五月| 五月丁香综合在线| 六月色婷婷欧美| 五月综合六月丁| 狠狠干2007| 婷婷五月六月激情| 79色色色色| 涩婷婷五月天在线精品视频| 美国十月色婷婷在线观看| 色五月色五天色情网| 久热 91| 六月婷婷激情图片| 粉嫩AV久久一区二区三区| 天天日天天爽| www,99色| 五月婷久久草| 99热99干| 亚洲综合婷婷| 日本操逼九九九九58日本操逼 | 99re久热只有精品6在线直播.com| 爆乳熟妇一区二区三区爆乳照片| 综合色影| 亚洲欧洲自拍图片专区五月天| 激情综合五月色在线| 色久五月天| 激情五月天小说|五月天开心激情网|亚洲精品国产自在现线|黄色五月天 | 久久激情五月| 五月天色综合| 狠狠综合网| 久久久性爱视频| 九九热在线99| 变态另类色图| 91porn一起草| 5月丁香综合网| 俺去也在线视频| 天天操夜夜爽歪歪| 91九色首页| 色五月亚洲| 婷婷欧美激情综合| WWW,五月| 91丨九色丨国产打屁股| 国产AV成人精品| 国产精品成人网址| 天天五月香欧美| 久久深爱激情网| 91狠狠色| 99操九九网| www.成人婷婷综合| www激情网站| 五月天影院婷婷在线观看| 久久五月激情| 婷婷丁香97| 色色色com| 欧美在线视频免费播放| 亭亭色天香| 五月天丁香久久| 中文字幕丰满人妻无码专区| 丁香五月第四色88| 久久六月综合| 丁香六月婷婷缴情欧美| 另类激情五月| 色五月丁香婷婷| 五月丁香激情综合网| 玖玖在线视| 丁香色五月婷婷91桃色| 无码少妇高潮喷水A片免费| 免费观看的AV| 婷婷激情小说网| 丁香五月天.com| 久草热8精品视频在线观看| 在线另类| 超碰国产在线观看| www.99免费视频| 婷婷丁香五月天综合网| 久久综合婷婷| 婷婷九月狠狠色| 亚洲网综合在线| 另类视频一区| 婷婷网五月天| 婷婷五月天丁香久久| 再綫Av免费視品| 思思精品视频| 久99久精品视频| 青青草原伊人网| 五月丁香六月情| 婷婷少妇激情| 五月天四色房丁香亭亭| 中文毛片无遮挡高潮免费| 色播五月婷婷综合| 久久婷综合| 狠狠色噜噜狠狠狠狠综合| 99在线免费视频播放| 天天久久综合| 婷婷99狠狠躁天天躁| 五月婷婷六月丁香激情深爱| 婷婷五月天视频亚洲| 婷婷99狠狠| 婷婷丁香九月| 亚洲av成人在线| 激情 婷婷| 中文字幕乱轮| 日本一级大片| 思思精品视频| 婷婷五月综合啪| 精品成人a v无码内射| 九月婷婷综合网| 99在线精品视频| 综合色99| 丁香六月婷婷综合激情欧美| 婷婷伊人綜合中文字幕| 亚洲AV人人操| 99热九九热| 久久婷婷啪啪视频| 丁香五月天视频在线播放| www.9色色色| 9|在线观看视频| 精品九九在线观看视频| 99久久99久久综合| 色综合天天网| CHINESE熟女老女人HD视频| 五月天激情美女久久| 亚洲超碰中文字幕| 色五月激情综合| 婷婷九月狠狠色| 五月天婷婷无码| 亚洲区1| 婷婷色五月偷拍| 婷婷亚洲综合| 六月丁香影院| 色婷婷成人久久| 五月婷婷黄色| 激情宗合哪里能看| 日本久久久97| www.色婷婷.com| 婷婷丁香色五月亚洲| 丁香五月婷婷六月婷| 99色热综合| 久久久妻人人人| 牛牛热这里只有jingpin| 99热只有这里才是精品| 亚洲综合久| 丁香五月天欧美| 国产精品美女| 亚洲狠狠干| 色九月欧美| 免费啪啪亚州视频| 岛国在线观看91| 色婷婷五月色| 久久婷婷丁香五月一二三| 99碰碰碰| 色五月天丁香| 色丁香六月| 99九九视频精彩在线| 国产精品久久久久久久久久| 天天精品视频在线观看视频| 色网五月婷婷| 国产精品色婷婷久久久精品| 超碰色女人| 思思国产99| 久久亚洲婷婷综合色五月| www.色多多婷| 五月香婷婷| 婷婷五月中文字幕国产| 天天色天天射天天日| 亚洲操操操| 2020日日干| 五月情四婷婷| 久热最新视频| 五月婷婷深深的爱| 五月婷婷六月天| 婷婷五月天天爽| 99er这里只有精品| 丁香玖玖| 天天做天天爽| 97九色视频| 免费五月婷婷网| 9九热视频| 九热久| 婷婷五月天激情网| 五月综合激情图片| 婷丁香五月天| 丁香色综合| 99色色热| 操一区| 激情五月狠狠喔| 激情五月成年| 538在线精品| 99久久综合网| 五月丁香色六月激情干大屄| 婷婷五月天小说| 国外亚洲成AV人片在线观看 | 丁香五月六月综合激情| 开心五月丁香啪| 任你擦免费视频| 新激情五月天天在线网| 婷婷综合97| 777影视理论片大全在线观看| 色婷婷在线视频| 五月婷婷六月丁香综合| 超碰97色| 婷婷成人在线| 97精品综合| 男女99免费视频| 成人 AV播放| 婷婷无码视频| 国产熟女日日骚五月丁香爱| 这里只有精品视频视频在线观看| www.色五月| 五月丁香亭亭操逼| 天天搡日日搡aaaaⅩ| 激情婷| 婷婷九月丁香天堂丁香天堂| 91人妻人人操| Caoub青青超碰 | 色噜噜,噜噜色| 99er国产| 色五月大| 91久久1118| 五月丁香另类网| 色97啪啪| 99日逼视频| 久久久久久久久久久97| 99爱99操| 大香蕉99热| 青青.com| 欧美狠狠草| 五月婷庭丁香在线| 色色亚洲无码| 五月天婷婷色小说| 九九草热在线观看| 婷婷丁香在线播放| 在热视频精品| 极品另类| 国产在线黄色| 激情五月婷婷| 色五月激情五月| 97超碰色| 91一起操| 久这里只有精品99| 99精品爱| 色欲天天综合| 成人视屏在线观看| 色情综合网| 中字幕视频在线永久在线观看免费 | 就去涩涩丁香五月天| 丁香五月婷婷丫| 丁香六月激情综合啪啪| 五月天婷婷在线播放| 婷婷中文无码| 99久视频| 99综合色色色| 五月婷婷综合社区| 激情综合五月激情17| 插少妇综合网| 99热只有| 秋霞AV淫| 少妇伦子伦精品无吗| 亚洲自拍天堂| 人人爱操| 丁香成人视频| 婷婷情色五月天| 91紱請| 超碰在线94| 婷婷激情伍月网| 久久av电影| 先锋资源91| 六月色色| 丁香狠狠色婷婷| A级毛片高清免费不卡播放谢谢谢谢| 综合色影院| 涩涩五| 婷婷播5月| 欧美激情综合色综合啪啪五月| H亚洲| 天天综合亚洲综合网天天αⅴ| 婷婷成人五月天一区| 日本精品99网站| 久久久久9| 99草视频在线观看| 天堂爱啪啪| 久久人妻高清中文| 极品人妻VideOssS人妻| 婷婷五月天VI| 极品色丁香| 婷婷.com| 免费无码毛片一区二区A片 | 综合99综合久久久久久久| 97干欧美| 婷婷五月丁香色综合| 69激情小说| 六月色五月天天婷婷| 五月亭亭六月天| 天堂五月婷婷| 色插综合网| 丁香五月婷婷色| 婷婷五月丁香成人网| 五月婷婷久久激情 | 丁香狠狠色婷婷久久无码视频| 另类视频在线| 久久婷婷五月综合啪| 精品久久久久久久人妻| 丁香婷婷五月| 92久久| 亭亭丁香aV| 婷婷综合在线| AV网站免费在线| 五月丁香六月婷婷综合| 日韩人妻白浆视频系列| 99re这里只有精品9| 超碰成人在线观看| 好大好粗嗯啊-一级黄色大片免费观看-成人AV| 五月丁香六月婷婷不卡免费无码| 亚洲激情五月天| 久9热视频| 婷婷va| 久久久亚洲精品一区二区三区浴池| 五月丁香啪啪网| 天天日综合| 久婷视频| 九九视频在线| 青青久久91| 激情五月狠狠| 国产成人AV不卡| 99热日| 激情五月婷婷| 丁香五月 综合| 亚洲综合婷婷| 欧美婷婷综合| 亚洲精品V天堂中文字幕| 天天插操| 五月天停停基地| 中文字幕日产A片在线看| 99re熱| 亚洲午夜视频| 亚洲色情久久| 五月天成人综合| 激情综合九| 国产密乳av一区二区三区四区| 日本啪啪视频HD| 天天精品视频在线观看视频| 亚洲亚洲人成综合网络| 六月丁香五月激情婷婷| 婷婷六久久| 99小视频网站| 光棍影院日韩精品| 噜噜国产| 九九99免费视频| 99热超碰在线| 天天日人人| 99精日本久久| 婷婷五月深深爱| 婷婷综合网性| 婷婷综合激情| 六月婷婷无码| 久久久精品免费啪啪国| 丁香5月婷婷| 久久久久久久8| 桔色成人在线| 日日噜噜久久婷婷五月天| 国产精品成人AV在线| 五月丁香好婷婷A片网| 91久久婷婷| 99亚洲精美视频在线观看| 色欲色香综合网| 亚洲激情视频网| 成人免费超碰| 999激情视频| 色五月综合网| 中文字幕高清av| 免费视频WWW在线观看网站| 色五月婷婷自拍| 99热这里只有精品50| 婷婷丁香色五月| 天天爱天天天射AV| 不卡在线超碰| 一区二区三区四区牛| 亚洲综合网在线| 五月丁香婷婷欧美| 九九色婷婷| 丁香五月影院| 开心五月丁香综合久久| 视色网在线播放| 日韩AAAAA| 去色色五月天| 天天色综合网1| 91人人操| 第四色激情网| 久久与婷婷| 9 1在线视频| 秋霞网在线观看理论91| 色九月欧美| 九九热精品6| 成人AV片播放| 九九日本视频| 日日日日日| 天天碰天天插天天操| 亚洲精品另类| 成人丁香五月| 婷婷午夜激情| 婷婷激情97| 9色在线| 亚洲人成人五月天| 超碰97干| 人妻有码乱操| 99热最新| 综合五月天婷婷色| 99re这里只有精品免费| 色欧美色色色| 26uuu欧美| 影音先锋91| 思思热在线精品视频| 影音先锋女人av鲁色资源网小说免费| 在线视频激情网站| 噼里啪啦完整版中文在线观看 | 可以看的av| 影音先锋777xfplay色资源网站| 婷婷另类开心| 五月天快乐开心激情网| 激情com| 狠狠干天天内射| 丁香五月在线观看完整版| 天天干天天 亚洲| 天天舔天天操| 午夜成人片400| 伊人婷婷五月天| 综合在线网| 色婷婷婷婷| 色婷婷五月综合在线| 婷婷色在线视频| 26uuu精品一区二区| 久久人人九| 黄网网站在线播放| 99在线精品观看99| 激情六月五月婷婷综合网| 久久只有精| 亚洲综合色丁香五月天| 色亚洲视频| 国语精品探花| 99热官网精品在线| 91色情播放| 五月婷在线色视频| 色五月婷激情| 色在线99| 国外亚洲成AV人片在线观看| Av九九| 丁香五月婷婷操逼| 天天爽天天做| 婷婷播5月| 欧美色六月婷婷| 天天插天天很| www.91九色| 色色色综合网| 婷婷综合激情五月中文字幕| 人妻狠狠操| 婷婷久久五月| 综合五月婷婷| 色综合五月天| 大香蕉五月丁香| 久久久大香蕉| 五月丁香婷婷综合| 午夜丁香综合婷婷| 99乱视频| 中文字幕欧美精品久久| 一起草AV| 激情综合婷婷| 91精品婷婷国产综合久久| 日本综合99| 日本三级日本三级99| 欧美va在线| 九九人人操| 深爱五月婷婷| 射婷婷中文字幕| 99热久久这里只有精品| AV大片在线播放| 97色精品视频 | 99热这里只有精品3| 久久黄色片| 日本乱子人伦在线视频| 99热免费精品| AV五月丁香| 婷婷丁香六月天| 欧美三9久九观看| 九九色综合网| 无码任你操| 202丰满熟女妇大| 色色色激情| 天天舔天天摸天天透| 99国产精品久久久久久久久久久| 亚洲在线成人| 天天综合亚洲| 777影视理论片大全在线观看| 婷婷性爱| 99久久玖玖| 丁香亚洲色综合| site:esunnet.com| 婷婷久热| 日韩九区| 婷婷久久丁香五月| 超碰人妻在线| 五月婷六月综合在线观看| 无码任你操| 另类激情四射| 精品久久久999| 青青草Avb在线| 亚洲热视频在线| 夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂夂亚洲亚洲亚洲亚洲亚洲亚洲亚洲亚洲色 | 蜜乳久AV| 五月天综合在线| 狠狠色噜噜狠狠色噜噜噜999| 五月色色网| 99综合色色色| 久久综合爱| 婷婷五月激情丁香激情| 风流少妇A片一区二区蜜桃| 99视频超级精品| 91AV婷婷| 大香蕉综合网| 六月婷久久| 亚洲精品无码一区二区| 色情五月天首页| 色播五月婷婷五月| 丁香五月婷婷激情四射深爱激情| 一级精品999WWW| 婷婷五月天天爽| 中文人妻AV久久人妻18| 超碰超碰在线| 激情五月天偷拍综合网| 91日婷婷在线| 丁香五月天人体| 4399成人黄A片| 99久在线精品| 91热99| 丁香婷婷婷五月综合色情| 五月婷婷我| 小香蕉av| www激情五月天| 欧美五月停| 婷婷在线五月天观看| 久久久久9999| 激情久久四色| 久青草影院| 大香蕉啪啪啪啪啪啪| 91操色| 99re欧美精品| 色婷婷天堂| 激情五月伊人婷婷| 久综合九| 久久免费少妇高潮99精品| 亚洲欧美一区二区三区四区爱爱动图| 大香蕉520| 中文字幕91,综合| 99福利导航| 五月婷天天搞视频| 69热91天堂| 八戒青柠影视剧在线观看| www.婷婷| 婷婷香蕉香| 国产午夜伦鲁鲁| 精品国产va久久久| 天天综合永久| 色五月婷婷自拍| 国产亚洲99久久精品熟女| 婷婷黄色网| 色色五月激情| 日本9区视频| 丁香久久激情俄| 激情综合网五月| 99乱视频| 五月丁香成年黄色| 天天日天天草| 婷婷激情社区| 极品五月天| WwW天天干| 六月丁香花婷婷| 六月婷基地| 操操操97| 久久久99精品免费观看| site:ornaments52.com| 人妻操在线看|