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

相关推荐
Austindatabases2 分钟前
什么int类型里面能插入文字,还不能改字段类型--SQLite 五脏俱全系列 (2)
数据库·sqlite
2301_777599373 分钟前
SQL如何实现动态分组统计_使用存储过程与动态SQL
jvm·数据库·python
Shorasul4 分钟前
HTML怎么在GeneratePress中精调图片对齐_GP轻量主题CSS覆盖方法
jvm·数据库·python
qq_334563555 分钟前
Python开发Flask项目如何部署到云服务器_使用Fabric自动化发布脚本
jvm·数据库·python
QYR_Jodie5 分钟前
电子设备迭代与新能源扩张驱动,稳增前行:全球散热器2025年31.70亿,2032年锚定54.81亿,2026-2032年CAGR7.7%
大数据·人工智能·市场报告
试试勇气6 分钟前
MySQL--数据类型
数据库·mysql
Raink老师6 分钟前
【AI面试临阵磨枪】ReAct 框架完整流程是什么?Reasoning → Action → Observation 如何协作?
人工智能·ai 面试题
郝学胜-神的一滴6 分钟前
ReLU激活函数全解析:从原理到实战,解锁深度学习核心激活单元
人工智能·pytorch·python·深度学习·算法
XS0301066 分钟前
agent笔记(二)Langchain关键对象
人工智能·笔记·langchain
2301_764150567 分钟前
JavaScript中预取Prefetch与预加载Preload策略
jvm·数据库·python