feat: add system environment information retrieval to LocalAgent

- Introduced a new method to gather and display system environment details, including OS, Python version, architecture, home directory, workspace path, and current directory.
- Updated system prompts in chat messages to include user environment information, enhancing the context for responses.
- Improved guidance prompts to provide tailored instructions based on the user's operating system.
This commit is contained in:
Mimikko-zeus
2026-01-07 12:50:50 +08:00
parent 68f4f01cd7
commit 9e42c69d0f

View File

@@ -4,6 +4,8 @@ LocalAgent 主应用类
"""
import os
import sys
import platform
import tkinter as tk
from tkinter import messagebox
from pathlib import Path
@@ -223,11 +225,50 @@ class LocalAgentApp:
self.chat_view.set_input_enabled(True)
def _get_system_environment_info(self) -> str:
"""获取当前系统运行环境信息"""
info_parts = []
# 操作系统信息
os_name = platform.system()
os_version = platform.version()
os_release = platform.release()
info_parts.append(f"操作系统: {os_name} {os_release} ({os_version})")
# Python 版本
python_version = sys.version.split()[0]
info_parts.append(f"Python版本: {python_version}")
# 系统架构
arch = platform.machine()
info_parts.append(f"系统架构: {arch}")
# 用户主目录
home_dir = Path.home()
info_parts.append(f"用户主目录: {home_dir}")
# 工作空间路径
info_parts.append(f"工作空间: {self.workspace}")
# 当前工作目录
cwd = os.getcwd()
info_parts.append(f"当前目录: {cwd}")
return "\n".join(info_parts)
def _build_chat_messages(self) -> List[Dict[str, str]]:
"""构建带上下文的消息列表"""
system_prompt = """你是一个智能助手,可以回答各种问题。请用中文回答。
env_info = self._get_system_environment_info()
system_prompt = f"""你是一个智能助手,可以回答各种问题。请用中文回答。
如果用户的问题涉及之前的对话内容,请结合上下文进行回答。"""
## 用户运行环境
{env_info}
## 注意事项
- 如果用户的问题涉及之前的对话内容,请结合上下文进行回答
- 根据用户的操作系统和环境,给出适合其系统的建议和解答
- 如果涉及文件路径,请使用适合用户操作系统的路径格式"""
messages = [{"role": "system", "content": system_prompt}]
messages.extend(self._chat_context)
@@ -263,15 +304,23 @@ class LocalAgentApp:
client = get_client()
model = os.getenv("CHAT_MODEL_NAME") or os.getenv("GENERATION_MODEL_NAME")
# 获取环境信息
env_info = self._get_system_environment_info()
# 构建专门的操作指导 Prompt
system_prompt = """你是一个操作指导助手。用户询问的是一个无法通过本地Python代码完成的任务如软件设置、系统配置、GUI操作等
system_prompt = f"""你是一个操作指导助手。用户询问的是一个无法通过本地Python代码完成的任务如软件设置、系统配置、GUI操作等
## 用户运行环境
{env_info}
## 回答要求
请提供清晰、详细的操作步骤指导:
1. 使用编号列表,步骤清晰
2. 如果有多种方法列出最常用的1-2种
3. 如果涉及不同操作系统/软件版本,说明适用范围
3. **重要**: 根据用户的操作系统({platform.system()})给出针对性的操作指导
4. 可以适当配合说明截图位置或界面元素名称
5. 如果操作有风险,给出提醒
6. 如果涉及文件路径,使用适合用户系统的路径格式
用中文回答。"""