偷偷摘套内射激情视频,久久精品99国产国产精,中文字幕无线乱码人妻,中文在线中文a,性爽19p

聽說你會架構(gòu)設(shè)計?來,弄一個約會系統(tǒng)

開發(fā) 架構(gòu)
客戶端在 Moment 發(fā)布合成視頻時,將原視頻分片上傳至視頻處理中心(VHS),并通過開啟 QUIC 的方式,讓用戶在弱網(wǎng)環(huán)境下也有著不錯的性能。

引言

大家好,我是小?。

不知道大家有沒有經(jīng)歷過,比家人逼著相親的苦惱,被七大姑八大姨天天問有沒有對象的無奈。當(dāng)然,希望你永遠不要經(jīng)歷 (>-<

不過,在今天這個快節(jié)奏的世界里,相信有很多人都有找對象或者說約會的需求。這時候,誰不想要一個聰明的紅娘呢?

“Dating” 應(yīng)用正是為此而生,它將傳統(tǒng)約會方式和 AI 技術(shù)完美結(jié)合,讓你和潛在對象的距離瞬間拉近。本文將帶你一探這款應(yīng)用的神奇之處,看看它如何讓約會變得既高效又有趣。

1. 整體架構(gòu)

Dating 是一款社交類 App,在傳統(tǒng)單一社交上新增了 虛擬 AI,采用 Moment+ AI 對話等動態(tài)方式,讓交友對象可以更快速地熟悉彼此,從而快速實現(xiàn)精準(zhǔn) Match 的目的。

架構(gòu)圖:

圖片圖片

涉及前后端關(guān)鍵組件如下:

客戶端:頁面展示,接口調(diào)用,渲染好看或者有趣的用戶信息

網(wǎng)關(guān):數(shù)據(jù)接收,根據(jù)用戶不同的位置就近接入代理服務(wù),比如:你在硅谷和在深圳,網(wǎng)關(guān)側(cè)識別后分別將請求發(fā)到不同的代理服務(wù)上

代理服務(wù):公共鑒權(quán),業(yè)務(wù)請求轉(zhuǎn)發(fā),灰度部署等,在不同地區(qū)部署多個服務(wù)器(如硅谷、深圳)

用戶服務(wù):管理用戶基本信息,用戶權(quán)益等數(shù)據(jù)

動態(tài)服務(wù):存儲用戶Moment動態(tài)信息,以及和推薦、Agent交互,是Dating業(yè)務(wù)的核心后臺模塊

會話服務(wù):管理用戶關(guān)系(好友、粉絲)和用戶對話,和 IM 后臺之間交互

涉及算法模塊如下:

Agent模塊:接收后臺傳入的用戶對話信息,根據(jù)一定的Prompt規(guī)則,請求大模型(LLM)進行AI回復(fù)

用戶畫像:處理用戶所有基礎(chǔ)數(shù)據(jù)和記憶,加工、過濾、篩選,并存入ES(大數(shù)據(jù)處理組件)

推薦模塊:暴露接口給后臺服務(wù),當(dāng)用戶獲取推薦時,在ES里取出對應(yīng)的用戶列表展示在客戶端頁面上

涉及基礎(chǔ)組件包括:

ASR(語音轉(zhuǎn)文字),TTS(文本轉(zhuǎn)語音),DB(結(jié)構(gòu)化數(shù)據(jù)存儲),COS文件存儲及 Kafka 數(shù)據(jù)傳輸?shù)?/p>

主要功能包括:用戶登錄、Moment 發(fā)布、獲取推薦用戶、IM 對話,下面基于這些核心功能,我們依次來介紹一下。

2. 用戶登錄

用戶在使用 App 的過程中,創(chuàng)建賬號可以方便用戶對自己創(chuàng)建的資料和信息進行管理。

圖片圖片

Dating 支持用戶采用谷歌、蘋果賬號或者手機號登錄,登錄模塊是公共模塊,主要和 Firebase/Apple 后臺進行交互,做數(shù)據(jù)鑒權(quán)和驗證。

業(yè)務(wù)時序圖如下:

圖片圖片

