[特殊字符] 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密钥哦!

相关推荐
小满、9 小时前
MySQL :实用函数、约束、多表查询与事务隔离
数据库·mysql·事务·数据库函数·多表查询
百***353310 小时前
PostgreSQL_安装部署
数据库·postgresql
Danceful_YJ11 小时前
33.Transformer架构
人工智能·pytorch·深度学习
rayylee12 小时前
生活抱怨与解决方案app
数据库·生活
美狐美颜SDK开放平台13 小时前
美颜SDK性能优化实战:GPU加速与AI人脸美型的融合开发
人工智能·音视频
Lucifer三思而后行13 小时前
使用 BR 备份 TiDB 到 AWS S3 存储
数据库·tidb·aws
AI浩14 小时前
VSSD:具有非因果状态空间对偶性的视觉Mamba模型
人工智能·目标检测·计算机视觉
lqqjuly14 小时前
Lidar调试记录Ⅳ之Ubuntu22.04+ROS2+Livox_SDK2环境下编译Livox ROS Driver 2
人工智能·机器人·自动驾驶
百***170714 小时前
Oracle分页sql
数据库·sql·oracle
qq_4369621814 小时前
数据中台:打破企业数据孤岛,实现全域资产化的关键一步
数据库·人工智能·信息可视化·数据挖掘·数据分析