LunaTV 的 AI 功能提供智能影视推荐和上下文感知对话,基于 OpenAI 兼容的 API,并支持可选的联网搜索功能。
AI 功能支持三种配置模式:
- AI 模型模式 - 配置 AI API(OpenAI/Claude等),提供智能对话和推荐
- Tavily 纯搜索模式 - 无需 AI API,完全免费,仅使用 Tavily 联网搜索
- 混合模式(推荐) - 同时配置 AI API 和 Tavily,获得最佳体验
关键点:
- ✅ 启用 AI 功能后,可以选择不配置 AI API(留空即可)
- ✅ 只需配置 Tavily Keys,即可使用完全免费的联网搜索功能
- ✅ 用户体验一致,界面统一,只是数据来源不同
✨ 8 大 AI 增强功能:
- Markdown 渲染 - 专业格式化,支持代码高亮、链接和列表
- AI 智能协调器 - 智能意图分析和自动联网搜索
- 视频上下文 - 针对特定影片的上下文感知对话
- 智能 UI 集成 - 影片卡片上的智能 AI 按钮
- 流式响应 - 实时逐字显示 AI 回复
- 豆瓣数据增强 - 自动注入真实评分、演员、导演、剧情信息
- TMDB 数据增强 - 提供关键词标签和相似影片推荐
- 🆕 Tavily 纯搜索模式 - 无需 AI API,完全免费使用联网搜索功能
AI 回复现在支持 GitHub 风格的 Markdown,包括:
- 代码块 带语法高亮
- 链接 可点击
- 列表 (有序和无序)
- 加粗/斜体 文本格式
- 表格 用于结构化数据
协调器自动分析用户意图,决定是否需要联网搜索最新信息。
意图类型:
recommendation- 影视剧推荐query- 演员/导演信息、新闻detail- 剧情、评价、评分general- 其他问题
自动联网搜索触发条件:
- 时效性关键词(最新、今年、2024、2025、即将、上映等)
- 演员/导演查询(演员、导演、主演等)
- 新闻请求(新闻、消息、官宣等)
支持的搜索服务:
- Tavily - 每个 Key 每月 1000 次免费 API 调用
从视频卡片使用 AI 时,AI 自动知道:
- 影片/剧集标题
- 上映年份
- 类型(电影/电视剧)
- 当前集数(电视剧)
- 豆瓣 ID / TMDB ID
优势:
- 无需重复说明片名
- 更准确的回答
- 自然的对话流程
- 针对性的网络搜索
桌面端体验:
- 鼠标悬停在任意影片卡片上
- 底部中央显示 AI 按钮
- 智能定位:避免遮挡底部标签
- 玻璃态设计配合渐变色
移动端体验:
- 长按或右键点击影片卡片
- 从操作菜单中选择"AI问片"
- 全屏 AI 对话框
逐字实时显示 AI 回复,带来:
- 更好的用户体验
- 即时反馈
- 降低感知延迟
当从影片卡片使用 AI 时,系统自动获取豆瓣真实数据并注入到 AI 上下文中:
自动获取的数据:
- ⭐ 豆瓣评分 - 真实用户评分(如 8.5/10)
- 🎬 导演信息 - 导演名单
- 👥 主演阵容 - 前5位主演
- 📝 剧情简介 - 官方剧情摘要(限300字)
- 🎭 类型标签 - 悬疑、犯罪、喜剧等
- 🌍 制片地区 - 中国大陆、美国等
- 📺 集数信息 - 电视剧总集数
优势:
- ✅ 回答基于真实数据,不依赖 AI 记忆
- ✅ 评分准确,来自豆瓣用户
- ✅ 演员阵容完整
- ✅ 剧情介绍官方权威
- ✅ 无需手动输入片名查询
示例对话:
用户:这部电影评分怎么样?
AI:根据豆瓣数据,《利刃出鞘》评分 8.2/10...
导演:莱恩·约翰逊
类型:悬疑、犯罪、喜剧
基于国际电影数据库 TMDB,为 AI 提供更智能的推荐能力:
关键词标签(Keywords):
- 🏷️ 自动提取影片主题关键词
- 🎯 帮助 AI 理解影片核心内容
- 🔍 支持基于主题的推荐
相似影片推荐(Similar Movies):
- 📊 基于 TMDB 算法的真实相似推荐
- ⭐ 包含评分和年份信息
- 🎬 最多显示 5 部相似影片
- ✅ 比 AI 记忆更准确
工作原理:
- 检测到影片有 TMDB ID
- 自动获取 keywords 和 similar 数据
- 格式化注入到 AI 系统提示词
- AI 基于真实数据回答
示例对话:
用户:有没有类似的推荐?
AI:根据 TMDB 数据,与《利刃出鞘》相似的影片有:
1. 东方快车谋杀案 (2017) - 评分: 6.5/10
2. 尼罗河上的惨案 (2022) - 评分: 6.3/10
3. 无人生还 (2015) - 评分: 6.4/10
关键词标签:murder mystery, detective, ensemble cast
完全免费的 AI 功能选项! 无需配置 AI API 即可使用联网搜索功能。
适用场景:
- 🆓 预算有限,无法负担 AI API 费用
- 📰 主要需求是查询最新资讯和时效性信息
- 🔍 希望获取真实的网络搜索结果而非 AI 生成内容
工作原理:
- 用户提出时效性问题(如"2025年最新电影")
- 系统检测到需要联网搜索
- 直接使用 Tavily API 搜索相关信息
- 格式化搜索结果为 Markdown 返回给用户
- 无需调用 AI 模型,完全免费
配置方法:
- 启用 AI 功能(总开关)
- 跳过 AI API 配置(留空即可)
- 启用智能协调器
- 启用联网搜索
- 配置 Tavily API Keys(每个 Key 1000次/月免费)
返回格式示例:
🌐 **搜索结果**(来自 Tavily)
**您正在查看**:流浪地球2 (2023)
找到 5 条相关信息:
### 1. 流浪地球2上映时间确认
2023年春节档上映,票房破40亿...
📎 来源:[mtime.com](https://www.mtime.com/...)
---
💡 **提示**:以上信息来自实时网络搜索,可能需要进一步核实。优势:
- ✅ 完全免费(仅需 Tavily 免费额度)
- ✅ 实时网络数据,最新资讯
- ✅ 真实来源链接,可追溯
- ✅ 支持视频上下文(从影片卡片使用)
限制:
- ❌ 仅限时效性问题(需要触发联网搜索关键词)
- ❌ 无法进行通用影视推荐(需要 AI 分析)
- ❌ 无法进行上下文对话(需要 AI 理解)
- ❌ 返回原始搜索结果,无 AI 总结和分析
最佳实践:
- 配置 5-10 个 Tavily Keys(5000-10000次/月免费)
- 问题中包含时效性关键词(最新、今年、2025、上映等)
- 结合影片卡片使用,获得更精准的搜索结果
LunaTV 现在支持三种配置模式,满足不同需求:
| 模式 | AI API | Tavily Keys | 适用场景 |
|---|---|---|---|
| AI 模式 | ✅ 必需 | ❌ 可选 | 标准影视推荐和对话 |
| Tavily 模式 | ❌ 不需要 | ✅ 必需 | 零成本,仅时效性查询 |
| 混合模式 | ✅ 必需 | ✅ 必需 | 最佳体验,AI+实时搜索 |
重要提示: 至少需要配置一种模式才能启用 AI 功能。
完全免费方案!无需任何 AI API 费用。
- 启用 AI 功能 - 打开"启用AI推荐功能"总开关
- 跳过 AI API 配置 - API地址、API密钥、模型名称全部留空(不填)
- 启用智能协调器 - 打开"启用智能协调器(意图分析)"开关
- 启用联网搜索 - 打开"启用联网搜索(Tavily)"开关
- 配置 Tavily Keys - 输入至少1个 Tavily API Key(推荐5-10个)
- 📌 虽然 AI 总开关是开启的,但不需要填写任何 AI API 信息
- 📌 系统会检测到"只配置了 Tavily",自动使用纯搜索模式
- 📌 用户看到的界面和体验是一致的,只是返回搜索结果而非 AI 生成内容
保存配置后,系统会提示:
- ✅ "AI推荐配置保存成功" - 表示配置有效
- ❌ "请至少配置一种模式" - 表示需要补充配置
进入:管理面板 → AI推荐配置
| 设置项 | 说明 | 默认值 |
|---|---|---|
| 启用 AI | AI 功能总开关 | false |
| API URL | OpenAI 兼容的 API 端点(Tavily模式可选) | https://api.openai.com/v1 |
| API Key | 你的 API 密钥(Tavily模式可选) | (可选) |
| 模型 | 模型名称(如 gpt-4, gpt-3.5-turbo) | gpt-3.5-turbo |
| 温度 | 响应随机性 (0-2) | 0.7 |
| 最大 Token | 最大响应长度 | 3000 |
💡 提示: 如果只想使用 Tavily 纯搜索模式,可以跳过 API URL 和 API Key 配置。
展开:智能协调器设置(高级)
切换以启用意图分析和自动联网搜索。
需要先启用协调器。启用后,AI 会自动为时效性问题联网搜索。
为什么要多个 Key?
- 每个 Tavily 账号提供 每月 1000 次免费 API 调用
- 配置多个 Key 可以增加配额
- 示例:5 个 Key = 每月 5000 次免费调用
如何获取 Tavily API Key:
- 访问 https://tavily.com
- 注册免费账号(无需信用卡)
- 从控制台获取 API Key
- 用多个邮箱重复以上步骤获取更多 Key
配置方法:
每行输入一个 API Key:
tvly-xxxxxxxxxxxxxx
tvly-yyyyyyyyyyyyyy
tvly-zzzzzzzzzzzzzz
Key 轮询机制:
- 系统自动轮询使用可用的 Key
- 失败的 Key 会被标记并跳过
- 遇到 401/429 错误时自动切换下一个 Key
位置: 右上角(桌面端)或顶部栏(移动端)
步骤:
- 点击 AI 按钮(⭐ Sparkles 图标)
- 输入你的问题
- 按回车或点击发送
- 查看流式响应
示例问题:
- "推荐一些高分科幻电影"
- "2025年有什么新上映的电影?"
- "诺兰的电影有哪些?"
桌面端:
- 鼠标悬停在任意影片/剧集卡片上
- 底部中央出现 AI 按钮
- 点击打开 AI 对话
- AI 已经知道你在问哪部影片
移动端:
- 长按或右键点击影片卡片
- 从菜单选择"AI问片"
- AI 对话框打开,带有上下文
示例上下文感知问题:
- "这部讲什么?" → AI 知道你在问这部特定的影片
- "评分怎么样?"
- "有续集吗?"
- "演员阵容如何?"
从影片卡片打开 AI 对话时,会显示针对该影片的快捷操作按钮:
- 📖 剧情介绍 - 获取该影片的剧情摘要
- ⭐ 影片评价 - 查看豆瓣/TMDB评分和演员阵容
- 🎬 相似推荐 - 推荐类似的影片
从全局 AI 按钮打开时,会显示通用推荐选项:
- 🎬 推荐热门电影 - 最近的热门电影
- 📺 推荐电视剧 - 口碑好的电视剧
- 😂 推荐喜剧片 - 搞笑的喜剧电影
- 🔥 推荐动作片 - 精彩的动作电影
- 💕 推荐爱情片 - 经典的爱情电影
- 🔍 推荐悬疑片 - 烧脑的悬疑推理电影
后端(SSE):
// API 返回 Server-Sent Events 流
Content-Type: text/event-stream
data: {"text": "你好"}
data: {"text": "世界"}
data: [DONE]前端:
// 客户端实时接收 chunk
sendAIRecommendMessage(messages, context, (chunk) => {
// 每个 chunk 更新 UI
streamingContent += chunk;
});关键词匹配:
- 时间关键词:最新、今年、2024、2025、即将、上映
- 人物关键词:演员、导演、主演、作品
- 新闻关键词:新闻、消息、官宣、定档
决策逻辑:
needWebSearch = hasTimeKeyword ||
hasPersonKeyword ||
hasNewsKeyword ||
(hasRecommendKeyword && hasTimeKeyword);轮询策略:
class ApiKeyRotator {
- 维护可用 Key 列表
- 跟踪失败的 Key
- 从可用 Key 中轮询选择
- 所有 Key 耗尽时自动重置
}故障转移流程:
- 尝试第一个 Key
- 如果 401/429 错误 → 标记为失败
- 尝试下一个可用 Key
- 重复直到成功或所有 Key 耗尽
interface VideoContext {
title?: string; // "流浪地球2"
year?: string; // "2023"
douban_id?: number; // 26266893
tmdb_id?: number; // 550988
type?: 'movie' | 'tv'; // "movie"
currentEpisode?: number; // 5(电视剧)
}系统提示词增强:
## 【当前视频上下文】
用户正在浏览: 流浪地球2 (2023)
## 【豆瓣影片详情】(真实数据,优先参考)
片名: 流浪地球2 (2023)
豆瓣评分: 8.3/10
导演: 郭帆
主演: 吴京、刘德华、李雪健、沙溢、宁理
类型: 科幻、冒险、灾难
制片地区: 中国大陆
剧情简介: 太阳即将毁灭,人类在地球表面建造出巨大的推进器...
## 【TMDB数据】(国际化数据和相似推荐)
关键词标签: space, disaster, science fiction, chinese cinema
相似影片推荐(基于TMDB算法):
1. 流浪地球 (2019) - 评分: 7.6/10
2. 2012 (2009) - 评分: 5.8/10
3. 明日之战 (2021) - 评分: 7.5/10
A: 每个 Tavily 账号每月提供 1000 次免费 API 调用。你可以用不同的邮箱注册多个账号,并在 LunaTV 中配置所有 Key 以实现自动轮询。
示例:
- 1 个 Key = 每月 1,000 次调用
- 5 个 Key = 每月 5,000 次调用
- 10 个 Key = 每月 10,000 次调用
A: 系统会自动:
- 检测到 429(速率限制)错误
- 标记该 Key 为失败
- 切换到下一个可用 Key
- 无缝继续请求
A: 不是。Tavily 是可选的,仅用于联网搜索功能。基础的 AI 推荐功能无需 Tavily 即可工作。但是,对于时效性问题(如"2025年最新电影"),联网搜索能提供更准确的结果。
A: 可以! 这是 LunaTV 的 Tavily 纯搜索模式,完全免费。
配置步骤:
- 启用 AI 功能(总开关)
- 跳过 API URL 和 API Key(留空)
- 启用智能协调器
- 启用联网搜索
- 配置 Tavily API Keys
能做什么:
- ✅ 查询最新上映信息("2025年最新电影")
- ✅ 搜索演员导演动态("诺兰最新电影")
- ✅ 获取实时影视资讯
- ✅ 从影片卡片查询片源状态
不能做什么:
- ❌ 通用影视推荐("推荐科幻电影")
- ❌ 上下文对话("为什么推荐这部?")
- ❌ 剧情分析和总结
成本:
- 完全免费!每个 Tavily Key 提供 1000次/月
- 配置 5 个 Key = 5000次/月免费使用
限制:
- 仅对时效性问题有效(需触发联网搜索关键词)
- 返回原始搜索结果,无 AI 分析
适合人群:
- 预算有限的个人用户
- 主要需求是查询最新资讯
- 不需要 AI 对话功能
A:
| 功能 | 全局 AI 按钮 | 影片卡片 AI 按钮 |
|---|---|---|
| 上下文 | 无 | 影片信息 |
| 问题类型 | 通用 | 上下文感知 |
| 示例 | "推荐科幻电影" | "这部讲什么?" |
| 联网搜索 | 通用搜索 | 针对性搜索 |
A: 可以!任何 OpenAI 兼容的 API 都可以使用,包括:
- OpenAI GPT-3.5/GPT-4
- Claude(通过兼容代理)
- 本地模型(Ollama, LM Studio)
- 其他提供商(Groq, Together.ai 等)
只需相应配置 API URL 和密钥即可。
A: 请检查:
- ✅ 管理面板中 AI 功能已启用
- ✅ 已配置有效的 API 密钥
- ✅ 桌面端需鼠标悬停在卡片上(移动端需长按)
- ✅ 影片有标题(上下文必需)
A: AI 按钮会自动调整位置:
- 有底部标签(已完结、已上映等) → 按钮上移(bottom-14)
- 无底部标签 → 按钮靠近底部(bottom-4)
- 防止重叠 与现有 UI 元素
A: 目前流式响应默认启用以获得更好的用户体验。如需使用非流式模式,需要修改前端代码,不传递流式回调函数。
A: 不需要额外配置!
- 豆瓣数据:自动启用,从影片卡片使用 AI 时自动获取
- TMDB数据:如果管理员已配置 TMDB API Key(用于演员搜索功能),AI 会自动使用
工作流程:
- 用户从影片卡片打开 AI 对话
- 系统检测到
douban_id和tmdb_id - 自动并行获取豆瓣和 TMDB 数据
- 注入到 AI 系统提示词
- AI 基于真实数据回答
A: 是的,LunaTV 使用合法的网页爬虫技术:
- ✅ 遵守 robots.txt 规则
- ✅ 添加随机延时,避免频繁请求
- ✅ 24小时缓存,减少服务器压力
- ✅ 仅用于个人学习和推荐,不用于商业
A: TMDB 功能可选:
- ✅ 如果已配置 TMDB API Key(管理面板 → 站点配置 → TMDB设置),AI 会自动使用
- ❌ 如果未配置,AI 仍然可以工作,但没有 keywords 和 similar 推荐
- 💡 建议配置 TMDB,获取免费 API Key:https://www.themoviedb.org/settings/api
A: 使用 TMDB 数据增强后,准确度显著提升:
对比:
| 数据源 | 准确度 | 来源 |
|---|---|---|
| AI 记忆 | ⭐⭐⭐ | 训练数据(可能过时) |
| TMDB算法 | ⭐⭐⭐⭐⭐ | 真实用户行为和算法 |
示例:
- ❌ 没有 TMDB:AI 凭记忆推荐,可能不准确
- ✅ 有 TMDB:基于 TMDB 算法的5部真实相似影片
A: 这是正常的 AI 行为:
- AI 策略:根据用户问题选择性回答
- Token 优化:省略未明确询问的信息
- 数据存在:豆瓣数据已注入系统提示词
解决方法:
- 明确询问:"这部电影评分怎么样?"
- 或:"详细介绍一下演员阵容"
- AI 会优先使用豆瓣真实数据回答
A:
- 对话历史缓存在浏览器 localStorage,保留 30 分钟
- 服务器不存储聊天历史
- 仅最新请求缓存 5 分钟(仅限简单查询)
- 上下文数据(影片信息)随请求发送,不存储
A: Tavily 策略(推荐):
- 用多个邮箱注册 Tavily 账号
- 每个账号获取 1 个 API Key(1000次/月)
- 在管理面板配置所有 Key
- 系统自动轮询使用
示例:
- 注册 5 个 Tavily 账号 = 5000 次/月免费
- 注册 10 个 Tavily 账号 = 10000 次/月免费
A: 系统会自动识别 AI 回复中的《片名》格式,并将其:
- 高亮显示为蓝色
- 自动提取片名
- 生成搜索链接
支持的格式:
- 《片名》 - 主要格式
- "片名" - 备用格式
- 【片名】 - 备用格式
点击后会跳转到搜索页面,显示该影片的可用播放源。
A: 可能的原因:
- AI 模型选择不使用(温度设置影响)
- 问题类型不适合 Markdown(简单问答)
- 系统提示词未正确传递
建议在问题中明确要求:"请用 Markdown 格式回复"
如有问题或功能请求,请:
- 查看此文档
- 检查管理面板设置
- 查看浏览器控制台错误
- 联系管理员
{
"AIRecommendConfig": {
"enabled": true,
"apiUrl": "https://api.openai.com/v1",
"apiKey": "sk-xxxxxxxxxxxxxxxx",
"model": "gpt-4",
"temperature": 0.7,
"maxTokens": 3000,
"enableOrchestrator": true,
"enableWebSearch": true,
"tavilyApiKeys": [
"tvly-key1xxxxxxxxxx",
"tvly-key2xxxxxxxxxx",
"tvly-key3xxxxxxxxxx"
]
}
}方案一:基础 AI 模式(无联网搜索)
- ✅ 启用 AI
- ✅ 配置 OpenAI API
- ❌ 不启用 Orchestrator
- 适合:基础推荐需求,无需最新资讯
方案二:Tavily 纯搜索模式(完全免费)🆕
- ✅ 启用 AI
- ❌ 不配置 OpenAI API(留空)
- ✅ 启用 Orchestrator
- ✅ 启用联网搜索
- ✅ 配置 5-10 个 Tavily Key
- 适合:预算有限,仅需时效性查询
方案三:智能混合模式(推荐)
- ✅ 启用 AI
- ✅ 配置 OpenAI API
- ✅ 启用 Orchestrator
- ✅ 启用联网搜索
- ✅ 配置 3-5 个 Tavily Key
- 适合:需要 AI 对话+最新资讯
方案四:高级配置(大量调用)
- ✅ 启用 AI
- ✅ 使用高性能模型(GPT-4)
- ✅ 启用 Orchestrator
- ✅ 启用联网搜索
- ✅ 配置 10+ 个 Tavily Key
- 适合:高频使用场景
{
"AIRecommendConfig": {
"enabled": true,
"apiUrl": "",
"apiKey": "",
"model": "",
"temperature": 0.7,
"maxTokens": 3000,
"enableOrchestrator": true,
"enableWebSearch": true,
"tavilyApiKeys": [
"tvly-key1xxxxxxxxxx",
"tvly-key2xxxxxxxxxx",
"tvly-key3xxxxxxxxxx",
"tvly-key4xxxxxxxxxx",
"tvly-key5xxxxxxxxxx"
]
}
}说明:
- API 字段留空或为空字符串
- 仅配置 Tavily Keys
- 完全免费(每月 5000 次调用)
最后更新: 2025-12-30 版本: 6.1.0 文档语言: 简体中文 新增功能: Tavily 纯搜索模式(完全免费)、豆瓣和 TMDB 数据增强