用戶的業(yè)務(wù)信息主要是用戶服務(wù)進行管理,結(jié)構(gòu)化數(shù)據(jù)存儲在 MySQL 里面,圖片、視頻類數(shù)據(jù)存在 Cos 對象存儲服務(wù)中。

同時,用戶的個人信息:包括昵稱、年齡、性別、喜好、標(biāo)簽等數(shù)據(jù)上報到用戶畫像進行離線處理,每當(dāng)有用戶注冊完成后,推薦模塊會根據(jù)用戶畫像的數(shù)據(jù)用一定的公式計算用戶之間的匹配度,進行推薦。

3. Moment 發(fā)布

在快節(jié)奏的現(xiàn)代社會中,人們越來越傾向于通過在線約會應(yīng)用程序?qū)ふ野閭H。然而,虛擬世界中的信任建立和真實性驗證是一個挑戰(zhàn)。

Dating 通過引入"Moment"功能,旨在提供一個創(chuàng)新的平臺,利用人工智能技術(shù)引導(dǎo)用戶全面展示自己,并與潛在的伴侶建立真誠的聯(lián)系。

以下是創(chuàng)建 Moment 的步驟:

圖片圖片

moment創(chuàng)建中AI共提問兩輪:

第一輪,AI 根據(jù)用戶相冊上傳/主攝像頭拍攝的圖片/live 動圖+用戶基礎(chǔ)信息進行提問,問題實時展示在視頻上。提問結(jié)束后調(diào)用前置攝像頭,并出現(xiàn)語音交互提示,用戶通過語音回答 AI 的問題。

第二輪,AI 根據(jù)用戶上一輪回答深挖提問,問題實時展示在視頻上。提問結(jié)束后調(diào)用前置攝像頭,用戶繼續(xù)通過語音回答問題。

兩輪回答結(jié)束后,進入 moment 制作環(huán)節(jié)(loading 狀態(tài)),moment 制作完成后向用戶展示。

用戶點擊“post”按鈕進行發(fā)布,若不滿意拍攝效果,可點擊返回按鈕選擇是否刪除當(dāng)前 moment 重新創(chuàng)建。

以下是交互流程(時序圖):

圖片圖片

用戶選擇圖片進行上傳到 dating,后臺根據(jù)圖片內(nèi)容、用戶信息生成 AI 提問,比如用戶上傳了一張貓咪的照片,AI 可能會用溫柔的語音詢問:“Hi 小?,這只布偶貓咪真可愛,是之前你說的那只奶昔吧,看它在床上睡得真閑適??!你今天還要繼續(xù)在家擼貓嗎,還是出門和大學(xué)同學(xué)去逛街???”

這時我會回答:“是的,奶昔很可愛呢,今天要背著它先打疫苗,然后和鄢哥去約飯”,然后 dating 再根據(jù)我的回答調(diào)整問題,經(jīng)過兩次問答之后,客戶端會上傳這部分的視頻和圖片,以及我和 AI 的問答信息,并將它們經(jīng)過后臺處理后記錄成我的標(biāo)簽,最終放到我的個人畫像里面。

下次我們再上傳 Moment 時,AI 就可能會問:“Hi 上周你和鄢哥去約飯吃了些什么呀?味道如何...”。

由于都是通過語音進行交流,所以這個部分涉及的組件主要有 DB 存儲語言文件路徑,Cos 存儲語音文件,ASR 將用戶語音轉(zhuǎn)為文本輸入,TTS 將大模型的回復(fù)文本轉(zhuǎn)成語音播放給用戶聽。

4. 獲取推薦用戶

當(dāng)用戶創(chuàng)建 Moment 之后,就可以在首頁刷到別的用戶了。

推薦時我們會根據(jù):用戶距離、相似度(比如年齡、身高、興趣愛好)、活躍度、Moment 豐富程度等來進行推薦,傾向于推薦那些有著優(yōu)質(zhì) Moment 及內(nèi)容完善度高,還有比較活躍的用戶。

同時,會根據(jù)用戶的受歡迎程度來影響被推薦的概率因子。

圖片圖片

