今天给大家分享一个超酷的技术组合:Milvus向量数据库 + 智谱AI大模型!我们将创建一个能理解电影内容的智能搜索系统,不仅能找到相关电影,还能用自然语言总结答案!
🌟 项目背景
这个项目基于Milvus官方案例改造,实现了:
-
电影数据向量化存储
-
语义搜索功能
-
大模型智能总结
-
中英文自动翻译
🛠️ 技术栈
%pip install zhipuai pymilvus==2.4.1 datasets tqdm
🧠 核心代码解析
1. 智谱AI向量化
from zhipuai import ZhipuAI MY_API_KEY = '你的API密钥' def my_embedding(texts): client = ZhipuAI(api_key=MY_API_KEY) response = client.embeddings.create( model="embedding-2", input=texts, dimensions=1024 ) return response
2. Milvus数据库连接
from pymilvus import MilvusClient client = MilvusClient('http://127.0.0.1:19530') client.using_database('test')
3. 创建电影集合
schema = MilvusClient.create_schema( auto_id=True, enable_dynamic_field=False, ) schema.add_field(field_name="id", datatype=DataType.INT64, is_primary=True) schema.add_field(field_name="title", datatype=DataType.VARCHAR, max_length=64000) # 其他字段... schema.add_field(field_name="embedding", datatype=DataType.FLOAT_VECTOR, dim=1024) client.create_collection(collection_name="movie_search", schema=schema)
🎥 数据导入流程
-
加载Netflix电影数据集
-
分批进行向量化
-
写入Milvus数据库
from datasets import load_dataset from tqdm import tqdm dataset = load_dataset("hugginglearners/netflix-shows", split="train") for i in tqdm(range(0, len(dataset)): # 处理数据... embeddings = emb_texts([item["description"] for item in batch]) client.insert(collection_name="movie_search", data=batch)
🔍 智能搜索功能
基础搜索
def retrieve(query, top_k=5): res = client.search( collection_name="movie_search", data=emb_texts(text), limit=top_k, output_fields=["title", "type", "release_year", "rating", "description"] ) # 处理结果...
高级功能:翻译+总结
translate_prompt = '''你是一个专业的翻译...''' summary_prompt = '''你是一个专业的知识库助理...''' def translate(query): # 调用智谱API翻译... def summary(query): translated = translate(query) knowledge = retrieve(translated, top_k=10) # 调用智谱API总结...
🎬 实际效果演示
搜索"科幻电影":
query = '科幻电影' print(summary(query))
输出结果:
1. 《超能陆战队》- 2014年PG级动画电影,讲述天才少年Hiro和他的机器人伙伴Baymax对抗神秘恶棍的故事... 2. 《星际穿越》- 2014年PG-13级科幻片,一群探险者穿越虫洞寻找新家园...
💡 技术亮点
-
语义搜索:不再是关键词匹配,而是理解电影内容
-
中英混合处理:自动翻译查询,中文提问也能找到英文电影
-
智能总结:大模型提炼搜索结果,直接给出精华内容
🚀 扩展应用
可以进一步开发:
-
电影推荐系统
-
基于用户历史记录的个性化搜索
-
多模态搜索(结合海报、剧照等)
这个项目展示了如何将向量数据库与大模型结合,构建真正智能的应用!快来试试吧~
提示:运行代码前记得配置好Python环境和API密钥哦!