🧠 SL5 Aura 混合模式:本地 LLM 集成¶
状态: 实验/稳定 技术: Ollama (Llama 3.2) + Python Subprocess 隐私: 100% 离线
概念:“架构师和实习生”¶
传统上,Aura 依赖于确定性规则 (RegEx) – 快速、精确且可预测。这是**“建筑师”**。然而,有时用户想要问一些“模糊”或有创意的问题,例如*“告诉我一个笑话”或“总结这段文字”*。
这就是 本地 LLM 插件 的用武之地(“实习生”):
Aura (RegEx) 首先检查所有严格命令(“打开灯”、“打开应用程序”)。
如果没有检测到与 AND/ OR 匹配的特定触发词(例如“Aura …”),则激活回退规则。
文本被发送到本地人工智能模型(Ollama)。
响应经过整理并通过 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-3 秒,因为模型加载到 RAM 中。后续请求速度更快。
冲突: 如果正则表达式太宽泛(
.*)而没有正确的文件夹结构,它可能会吞没标准命令。字母顺序(z_...)是必不可少的。硬件: 需要大约。 Llama 3.2 需要 2GB 可用 RAM。