用戶刷到別的用戶時,可以在主頁點贊或者對別人的 Moment 進行評論,這時:客戶端會調(diào)用 ASR SDK 方法,將用戶的語音評論轉(zhuǎn)換成文本傳入后臺動態(tài)服務(wù)。

每次點贊或評論都默認(rèn)喜歡對方。當(dāng)對方用戶回復(fù)了點贊或評論后,就會自動成為好友,此時會話服務(wù)會把好友關(guān)注寫入到 IM 系統(tǒng)中(比如騰訊云的 IM 系統(tǒng),參考 QQ),進行實時會話管理、好友關(guān)系維護等。

5. IM 對話

當(dāng)兩個用戶成為好友以后,就可以在 CHAT 頁進行對話。

圖片圖片

此時,用戶拉取好友列表、發(fā)消息都是直接調(diào)用 IM 管理服務(wù),如果是真實用戶對話,IM 管理服務(wù)會將會話發(fā)到長連接管理中心,進行消息推送。比如:你在 VX 上給好友發(fā)了一條消息,好友手機 APP 上就會出現(xiàn)通知圖標(biāo)。當(dāng)好友拉取對話列表時,IM 管理服務(wù)會在接口返回兩個用戶的聊天記錄。

同時,當(dāng) IM 管理服務(wù)監(jiān)測到有消息發(fā)送時,會將所有對話通過回調(diào)的方式傳入會話服務(wù)。會話服務(wù)會通過用戶 ID 判斷是與真人對話還是和虛擬人對話,如果是和虛擬人對話則調(diào)用 Agent,通過一系列 Prompt 處理后由 LLM(大模型,如 DeepSeek)生成智能回復(fù)。

6. 一些難點和要點

1)好友關(guān)系存儲復(fù)雜

在所有社交軟件中,IM 關(guān)系都是我們需要考慮的重點。Dating 業(yè)務(wù)中,我們不僅要考慮單向關(guān)注、粉絲,好友,以及成為好友后單向取關(guān)、好友拉黑等情況。

關(guān)系模型轉(zhuǎn)換圖如下:

圖片圖片

為了減少轉(zhuǎn)換的狀態(tài),我們將拉黑和刪除好友后,直接將關(guān)系置成單向關(guān)注,并在 IM 開始對話前校驗好友關(guān)系,如果發(fā)現(xiàn)對方已經(jīng)拉黑或者刪除,就彈出一個提示(類似 VX 里面的紅色感嘆號),無法進行對話。

同時,為了快速返回好友的關(guān)系,我們在會話服務(wù)存儲關(guān)系狀態(tài)時,不僅需要持久化到 DB 里面,還需要給每個用戶創(chuàng)建三個 Set(分別存儲好友、粉絲和已關(guān)注),這樣拉取好友列表時可以快速返回,減輕數(shù)據(jù)庫負擔(dān)。

關(guān)于 Redis 和 DB 如何保持一致性,可以看我之前寫的這篇文章:Redis IO多路復(fù)用

2)用戶對話耗時較高

在創(chuàng)建 Moment 時,由于每次需要通過用戶上傳的圖片,其基本信息,用戶記憶等數(shù)據(jù)請求大模型,再生成 Q1 提問,這個串行化的過程比較長且涉及 VQA 流程(即給機器一張圖片和一個開放式的的自然語言問題,要求機器輸出自然語言答案),同時,由于圖片的鏈接放在對象存儲服務(wù)中,每次從 LLM 拉取圖片鏈接時由于網(wǎng)絡(luò)不穩(wěn)定,可能會導(dǎo)致用戶上傳圖片后等待回復(fù)需要很久,大概 7~9s。

所以我們通過以下方式來優(yōu)化:

  • 圖片直接通過 Base64 從客戶端傳入 LLM,節(jié)省圖片上傳下載耗時;
  • Agent 通過記憶、圖片信息提問時合并成一步,減少多次調(diào)用耗時,總結(jié)用戶記憶可以異步進行;
  • 流式傳輸,每次 AI 流式返回時,動態(tài)服務(wù)通過標(biāo)點符號判斷一整句話就送入 TTS 生成語音返回給用戶,把整段耗時減少為首句耗時;

圖片圖片

