国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1)

這篇具有很好參考價(jià)值的文章主要介紹了使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1)。希望對大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

下面基于上篇文章使用到的 Chinese-medical-dialogue-data 中文醫(yī)療對話數(shù)據(jù)作為知識內(nèi)容進(jìn)行實(shí)驗(yàn)。

本篇實(shí)驗(yàn)使用 ES 版本為:7.14.0

二、Chinese-medical-dialogue-data 數(shù)據(jù)集

GitHub 地址如下:

https://github.com/Toyhom/Chinese-medical-dialogue-data

數(shù)據(jù)分了 6 個(gè)科目類型:

使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎

數(shù)據(jù)格式如下所示:

使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎

其中 ask 為病癥的問題描述,answer 為病癥的回答。

由于數(shù)據(jù)較多,本次實(shí)驗(yàn)僅使用 IM_內(nèi)科 數(shù)據(jù)的前 5000 條數(shù)據(jù)進(jìn)行測試。

三、Embedding 模型

Embedding 模型使用開源的 chinese-roberta-wwm-ext-large ,該模型輸出為 1024 維。

huggingface 地址:

https://huggingface.co/hfl/chinese-roberta-wwm-ext-large

基本使用如下:

from transformers import BertTokenizer, BertModel
import torch

模型下載的地址

model_name = ‘D:\AIGC\model\chinese-roberta-wwm-ext-large’

def embeddings(docs, max_length=300):
tokenizer = BertTokenizer.from_pretrained(model_name)
model = BertModel.from_pretrained(model_name)

對文本進(jìn)行分詞、編碼和填充

input_ids = []
attention_masks = []
for doc in docs:
encoded_dict = tokenizer.encode_plus(
doc,
add_special_tokens=True,
max_length=max_length,
padding=‘max_length’,
truncation=True,
return_attention_mask=True,
return_tensors=‘pt’
)
input_ids.append(encoded_dict[‘input_ids’])
attention_masks.append(encoded_dict[‘a(chǎn)ttention_mask’])

input_ids = torch.cat(input_ids, dim=0)
attention_masks = torch.cat(attention_masks, dim=0)

前向傳播

with torch.no_grad():
outputs = model(input_ids, attention_mask=attention_masks)

提取最后一層的CLS向量作為文本表示

last_hidden_state = outputs.last_hidden_state
cls_embeddings = last_hidden_state[:, 0, :]
return cls_embeddings

if name == ‘__main__’:
res = embeddings([“你好,你叫什么名字”])
print(res)
print(len(res))
print(len(res[0]))

運(yùn)行后可以看到如下日志:

使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎

四、ElasticSearch 存儲向量

創(chuàng)建向量索引

PUT http://127.0.0.1:9200/medical_index

{
“settings”: {
“number_of_shards”: 3,
“number_of_replicas”: 1
},
“mappings”: {
“properties”: {
“ask_vector”: {
“type”: “dense_vector”,
“dims”: 1024
},
“ask”: {
“type”: “text”,
“analyzer”: “ik_max_word”,
“search_analyzer”: “ik_smart”
},
“answer”: {
“type”: “text”,
“analyzer”: “ik_max_word”,
“search_analyzer”: “ik_smart”
}
}
}
}

其中 dims 為向量的長度。

使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎

查看創(chuàng)建的索引:

GET http://127.0.0.1:9200/medical_index

使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎

數(shù)據(jù)存入 ElasticSearch

引入 ElasticSearch 依賴庫:

pip install elasticsearch -i https://pypi.tuna.tsinghua.edu.cn/simple

from elasticsearch import Elasticsearch
from transformers import BertTokenizer, BertModel
import torch
import pandas as pd

def embeddings_doc(doc, tokenizer, model, max_length=300):
encoded_dict = tokenizer.encode_plus(
doc,
add_special_tokens=True,
max_length=max_length,
padding=‘max_length’,
truncation=True,
return_attention_mask=True,
return_tensors=‘pt’
)
input_id = encoded_dict[‘input_ids’]
attention_mask = encoded_dict[‘a(chǎn)ttention_mask’]

前向傳播

with torch.no_grad():
outputs = model(input_id, attention_mask=attention_mask)

