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 os
import sys
import platform
import tkinter as tk import tkinter as tk
from tkinter import messagebox from tkinter import messagebox
from pathlib import Path from pathlib import Path
@@ -223,11 +225,50 @@ class LocalAgentApp:
self.chat_view.set_input_enabled(True) 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]]: 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 = [{"role": "system", "content": system_prompt}]
messages.extend(self._chat_context) messages.extend(self._chat_context)
@@ -263,15 +304,23 @@ class LocalAgentApp:
client = get_client() client = get_client()
model = os.getenv("CHAT_MODEL_NAME") or os.getenv("GENERATION_MODEL_NAME") model = os.getenv("CHAT_MODEL_NAME") or os.getenv("GENERATION_MODEL_NAME")
# 构建专门的操作指导 Prompt # 获取环境信息
system_prompt = """你是一个操作指导助手。用户询问的是一个无法通过本地Python代码完成的任务如软件设置、系统配置、GUI操作等 env_info = self._get_system_environment_info()
# 构建专门的操作指导 Prompt
system_prompt = f"""你是一个操作指导助手。用户询问的是一个无法通过本地Python代码完成的任务如软件设置、系统配置、GUI操作等
## 用户运行环境
{env_info}
## 回答要求
请提供清晰、详细的操作步骤指导: 请提供清晰、详细的操作步骤指导:
1. 使用编号列表,步骤清晰 1. 使用编号列表,步骤清晰
2. 如果有多种方法列出最常用的1-2种 2. 如果有多种方法列出最常用的1-2种
3. 如果涉及不同操作系统/软件版本,说明适用范围 3. **重要**: 根据用户的操作系统({platform.system()})给出针对性的操作指导
4. 可以适当配合说明截图位置或界面元素名称 4. 可以适当配合说明截图位置或界面元素名称
5. 如果操作有风险,给出提醒 5. 如果操作有风险,给出提醒
6. 如果涉及文件路径,使用适合用户系统的路径格式
用中文回答。""" 用中文回答。"""