Token导航 LogoToken导航TokenDH.com
MCP Movie logo
搜索检索stdio官方级别未说明来源级核验

MCP Movie

MCP Server

一个基于Ollama、LanceDB和FastAPI的智能电影推荐系统,通过语义搜索和LLM推理提供个性化电影推荐。

工具数

2

提示词数

0

GitHub Stars

1

资源数

0
搜索向量数据库FastAPI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

作者 / 组织

aelmufti

提供方

aelmufti

最后核验

2026/5/17 20:20

运行时

Python

快速接入

先看主来源和安装命令,再打开仓库或文档;下面只保留这个条目的关键接入事实。

命令预览

python -m venv .venv

详细介绍

🎬 AI电影推荐器

智能电影推荐系统 奥拉玛, LanceDB,以及 快速API用几句话描述你的感受,并使用语义搜索和LLM推理获得个性化的电影推荐。

🌟 特性

  • 语义搜索:使用矢量嵌入来查找与您的描述匹配的电影
  • LLM供电:Ollama的Llama3模型提供智能建议
  • 快速矢量数据库:LanceDB用于闪电般快速的相似性搜索
  • 漂亮的UI:具有自定义渐变主题的现代React前端
  • 简单API:使用两个端点清理FastAPI后端

🏗️ 建筑

User Input → FastAPI → LanceDB (Vector Search) → Ollama (LLM) → Movie Recommendation
  1. 用户用关键字描述他们的电影氛围
  2. 后端通过以下方式嵌入查询 nomic-embed-text
  3. LanceDB通过矢量搜索找到前5部类似电影
  4. Llama3分析候选人并选择最佳匹配
  5. 返回:电影名称、年份和导演

📋 先决条件

在开始之前,请确保您已经:

  • Python 3.8+
  • Node.js 18+ 和npm
  • 奥拉玛 已安装并正在运行

🚀 安装指南

第一步:安装Olama

macOS

brew install ollama

Linux

curl -fsSL https://ollama.com/install.sh | sh

视窗

下载自 ollama.com

第二步:提取所需模型

# Pull the embedding model (for vector search)
ollama pull nomic-embed-text

# Pull the LLM model (for recommendations)
ollama pull llama3

步骤3:启动Ollama服务器

ollama serve

在单独的终端中保持此运行。它将继续运行 http://localhost:11434

步骤4:设置后端

# Create virtual environment
python -m venv .venv

# Activate virtual environment
# On macOS/Linux:
source .venv/bin/activate
# On Windows:
# .venv\Scripts\activate

# Install dependencies
pip install -r requirements.txt

# Initialize the database (first time only)
python init_database.py

# Start the FastAPI server
uvicorn main:app --reload

后端将运行 http://localhost:8000

步骤5:设置前端

cd frontend

# Install dependencies
npm install

# Start development server
npm run dev

前端将继续运行 http://localhost:3000

🎯 用法

  1. 打开 http://localhost:3000 在浏览器中
  2. 键入描述性单词(例如,“黑暗”、“神秘”、“惊悚片”)
  3. 太空 在每个单词后面添加标签
  4. 点击 “查找电影”
  5. 获得您的个性化推荐,包括标题、年份和导演!

📁 项目结构

.
├── main.py                    # FastAPI backend
├── llm_controls.py           # LLM and vector search logic
├── init_database.py          # Database initialization script
├── movies.csv                # Movie dataset
├── requirements.txt          # Python dependencies
├── movie_vectors.lancedb/    # LanceDB vector database
└── frontend/                 # React frontend
    ├── src/
    │   ├── App.jsx          # Main React component
    │   ├── main.jsx         # React entry point
    │   └── index.css        # Tailwind + custom styles
    ├── package.json
    ├── tailwind.config.js
    └── vite.config.js

🔌 API终点

发布 /recommend

根据您的描述获得电影推荐。

请求:

{
  "prompt": "dark mysterious thriller",
  "model": "llama3"
}

答复:

{
  "recommendation": "The Prestige (2006) - Christopher Nolan"
}

发布 /generate

原始LLM生成端点。

请求:

{
  "prompt": "Tell me about sci-fi movies",
  "model": "llama3"
}

获取 /

API信息和可用端点。

🛠️ 技术栈

后端

  • 快速API:现代Python web框架
  • 奥拉玛:本地LLM推理
  • LanceDB:用于嵌入的矢量数据库
  • 熊猫:数据操作

前端

  • 反应18:UI库
  • 维特:构建工具
  • 顺风CSS:造型
  • Inter&JetBrains单声道:排版

🎨 定制

添加更多电影

编辑 movies.csv 并运行:

python init_database.py

更改LLM模型

llm_controls.py,替换 llama3 对于任何Olama型号:

ollama.chat(model="mistral", ...)

修改提示

编辑 system_promptllm_controls.py 更改推荐样式。

🐛 故障排除

Ollama连接错误

  • 确保Olama正在运行: ollama serve
  • 检查模型是否被拉出: ollama list

未找到数据库

  • 运行初始化: python init_database.py

前端无法连接到后端

  • 验证后端是否在端口8000上运行
  • 检查中的代理设置 frontend/vite.config.js

端口已在使用中

# Backend (change port)
uvicorn main:app --reload --port 8001

# Frontend (change in vite.config.js)

📝 许可证

麻省理工学院

🤝 贡献

请随时打开问题或提交pull请求!

______________________________________________________________________

内置于❤️ 使用Ollama、LanceDB和React

目录标签

目录标签

搜索向量数据库FastAPI语义搜索JavaScript本地部署LLM推荐React前端

接入字段

传输方式(transport,传输协议)

stdio

鉴权方式(authType,认证方式)

none

运行时(runtime,运行环境)

Python

工具数量(toolCount,工具数)

2

资源数量(resourceCount,资源数)

0

提示词数量(promptCount,提示词数)

0

权限和风险

stdionone部署方式未说明

接入前请确认传输方式、认证方式和部署位置,并根据实际工具能力限制访问范围。

安装前确认

不要直接授予不必要的文件、网络或账号权限;先核对安装命令和配置内容。

来源信息

继续浏览同类 MCP