提取最后一層的CLS向量作為文本表示

last_hidden_state = outputs.last_hidden_state
cls_embeddings = last_hidden_state[:, 0, :]
return cls_embeddings[0]

def add_doc(index_name, id, embedding_ask, ask, answer, es):
body = {
“ask_vector”: embedding_ask.tolist(),
“ask”: ask,
“answer”: answer
}
result = es.create(index=index_name, id=id, doc_type=“_doc”, body=body)
return result

def main():

模型下載的地址

model_name = ‘D:\AIGC\model\chinese-roberta-wwm-ext-large’

ES 信息

es_host = “http://127.0.0.1”
es_port = 9200
es_user = “elastic”
es_password = “elastic”
index_name = “medical_index”

數(shù)據(jù)地址

path = “D:\AIGC\dataset\Chinese-medical-dialogue-data\Chinese-medical-dialogue-data\Data_數(shù)據(jù)\IM_內(nèi)科\內(nèi)科5000-33000.csv”

分詞器和模型

tokenizer = BertTokenizer.from_pretrained(model_name)
model = BertModel.from_pretrained(model_name)

ES 連接

es = Elasticsearch(
[es_host],
port=es_port,
http_auth=(es_user, es_password)
)

讀取數(shù)據(jù)寫入ES

data = pd.read_csv(path, encoding=‘ANSI’)
for index, row in data.iterrows():

寫入前 5000 條進(jìn)行測試

if index >= 500:
break
ask = row[“ask”]
answer = row[“answer”]

文本轉(zhuǎn)向量

embedding_ask = embeddings_doc(ask, tokenizer, model)
result = add_doc(index_name, index, embedding_ask, ask, answer, es)
print(result)

if name == ‘__main__’:
main()

使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎

五、相似性搜索

1. 余弦相似度算法:cosineSimilarity

from elasticsearch import Elasticsearch
from transformers import BertTokenizer, BertModel
import torch

def embeddings_doc(doc, tokenizer, model, max_length=300):
encoded_dict = tokenizer.encode_plus(
doc,
add_special_tokens=True,
max_length=max_length,
padding=‘max_length’,
truncation=True,
return_attention_mask=True,
return_tensors=‘pt’
)
input_id = encoded_dict[‘input_ids’]
attention_mask = encoded_dict[‘a(chǎn)ttention_mask’]

前向傳播

with torch.no_grad():
outputs = model(input_id, attention_mask=attention_mask)

提取最后一層的CLS向量作為文本表示

last_hidden_state = outputs.last_hidden_state
cls_embeddings = last_hidden_state[:, 0, :]
return cls_embeddings[0]

def search_similar(index_name, query_text, tokenizer, model, es, top_k=3):
query_embedding = embeddings_doc(query_text, tokenizer, model)
print(query_embedding.tolist())
query = {
“query”: {
“script_score”: {
“query”: {“match_all”: {}},
“script”: {
“source”: “cosineSimilarity(params.queryVector, ‘a(chǎn)sk_vector’) + 1.0”,
“l(fā)ang”: “painless”,
“params”: {
“queryVector”: query_embedding.tolist()
}
}
}
},
“size”: top_k
}
res = es.search(index=index_name, body=query)
hits = res[‘hits’][‘hits’]
similar_documents = []
for hit in hits:
similar_documents.append(hit[‘_source’])
return similar_documents

def main():

模型下載的地址

model_name = ‘D:\AIGC\model\chinese-roberta-wwm-ext-large’

ES 信息

es_host = “http://127.0.0.1”
es_port = 9200
es_user = “elastic”
es_password = “elastic”
index_name = “medical_index”

分詞器和模型

tokenizer = BertTokenizer.from_pretrained(model_name)
model = BertModel.from_pretrained(model_name)

ES 連接

es = Elasticsearch(
[es_host],
port=es_port,
http_auth=(es_user, es_password)
)

query_text = “我有高血壓可以拿黨參泡水喝嗎”

similar_documents = search_similar(index_name, query_text, tokenizer, model, es)
for item in similar_documents:
print(“================================”)
print(‘a(chǎn)sk:’, item[‘a(chǎn)sk’])
print(‘a(chǎn)nswer:’, item[‘a(chǎn)nswer’])

