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:
59
app/agent.py
59
app/agent.py
@@ -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")
|
||||
|
||||
# 构建专门的操作指导 Prompt
|
||||
system_prompt = """你是一个操作指导助手。用户询问的是一个无法通过本地Python代码完成的任务(如软件设置、系统配置、GUI操作等)。
|
||||
# 获取环境信息
|
||||
env_info = self._get_system_environment_info()
|
||||
|
||||
# 构建专门的操作指导 Prompt
|
||||
system_prompt = f"""你是一个操作指导助手。用户询问的是一个无法通过本地Python代码完成的任务(如软件设置、系统配置、GUI操作等)。
|
||||
|
||||
## 用户运行环境
|
||||
{env_info}
|
||||
|
||||
## 回答要求
|
||||
请提供清晰、详细的操作步骤指导:
|
||||
1. 使用编号列表,步骤清晰
|
||||
2. 如果有多种方法,列出最常用的1-2种
|
||||
3. 如果涉及不同操作系统/软件版本,说明适用范围
|
||||
3. **重要**: 根据用户的操作系统({platform.system()})给出针对性的操作指导
|
||||
4. 可以适当配合说明截图位置或界面元素名称
|
||||
5. 如果操作有风险,给出提醒
|
||||
6. 如果涉及文件路径,使用适合用户系统的路径格式
|
||||
|
||||
用中文回答。"""
|
||||
|
||||
|
||||
Reference in New Issue
Block a user