通過以上優(yōu)化,客戶端等待時間從 7~9s 減少到 1~2s 就可以收到 AI 提問。

3)用戶Moment播放卡頓

獲取推薦列表時,由于用戶都是從對象存儲拉取視頻文件進行播放,所以對用戶的網(wǎng)絡(luò)要求比較高。而對于海外 25~30Mbps 網(wǎng)速的用戶來說,拉取一個 15MB 的視頻就得花 5s(15/3MB/s),這是項目上是難以接受的,用戶體驗也很差。

所以我們嘗試加入視頻壓縮、預(yù)加載和自適應(yīng)碼流播放等功能。

圖片圖片

具體流程為:客戶端在 Moment 發(fā)布合成視頻時,將原視頻分片上傳至視頻處理中心(VHS),并通過開啟 QUIC 的方式,讓用戶在弱網(wǎng)環(huán)境下也有著不錯的性能。

然后 VHS 根據(jù)配置的規(guī)則開始轉(zhuǎn)碼,通過異步轉(zhuǎn)碼的方式處理視頻,將用戶的視頻轉(zhuǎn)成 480P、720P、1080P 等格式。

動態(tài)服務(wù)將視頻的鏈接存儲,每次客戶端拉取時,返回視頻鏈接,這時 VHS 可根據(jù)用戶網(wǎng)速的變化自動選擇最適合的碼流,在保證視頻播放盡可能流暢的前提下,選擇最佳清晰度的視頻播放,以此來優(yōu)化用戶體驗。

7. 小結(jié)

由于篇幅有限,很多技術(shù)點和細節(jié)都是淺嘗輒止,如果讀者感興趣,后面我們可以再出一篇細節(jié)的技術(shù)或者代碼實現(xiàn)來講解介紹。

感謝大家一路看到這里!還記得我們開頭聊的那些相親煩惱嗎?在這個快節(jié)奏的世界里,Dating 應(yīng)用正是為了解決這些問題而誕生的。

它不僅結(jié)合了傳統(tǒng)約會方式和 AI 技術(shù),還讓整個過程變得更有趣和高效。無論是智能推薦、自然流暢的對話,還是輕松的互動體驗,這款應(yīng)用都讓你在尋找對象的路上更加從容。

在大模型應(yīng)用化的過程中,Dating 算是一款為現(xiàn)代約會帶來了新思路的 App。希望它能為大家提供一些啟發(fā),讓你在愛情的路上少些波折,多些樂趣;同時讓我們在 AI+ 的過程中,探索更多可能性,體驗技術(shù)如何在社交關(guān)系中發(fā)揮積極作用。


責(zé)任編輯:武曉燕 來源: xin猿意碼
相關(guān)推薦

2023-12-14 17:27:28

架構(gòu)設(shè)計數(shù)據(jù)表

2023-12-29 11:32:27

2023-11-08 07:05:07

架構(gòu)設(shè)計群聊系統(tǒng)

2023-11-01 18:10:45

架構(gòu)設(shè)計技術(shù)

2023-10-08 22:38:52

2022-12-25 18:58:53

架構(gòu)RabbitMQ

2024-03-01 18:55:54

內(nèi)存調(diào)試Go 語言

2024-08-28 08:38:51

2025-05-27 10:15:00

Go開發(fā)軟件架構(gòu)

2021-04-28 08:52:22

高并發(fā)架構(gòu)設(shè)高并發(fā)系統(tǒng)

2019-08-22 10:54:05

分布式系統(tǒng)架構(gòu)

2022-05-17 20:37:41

MyPick泛型對象類型

2019-01-28 11:46:53

架構(gòu)運維技術(shù)

2024-04-24 10:38:22

2025-04-29 02:00:00

高并發(fā)系統(tǒng)場景

2023-07-05 08:00:52

MetrAuto系統(tǒng)架構(gòu)

2025-06-10 01:00:00

分布式日志系統(tǒng)

2025-01-22 08:00:00

架構(gòu)秒殺系統(tǒng)Java

2024-06-21 08:15:25

2023-09-02 21:22:36

Airbnb系統(tǒng)
點贊
收藏

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