Hacktoberfest 2026:维护者为十月标记出来的 issue,仍然开放、适合新手。 浏览 Hacktoberfest issue

AI Assistant

未关闭 适合新手
#183 0 条评论 0 个 reaction 已指派 0 人 在 GitHub 查看

维护者通常 1 天内回复

还没有人认领这个 Issue。

评估

难度
2/5
预计耗时
1-3 小时
新手友好度
83/100
Issue 类型
功能
描述清晰度
描述清楚
活跃度
活跃
技术栈
github, python
领域
release

调研方向

阅读 Addon Manager 的 AddonCatalog.schema.json 和索引中的现有条目,以确认提议的 AIAssistant 条目的结构。根据 schema 验证提供的单个 hunk 条目,并检查其仓库和发行版详情是否与 issue 一致。完成标准是 addon 已列出,并包含提议的仓库、master 分支、FreeCAD 1.0.0 最低版本以及归档 URL。

由索引模型根据 Issue 内容生成。

描述

🔌 Repository

https://github.com/iplayfast/FreeCAD-AI-Assistant

📑 Notes

AI Assistant gives FreeCAD three ways to be driven by a model — a dock panel, an
AI() function in the Python console, and an MCP/XML-RPC server for external
agent CLIs — all three sharing one registry of 51 tools, so a tool added once
appears in all of them. It builds parametric documents (PartDesign bodies,
constrained sketches, dimensions driven by an App::VarSet), not one-off shapes.

Against the Qualities list:

  • Age / maintenance. Repository created 2026-06-16 (129 days), actively
    developed, single maintainer, issues and advisories watched.
  • Licence. LGPL-2.1-or-later, consistent in all three places: the
    <license file="LICENSE"> element in package.xml, the LICENSE text itself,
    and an SPDX-License-Identifier header on all 33 source files.
  • Manifest. package.xml declares <content><workbench> with classname
    AIAssistantWB, subdirectory freecad/AIAssistant, a branch attribute on
    <url type="repository">, and <freecadmin>1.0</freecadmin>. It parses
    through the Addon Manager's own MetadataReader, and the declared icon
    resolves.
  • Version floor. 1.0 rather than 0.21: the parametric deliverable rests on
    App::VarSet, which landed after 0.21 shipped. Declared in both the manifest
    and the index entry.
  • Dependencies. None. No third-party Python packages, so nothing is needed
    from the allow list — the provider layer is stdlib urllib, and the only
    non-stdlib imports are FreeCAD's own modules and its PySide wrapper.
  • Layout. Modern namespaced freecad/AIAssistant/.
  • Startup cost. init_gui.py imports one module at load, to register the
    AI() console globals: 0.154 s and 11 pure-Python submodules, no network and
    no document work. Everything heavier — the Qt panel, the BIM wizard, the RPC
    server — is imported inside Activated()/Initialize(). The RPC server is
    additionally behind the off-by-default setting below, so a user who never
    opens the workbench pays for nothing but that import.
  • Completeness. Not alpha. 13 modules carry demo() self-checks runnable
    headless via freecadcmd run_checks.py, all passing, plus a suite that drives
    a real model against four build tasks and passes only if the finished document
    contains solids.

External connections, since this addon is unusual in that respect and I would
rather raise it than have review find it:

  • The panel talks to whichever model service the user configures. Nothing is
    preconfigured to a remote endpoint — Ollama on loopback is the default — and
    no request is made until the user sends a message. API keys live in the
    addon's settings file, written 0600, and fall back to the usual environment
    variables.
  • The XML-RPC/MCP server binds 127.0.0.1 only and is off by default
    (auto_start_rpc defaults to False); it starts when the user turns it on.
  • execute_code runs unsandboxed Python inside FreeCAD, which is inherent to
    what the tool is for. For agent CLIs launched from the panel, the default
    permission setting keeps execute_code behind a confirmation prompt. This is
    stated in the README's Security section rather than buried.
  • No telemetry, no analytics, no data shared with any third party beyond the
    model service the user chose.

Proposed index entry, if it helps — it validates against
AddonCatalog.schema.json and I have the one-hunk diff ready:

  "AIAssistant": [
    {
      "repository": "https://github.com/iplayfast/FreeCAD-AI-Assistant",
      "git_ref": "master",
      "branch_display_name": "master",
      "freecad_min": "1.0.0",
      "zip_url": "https://github.com/iplayfast/FreeCAD-AI-Assistant/archive/refs/heads/master.zip",
      "curated": false
    }
  ],

v0.1.0 is tagged and released. Happy to cut a fresh tag, move publication to a
separate release branch, or change the addon ID if AIAssistant collides with
anything you would rather keep free.

主要语言
没有语言数据
星标
21
派生
15
平均合并
1 天 18 小时
30 天内合并 PR
12

环境准备

这个项目没有提供开发容器、Dockerfile 或贡献指南,环境需要你自己搭建:先看它的 README,通用步骤见我们的新手贡献指南。

从这里开始

  1. 先读完整个 Issue,再读项目的贡献指南。
  2. 在 Issue 下留言说明你要接手 —— 这能避免两个人做同样的事。
  3. Fork 仓库,在一个分支上完成修改。
  4. 提交 Pull Request,并在描述里引用这个 Issue 编号。

FreeCAD/Addons 的其他 Issue

查看 FreeCAD/Addons 的全部 Issue

相似的 Issue

更多 Release Issue

把新 issue 发到你的邮箱

精选适合新手参与的 GitHub issue 摘要。