if name == ‘__main__’:
main()

打印日志如下:

使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎

================================ ask: 我有高血壓這兩天女婿來的時(shí)候給我拿了些黨參泡水喝,您好高血壓可以吃黨參嗎? answer: 高血壓病人可以口服黨參的。黨參有降血脂,降血壓的作用,可以徹底消除血液中的垃圾,從而對冠心病以及心血管疾病的患者都有一定的穩(wěn)定預(yù)防工作作用,因此平時(shí)口服黨參能遠(yuǎn)離三高的危害。另外黨參除了益氣養(yǎng)血,降低中樞神經(jīng)作用,調(diào)整消化系統(tǒng)功能,健脾補(bǔ)肺的功能。感謝您的進(jìn)行咨詢,期望我的解釋對你有所幫助。

ask: 我準(zhǔn)備過兩天去看我叔叔,順便帶些人參,但是他有高血壓,您好人參高血壓可以吃嗎? answer: 人參有一定的調(diào)壓作用,主要用來氣虛體虛的患者,如果有氣血不足,氣短乏力,神經(jīng)衰弱,神經(jīng)衰弱健忘等不適癥狀的話,可以適當(dāng)口服人參調(diào)養(yǎng)身體,但是對于高血壓的病人,如果長期食用人參的話,可能會對血壓引發(fā)一定影響,所以,比較好到醫(yī)院中醫(yī)科實(shí)施辨證論治調(diào)治,看如何適合食用人參。

ask: 我媽媽有點(diǎn)高血壓,比較近我朋友送了我一些丹參片,我想知道高血壓能吃丹參片嗎?
answer: 丹參片具備活血化瘀打通血管的作用可以致使血液粘稠度減低,所以就容易致使血管內(nèi)血液供應(yīng)便好防止出現(xiàn)血液粘稠,致使血壓下降,所以對降血壓是有一定幫助的,高血壓患者是經(jīng)常使用丹參片實(shí)施治療的??梢灶A(yù)防,因?yàn)檠赫吵硪齺淼墓谛牟⌒慕g痛以及外周血管腦水腫癥狀。

自我介紹一下,小編13年上海交大畢業(yè),曾經(jīng)在小公司待過,也去過華為、OPPO等大廠,18年進(jìn)入阿里一直到現(xiàn)在。

深知大多數(shù)大數(shù)據(jù)工程師,想要提升技能,往往是自己摸索成長或者是報(bào)班學(xué)習(xí),但對于培訓(xùn)機(jī)構(gòu)動則幾千的學(xué)費(fèi),著實(shí)壓力不小。自己不成體系的自學(xué)效果低效又漫長,而且極易碰到天花板技術(shù)停滯不前!

因此收集整理了一份《2024年大數(shù)據(jù)全套學(xué)習(xí)資料》,初衷也很簡單,就是希望能夠幫助到想自學(xué)提升又不知道該從何學(xué)起的朋友。
使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎
使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎
使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎
使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎
使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上大數(shù)據(jù)開發(fā)知識點(diǎn),真正體系化!

由于文件比較大,這里只是將部分目錄大綱截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且后續(xù)會持續(xù)更新

如果你覺得這些內(nèi)容對你有幫助,可以添加VX:vip204888 (備注大數(shù)據(jù)獲?。?/strong>
使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1),2024年程序員學(xué)習(xí),elasticsearch,大數(shù)據(jù),搜索引擎

片轉(zhuǎn)存中…(img-SVhQZqLx-1712552759258)]
[外鏈圖片轉(zhuǎn)存中…(img-dzge6J1x-1712552759258)]
[外鏈圖片轉(zhuǎn)存中…(img-Nv693j9X-1712552759259)]
[外鏈圖片轉(zhuǎn)存中…(img-ltsO6P3y-1712552759259)]

既有適合小白學(xué)習(xí)的零基礎(chǔ)資料,也有適合3年以上經(jīng)驗(yàn)的小伙伴深入學(xué)習(xí)提升的進(jìn)階課程,基本涵蓋了95%以上大數(shù)據(jù)開發(fā)知識點(diǎn),真正體系化!

