🧠 SL5 Aura 混合模式:本地 LLM 集成

状态: 实验/稳定 技术: Ollama (Llama 3.2) + Python Subprocess 隐私: 100% 离线

概念:“架构师和实习生”

传统上,Aura 依赖于确定性规则 (RegEx) – 快速、精确且可预测。这是**“建筑师”**。然而,有时用户想要问一些“模糊”或有创意的问题,例如*“告诉我一个笑话”“总结这段文字”*。

这就是 本地 LLM 插件 的用武之地(“实习生”):

  1. Aura (RegEx) 首先检查所有严格命令(“打开灯”、“打开应用程序”)。

  2. 如果没有检测到与 AND/ OR 匹配的特定触发词(例如“Aura …”),则激活回退规则。

  3. 文本被发送到本地人工智能模型(Ollama)。

  4. 响应经过整理并通过 TTS 或文本输入输出。


🛠 先决条件

该插件需要在计算机上本地运行的 Ollama 实例。

代码_块_0


📂 结构和加载顺序

该插件特意放置在文件夹“z_fallback_llm”中。 由于 Aura 按字母顺序加载插件,因此此命名可确保 LLM 规则最后加载。它充当无法识别的命令的“安全网”。

路径: config/maps/plugins/z_fallback_llm/de-DE/

1. 地图 (FUZZY_MAP_pre.py)

我们使用 高分 (100) 和触发词来强制 Aura 将控制权移交给脚本。

代码_块_1

2. 处理程序 (ask_ollama.py)

该脚本与 Ollama CLI 进行通信。 重要: 它包含一个 clean_text_for_typing 函数。原始 LLM 输出通常包含表情符号(😂、🚀)或特殊字符,这些字符可能会导致“xdotool”或旧版 TTS 系统等工具崩溃。

代码_块_2


⚙️ 定制选项

改变触发器

如果您不想使用“Aura”作为唤醒词,请修改“FUZZY_MAP_pre.py”中的正则表达式。

  • 真正的 Catch-All 示例(Aura 不知道的所有内容):r'^(.*)$' (注意:调整分数!)

交换模型

您可以轻松地交换“ask_ollama.py”中的模型(例如,交换为“mistral”以获得更复杂的逻辑,尽管它需要更多的 RAM)。 代码_块_3

系统提示(角色)

You can give Aura a personality by adjusting the system_instruction:

“你是科幻电影中的讽刺助手。”


⚠️ 已知限制

  1. 延迟: 启动后的第一个请求可能需要 1-3 秒,因为模型加载到 RAM 中。后续请求速度更快。

  2. 冲突: 如果正则表达式太宽泛(.*)而没有正确的文件夹结构,它可能会吞没标准命令。字母顺序(z_...)是必不可少的。

  3. 硬件: 需要大约。 Llama 3.2 需要 2GB 可用 RAM。