0042
那流转往复的,炎炎天光
竟然绚丽,始终,如最末日的群芳。
无情冷暖着,折磨旅人
自星海满溢出的,酒精形状。
在地上看见苍穹的裂痕,被灼伤。
远古遗恨,泣血却永久健忘。
存在中唯一的纰漏,解消愁滞否?
但有一室澄清,何妨是,雪中月亮。
那流转往复的,炎炎天光
竟然绚丽,始终,如最末日的群芳。
无情冷暖着,折磨旅人
自星海满溢出的,酒精形状。
在地上看见苍穹的裂痕,被灼伤。
远古遗恨,泣血却永久健忘。
存在中唯一的纰漏,解消愁滞否?
但有一室澄清,何妨是,雪中月亮。

GitHub项目地址: https://github.com/fluviusmagnus/Seelenmaschine
Seelenmaschine是一个具有记忆和人格的LLM聊天机器人项目。它能够通过终端或WebUI进行纯文本对话,并具有持久化的记忆系统,可以记住与用户的对话历史,并形成对用户的理解。
⚠️ 高强度AI编程警告!
🧠 复杂的记忆系统,包含:
💾 本地数据持久化
🔍 智能记忆检索
克隆项目仓库
git clone https://github.com/fluviusmagnus/Seelenmaschine.git.env文件运行
start.bat 或 start-webui.batLinux:
赋予权限
chmod +x start.sh start-webui.sh执行 start.sh 或 start-webui.sh
./start.sh或者
./start-webui.shhttp://localhost:7860即可安装依赖包(需要Python 3.11+)
pip install -r requirements.txt.env.example文件并重命名为.env.env文件中配置以下参数:# Debug设置
DEBUG_MODE=false # 调试模式开关 true/false
# 基本身份设定
AI_NAME=Seelenmachine
USER_NAME=User
# OpenAI API设置
OPENAI_API_KEY=your_api_key
OPENAI_API_BASE=your_api_base
CHAT_MODEL=your_preferred_model # 例如:anthropic/claude-3.5-haiku
TOOL_MODEL=your_tool_model # 用于记忆管理。建议使用推理模型,例如:deepdeek/deepseek-r1
EMBEDDING_MODEL=your_embedding_model # 例如:text-embedding-3-small
EMBEDDING_DIMENSION=1536
# 记忆系统设置
MAX_CONV_NUM=20 # 最大对话轮数
REFRESH_EVERY_CONV_NUM=10 # 每次总结的对话轮数
RECALL_SESSION_NUM=2 # 检索相关会话数量
RECALL_CONV_NUM=4 # 从相关会话检索的对话数量data文件夹中创建persona_memory.txt和user_profile.txt,填入人格记忆和用户形象更多配置建议和使用技巧请参考项目 Wiki.
直接在终端中进入CLI模式:
python src/main.py或者,启动WebUI提供的网页应用:
python src/main.py --webui [--host HOST] [--port PORT]参数说明:
--webui: 启动Web界面
--host: 指定主机地址(默认: 127.0.0.1)
--port: 指定端口号(默认: 7860)/reset, /r - 重置当前会话/save, /s - 归档当前会话,开始新会话/saveandexit, /sq - 归档当前会话,退出程序/exit, /quit, /q - 暂存当前状态并退出程序/help, /h - 显示此帮助信息src/
├── main.py # 主程序入口,控制流程
├── chatbot.py # 聊天逻辑实现
├── llm.py # 大语言模型接口
├── memory.py # 记忆系统实现
├── config.py # 配置管理
├── prompts.py # 提示词模板
└── utils.py # 工具函数
data/ # 数据存储目录在debug模式下,程序会:
这些日志对于开发调试和优化系统非常有帮助。
风格是故意的。
很久没写技术博客了。正值对 Windows 忍受程度到达极限,怀念起多年前对 Linux 桌面系统完全控制的美好时光,决心重返之际,感受到如今 Linux 发行版使用便利程度又更上一层楼,不禁感慨万分。中途为满足多年来在 Windows 上新形成的习惯,增加了一些有趣的配置,便分享在此。
没错,我也想在 Linux 中实现这个组合,毕竟没有更好的替代品了。好在 EBWin4 本身不是特别复杂的技术,wine 以如今的可靠性完全能够胜任。基本原理不变,依旧延续伟大献礼第二(误)致 GoldenDict 拉丁语古希腊语辞典用户(续)。但很奇怪,GoldenDict 似乎不能直接读取 wine 的输出,所以还得拿之前用过的 Python 小玩意来套一层。关键概念:
result = os.popen(
'env WINEPREFIX="~/.wine" wine "~/.wine/drive_c/Program Files/EBWin4(x64)/ebwinc.exe" /G=KL /C=1 /O=h /E=u ' + s).readlines()X 的剪贴板已经够好用了,但同样不想浪费高端鼠标的第四五键,继续用来 Ctrl+C Ctrl+V 不好么?
先使用 xev -event button | grep button 检查鼠标那两个键被定义为几号(我的分别是8和9),让 xdotool 模拟键盘按键,最后 xbindkeys 开机自启,根据预先写好的 .xbindkeysrc 工作即可。配置示例:
"xdotool key ctrl+c"
b:8
"xdotool key ctrl+v"
b:9