由于文件比較大,這里只是將部分目錄大綱截圖出來,每個(gè)節(jié)點(diǎn)里面都包含大廠面經(jīng)、學(xué)習(xí)筆記、源碼講義、實(shí)戰(zhàn)項(xiàng)目、講解視頻,并且后續(xù)會持續(xù)更新

如果你覺得這些內(nèi)容對你有幫助,可以添加VX:vip204888 (備注大數(shù)據(jù)獲取)
[外鏈圖片轉(zhuǎn)存中…(img-oTutXL7x-1712552759259)]文章來源地址http://www.zghlxwxcb.cn/news/detail-848106.html

到了這里,關(guān)于使用 ElasticSearch 作為知識庫,存儲向量及相似性搜索_elasticsearch cosinesimilarity(1)的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • (一)AI本地知識庫問答(可運(yùn)行):LangChain+Chroma向量數(shù)據(jù)庫+OpenAi大模型

    (一)AI本地知識庫問答(可運(yùn)行):LangChain+Chroma向量數(shù)據(jù)庫+OpenAi大模型

    只需要看config目錄下的config.py,data目錄下的txt知識庫文件,db向量數(shù)據(jù)庫文件在持久化部署后會自動生成,route下的app.py,scripts目錄下的Chroma向量庫持久化部署.py這幾個(gè)就可以,scripts目錄下的考勤問答.py和test目錄下都是單獨(dú)的自己測試的小代碼,可以不用關(guān)注 因?yàn)檫\(yùn)行需要

    2024年02月03日
    瀏覽(29)
  • 【elasticsearch實(shí)戰(zhàn)】知識庫文件系統(tǒng)檢索工具FSCrawler

    【elasticsearch實(shí)戰(zhàn)】知識庫文件系統(tǒng)檢索工具FSCrawler

    最近有一個(gè)需求需要建設(shè)一個(gè)知識庫文檔檢索系統(tǒng),這些知識庫物料附件的文檔居多,有較多文檔格式如:PDF, Open Office, MS Office等,需要將這些格式的文件轉(zhuǎn)化成文本格式,寫入elasticsearch 的全文檢索索引,方便搜索。 我這里介紹一種工具不考慮文件原來格式,但能方便將轉(zhuǎn)

    2024年02月22日
    瀏覽(20)
  • 基于GPT3.5實(shí)現(xiàn)本地知識庫解決方案-利用向量數(shù)據(jù)庫和GPT向量接口-實(shí)現(xiàn)智能回復(fù)并限制ChatGPT回答的范圍...

    基于GPT3.5實(shí)現(xiàn)本地知識庫解決方案-利用向量數(shù)據(jù)庫和GPT向量接口-實(shí)現(xiàn)智能回復(fù)并限制ChatGPT回答的范圍...

    標(biāo)題有點(diǎn)長,但是基本也說明出了這篇文章的主旨,那就是利用GPT AI智能回答自己設(shè)置好的問題 既能實(shí)現(xiàn)自己的AI知識庫機(jī)器人,又能節(jié)省ChatGPT調(diào)用的token成本費(fèi)用。 代碼倉庫地址 document.ai: 基于GPT3.5的通用本地知識庫解決方案 下面圖片是整個(gè)流程: 導(dǎo)入知識庫數(shù)據(jù) 利用

    2024年02月02日
    瀏覽(18)
  • KnowledgeGPT:利用檢索和存儲訪問知識庫上增強(qiáng)大型語言模型10.30

    KnowledgeGPT:利用檢索和存儲訪問知識庫上增強(qiáng)大型語言模型10.30

    大型語言模型(LLM)在自然語言處理領(lǐng)域展現(xiàn)出了令人印象深刻的影響,但它們?nèi)匀辉趲讉€(gè)方面存在問題,例如完整性、及時(shí)性、忠實(shí)度和適應(yīng)性。盡管最近的研究工作集中在將LLM與外部知識源進(jìn)行連接,但知識庫(KB)的整合仍然研究不足且面臨多個(gè)挑戰(zhàn)。 本文介紹了Kno

    2024年02月06日
    瀏覽(30)
  • [Unity+文心知識庫]使用百度智能云搭建私有知識庫,集成知識庫API,打造具備知識庫的AI二次元姐姐

    [Unity+文心知識庫]使用百度智能云搭建私有知識庫,集成知識庫API,打造具備知識庫的AI二次元姐姐

    ? ? ? ? 最近從百度智能云的官方技術(shù)支持那邊了解到,目前百度千帆大模型平臺提供有在線的知識庫功能,能夠在線上傳自己的私人知識庫文檔,并且配置文心一言模型作為文本生成的引擎,構(gòu)建自己的私有知識庫。之前自己搭建知識庫都是用的langchain框架,在本地部署使

    2024年02月04日
    瀏覽(25)
  • springboot+elasticsearch+neo4j+vue+activiti數(shù)字知識庫管理系統(tǒng)

    springboot+elasticsearch+neo4j+vue+activiti數(shù)字知識庫管理系統(tǒng)

    在數(shù)字化高度普及的時(shí)代,企事業(yè)機(jī)關(guān)單位在日常工作中會產(chǎn)生大量的文檔,例如醫(yī)院制度匯編,企業(yè)知識共享庫等。針對這些文檔性的東西,手工紙質(zhì)化去管理是非常消耗工作量的,并且紙質(zhì)化查閱難,易損耗,所以電子化管理顯得尤為重要。 【springboot+elasticsearch+neo4j+v

    2024年02月09日
    瀏覽(42)
  • 使用Docker部署wikitten個(gè)人知識庫

    使用Docker部署wikitten個(gè)人知識庫

    Wikitten是一款開源Wiki知識管理系統(tǒng),使用PHP開發(fā),支持Markdown語法,無需數(shù)據(jù)庫,自動生成樹形目錄,適合用來做個(gè)人Wiki知識庫。 Wikitten 是一個(gè)小巧、快速的 PHP wiki。 Wikitten是存儲您的筆記、代碼片段、想法等的完美場所。 Wikitten是一款開源Wiki知識管理系統(tǒng)。 支持Markdown語

    2024年02月14日
    瀏覽(30)
  • 使用LangChain與ChatGLM實(shí)現(xiàn)本地知識庫(一)

    使用LangChain與ChatGLM實(shí)現(xiàn)本地知識庫(一)

    ??本篇主要內(nèi)容為介紹ChatGLM3的安裝使用,后續(xù)才會涉及到使用LangChain實(shí)現(xiàn)本地知識庫的內(nèi)容; ??ChatGLM為智譜與清華大學(xué)開源的一個(gè)大語言模型,支持多輪對話、內(nèi)容創(chuàng)作等,ChatGLM3-6B為ChatGLM3系列中門檻相對較低的一個(gè),本地部署提供兼容OpenAI的API; ??LangChain用于快

    2024年02月05日
    瀏覽(27)
  • 使用 FastGPT 構(gòu)建高質(zhì)量 AI 知識庫

    使用 FastGPT 構(gòu)建高質(zhì)量 AI 知識庫

    作者:余金隆。FastGPT 項(xiàng)目作者,Sealos 項(xiàng)目前端負(fù)責(zé)人,前 Shopee 前端開發(fā)工程師 FastGPT 項(xiàng)目地址: https://github.com/labring/FastGPT/ 自從去年 12 月 ChatGPT 發(fā)布以來,帶動了一輪新的交互應(yīng)用革命。尤其在 GPT-3.5 接口全面開放后,大量的 LLM 應(yīng)用如雨后春筍般涌現(xiàn)。然而,由于 GP

    2024年02月14日
    瀏覽(24)
  • 使用chatglm搭建本地知識庫AI_聞達(dá)

    使用chatglm搭建本地知識庫AI_聞達(dá)

    最近大火的chatgpt,老板說讓我看看能不能用自己的數(shù)據(jù),回答專業(yè)一些,所以做了一些調(diào)研,最近用這個(gè)倒是成功推理了自己的數(shù)據(jù),模型也開源了,之后有機(jī)會也訓(xùn)練一下自己的數(shù)據(jù)。 1.1雙擊打開anconda prompt創(chuàng)建虛擬環(huán)境 1.2下載pytorch(這里要根據(jù)自己的電腦版本下載)都

    2024年02月10日
    瀏覽(23)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包