[特殊字符] Milvus + LLM大模型:打造智能电影知识库系统

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

🎥 数据导入流程

  1. 加载Netflix电影数据集

  2. 分批进行向量化

  3. 写入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级科幻片,一群探险者穿越虫洞寻找新家园...

💡 技术亮点

  1. 语义搜索:不再是关键词匹配,而是理解电影内容

  2. 中英混合处理:自动翻译查询,中文提问也能找到英文电影

  3. 智能总结:大模型提炼搜索结果,直接给出精华内容

🚀 扩展应用

可以进一步开发:

  • 电影推荐系统

  • 基于用户历史记录的个性化搜索

  • 多模态搜索(结合海报、剧照等)

这个项目展示了如何将向量数据库与大模型结合,构建真正智能的应用!快来试试吧~

提示:运行代码前记得配置好Python环境和API密钥哦!

相关推荐
测试人社区—66795 分钟前
提升测试覆盖率的有效手段剖析
人工智能·学习·flutter·ui·自动化·测试覆盖率
狂炫冰美式6 分钟前
不谈技术,搞点文化 🧀 —— 从复活一句明代残诗破局产品迭代
前端·人工智能·后端
muxin-始终如一29 分钟前
消息丢失场景和解决方案
数据库·中间件·消息丢失
phoenix@Capricornus1 小时前
视觉Transformer(ViT)
人工智能·深度学习·transformer
子春一1 小时前
Flutter 与 AI 融合开发实战:在移动端集成大模型、智能推荐与生成式 UI
人工智能·flutter·ui
whitelbwwww2 小时前
Python图像处理入门指南--opencv
人工智能·opencv·计算机视觉
Peter11467178502 小时前
华中科技大学研究生课程《数字图像处理I》期末考试(2025-回忆版/电子信息与通信学院)
图像处理·人工智能·计算机视觉
颜颜yan_2 小时前
在openEuler上搞个云原生AI模型商店:像点外卖一样部署模型
人工智能·云原生