我用 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.startfiletaskkill,这些是 Windows 专有的。跨平台支持是下一个重要目标。

下一步计划

  • 为 Linux 与 macOS 添加跨平台支持
  • 优化知识图谱的架构

试一试

GitHub 仓库

反馈

期待大家的反馈——尤其是关于知识图谱架构的意见。NetworkX 是这个用例的合适选择吗?你会有不同的实现方式吗?欢迎在下方留言。

0 浏览
Back to Blog

相关文章

阅读更多 »

当工作成为心理健康风险时

markdown !Ravi Mishrahttps://media2.dev.to/dynamic/image/width=50,height=50,fit=cover,gravity=auto,format=auto/https%3A%2F%2Fdev-to-uploads.s3.amazonaws.com%2Fu...