我用 Python 构建了一个真实的 JARVIS,结合知识图谱、BERT 情感检测、人脸识别和 NASA API
发布: (2026年2月28日 GMT+8 22:55)
3 分钟阅读
原文: Dev.to
Source: Dev.to
介绍
看过《钢铁侠》后有没有想过——我真的能把它做出来吗?我做到了,经过几个月的努力,最终得到的就是下面这个项目。
GitHub 仓库
为什么我这样构建
我希望 JARVIS 能 在不同会话之间记住关于我的信息,于是做出了三个核心的架构决策,使得本项目与众不同。
个人知识图谱 (NetworkX)
import networkx as nx
pythonG = nx.DiGraph()
pythonG.add_node(
"User",
type="Person",
name="YOUR_NAME",
age="YOUR_AGE"
)
当你问“我最喜欢的电影是什么?”时,JARVIS 会遍历图谱来寻找答案,而不是查找硬编码的变量。这让添加新事实和关系变得极其简单——只需添加节点和边即可。
用 BERT 进行情感与意图检测
系统使用 HuggingFace Transformers 提供的 BERT 模型来检测用户意图和情感基调。
人脸与手势识别 (OpenCV)
OpenCV 负责做人脸检测和手势识别,从而实现更自然的交互。
功能概览
- 🧠 个人知识图谱 — 记住你的偏好、生日、关系等
- 通过 Google Speech Recognition 实现语音输入
- 使用
pyttsx3实现语音输出 - 使用 NLTK VADER 进行情感分析
- 从 NASA API 获取太空数据
- 可选的本地 LLM 支持(通过 Ollama)
技术栈
| 组件 | 技术 |
|---|---|
| 编程语言 | Python 3.8+ |
| NLP / 意图 | BERT (HuggingFace Transformers) |
| 情感分析 | NLTK VADER |
| 知识图谱 | NetworkX |
| 计算机视觉 | OpenCV |
| 语音输入 | Google Speech Recognition |
| 语音输出 | pyttsx3 |
| 太空数据 | NASA API |
| 本地 LLM(可选) | Ollama |
当前局限
- 仅限 Windows:使用了
os.startfile和taskkill,这些是 Windows 专有的。跨平台支持是下一个重要目标。
下一步计划
- 为 Linux 与 macOS 添加跨平台支持
- 优化知识图谱的架构
试一试
反馈
期待大家的反馈——尤其是关于知识图谱架构的意见。NetworkX 是这个用例的合适选择吗?你会有不同的实现方式吗?欢迎在下方留言。