今天给大家分享一个超酷的技术组合: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密钥哦!