天天看点

Qdrant向量数据库操作指南:插入更新

1.插入数据样例

text={"collect_type":"news",

"title":"腾讯财报解读",

"summary":"2022年财报核心指标",

"text":"""3月22日消息,经历了近一年的筑底和蓄力,腾讯开始展露复苏迹象,广告、视频号、海外业务等表现强劲,数实经济已成为新增长引擎。这是腾讯控股(00700.HK)3月22日发布2022年第四季度及全年财报所透露的信息。财报显示,2022年第四季度腾讯净利润(Non-IFRS)同比增长达到19%,在经历了五个季度的调整后重新回归两位数增长。2022年全年,腾讯实现营收5545.52亿元,净利润(Non-IFRS)1156.49亿元。代表数实经济的金融科技和企业服务板块收入1770.64亿元,营收占比创下新高,产业互联网和消费互联网已经成为腾讯稳健增长的双引擎,收入结构更加健康和多元。

腾讯董事会主席兼首席执行官马化腾表示,2022年,公司提升效率,聚焦核心业务,拓展了包括视频号与国际市场游戏在内的新的服务与收入来源。腾讯正大力投入建设人工智能的能力与云基础设施,拥抱基础模型发展的趋势,相信将有助于提升公司现有的产品与服务,探索和推出新的产品。未来公司将持续致力于通过科技与创新,创造用户、商业与社会价值。

增效明显 视频号及海外市场贡献新动能过去一年,腾讯聚焦业务创新增效,视频号运营数据亮眼,海外市场拓展显著,成为去年第四季度财报最大看点。这不仅带动广告等业务率先企稳复苏,也为腾讯持续稳健增长贡献了新动能。

去年第四季度,腾讯收入、利润双双显露复苏迹象:净利润自2021年第三季度以来首度回到两位数增长;营业收入环比连续两个季度改善。根据财报,2022年微信月活及用户使用时长均保持增长。作为微信生态的“原子化组件”,视频号发展迅速,去年第四季度小程序和视频号使用时长分别为去年同期的两倍和三倍,均超过朋友圈使用时长。小程序已经成为中国领先的交易平台之一,2022年交易额达数万亿元人民币并为实体经济发展作出贡献。

通过持续的产品能力创新和对创作者的不断激励,视频号正在成为内容丰富、多元、共生的平台。此前微信公开课披露,2022年视频号原创内容播放量同比提升350%;视频号看播规模增长300%,看播时长增长156%。同时,2022年视频号直播带货规模保持高速增长,销售额同比增长超8倍。

在视频号信息流广告及小程序广告等带动下,去年第四季度腾讯网络广告业务结束了连续五个季度的下滑,重回增长轨道,同比增长15%,达到247亿元,其中社交广告收入214亿元,同比增长17%。目前社交广告已经占据了腾讯广告收入的大头,占比近9成。"""

}

2.大文本切分

def to_split(content):

doc_splitter = RecursiveCharacterTextSplitter(chunk_size=256, chunk_overlap=0)

split_text=doc_splitter.split_text(content['text'])

return split_text

3.embedding化

def to_embeddings(embeddings_item):

sentence_embeddings = HuggingFaceEmbeddings(model_name='GanymedeNil/text2vec-large-chinese')

return sentence_embeddings.embed_documents(embeddings_item)

4.插入数据库

def insert_qdrant(s_text,text,embeddings):

client = QdrantClient("******", port=6333)

collection_name = "test_collection"

#存在删除重新建立

client.recreate_collection(

collection_name=collection_name,

vectors_config=VectorParams(size=1024, distance=Distance.COSINE),

#shard_number=6,

#replication_factor=3,

)

"""

#单条写入更新

client.upsert(

collection_name=collection_name,

wait=True,

points=[

PointStruct(id=str(uuid.uuid1()),

vector=item,

payload={'collect_type':s_text['collect_type'],'title':s_text['title'],'summary':s_text['summary'],"text": s_text[text]}),

],

)

"""

#batch写入

ids = [str(uuid.uuid1()) for _ in embeddings]

client.upsert(

collection_name=collection_name,

points=Batch(

ids=ids,

vectors=embeddings,

payloads=[{'collect_type': s_text['collect_type'], 'title': s_text['title'], 'summary': s_text['summary'], 'text': t} for t in text],

)

)

继续阅读