影视探索AI助手

一个基于TMDB API和MCP服务器的智能聊天助手,帮助用户发现电影和电视节目。

  • by Kushal1715
  • Python
  • 本地部署
  • 更新于
在 GitHub 查看 Kushal1715/film-tv-explorer-ai-agent

使用说明

影视探索者-带MCP的AI代理

一个智能聊天代理,帮助用户使用TMDB API发现电影和电视节目,包装在MCP服务器中。

项目结构

.
├── agent/              # LLM-based chat agent
├── mcp-server/         # MCP server wrapping TMDB API
├── tests/              # Unit and integration tests
├── requirements.txt    # Python dependencies
└── README.md          # This file

设置

  1. 安装依赖项:

    pip install -r requirements.txt
    
  2. 设置环境变量:

    export TMDB_API_KEY="your_tmdb_api_key_here"
    export GEMINI_API_KEY="your_gemini_api_key_here"
    

    获取Gemini API密钥(免费):

    • 访问https://aistudio.google.com/
    • 使用Google帐户登录
    • 点击“获取API密钥”→ “创建API密钥”
    • 复制并添加到 .env 文件
    • 看 GEMINI_SETUP.md 详细说明
  3. 获取TMDB API密钥:

    • 注册地址:https://www.themoviedb.org/
    • 前往“设置”>“API”
    • 请求API密钥

状态

✅ 步骤1:项目设置-完成
✅ 步骤2:TMDB API客户-完成
✅ 步骤3:MCP工具-完整
✅ 步骤4:HTTP服务器-完成
✅ 步骤5:AI代理-完成
✅ 步骤6:Streamlit Web前端-完成

快速开始

1.安装依赖项

cd /home/Kushal7/Desktop/AI-agent
source venv/bin/activate
pip install -r requirements.txt

2.设置环境变量

创建一个 .env 文件或导出:

export TMDB_API_KEY="your_tmdb_api_key_here"
export GEMINI_API_KEY="your_gemini_api_key_here"

获取Gemini API密钥(免费):

  • 访问https://aistudio.google.com/
  • 使用Google帐户登录
  • 点击“获取API密钥”→ “创建API密钥”
  • 复制并添加到 .env 文件
  • 看 GEMINI_SETUP.md 详细说明

3.启动MCP服务器

在一个终端中:

source venv/bin/activate
python -m mcp_server.http_server

服务器将于启动 http://localhost:8000

4.运行代理

选项A:命令行界面

在另一个终端中:

source venv/bin/activate
python -m agent.main

或者使用辅助脚本:

chmod +x run_agent.sh
./run_agent.sh

选项B:Web前端(推荐)

在另一个终端中:

source venv/bin/activate
./run_streamlit.sh

或者直接:

streamlit run streamlit_app.py

web界面将在以下时间打开 http://localhost:8501

用法

命令行界面

代理运行后,您可以提出以下问题:

  • “寻找盗梦空间”
  • “如果我喜欢《绝命毒师》,我该看什么?”
  • “给我看2020年的动作片”
  • “韩国最热门的惊悚片是什么?”

类型 quit 或 exit 结束谈话。

Web前端

  1. 打开 http://localhost:8501 在浏览器中
  2. 点击侧栏中的“检查服务器连接”
  3. 点击侧栏中的“初始化代理”
  4. 开始聊天!询问有关电影和电视节目的问题

web界面提供:

  • 漂亮的聊天界面
  • 消息历史记录
  • 服务器状态监控
  • 易于使用的控件