24 Commits

Author SHA1 Message Date
c325c5bec6 增加origin训练项目 2026-04-13 15:45:54 +08:00
2836981670 data: 修订 Avogadro 任务数据并同步 test_final
- 删除无法稳定复现的 building-organic-molecules_task4 和 using-qtaim-and-wfn_task2
- naming-a-molecule_task1 / viewing-electrostatic-potential_task1 新增 upload_file 步骤,补全 input_files 并修正菜单路径
- building-metal-complexes_task7 修正 steps 重复步骤编号
- test_final.json 移除已删任务,新增 jade9 section
2026-04-04 19:24:41 +08:00
f2d40ed181 Update JADE benchmark task JSON files
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-03 10:39:33 +08:00
7eb8c4000c data: 添加 Origin 输入数据文件并允许 data/origin 目录被追踪
新增 example_with_graph.opju 和 example_with_graph_scaled_from2_to_10.opju,同时在 .gitignore 中为 **/data/origin/ 添加例外规则。
2026-03-30 18:02:22 +08:00
581ccc4dfd data: 修订 Origin task2/3/4/5/8/9/11/12 的 instruction 与 steps
将部分任务从不可行路径(如 View→Formula Bar)改为实际可执行的操作路径(如 Window→Script Window),同步更新 steps 描述与 sleep 时长。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 17:58:52 +08:00
04dfd5a89a fix: traj.jsonl 写入统一使用 UTF-8 编码并保留非 ASCII 字符
所有 run_single_example 变体的 traj.jsonl 写入均加上 encoding="utf-8" 和 ensure_ascii=False,避免中文等字符被转义或写入失败。

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-30 17:58:44 +08:00
b37e4d4372 feat: .exe启动自动最大化并强制前台(WaitForInputIdle+SetForegroundWindow) 2026-03-29 14:26:56 +08:00
d9986142b4 fix(origin): 修复任务配置缺少输入文件及task11设计错误
- task2/3/5/9/11: 补充upload_file+launch传入example.xlsx
- task11: 修正instruction菜单路径,steps补充建图前置步骤
2026-03-27 16:49:24 +08:00
6a5fe8e8ca config: 将评测域改为all以支持全软件批量评测 2026-03-27 14:35:35 +08:00
252d2f79ce fix(eval): 修复vllm_eval截图排序bug并对齐reeval逻辑
- 修复_load_screenshots_from_dir中截图按字符串排序导致step_9被误判为最终帧的bug,改为数字排序
- 对齐reeval.py的prompt逻辑:明确要求模型优先检查最终截图(STEP 1 EXAMINE FINAL SCREENSHOT FIRST)
- 评估temperature从0.7降至0.2提升一致性
- 新增batch_reeval.py:基于test_final.json批量重评测已有轨迹
- 新增reeval.py:单任务重评测脚本(final-frame-anchored evaluation)
- test_final.json新增avogadro(11题)和origin(8题)
2026-03-27 14:34:32 +08:00
4e192cf013 Save local changes before pulling 2026-03-26 10:52:22 +08:00
04089fa218 Save local changes before pulling 2026-03-26 10:50:07 +08:00
a38d2faec3 修改了origin启动地址 2026-03-26 10:46:29 +08:00
b1ed0a4785 add a11y_tree recording to trajectory output 2026-03-25 23:27:47 +08:00
c9912ad54c data: 删除 ovito remote_file_access/rendering 任务,更新 test_final.json 2026-03-25 23:27:47 +08:00
970d430dcf feat: 本地修改 agent.py / run_proxmox / chrome tasks 2026-03-25 23:27:47 +08:00
fe1bdae9a6 updata avogadro examples 2026-03-24 11:54:17 +08:00
adb66ef972 updata avogadro examples 2026-03-24 11:36:51 +08:00
3f0ef4849a Add origin data files 2026-03-19 18:05:13 +08:00
ae202be7b9 Update origin task 2026-03-19 17:58:11 +08:00
64e19ba17e Add ovito data examples 2026-03-19 10:08:25 +08:00
ae92e80a0b Update ovito evaluation examples 2026-03-19 10:00:27 +08:00
0e2702fb5b Merge branch 'lzy/data-processing' of https://git.matai.center/lzy/sci-gui-agent-benchmark into lzy/data-processing 2026-03-18 17:33:11 +08:00
16ea3641bd Add ovito example files 2026-03-18 16:49:11 +08:00
164 changed files with 2965 additions and 6410 deletions

2
.gitignore vendored
View File

@@ -146,6 +146,8 @@ dmypy.json
# data
**/data/**/*
!**/utils/data/**/*
!**/data/origin/
!**/data/origin/**/*
# tmp files
**/tmp/**/*

87
batch_reeval.py Normal file
View File

@@ -0,0 +1,87 @@
"""
Batch re-evaluation based on test_final.json.
Usage:
python3 batch_reeval.py --results_dir /Volumes/Castor/课题/results_baseline_50steps/pyautogui/screenshot/gpt-5.4
python3 batch_reeval.py --results_dir /Volumes/Castor/课题/results_baseline_50steps/pyautogui/screenshot_a11y_tree/gpt-5.4
python3 batch_reeval.py --results_dir <path> --force # re-run even if already done
"""
import argparse
import json
import os
import subprocess
import sys
import glob
SCRIPT_DIR = os.path.dirname(os.path.abspath(__file__))
TEST_FINAL = os.path.join(SCRIPT_DIR, "evaluation_examples", "test_final.json")
TASK_CONFIG_DIR = os.path.join(SCRIPT_DIR, "evaluation_examples", "examples")
REEVAL = os.path.join(SCRIPT_DIR, "reeval.py")
def main():
parser = argparse.ArgumentParser()
parser.add_argument("--results_dir", required=True,
help="e.g. /Volumes/.../screenshot/gpt-5.4")
parser.add_argument("--force", action="store_true",
help="Re-evaluate even if reeval_result.json already exists")
args = parser.parse_args()
with open(TEST_FINAL) as f:
test_final = json.load(f)
# Build task list
tasks = []
skipped = []
for sw, task_ids in test_final.items():
for task_id in task_ids:
result_dir = os.path.join(args.results_dir, sw, task_id)
task_json = os.path.join(TASK_CONFIG_DIR, sw, f"{task_id}.json")
reeval_out = os.path.join(result_dir, "reeval_result.json")
if not os.path.isdir(result_dir):
skipped.append(f" NO result_dir: {sw}/{task_id}")
continue
if not os.path.exists(task_json):
skipped.append(f" NO task JSON: {sw}/{task_id}")
continue
if not glob.glob(os.path.join(result_dir, "step_*.png")):
skipped.append(f" NO screenshots: {sw}/{task_id}")
continue
if os.path.exists(reeval_out) and not args.force:
skipped.append(f" already done: {sw}/{task_id}")
continue
tasks.append((task_json, result_dir, sw, task_id))
print(f"Tasks to evaluate: {len(tasks)}")
if skipped:
print(f"Skipped ({len(skipped)}):")
for s in skipped:
print(s)
print()
ok, failed = 0, []
for i, (task_json, result_dir, sw, task_id) in enumerate(tasks):
print(f"[{i+1}/{len(tasks)}] {sw}/{task_id}")
r = subprocess.run(
[sys.executable, REEVAL, "--task", task_json, "--result_dir", result_dir],
capture_output=True, text=True
)
if r.returncode != 0:
print(f" ERROR: {r.stderr[-300:]}")
failed.append(f"{sw}/{task_id}")
else:
for line in r.stdout.splitlines():
if "normalized" in line or "Task complete" in line or "Score" in line:
print(f" {line.strip()}")
ok += 1
print(f"\nDone: {ok} succeeded, {len(failed)} failed")
if failed:
print("Failed tasks:", failed)
if __name__ == "__main__":
main()

View File

@@ -73,7 +73,7 @@ class SetupController:
retry = 0
while retry < MAX_RETRIES:
try:
_ = requests.get(self.http_server + "/screenshot", timeout=10)
_ = requests.get(self.http_server + "/terminal")
break
except:
time.sleep(5)
@@ -309,6 +309,30 @@ class SetupController:
if command[0] == "google-chrome" and self.use_proxy:
command.append("--proxy-server=http://127.0.0.1:18888") # Use the proxy server set up by _proxy_setup
# Wrap Windows .exe launches with PowerShell to open maximized and focused
if isinstance(command, list) and command and str(command[0]).endswith(".exe"):
exe = command[0].replace("'", "\\'")
args = command[1:]
ps_args = ", ".join(f"'{a}'" for a in args) if args else ""
ps_cmd = f"$p = Start-Process '{exe}'"
if ps_args:
ps_cmd += f" -ArgumentList {ps_args}"
ps_cmd += (
" -WindowStyle Maximized -PassThru;"
" $p.WaitForInputIdle(15000) | Out-Null;"
" Add-Type -TypeDefinition '"
"using System;using System.Runtime.InteropServices;"
"public class Win32{"
"[DllImport(\"user32.dll\")]public static extern bool SetForegroundWindow(IntPtr h);"
"[DllImport(\"user32.dll\")]public static extern bool BringWindowToTop(IntPtr h);"
"}';"
" [Win32]::SetForegroundWindow($p.MainWindowHandle);"
" [Win32]::BringWindowToTop($p.MainWindowHandle)"
)
command = ["powershell", "-Command", ps_cmd]
shell = False
logger.info(f"Wrapped launch command with PowerShell maximized+focused: {ps_cmd}")
payload = json.dumps({"command": command, "shell": shell})
headers = {"Content-Type": "application/json"}
@@ -518,7 +542,7 @@ class SetupController:
retry = 0
while retry < MAX_RETRIES:
try:
_ = requests.get(self.http_server + "/screenshot", timeout=10)
_ = requests.get(self.http_server + "/terminal")
break
except:
time.sleep(5)

View File

@@ -164,9 +164,6 @@ class DesktopEnv(gym.Env):
self.is_environment_used = False
elif self.provider_name in {"vmware", "virtualbox", "proxmox"}:
self.is_environment_used = True
elif self.provider_name == "direct":
# Physical machine: never revert snapshot, never stop emulator
self.is_environment_used = False
else:
raise ValueError(f"Invalid provider name: {self.provider_name}")
@@ -366,17 +363,10 @@ class DesktopEnv(gym.Env):
else None
if "expected" in self.evaluator and len(self.evaluator["expected"]) > 0:
expected_val = self.evaluator["expected"]
if isinstance(expected_val, list):
self.expected_getter: Getter = [
getattr(getters, "get_{:}".format(exp["type"])) if (exp and "type" in exp) else None
for exp in expected_val
]
elif isinstance(expected_val, dict) and "type" in expected_val:
self.expected_getter: Getter = getattr(getters, "get_{:}".format(expected_val["type"]))
else:
# No 'type' key (e.g. vllm_eval uses plain description dict) — no getter needed
self.expected_getter = None
self.expected_getter: Getter = [getattr(getters, "get_{:}".format(exp["type"])) if exp else None for exp in
self.evaluator["expected"]] \
if isinstance(self.evaluator["expected"], list) \
else getattr(getters, "get_{:}".format(self.evaluator["expected"]["type"]))
else:
self.expected_getter = [None] * len(self.metric) \
if isinstance(self.metric, list) \

View File

@@ -347,8 +347,13 @@ def _load_screenshots_from_dir(result_dir: str, compress: bool = False, max_size
filenames = []
# Find all step screenshot files (e.g., step_1_20240101@120000.png)
# Sort numerically by step number to avoid lexicographic issues (step_10 < step_2 in string sort)
import re as _re_sort
pattern = os.path.join(result_dir, "step_*.png")
screenshot_files = sorted(glob.glob(pattern))
screenshot_files = sorted(
glob.glob(pattern),
key=lambda p: int(_re_sort.search(r"step_(\d+)", os.path.basename(p)).group(1))
)
if not screenshot_files:
logger.warning(f"No screenshot files found in {result_dir}")
@@ -446,7 +451,7 @@ def vllm_eval(result_state, **options) -> float:
metadata = options.get("metadata", {})
params = {
"temperature": options.get("temperature", 0.7),
"temperature": options.get("temperature", 0.2),
"max_tokens": options.get("max_tokens", 16384),
"top_p": options.get("top_p", 1.0)
}
@@ -493,51 +498,49 @@ IMPORTANT: Only reference screenshots from the list above. Do NOT reference any
else:
img_info = "\nNo screenshots were provided."
prompt = f"""You are a STRICT and RIGOROUS evaluator for desktop environment tasks. Your job is to score ONLY based on concrete, visible evidence of task completion in the screenshots.
final_name = screenshot_filenames[-1] if screenshot_filenames else "N/A"
Task Instruction: {instruction}
prompt = f"""You are a STRICT evaluator for desktop GUI agent tasks.
Task: {instruction}
{preconfig_section}
{expected_steps_section}
{img_info}
Analyze ONLY the FINAL screenshot ({screenshot_filenames[-1] if screenshot_filenames else 'N/A'}) to determine the end state, while using earlier screenshots for context.
════════════════════════════════════════════════════
STEP 1 — EXAMINE THE FINAL SCREENSHOT FIRST
The LAST image provided is "{final_name}" — this is the FINAL STATE of the agent's session.
Look at this image carefully NOW before anything else. Ask yourself:
"Does this final screenshot show the task is complete?"
Only after answering that, use earlier screenshots to understand HOW the agent got there.
════════════════════════════════════════════════════
CRITICAL SCORING RULES:
1. Score ONLY based on what the AGENT actually accomplished. The pre-configured environment (application already launched, files already opened, etc.) is the STARTING STATE and worth 0 points.
2. Score ONLY based on what is ACTUALLY VISIBLE in the screenshots. Do NOT give credit for assumed or potential progress.
3. If the screenshots show NO meaningful action beyond the initial pre-configured state, the score MUST be 0.
4. Do NOT give partial credit for "having the system on", "desktop being visible", "the application being open" (if it was pre-launched), or "the application being installed". These are prerequisites or pre-configured state, NOT progress.
5. Each point must correspond to a SPECIFIC, VERIFIABLE action that was successfully completed BY THE AGENT toward the task goal.
SCORING RULES:
1. Base your final_completion and score PRIMARILY on "{final_name}" (the last image).
2. Credit ONLY actions performed BY THE AGENT (not pre-configured setup).
3. Require VISIBLE evidence in a specific screenshot for each step.
4. If the final screenshot shows the task is done, score high even if earlier steps were messy.
SCORING GUIDE (0-10):
- 0: No progress beyond the pre-configured starting state. If the app was pre-launched, merely having it open is 0. If the screenshots only show the desktop or the initial app state without any agent action, score is 0.
- 1-2: The agent performed one minor action (e.g., clicked on a menu) but did not make meaningful progress toward the task goal.
- 3-4: Some initial steps toward the task have been taken but the task is far from complete.
- 5-6: Significant progress - about half the required steps are completed with visible evidence.
- 7-8: Most steps are completed but the final result is not fully achieved or has minor issues.
- 9: The task is essentially complete with very minor cosmetic differences.
- 10: The task is perfectly and completely finished with clear evidence in the final screenshot.
SCORE GUIDE (0-10):
- 0: No agent progress; only pre-configured state visible.
- 1-3: Minor actions taken, far from goal.
- 4-6: Meaningful progress, roughly half done.
- 7-8: Most steps done, minor issues.
- 9: Essentially complete, cosmetic differences only.
- 10: Fully and perfectly complete with clear visual proof in the final screenshot.
IMPORTANT: You must respond with ONLY a valid JSON object (no additional text before or after). Use the following exact format:
Respond with ONLY valid JSON (no extra text):
{{
"final_screenshot": "{final_name}",
"final_screenshot_description": "Describe exactly what you see in {final_name}",
"task_complete_in_final": true/false,
"steps_analysis": [
{{"step": "Step description", "status": "Success/Fail", "evidence_img": "step_X.png", "reason": "Brief explanation of VISIBLE evidence"}},
{{"step": "Another step", "status": "Success/Fail", "evidence_img": "step_Y.png", "reason": "Brief explanation of VISIBLE evidence"}}
{{"step": "...", "status": "Success/Fail", "evidence_img": "step_X", "reason": "..."}}
],
"final_completion": "True/False",
"score": 0-10
}}
Where:
- "steps_analysis": Array of steps you identified from the screenshots. Each step must cite VISIBLE evidence from a specific screenshot. Do NOT include pre-configured actions as agent steps.
- "status": Either "Success" or "Fail" for each step
- "evidence_img": The screenshot filename that shows evidence for this step (e.g., "step_2.png")
- "reason": Explanation of what is VISUALLY observed in the screenshot as evidence
- "final_completion": "True" ONLY if the overall task is fully completed with clear visual proof, "False" otherwise
- "score": Integer from 0 to 10, following the strict scoring guide above
Remember: Return ONLY the JSON object, no additional text. Be STRICT - when in doubt, score LOWER."""
}}"""
try:
result = llm.generate_with_images(

View File

@@ -43,9 +43,5 @@ def create_vm_manager_and_provider(provider_name: str, region: str, use_proxy: b
from desktop_env.providers.proxmox.manager import ProxmoxVMManager
from desktop_env.providers.proxmox.provider import ProxmoxProvider
return ProxmoxVMManager(), ProxmoxProvider(region)
elif provider_name == "direct":
from desktop_env.providers.direct.manager import DirectVMManager
from desktop_env.providers.direct.provider import DirectProvider
return DirectVMManager(), DirectProvider(region)
else:
raise NotImplementedError(f"{provider_name} not implemented!")

View File

@@ -1,32 +0,0 @@
import logging
from desktop_env.providers.base import VMManager
logger = logging.getLogger("desktopenv.providers.direct.DirectVMManager")
class DirectVMManager(VMManager):
"""No-op manager for direct-IP connections (physical machines / bare-metal)."""
def __init__(self, registry_path=""):
pass
def initialize_registry(self, **kwargs):
pass
def add_vm(self, vm_path, **kwargs):
pass
def delete_vm(self, vm_path, **kwargs):
pass
def occupy_vm(self, vm_path, pid, **kwargs):
pass
def list_free_vms(self, **kwargs):
return []
def check_and_clean(self, **kwargs):
pass
def get_vm_path(self, os_type="Windows", region=None, screen_size=(1920, 1080), **kwargs):
return os.environ.get("DIRECT_VM_IP", "192.168.1.11")

View File

@@ -1,63 +0,0 @@
import logging
import os
import time
import requests
from desktop_env.providers.base import Provider
logger = logging.getLogger("desktopenv.providers.direct.DirectProvider")
logger.setLevel(logging.INFO)
RETRY_INTERVAL = 3
MAX_WAIT_READY = 60
class DirectProvider(Provider):
"""
Provider for directly connected machines (physical / bare-metal).
No VM lifecycle management — the machine is assumed to be already running.
The Flask server IP is read from the environment variable DIRECT_VM_IP.
Usage:
export DIRECT_VM_IP=192.168.1.11
python run.py --provider_name direct --path_to_vm ignored ...
"""
def __init__(self, region: str = None):
super().__init__(region)
self.vm_ip = os.environ.get("DIRECT_VM_IP", "192.168.1.11")
def start_emulator(self, path_to_vm: str, headless: bool, os_type: str = "Windows"):
"""No-op: machine is already on. Just verify Flask server is reachable."""
logger.info(f"[direct] Using physical machine at {self.vm_ip}:5000 (no VM lifecycle)")
self._wait_for_vm_ready(self.vm_ip)
def _wait_for_vm_ready(self, ip: str, timeout: int = MAX_WAIT_READY) -> bool:
url = f"http://{ip}:5000/screenshot"
deadline = time.time() + timeout
while time.time() < deadline:
try:
r = requests.get(url, timeout=5)
if r.status_code == 200:
logger.info(f"[direct] Flask server ready at {url}")
return True
except Exception:
pass
logger.info(f"[direct] Waiting for Flask server at {url}...")
time.sleep(RETRY_INTERVAL)
logger.warning(f"[direct] Flask server at {url} not ready within {timeout}s — continuing anyway")
return False
def get_ip_address(self, path_to_vm: str) -> str:
return self.vm_ip
def save_state(self, path_to_vm: str, snapshot_name: str):
logger.info("[direct] save_state: no-op (physical machine)")
def revert_to_snapshot(self, path_to_vm: str, snapshot_name: str) -> str:
logger.info("[direct] revert_to_snapshot: no-op (physical machine)")
return path_to_vm
def stop_emulator(self, path_to_vm: str):
logger.info("[direct] stop_emulator: no-op (physical machine)")

View File

@@ -1,29 +0,0 @@
@echo off
echo ========================================
echo Unzip + Install (Win7 32bit Python3.8)
echo ========================================
echo.
set "ZIPFILE=%~dp0win7_server_packages.zip"
set "DESTDIR=%~dp0"
if not exist "%ZIPFILE%" (
echo [ERROR] win7_server_packages.zip not found!
echo Please put this bat and the zip in the same folder.
pause
exit /b 1
)
echo [1/3] Unzipping via Shell.Application (Win7 compatible) ...
powershell -NoProfile -ExecutionPolicy Bypass -Command "$s=New-Object -ComObject Shell.Application; $d=$s.NameSpace('%DESTDIR%'); $z=$s.NameSpace('%ZIPFILE%'); $d.CopyHere($z.Items(), 20); Start-Sleep -s 5"
echo.
if not exist "%~dp0win7_offline_packages\install_win7.bat" (
echo [ERROR] Unzip failed. Folder win7_offline_packages not found.
pause
exit /b 1
)
echo [2/3] Unzip OK. Starting install ...
echo.
call "%~dp0win7_offline_packages\install_win7.bat"

File diff suppressed because it is too large Load Diff

View File

@@ -1,3 +0,0 @@
@echo off
cd /d D:\python_server
start /B pythonw D:\python_server\main.py

View File

@@ -1,58 +0,0 @@
#!/bin/bash
# Mac 端传输脚本 —— 将 Win7 离线包通过 HTTP 共享Win7 用浏览器或 PowerShell 下载
# 用法: bash transfer_to_win7.sh
set -e
SCRIPT_DIR="$(cd "$(dirname "$0")" && pwd)"
PKG_DIR="$SCRIPT_DIR/win7_offline_packages"
WIN7_IP="192.168.1.11"
MAC_IP="192.168.1.10"
PORT=8888
echo "========================================"
echo " Mac → Win7 离线包传输工具"
echo " Mac: $MAC_IP Win7: $WIN7_IP"
echo "========================================"
echo ""
# 检查连通性
echo "[1/3] 检测 Win7 网络连通性..."
if ping -c 2 -W 1000 "$WIN7_IP" > /dev/null 2>&1; then
echo " [OK] Win7 ($WIN7_IP) 可达"
else
echo " [警告] ping 超时,请确认网线已连接且 IP 配置正确"
fi
# 打包
echo ""
echo "[2/3] 打包离线文件..."
cd "$SCRIPT_DIR"
zip -r win7_server_packages.zip win7_offline_packages/ 2>/dev/null
echo " [OK] 已打包 → $(pwd)/win7_server_packages.zip"
echo " [OK] 解压脚本 → $(pwd)/extract_and_install.bat"
# 启动 HTTP 服务器
echo ""
echo "[3/3] 启动文件共享服务器..."
echo ""
echo " ┌──────────────────────────────────────────────────────────┐"
echo " │ 在 Win7 浏览器IE中打开 │"
echo " │ http://$MAC_IP:$PORT/ │"
echo " │ │"
echo " │ ★ 第一步:下载 extract_and_install.bat小文件先下 │"
echo " │ ★ 第二步:下载 win7_server_packages.zip大文件 │"
echo " │ ★ 第三步:把两个文件放同一目录,双击 bat 文件 │"
echo " │ (会自动解压 + 自动安装所有依赖) │"
echo " │ │"
echo " │ 如果无法双击 bat → 在命令提示符(cmd)中运行: │"
echo " │ cd 下载目录路径 │"
echo " │ extract_and_install.bat │"
echo " └──────────────────────────────────────────────────────────┘"
echo ""
echo " 按 Ctrl+C 停止服务器"
echo ""
# 在 zip 所在目录启动 HTTP 服务
cd "$SCRIPT_DIR"
python3 -m http.server $PORT

View File

@@ -1,34 +0,0 @@
@echo off
echo ========================================
echo Offline Install for Win7 32bit Py3.8
echo ========================================
echo.
python --version 2>&1 | findstr /C:"3.8"
if errorlevel 1 (
echo [ERROR] Python 3.8 not found.
pause
exit /b 1
)
echo [OK] Python 3.8 detected.
echo.
echo [Step 1] Installing build tools first...
cd /d "%~dp0"
python -m pip install --no-index --find-links . setuptools wheel
echo [Step 2] Installing all packages...
python -m pip install --no-index --find-links . six zipp importlib_metadata certifi idna urllib3 charset_normalizer requests MarkupSafe itsdangerous click blinker werkzeug jinja2 flask pywin32 numpy Pillow lxml pygame pymsgbox pytweening pyscreeze PyGetWindow MouseInfo PyAutoGUI pynput pywinauto
echo.
echo [Step 2] Verifying...
python -c "import flask; print('[OK] flask ' + flask.__version__)"
python -c "import pyautogui; print('[OK] pyautogui')"
python -c "import pywinauto; print('[OK] pywinauto')"
python -c "import numpy; print('[OK] numpy ' + numpy.__version__)"
python -c "import PIL; print('[OK] Pillow ' + PIL.__version__)"
echo.
echo ========================================
echo Done! Run: python ..\main.py
echo ========================================
pause

File diff suppressed because it is too large Load Diff

View File

@@ -1,44 +0,0 @@
# Win7 32位 Python3.8 离线安装清单
# 安装命令: pip install --no-index --find-links . -r requirements_win7.txt
# 底层依赖先装
six
zipp
importlib_metadata
certifi
idna
urllib3
charset_normalizer
requests
# Flask 依赖链
MarkupSafe
itsdangerous
click
blinker
werkzeug
jinja2
flask
# Win32 底层
pywin32
# 数据处理
numpy
Pillow
lxml
pygame
# GUI 控制
pymsgbox
pytweening
pyscreeze
PyGetWindow
MouseInfo
PyAutoGUI
# 输入控制
pynput
# Win 自动化
pywinauto

Binary file not shown.

View File

@@ -0,0 +1,6 @@
Y\X,10,20,30,40,50
5,0.1,0.2,0.3,0.4,0.5
10,0.2,0.4,0.6,0.8,1.0
15,0.3,0.6,0.9,1.2,1.5
20,0.4,0.8,1.2,1.6,2.0
25,0.5,1.0,1.5,2.0,2.5
1 Y\X 10 20 30 40 50
2 5 0.1 0.2 0.3 0.4 0.5
3 10 0.2 0.4 0.6 0.8 1.0
4 15 0.3 0.6 0.9 1.2 1.5
5 20 0.4 0.8 1.2 1.6 2.0
6 25 0.5 1.0 1.5 2.0 2.5

View File

@@ -0,0 +1,14 @@
X,Y,Z
0,0,1.0
1,0,1.2
2,0,1.5
0,1,1.1
1,1,1.4
2,1,1.8
0,2,1.3
1,2,1.6
2,2,2.0
0.5,0.5,1.25
1.5,0.5,1.45
0.5,1.5,1.35
1.5,1.5,1.75
1 X Y Z
2 0 0 1.0
3 1 0 1.2
4 2 0 1.5
5 0 1 1.1
6 1 1 1.4
7 2 1 1.8
8 0 2 1.3
9 1 2 1.6
10 2 2 2.0
11 0.5 0.5 1.25
12 1.5 0.5 1.45
13 0.5 1.5 1.35
14 1.5 1.5 1.75

View File

@@ -0,0 +1,109 @@
ITEM: TIMESTEP
0
ITEM: NUMBER OF ATOMS
100
ITEM: BOX BOUNDS pp pp pp
0.0000000000000000e+00 2.0000000000000000e+01
0.0000000000000000e+00 2.0000000000000000e+01
0.0000000000000000e+00 2.0000000000000000e+01
ITEM: ATOMS id type x y z vx vy vz
1 1 1.234 2.345 3.456 0.001 0.002 -0.001
2 1 4.567 5.678 6.789 -0.002 0.001 0.003
3 1 7.890 8.901 9.012 0.003 -0.001 0.002
4 2 10.123 11.234 12.345 0.001 0.001 -0.002
5 2 13.456 14.567 15.678 -0.001 0.002 0.001
6 1 16.789 17.890 18.901 0.002 -0.002 0.001
7 2 19.012 1.123 2.234 -0.001 0.001 0.002
8 1 3.345 4.456 5.567 0.002 0.001 -0.001
9 2 6.678 7.789 8.890 -0.003 0.002 0.001
10 1 9.901 10.012 11.123 0.001 -0.001 0.003
11 1 0.500 1.500 2.500 0.001 0.002 -0.001
12 2 3.600 4.700 5.800 -0.002 0.001 0.003
13 1 6.700 7.800 8.900 0.003 -0.001 0.002
14 2 9.800 10.900 12.000 0.001 0.001 -0.002
15 1 13.100 14.200 15.300 -0.001 0.002 0.001
16 2 16.400 17.500 18.600 0.002 -0.002 0.001
17 1 19.700 0.800 1.900 -0.001 0.001 0.002
18 2 3.000 4.100 5.200 0.002 0.001 -0.001
19 1 6.300 7.400 8.500 -0.003 0.002 0.001
20 2 9.600 10.700 11.800 0.001 -0.001 0.003
21 1 2.100 3.200 4.300 0.001 0.002 -0.001
22 2 5.400 6.500 7.600 -0.002 0.001 0.003
23 1 8.700 9.800 10.900 0.003 -0.001 0.002
24 2 12.000 13.100 14.200 0.001 0.001 -0.002
25 1 15.300 16.400 17.500 -0.001 0.002 0.001
26 2 18.600 19.700 0.800 0.002 -0.002 0.001
27 1 1.900 3.000 4.100 -0.001 0.001 0.002
28 2 5.200 6.300 7.400 0.002 0.001 -0.001
29 1 8.500 9.600 10.700 -0.003 0.002 0.001
30 2 11.800 12.900 14.000 0.001 -0.001 0.003
31 1 0.750 1.850 2.950 0.001 0.002 -0.001
32 2 4.050 5.150 6.250 -0.002 0.001 0.003
33 1 7.350 8.450 9.550 0.003 -0.001 0.002
34 2 10.650 11.750 12.850 0.001 0.001 -0.002
35 1 13.950 15.050 16.150 -0.001 0.002 0.001
36 2 17.250 18.350 19.450 0.002 -0.002 0.001
37 1 0.550 1.650 2.750 -0.001 0.001 0.002
38 2 3.850 4.950 6.050 0.002 0.001 -0.001
39 1 7.150 8.250 9.350 -0.003 0.002 0.001
40 2 10.450 11.550 12.650 0.001 -0.001 0.003
41 1 13.750 14.850 15.950 0.001 0.002 -0.001
42 2 17.050 18.150 19.250 -0.002 0.001 0.003
43 1 0.350 1.450 2.550 0.003 -0.001 0.002
44 2 3.650 4.750 5.850 0.001 0.001 -0.002
45 1 6.950 8.050 9.150 -0.001 0.002 0.001
46 2 10.250 11.350 12.450 0.002 -0.002 0.001
47 1 13.550 14.650 15.750 -0.001 0.001 0.002
48 2 16.850 17.950 19.050 0.002 0.001 -0.001
49 1 0.150 1.250 2.350 -0.003 0.002 0.001
50 2 3.450 4.550 5.650 0.001 -0.001 0.003
51 1 6.750 7.850 8.950 0.001 0.002 -0.001
52 2 10.050 11.150 12.250 -0.002 0.001 0.003
53 1 13.350 14.450 15.550 0.003 -0.001 0.002
54 2 16.650 17.750 18.850 0.001 0.001 -0.002
55 1 19.950 1.050 2.150 -0.001 0.002 0.001
56 2 3.250 4.350 5.450 0.002 -0.002 0.001
57 1 6.550 7.650 8.750 -0.001 0.001 0.002
58 2 9.850 10.950 12.050 0.002 0.001 -0.001
59 1 13.150 14.250 15.350 -0.003 0.002 0.001
60 2 16.450 17.550 18.650 0.001 -0.001 0.003
61 1 1.100 2.200 3.300 0.001 0.002 -0.001
62 2 4.400 5.500 6.600 -0.002 0.001 0.003
63 1 7.700 8.800 9.900 0.003 -0.001 0.002
64 2 11.000 12.100 13.200 0.001 0.001 -0.002
65 1 14.300 15.400 16.500 -0.001 0.002 0.001
66 2 17.600 18.700 19.800 0.002 -0.002 0.001
67 1 0.900 2.000 3.100 -0.001 0.001 0.002
68 2 4.200 5.300 6.400 0.002 0.001 -0.001
69 1 7.500 8.600 9.700 -0.003 0.002 0.001
70 2 10.800 11.900 13.000 0.001 -0.001 0.003
71 1 14.100 15.200 16.300 0.001 0.002 -0.001
72 2 17.400 18.500 19.600 -0.002 0.001 0.003
73 1 0.700 1.800 2.900 0.003 -0.001 0.002
74 2 4.000 5.100 6.200 0.001 0.001 -0.002
75 1 7.300 8.400 9.500 -0.001 0.002 0.001
76 2 10.600 11.700 12.800 0.002 -0.002 0.001
77 1 13.900 15.000 16.100 -0.001 0.001 0.002
78 2 17.200 18.300 19.400 0.002 0.001 -0.001
79 1 0.300 1.400 2.500 -0.003 0.002 0.001
80 2 3.600 4.700 5.800 0.001 -0.001 0.003
81 1 6.900 8.000 9.100 0.001 0.002 -0.001
82 2 10.200 11.300 12.400 -0.002 0.001 0.003
83 1 13.500 14.600 15.700 0.003 -0.001 0.002
84 2 16.800 17.900 19.000 0.001 0.001 -0.002
85 1 0.100 1.200 2.300 -0.001 0.002 0.001
86 2 3.400 4.500 5.600 0.002 -0.002 0.001
87 1 6.700 7.800 8.900 -0.001 0.001 0.002
88 2 10.000 11.100 12.200 0.002 0.001 -0.001
89 1 13.300 14.400 15.500 -0.003 0.002 0.001
90 2 16.600 17.700 18.800 0.001 -0.001 0.003
91 1 2.000 3.100 4.200 0.001 0.002 -0.001
92 2 5.300 6.400 7.500 -0.002 0.001 0.003
93 1 8.600 9.700 10.800 0.003 -0.001 0.002
94 2 11.900 13.000 14.100 0.001 0.001 -0.002
95 1 15.200 16.300 17.400 -0.001 0.002 0.001
96 2 18.500 19.600 0.700 0.002 -0.002 0.001
97 1 1.800 2.900 4.000 -0.001 0.001 0.002
98 2 5.100 6.200 7.300 0.002 0.001 -0.001
99 1 8.400 9.500 10.600 -0.003 0.002 0.001
100 2 11.700 12.800 13.900 0.001 -0.001 0.003

View File

@@ -0,0 +1,5 @@
3
Properties=species:S:1:pos:R:3:Potential_Energy:R:1
O 0.000 0.000 0.000 -0.8520
H 0.957 0.000 -0.240 -0.2341
H -0.957 0.000 -0.240 -0.2341

View File

@@ -39,7 +39,6 @@
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. 在键盘上按下快捷键 Ctrl+3或在工具栏中单击 \"Template Tool\" 图标按钮以激活模板工具。\n2. 在左侧界面的 Template Tool 设置面板中,单击选中 \"Centers\" 选项卡。\n3. 在键盘上依次按下字母键 'Z' 和 'r',将中心元素选定为锆 (Zirconium)。\n4. 在键盘上连续按下 '+' 键 4 次,将中心原子的形式电荷 (formal charge) 设置为 +4。\n5. 在键盘上按下数字键 '4',选择四面体 (tetrahedral) 作为配位几何构型。\n6. 将鼠标指针移动到中间主绘图视口的空白区域,单击鼠标左键,放置一个带有四个氢原子的锆中心骨架。\n7. 在左侧界面的 Template Tool 设置面板中,单击选中 \"Ligands\" 选项卡。\n8. 在键盘上依次按下字母键 'c' 和 'p',选定环戊二烯基 (η5-cyclopentadienyl) 作为配体。\n9. 将鼠标指针移动到主绘图视口中锆中心上的任意一个氢原子球体上,单击鼠标左键,将其替换为第一个 Cp 配体环。\n10. 将鼠标指针移动到与刚才位置相邻的另一个氢原子球体上,单击鼠标左键,将其替换为第二个 Cp 配体环。\n11. 在键盘上按下快捷键 Ctrl+2或在工具栏中单击 \"Draw Tool\" 图标按钮切换到绘制工具。\n12. 在左侧界面的 Draw Tool 设置面板中,单击 \"Element\" 右侧的下拉菜单选框。\n13. 在展开的元素列表中,单击选择 \"Chlorine (17)\"(或直接在键盘输入 'Cl' 选择氯元素。\n14. 将鼠标指针移动到主绘图视口中剩余的第一个氢原子球体上,单击鼠标左键,将其替换为氯配体。\n15. 将鼠标指针移动到主绘图视口中最后一个氢原子球体上,单击鼠标左键,将其替换为第二个氯配体。",
"steps_original": "1. 打开 Template Tool点击 Centers 选项卡。\n2. 输入 'Zr' 或选择锆元素。\n3. 点击四次 '+',将电荷设置为 +4。\n4. 按键 '4',选择四面体几何形状。\n5. 在空白区域放置锆中心。\n6. 切换到 Ligands 选项卡,输入 'cp' 或选择环戊二烯基。\n7. 点击一个氢原子,添加第一个 Cp 配体。\n8. 点击相邻氢,添加第二个 Cp 配体。\n9. 切换到 Draw Tool(快捷键 Ctrl+2。\n10. 选择 Cl 元素。\n11. 点击两个剩余氢原子,每次点击替换为氯配体。"
}
"steps": "1. 在键盘上按下快捷键 Ctrl+3或在工具栏中单击 'Template Tool'(模板)图标按钮以激活模板工具。\n2. 在左侧界面的模板设置面板中,单击选中 '居中' 选项卡。\n3. 单击 '元素' 右侧的下拉菜单,在展开的列表中单击 '其他',在弹出的元素周期表中找到并单击选择锆元素 'Zr'。\n4. 在 '形式电荷' 右侧,单击向上箭头 4 次,将形式电荷设置为 +4。\n5. 单击 '坐标' 右侧的下拉菜单,选择 '4: Tetrahedral' 四面体配位几何构型。\n6. 将鼠标指针移动到中间主绘图视口的空白区域,单击鼠标左键,放置一个带有四个氢原子的锆中心骨架。\n7. 在左侧界面的模板设置面板中,单击选中 'Ligands' 选项卡。\n8. 单击 '类型' 下拉菜单,选择 'Haptic'。\n9. 在 'Ligand' 对话框列表中,单击选中 '其他'然后在弹出界面中选择eta5-Cp-cyclopentyl.cjson最后点击插入。\n10. 将鼠标指针移动到主绘图视口中锆中心上的任意一个氢原子球体上,单击鼠标左键,将其替换为第一个 Cp 配体环。\n11. 将鼠标指针移动到相邻的另一个氢原子球体上,单击鼠标左键,将其替换为第二个 Cp 配体环。\n12. 在工具栏中单击 'Draw Tool'(绘制)图标按钮切换到绘制工具。\n13. 在左侧 Draw Tool 设置面板中,单击 '元素' 右侧的下拉菜单,选择 'Chlorine (17)' 氯元素。\n14. 将鼠标指针移动到主绘图视口中剩余的第一个氢原子球体上,单击鼠标左键,将其替换为氯配体。\n15. 将鼠标指针移动到最后一个氢原子球体上,单击鼠标左键,将其替换为第二个氯配体。",
"steps_original": "1. 按下 Ctrl+3 或点击工具栏中的模板工具图标激活模板工具。\n2. 在左侧面板中点击 '居中' 选项卡,展开元素下拉菜单选择 '其他',在元素周期表中选择锆元素 Zr。\n3. 点击形式电荷右侧向上箭头 4 次,将电荷设置为 +4。\n4. 在坐标下拉菜单中选择 4: Tetrahedral 四面体构型。\n5. 在视口空白区域单击放置带有四个氢原子的锆中心骨架。\n6. 点击 'Ligands' 选项卡,在类型下拉菜单中选择 Haptic。\n7. 在 Ligand 列表中选择 '其他',在弹出界面中选择 eta5-Cp-cyclopentyl.cjson 并点击插入。\n8. 点击锆中心的一个氢原子替换为第一个 Cp 配体,再点击相邻氢原子替换为第二个 Cp 配体。\n9. 切换到 Draw Tool 绘制工具,在元素下拉菜单中选择 Chlorine (17)。\n10. 点击剩余两个氢原子,分别替换为两个氯配体。" }
}

View File

@@ -39,7 +39,7 @@
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. 点击菜单栏 Build(构建) → Insert(插入) → Molecule(分子…),打开\"插入片段\"对话框。\n2. 在\"筛选\"输入框中输入 benzene。\n3. 筛选结果会显示一个 aromatics 文件夹(树形结构),需要双击或点击展开该文件夹。\n4. 展开后选中列表中的 benzene.cjson 文件。\n5. 点击\"插入\"按钮将苯环插入到工作区。\n6. 点击关闭按钮关闭\"插入片段\"对话框,确认苯环已显示在主工作界面中。",
"steps": "1. 点击菜单栏构建(B) → 插入(I) → 分子…,打开\"插入片段\"对话框。\n2. 在\"筛选\"输入框中输入 benzene。\n3. 筛选结果会显示一个 aromatics 文件夹(树形结构),需要双击或点击展开该文件夹。\n4. 展开后选中列表中的 benzene.cjson 文件。\n5. 点击\"插入\"按钮将苯环插入到工作区。\n6. 点击关闭按钮关闭\"插入片段\"对话框,确认苯环已显示在主工作界面中。",
"steps_original": "1. 点击 Build → Insert → Molecule。\n2. 搜索 'benzene' 并确定插入该分子。\n3. 确保苯环显示在工作界面中。"
}
}

View File

@@ -39,7 +39,6 @@
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. 在键盘上输入大写字母 \"N\"(可使用 Shift + n 组合键在当前的模板工具中选择硝基Nitro group。\n2. 在主界面的 3D 分子视图区中,定位到甲苯分子上与甲基基团直接相对的对位para position氢原子。\n3. 单击该对位氢原子,将其替换为硝基(-NO2以生成 4-硝基甲苯分子。\n4. 按下键盘组合键 \"Ctrl+Alt+O\"运行几何优化Geometry Optimization以清理并确保最终分子结构正确。",
"steps_original": "1. 按 'N' 键选择硝基。\n2. 点击甲基对位(苯环上的一个氢原子),将其替换为 -NO2。\n3. 确保分子结构正确。"
}
"steps": "1. 按下 Ctrl+N 新建文件。\n2. 单击菜单栏 '构建(B)' → '插入(I)' → 'SMILES...'。\n3. 输入甲苯 SMILES 字符串 'Cc1ccccc1',单击 'OK' 生成甲苯分子。\n4. 在工具栏中单击 'Draw Tool' 图标激活绘制工具。\n5. 在左侧 Draw Tool 面板中,取消勾选 '调整氢原子数目'。\n6. 单击 '元素' 下拉菜单,选择 '其他',在元素周期表中选择氮元素 'N'。\n7. 在主视口中找到甲苯苯环上与甲基相对的对位氢原子,单击将其替换为氮原子。\n8. 单击 '元素' 下拉菜单选择氧元素 'O',键级选择 '双键'。\n9. 单击氮原子,添加第一个双键氧原子。\n10. 将键级改为 '单键',再次单击氮原子,添加第二个单键氧原子,完成 -NO2 结构。\n11. 按下 'Ctrl+Alt+O' 运行几何优化确保分子结构正确。",
"steps_original": "1. 按 Ctrl+N 新建文件,通过 构建 → 插入 → SMILES 输入 'Cc1ccccc1' 生成甲苯分子。\n2. 激活 Draw Tool选择氮元素 N点击苯环对位氢原子替换为氮原子。\n3. 选择氧元素 O分别以双键和单键方式在氮原子上添加两个氧原子完成 -NO2 结构。\n4. 按 Ctrl+Alt+O 运行几何优化确保分子结构正确。" }
}

View File

@@ -1,45 +0,0 @@
{
"id": "building-organic-molecules_task4",
"snapshot": "avogadro",
"instruction": "在 Avogadro 2 中,为甲苯分子执行几何优化。",
"source": "custom",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Avogadro2\\bin\\avogadro2.exe"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"avogadro"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. 在当前激活的 Avogadro 2 主窗口中,按下键盘上的 Ctrl+Alt+O 组合键触发几何优化。\n2. 在主界面的 3D 渲染视图中,观察甲苯分子的空间结构变化。\n3. 等待分子的原子位置停止移动,确认其几何构型已优化至合理的化学结构。",
"steps_original": "1. 按 Ctrl+Alt+O 或点击 Auto Optimize 工具执行几何优化。\n2. 检查分子是否获得合乎逻辑的几何结构。"
}
}

View File

@@ -39,7 +39,7 @@
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. 在软件主工具栏中单击选中 \"Draw Tool\" 工具图标。\n2. 在主视窗的空白3D显示区域中单击鼠标左键,绘制生成一个单碳结构(甲烷,包含一个碳和四个氢)。\n3. 按下键盘快捷键 Ctrl+3或单击工具栏上的 Template Tool 图标),激活 \"Template Tool\"。\n4. 在 Template Tool 的面板中,单击选中 \"Groups\" 选项卡(或按键盘右方向键两次切换到该选项卡)。\n5. 在键盘上输入大写字母 C或输入 co2选择羧基carboxylate模板。\n6. 将鼠标光标移动到主视窗中刚绘制的单碳结构上,对准其中任意一个氢原子(白色球体)。\n7. 单击鼠标左键,将该氢原子替换为羧基(-COOH完成结构添加。",
"steps": "1. 在工具栏中单击 'Draw Tool' 图标激活绘制工具。\n2. 在左侧 Draw Tool 面板中,单击 '元素' 下拉菜单,选择 '碳 (6)',键级勾选单键。\n3. 勾选 '调整氢原子数目' 复选框。\n4. 在主视口空白区域单击鼠标左键,生成一个单碳结构(甲烷,CH₄)。\n5. 按下快捷键 Ctrl+3 或单击工具栏上的 'Template Tool' 图标激活模板工具。\n6. 在左侧模板面板中,单击选中 '群组' 选项卡。\n7. 在群组列表中找到并单击选择羧基carboxylate/-COOH)模板。\n8. 将鼠标移动到主视口中甲烷结构上的任意一个氢原子(白色球体)。\n9. 单击该氢原子,将其替换为羧基(-COOH完成结构添加。",
"steps_original": "1. 使用 Draw Tool 在界面中绘制一个单碳。\n2. 激活 Template Tool通过按 Ctrl+3 或点击工具栏上的图标进入 Groups。\n3. 按 'C' 或 'co' 选择羧基。\n4. 点击单碳结构上的一个氢原子,将其替换为羧基。"
}
}

View File

@@ -39,7 +39,7 @@
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. 单击顶部菜单栏的 \"Build\"。\n2. 在弹出的下拉菜单中,将鼠标悬停在 \"Insert\" 上以展开子菜单。\n3. 单击子菜单中的 \"Molecule...\",打开分子插入对话框。\n4. 将鼠标光标定位到对话框的搜索输入框中输入文本 \"benzene\"。\n5. 在下方显示的搜索结果列表中,单击选中 \"benzene\" 项。\n6. 单击对话框上的 \"Insert\" (或对应的确认) 按钮,将苯环插入主绘图区。\n7. 按下键盘快捷键 `Ctrl+3`激活 \"Template Tool\"模板工具。\n8. 在界面左侧(或右侧)的工具选项面板中单击选中 \"Groups\" 标签页(或按两次键盘右方向键 `->` 进行切换)。\n9. 在键盘上直接输入大写字母 `C`,以设定当前要添加的官能团为羧基 (Carboxyl)。\n10. 在主绘图区中,单击苯环上任意一个白色氢原子球(计为位置1将其替换为羧基。\n11. 在键盘上直接输入大写字母 `N`,以设定当前要添加的官能团为硝基 (Nitro)。\n12. 在主绘图区中,单击苯环上与羧基相隔一个碳原子的白色氢原子球(间位,即位置3将其替换为硝基。\n13. 在键盘上直接输入小写字母 `om`,以设定当前要添加的官能团为甲氧基 (Methoxy)。\n14. 在主绘图区中,单击苯环上与羧基处于正对面的白色氢原子球(对位,即位置4将其替换为甲氧基。\n15. 按下键盘快捷键 `Ctrl+Alt+O`,调用优化功能清理并自动调整分子的几何空间构型。",
"steps_original": "1. 插入苯环。\n2. 按 'C' 键选择羧基,并添加到苯环的第 1 个位置。\n3. 按 'N' 键选择硝基,并添加到苯环的第 3 个位置。\n4. 按 'om' 键选择甲氧基,并添加到苯环的第 4 个位置。\n5. 使用优化工具进行几何优化并检查分子是否正确。"
"steps": "1. 单击菜单栏 '构建(B)' → '插入(I)' → '分子...',在筛选框中输入 'benzene'选中 benzene 后单击 '插入',将苯环插入主绘图区。\n2. 按下快捷键 Ctrl+3 激活 Template Tool 模板工具。\n3. 在左侧模板面板中单击选中 '群组' 选项卡。\n4. 在群组列表中单击 '其他',在弹出的插入片段对话框筛选框中输入 'Carboxyl',展开 'oxygen' 文件夹,单击选中 'carboxylate.cjson',单击 '插入' 按钮。\n5. 在主绘图区单击苯环上任意一个氢原子位置1将其替换为羧基。\n6. 在群组列表中单击 '其他',在筛选框中输入 'Nitro',在列表中单击选中 'nitro.cjson',单击 '插入' 按钮。\n7. 在主绘图区单击苯环上与羧基相隔一个碳的氢原子(位置3将其替换为硝基。\n8. 在群组列表中单击 '其他',在筛选框中输入 'Methoxy',展开 'alkoxy' 文件夹,单击选中 'methoxy.cjson',单击 '插入' 按钮。\n9. 在主绘图区单击苯环上与羧基正对的氢原子(位置4将其替换为甲氧基。\n10. 按下 'Ctrl+Alt+O' 运行几何优化确保分子结构正确。",
"steps_original": "1. 通过 构建 → 插入 → 分子... 搜索 benzene 插入苯环。\n2. 按 Ctrl+3 激活模板工具,进入群组选项卡,点击其他,搜索 Carboxyl 选择 carboxylate.cjson 插入点击苯环位置1的氢原子替换为羧基。\n3. 点击其他,搜索 Nitro 选择 nitro.cjson 插入点击苯环位置3的氢原子替换为硝基。\n4. 点击其他,搜索 Methoxy 选择 methoxy.cjson 插入点击苯环位置4的氢原子替换为甲氧基。\n5. 按 Ctrl+Alt+O 运行几何优化确保分子结构正确。"
}
}

View File

@@ -4,11 +4,23 @@
"instruction": "在 Avogadro 中通过 Analysis → Properties → Molecular... 查看当前分子的 IUPAC 名称及相关性质。",
"source": "custom",
"config": [
{
"type": "upload_file",
"parameters": {
"files": [
{
"local_path": "evaluation_examples/data/avogadro/ethanol.sdf",
"path": "C:\\Users\\user\\Desktop\\ethanol.sdf"
}
]
}
},
{
"type": "launch",
"parameters": {
"command": [
"C:\\Avogadro2\\bin\\avogadro2.exe"
"C:\\Avogadro2\\bin\\avogadro2.exe",
"C:\\Users\\user\\Desktop\\ethanol.sdf"
]
}
},
@@ -38,8 +50,7 @@
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. 打开 Avogadro 软件。\n2. 在软件顶部菜单栏中,单击 \"Analysis\" 菜单。\n3. 在弹出的下拉菜单中,单击 \"Properties\" 菜单项以展开下一级子菜单。\n4. 在弹出的子菜单中,单击 \"Molecular...\" 菜单项。\n5. 等待名为 \"Molecular Properties\" 的对话框窗口弹出。\n6. 在 \"Molecular Properties\" 窗口中,查看 \"Molecule Name\" 标签右侧显示的文本,获取分子的 IUPAC 名称。\n7. 在同一个窗口中,继续查看 \"Molecular Mass (g/mol)\"、\"Chemical Formula\"、\"Number of Atoms\" 和 \"Number of Bonds\" 标签右侧对应的属性数值。\n8. 查看完毕后,单击窗口右下角的蓝色 \"OK\" 按钮以关闭该对话框。",
"steps_original": "1. 打开 Avogadro 软件。\n2. 击菜单栏中的 Analysis。\n3. 从下拉菜单选择 Properties。\n4. Molecular...。\n5. 在弹出的 'Molecular Properties' 窗口中查看分子的名字和相关信息,例如分子质量、化学式、原子数键数。"
}
"input_files": ["ethanol.sdf"],
"steps": "1. 打开 Avogadro 软件,确保已有分子载入。\n2. 在软件顶部菜单栏中,单击 'Analysis' 菜单。\n3. 在弹出的下拉菜单中,将鼠标悬停在 'Properties' 菜单项以展开子菜单。\n4. 在弹出的子菜单中,单击 'Molecular...' 菜单项。\n5. 等待分子属性对话框窗口弹出。\n6. 在对话框中查看 'Molecule Name' 右侧显示的 IUPAC 名称及相关性质。",
"steps_original": "1. 打开 Avogadro 软件,确保已有分子载入。\n2. 击菜单栏中的 'Analyze'。\n3. 将鼠标悬停在 '属性(P)' 上展开子菜单。\n4. '分子的(M)...'。\n5. 在弹出的 '分子属性' 窗口中查看分子的 IUPAC 名称、分子质量、单同位素质量、化学式、原子数键数、净电荷和净自旋多重度等相关信息。" }
}

View File

@@ -1,47 +0,0 @@
{
"id": "using-qtaim-and-wfn_task1",
"snapshot": "avogadro",
"instruction": "在 Avogadro 中,使用 QTAIM 插件的 Molecular Graph with Lone Pairs 功能打开 b2h6.wfn 文件。",
"source": "custom",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Avogadro2\\bin\\avogadro2.exe"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"avogadro"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [
"b2h6.wfn"
],
"steps": "1. 单击顶部菜单栏中的 \"Extensions\" 菜单项\n2. 将鼠标悬停在弹出的下拉菜单中的 \"QTAIM\" 菜单项上以展开子菜单\n3. 单击展开的子菜单中的 \"Molecular Graph with Lone Pairs...\" 菜单项\n4. 在弹出的文件选择窗口的文件列表中,单击选中名为 \"b2h6.wfn\" 的文件项\n5. 单击文件选择窗口右下角的 \"Open\" 按钮",
"steps_original": "1. 点击顶部菜单栏的 Extensions\n2. 在下拉菜单中悬停于 QTAIM 以展开子菜单\n3. 点击选择 Molecular Graph with Lone Pairs...\n4. 在弹出的文件选择窗口中,找到并选中 b2h6.wfn 文件\n5. 点击 Open 按钮加载文件并启动分析"
}
}

View File

@@ -1,45 +0,0 @@
{
"id": "using-qtaim-and-wfn_task2",
"snapshot": "avogadro",
"instruction": "在 Avogadro 中,通过调整 Display Types 面板开启 QTAIM 视图并关闭球棍模型,以便突出显示键临界点。",
"source": "custom",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Avogadro2\\bin\\avogadro2.exe"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"avogadro"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. 在软件主界面中,找到标有 \"Display Types\" 的面板区域。\n2. 在 \"Display Types\" 面板的选项列表中,滚动查找并定位到标有 \"QTAIM\" 的选项。\n3. 单击 \"QTAIM\" 选项左侧的复选框,确保其处于被勾选状态。\n4. 在同一个 \"Display Types\" 面板的选项列表中,滚动查找并定位到标有 \"Ball and Stick\" 的选项。\n5. 单击 \"Ball and Stick\" 选项左侧的复选框,将其取消勾选。",
"steps_original": "1. 定位到软件界面中的 Display Types显示类型面板\n2. 在列表中找到 QTAIM 选项,并勾选其左侧的复选框\n3. 在同一列表中找到 Ball and Stick 选项\n4. 取消勾选 Ball and Stick 的复选框以隐藏经典模型"
}
}

View File

@@ -1,47 +0,0 @@
{
"id": "using-qtaim-and-wfn_task3",
"snapshot": "avogadro",
"instruction": "在 Avogadro 中,完整执行 QTAIM 电子密度分析流程:加载 b2h6.wfn 文件并将界面设置为仅显示 QTAIM 元素的模式。",
"source": "custom",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Avogadro2\\bin\\avogadro2.exe"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"avogadro"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [
"b2h6.wfn"
],
"steps": "1. 单击顶部菜单栏的 \"Extensions\" 菜单项。\n2. 在展开的下拉菜单中,单击(或鼠标悬停) \"QTAIM\" 菜单项以展开子菜单。\n3. 在弹出的级联子菜单中,单击选中 \"Molecular Graph with Lone Pairs...\" 选项。\n4. 在弹出的文件选择对话框的文件列表中,单击选中名为 \"b2h6.wfn\" 的文件。\n5. 单击对话框右下角的 \"Open\" 按钮。\n6. 等待界面弹出包含 \"Electron Density Sources Search\" 文本的进度条对话框,并等待该对话框完成处理并自动消失。\n7. 在界面侧边栏的 \"Display Types\" 列表中,向下查找并定位到 \"QTAIM\" 选项。\n8. 单击 \"QTAIM\" 选项左侧的复选框,将其状态设置为勾选。\n9. 在同一个 \"Display Types\" 列表中,向上查找并定位到 \"Ball and Stick\" 选项。\n10. 单击 \"Ball and Stick\" 选项左侧的复选框,将其状态设置为取消勾选。",
"steps_original": "1. 依次点击菜单栏的 Extensions -> QTAIM -> Molecular Graph with Lone Pairs...\n2. 在文件对话框中选中 b2h6.wfn 文件,并点击 Open 按钮\n3. 等待弹出的 Electron Density Sources Search 进度条完成并消失\n4. 在界面的 Display Types 列表中,勾选 QTAIM 选项以显示 AIM 注释\n5. 在同一列表中,取消勾选 Ball and Stick 选项以获得纯净的 QTAIM 视角"
}
}

View File

@@ -1,14 +1,26 @@
{
"id": "viewing-electrostatic-potential_task1",
"snapshot": "avogadro",
"instruction": "在 Avogadro 中通过 Analyze → Create Surfaces 菜单创建 Van der Waals 表面并设置电荷分布可视化。",
"instruction": "在 Avogadro 中通过 Analyze → 创建表面...菜单创建 Van der Waals 表面并设置电荷分布可视化,计算完成后关闭对话框。",
"source": "custom",
"config": [
{
"type": "upload_file",
"parameters": {
"files": [
{
"local_path": "evaluation_examples/data/avogadro/ethanol.sdf",
"path": "C:\\Users\\user\\Desktop\\ethanol.sdf"
}
]
}
},
{
"type": "launch",
"parameters": {
"command": [
"C:\\Avogadro2\\bin\\avogadro2.exe"
"C:\\Avogadro2\\bin\\avogadro2.exe",
"C:\\Users\\user\\Desktop\\ethanol.sdf"
]
}
},
@@ -38,8 +50,7 @@
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. 单击顶部菜单栏的 \"Analyze\" 菜单项。\n2. 在展开的下拉菜单中,单击选中 \"Create Surfaces...\" 选项。\n3. 在弹出的 \"Create Surfaces\" 对话框中,单击 \"Surface:\" 标签右侧的下拉菜单。\n4. 在展开的下拉列表中,单击选中 \"Van der Waals\" 选项。\n5. 单击 \"Color by:\" 标签右侧的第一个下拉菜单。\n6. 在展开的下拉列表中,单击选中 \"Electrostatic Potential\" 选项。\n7. 单击 \"Color by:\" 行右侧的第二个下拉菜单(位于 Electrostatic Potential 右侧)。\n8. 在展开的下拉列表中,单击选中 \"EEM\" 选项。\n9. 单击 \"Colormap:\" 标签右侧的下拉菜单。\n10. 在展开的下拉列表中,单击选中 \"Balance\" 选项。\n11. 单击对话框左下角的 \"Calculate\" 按钮。\n12. 等待计算完成后单击对话框右下角的 \"Close\" 按钮关闭该对话框。",
"steps_original": "1. 打开 Avogadro 软件并加载目标分子的模型。\n2. 通过菜单栏选择 Analyze → Create Surfaces。\n3. 在弹出的 Create Surfaces 对话框中,将 Surface 设置为 'Van der Waals'。\n4. 将 Color By 设置为 'Electrostatic Potential'。\n5. 选择一个电荷模型(例如 'EEM')。\n6. 选择色阶为 'Balance'。\n7. 点击 'Calculate' 按钮开始计算表面。\n8. 等待软件完成计算,点击 'Close' 关闭对话框。"
"input_files": ["ethanol.sdf"],
"steps_original": "1. 单击菜单栏 'Analyze' → '创建表面...'。\n2. 在弹出的对话框中确认表面设置为 'Van der Waals'。\n3. 将 '着色按' 设置为 '静电势'。\n4. 根据可用选项设置色阶。\n5. 单击 '计算' 按钮开始计算完成后单击 '关闭'。"
}
}
}

View File

@@ -1,47 +0,0 @@
{
"id": "viewing-molecular-orbitals_task1",
"snapshot": "avogadro",
"instruction": "在 Avogadro 中,打开桌面上的 benzene.fchk 文件,并在自动弹出的 Molecular Orbitals 窗口中点击渲染 LUMO 轨道",
"source": "custom",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Avogadro2\\bin\\avogadro2.exe"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"avogadro"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [
"benzene.fchk"
],
"steps": "1. 在顶部菜单栏中,单击 \"File\" 菜单\n2. 在展开的下拉菜单中,单击 \"Open...\" 选项\n3. 在弹出的文件选择对话框中,单击左侧导航栏的\"桌面\"Desktop目录\n4. 在右侧的文件列表中,单击选中 \"benzene.fchk\" 文件\n5. 单击对话框右下角的\"打开\"Open按钮以加载文件\n6. 等待并定位到自动弹出的 \"Molecular Orbitals\" 窗口的轨道数据表格\n7. 在表格中,单击选中 \"Orbital\" 列文本为 \"LUMO\" 的数据行以在主视图中渲染该轨道",
"steps_original": "1. 通过 File → Open 打开桌面上的 benzene.fchk 文件(此时会自动弹出 Molecular Orbitals 窗口)\n2. 在 Molecular Orbitals 窗口的表格中,找到并点击 Orbital 列名为 'LUMO' 的行以渲染该轨道"
}
}

View File

@@ -1,47 +0,0 @@
{
"id": "viewing-molecular-orbitals_task2",
"snapshot": "avogadro",
"instruction": "在 Avogadro 中,打开桌面上的 benzene.fchk 文件,将 LUMO 轨道的渲染质量设置为 High 并重新渲染",
"source": "custom",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Avogadro2\\bin\\avogadro2.exe"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"avogadro"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [
"benzene.fchk"
],
"steps": "1. 单击顶部菜单栏的 \"File\" 菜单\n2. 在展开的下拉菜单中,单击选择 \"Open...\" 选项\n3. 在弹出的文件选择对话框中,在左侧导航栏或地址栏中单击定位到桌面 (Desktop)\n4. 在文件列表中,单击选中 \"benzene.fchk\" 文件\n5. 单击对话框右下角的 \"Open\" (或\"打开\") 按钮\n6. 在自动弹出的 \"Molecular Orbitals\" 窗口中,定位到包含 Orbital、Energy (eV) 和 Status 列的表格\n7. 在表格中,单击选中 \"Orbital\" 列显示为 \"LUMO\" 的行\n8. 单击窗口底部 \"Quality:\" 标签右侧的下拉菜单 (当前默认显示为 \"Medium\")\n9. 在弹出的下拉列表中,单击选中 \"High\" 选项\n10. 单击下拉菜单右侧的 \"Render\" 按钮",
"steps_original": "1. 通过 File → Open 打开桌面上的 benzene.fchk 文件\n2. 在自动弹出的 Molecular Orbitals 窗口表格中,点击选中 'LUMO' 轨道\n3. 点击窗口底部的 'Quality' 下拉菜单,将选项从默认的 'Medium' 更改为 'High'\n4. 点击右侧的 'Render' 按钮进行高质量渲染"
}
}

View File

@@ -1,47 +0,0 @@
{
"id": "viewing-vibrations_task1",
"snapshot": "avogadro",
"instruction": "在 Avogadro 中,打开频率计算文件 freq.out在振动模式窗口中选择频率为 1264.47 cm⁻¹ 的模式并开始播放动画。",
"source": "custom",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Avogadro2\\bin\\avogadro2.exe"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"avogadro"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [
"freq.out"
],
"steps": "1. 单击顶部菜单栏的 \"File\" 菜单项\n2. 在展开的下拉菜单中,单击 \"Open...\" 菜单项\n3. 在弹出的文件选择对话框中,单击左侧导航面板中的 \"桌面\"(或 Desktop选项\n4. 在对话框的文件列表区域中,单击选中名为 \"freq.out\" 的文件\n5. 单击文件选择对话框右下角的 \"打开\"(或 Open按钮此时会自动弹出 \"Vibrational Modes\" 窗口)\n6. 定位到新弹出的 \"Vibrational Modes\" 窗口中央的数据表格\n7. 在该数据表格中,单击选中第一列序号为 \"8\" 且 \"Frequency (cm⁻¹)\" 列为 \"1264.47\" 的所在行\n8. 定位到 \"Vibrational Modes\" 窗口的底部区域\n9. 单击标签为 \"Start Animation\" 的按钮",
"steps_original": "1. 在 Avogadro 中,通过 File → Open 菜单打开桌面上的 freq.out 文件(此时会自动弹出 Vibrational Modes 窗口)\n2. 在 Vibrational Modes 窗口的列表中,找到并点击选中序号为 8、Frequency 为 1264.47 cm⁻¹ 的行\n3. 点击窗口右下角的 Start Animation 按钮开始播放分子的振动动画"
}
}

View File

@@ -1,47 +0,0 @@
{
"id": "viewing-vibrations_task2",
"snapshot": "avogadro",
"instruction": "在 Avogadro 中,打开包含拉曼光谱计算结果的文件 raman.out播放 1188.7 cm⁻¹ 频率的振动动画,调大振动幅度后停止播放。",
"source": "custom",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Avogadro2\\bin\\avogadro2.exe"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"avogadro"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [
"raman.out"
],
"steps": "1. 点击软件顶部菜单栏的 \"File\" 菜单项\n2. 在展开的下拉菜单中,单击 \"Open...\" 选项\n3. 在弹出的文件选择对话框中,通过侧边栏或路径栏点击进入桌面目录\n4. 在文件列表中,单击选中名为 \"raman.out\" 的文件\n5. 点击对话框右下角的 \"Open\"(或“打开”)按钮\n6. 等待自动弹出 \"Vibrational Modes\" 窗口后,在该窗口的表格列表中,找到第一列为 \"7\"、\"Frequency (cm⁻¹)\" 列为 \"1188.7\" 的数据行\n7. 单击该数据行将其选中\n8. 在窗口底部,单击标签文字为 \"Start Animation\" 的按钮\n9. 将鼠标光标移动到窗口底部 \"Amplitude:\" 标签右侧的滑块控件的手柄上\n10. 按下鼠标左键不放\n11. 向右移动鼠标拖动滑块手柄\n12. 松开鼠标左键\n13. 在窗口底部,单击标签文字为 \"Stop Animation\" 的按钮",
"steps_original": "1. 在 Avogadro 中,通过 File → Open 菜单打开桌面上的 raman.out 文件,等待 Vibrational Modes 窗口自动出现\n2. 在列表中点击选中序号为 7、Frequency 为 1188.7 cm⁻¹ 的行\n3. 点击 Start Animation 按钮启动振动动画\n4. 使用鼠标按住窗口底部的 Amplitude 滑块并向右拖动,以增大振动显示的幅度\n5. 观察动画变化后,点击 Stop Animation 按钮停止播放"
}
}

View File

@@ -0,0 +1,45 @@
{
"id": "chrome_win_task01",
"snapshot": "snapshot",
"instruction": "Can you make a new folder for me on the bookmarks bar in Chrome? Let's call it 'Favorites.'",
"source": "OSWorld-adapted",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. Chrome已自动打开。\n2. 在书签栏空白处右键,选择'Add folder'(或'添加文件夹')。\n3. 在弹出的对话框中将文件夹名称设为'Favorites',点击保存。\n4. 确认书签栏上出现了名为'Favorites'的文件夹。"
}
}

View File

@@ -0,0 +1,46 @@
{
"id": "chrome_win_task02",
"snapshot": "snapshot",
"instruction": "Can you save this webpage I'm looking at to the bookmarks bar so I can come back to it later?",
"source": "OSWorld-adapted",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"https://jalammar.github.io/illustrated-transformer/"
],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. Chrome已自动打开并导航到目标页面。\n2. 按 Ctrl+D 打开书签保存对话框,或点击地址栏右侧的星形图标。\n3. 在'Folder'下拉菜单中选择'Bookmarks bar'(书签栏)。\n4. 点击'Done'保存。\n5. 确认书签栏上出现了该页面的书签。"
}
}

View File

@@ -0,0 +1,45 @@
{
"id": "chrome_win_task03",
"snapshot": "snapshot",
"instruction": "My grandmother has been using Chrome and told me the font size is way too small. Could you set the default font size to the largest?",
"source": "OSWorld-adapted",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. Chrome已自动打开。\n2. 点击右上角三点菜单 → Settings设置。\n3. 在左侧找到'Appearance'(外观),点击进入。\n4. 找到'Font size'(字体大小),将其设置为'Very large'(最大)。\n5. 确认字体大小选项显示为'Very large'。"
}
}

View File

@@ -0,0 +1,45 @@
{
"id": "chrome_win_task04",
"snapshot": "snapshot",
"instruction": "Can you make Bing the main search engine when I look stuff up in Chrome?",
"source": "OSWorld-adapted",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. Chrome已自动打开。\n2. 点击右上角三点菜单 → Settings设置。\n3. 在左侧点击'Search engine'(搜索引擎)。\n4. 在'Search engine used in the address bar'下拉菜单中选择'Bing'。\n5. 确认搜索引擎已改为Bing。"
}
}

View File

@@ -0,0 +1,45 @@
{
"id": "chrome_win_task05",
"snapshot": "snapshot",
"instruction": "I want Chrome to enable the 'Do Not Track' feature to enhance my online privacy. Can you turn that on?",
"source": "OSWorld-adapted",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. Chrome已自动打开。\n2. 点击右上角三点菜单 → Settings设置。\n3. 在左侧点击'Privacy and security'(隐私和安全)。\n4. 找到'Send a Do Not Track request with your browsing traffic',将其开关打开(变为蓝色)。\n5. 确认该开关处于开启状态。"
}
}

View File

@@ -0,0 +1,45 @@
{
"id": "chrome_win_task06",
"snapshot": "snapshot",
"instruction": "Please help me set Chrome to delete my browsing data automatically every time I close the browser.",
"source": "OSWorld-adapted",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. Chrome已自动打开。\n2. 点击右上角三点菜单 → Settings设置。\n3. 点击'Privacy and security' → 'Cookies and other site data'。\n4. 找到'Clear cookies and site data when you close all windows',将其开关打开。\n5. 确认该开关处于开启状态。"
}
}

View File

@@ -0,0 +1,45 @@
{
"id": "chrome_win_task07",
"snapshot": "snapshot",
"instruction": "I want to update my Chrome profile name to Thomas. Could you help me change the username in Chrome profiles?",
"source": "OSWorld-adapted",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. Chrome已自动打开。\n2. 点击右上角的个人头像图标Profile图标。\n3. 在弹出菜单中点击铅笔编辑图标或'Manage profiles'。\n4. 在名称输入框中将当前名称修改为'Thomas'。\n5. 点击完成/保存,确认界面上显示用户名为'Thomas'。"
}
}

View File

@@ -0,0 +1,68 @@
{
"id": "chrome_win_task08",
"snapshot": "snapshot",
"instruction": "Can you make my computer bring back the last tab I shut down in Chrome?",
"source": "OSWorld-adapted",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"https://www.lonelyplanet.com"
],
"shell": false
}
},
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"--new-tab",
"https://www.airbnb.com"
],
"shell": false
}
},
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"--new-tab",
"https://www.tripadvisor.com"
],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. Chrome已自动打开并加载了多个标签页。\n2. 关闭最右侧的标签页点击该标签页上的X或按Ctrl+W。\n3. 恢复刚刚关闭的标签页:按 Ctrl+Shift+T或右键标签栏选择'Reopen closed tab'。\n4. 确认被关闭的标签页重新出现在标签栏中。"
}
}

View File

@@ -0,0 +1,45 @@
{
"id": "chrome_win_task09",
"snapshot": "snapshot",
"instruction": "Computer, please navigate to the area in Chrome settings where my passwords are stored.",
"source": "OSWorld-adapted",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe"
],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. Chrome已自动打开。\n2. 在地址栏输入 chrome://password-manager/passwords 并按回车,或通过 Settings → Autofill and passwords → Google Password Manager 找到密码管理页面。\n3. 确认页面显示的是Chrome密码管理器界面。"
}
}

View File

@@ -0,0 +1,46 @@
{
"id": "chrome_win_task10",
"snapshot": "snapshot",
"instruction": "Please help me find the score record for the 2019 Super Bowl on the NFL website.",
"source": "OSWorld-adapted",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"https://www.nfl.com/"
],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. Chrome已自动打开并导航到NFL官网。\n2. 在页面导航中找到Scores或Schedule入口。\n3. 找到2019赛季的Super Bowl比赛Super Bowl LIII2019年2月3日。\n4. 确认页面上显示了该场比赛的比分信息。"
}
}

View File

@@ -0,0 +1,46 @@
{
"id": "chrome_win_task11",
"snapshot": "snapshot",
"instruction": "Open the baggage fee calculator on the United Airlines website.",
"source": "OSWorld-adapted",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"https://www.united.com/en/us"
],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. Chrome已自动打开并导航到United Airlines官网。\n2. 在页面导航中找到Travel info或Baggage部分。\n3. 找到并打开行李费计算器Baggage Calculator页面。\n4. 确认页面显示的是行李费计算器界面。"
}
}

View File

@@ -0,0 +1,46 @@
{
"id": "chrome_win_task12",
"snapshot": "snapshot",
"instruction": "Show me the side effects of Tamiflu on the Drugs.com website.",
"source": "OSWorld-adapted",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\Google\\Chrome\\Application\\chrome.exe",
"https://www.drugs.com/tamiflu.html"
],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"chrome"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. Chrome已自动打开并导航到Drugs.com的Tamiflu页面。\n2. 在页面上找到'Side Effects'(副作用)部分并点击查看。\n3. 确认页面上显示了Tamiflu的副作用信息列表。"
}
}

View File

@@ -1,40 +0,0 @@
{
"id": "flsol_task1",
"snapshot": "flsol",
"instruction": "启动 FL Solutions for F-4600 软件,并截图确认主界面已成功打开。",
"source": "custom",
"config": [
{
"type": "sleep",
"parameters": {
"seconds": 2
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"flsol"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 4
}
}
],
"func": "vllm_eval",
"expected": {
"description": "FL Solutions for F-4600 主界面应已打开可见菜单栏File, Method, Measure 等)和仪器连接状态面板。"
}
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. 双击桌面上的 FL Solutions for F-4600 快捷方式,或通过开始菜单找到并打开 FL Solutions 程序路径C:\\Program Files\\FL Solutions\\flsol.exe。\n2. 等待程序加载完成(约 5-10 秒观察主界面是否出现包含顶部菜单栏File、Method、Measure、View、Tools、Help 等选项)以及仪器状态面板。\n3. 确认主界面已打开后,操作完成。",
"steps_original": "1. 打开 FL Solutions for F-4600 软件。\n2. 等待主界面加载完毕。"
}
}

View File

@@ -1,48 +0,0 @@
{
"id": "flsol_task2",
"snapshot": "flsol",
"instruction": "打开 FL Solutions for F-4600新建一个波长扫描Wavelength Scan方法将激发波长Excitation Wavelength设置为 350 nm扫描范围设为 400700 nm扫描速度设为 240 nm/min然后保存该方法为 test_scan.mth。",
"source": "custom",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\FL Solutions\\flsol.exe"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 8
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"flsol"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval",
"expected": {
"description": "屏幕上应显示 FL Solutions 主界面,并且在 Method 或文件相关区域可以看到名为 test_scan.mth 的方法文件已被保存/创建,或在最近文件列表中可以看到该文件名。激发波长应设为 350 nm扫描范围为 400-700 nm。"
}
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "medium",
"metadata": {
"input_files": [],
"steps": "1. 等待 FL Solutions 主界面打开。\n2. 在顶部菜单栏中,单击 'Method'(方法)菜单,然后选择 'New'(新建)或 'Wavelength Scan'(波长扫描)选项,创建一个新的波长扫描方法。\n3. 在弹出的方法设置对话框中,找到 'Excitation Wavelength'(激发波长)输入框,将数值清空后输入 '350',单位为 nm。\n4. 找到扫描范围Scan Range设置区域将起始波长Start设为 '400' nm将结束波长End设为 '700' nm。\n5. 找到扫描速度Scan Speed下拉菜单或输入框选择或输入 '240' nm/min。\n6. 确认设置无误后,单击菜单 'Method' → 'Save As'(另存为),在弹出的文件保存对话框中,将文件名输入为 'test_scan',确保文件类型为 .mth然后单击 '保存'Save按钮。\n7. 确认文件已成功保存。",
"steps_original": "1. 打开 FL Solutions 并新建 Wavelength Scan 方法。\n2. 设置 Ex 波长 350 nm扫描范围 400-700 nm速度 240 nm/min。\n3. 另存为 test_scan.mth。"
}
}

View File

@@ -1,48 +0,0 @@
{
"id": "flsol_task3",
"snapshot": "flsol",
"instruction": "打开 FL Solutions for F-4600进入仪器参数设置Instrument Parameters将光电倍增管电压PMT Voltage修改为 700 V狭缝宽度Slit Width激发和发射均设置修改为 5.0 nm响应时间Response设置为 Auto然后截图确认参数设置完成。",
"source": "custom",
"config": [
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\FL Solutions\\flsol.exe"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 8
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"flsol"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval",
"expected": {
"description": "FL Solutions 的仪器参数设置界面Instrument Parameters 或 Method 设置窗口)应可见,其中 PMT Voltage 显示为 700 V激发和发射狭缝宽度Ex Slit / Em Slit均显示为 5.0 nm响应时间Response显示为 Auto。"
}
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "medium",
"metadata": {
"input_files": [],
"steps": "1. 等待 FL Solutions 主界面打开。\n2. 在顶部菜单栏中,单击 'Method'(方法)菜单,选择 'New'(新建)创建一个新方法,或在现有方法的参数面板中操作。\n3. 在方法设置界面中找到仪器参数Instrument Parameters区域通常在方法编辑窗口的下方或单独的选项卡中。\n4. 找到 'PMT Voltage'(光电倍增管电压)输入框,清空当前值并输入 '700',单位为 V。\n5. 找到激发狭缝宽度EX Slit Width 或 Excitation Slit输入框或下拉菜单将值修改为 '5.0',单位为 nm。\n6. 找到发射狭缝宽度EM Slit Width 或 Emission Slit输入框或下拉菜单将值修改为 '5.0',单位为 nm。\n7. 找到响应时间Response下拉菜单单击展开选择 'Auto'(自动)选项。\n8. 确认所有参数设置完成后,截图当前界面。",
"steps_original": "1. 打开 FL Solutions进入方法/仪器参数设置。\n2. 设置 PMT 电压 700VEx/Em 狭缝宽度各 5.0 nmResponse 设为 Auto。"
}
}

View File

@@ -1,44 +0,0 @@
{
"id": "flsol_task4_measure",
"snapshot": "flsol",
"instruction": "使用 FL Solutions for F-4600 软件执行一次荧光测量。",
"source": "custom",
"config": [
{
"type": "launch",
"parameters": {
"command": ["C:\\Program Files\\FL Solutions\\flsol.exe"],
"shell": false
}
},
{
"type": "sleep",
"parameters": {
"seconds": 15
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"flsol"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [],
"steps": "1. 软件已自动打开,等待 FL Solutions 主界面完全加载,确认标题栏显示 'FL Solutions - F-4600 FL Spectrophotometer on USB' 且仪器状态正常(无报错弹窗)。\n2. 直接按键盘 F4 键触发 Measure这是最可靠的方式F4 是 Measure 的快捷键)。\n3. 如果 F4 无反应,则通过菜单执行:点击菜单栏 'Spectrophotometer'(第四个菜单项,位于 View 和 Tools 之间),在下拉菜单中点击 'Measure'(快捷键 F4。\n4. 等待测量过程完成,软件会在图表区域实时绘制扫描曲线,测量完成后曲线绘制停止。\n5. 确认图表区域有测量结果曲线后,操作完成。",
"steps_original": "1. 等待 FL Solutions 和 F-4600 仪器完全初始化,状态变为 Ready。\n2. 点击 Measure 按钮执行测量。\n3. 等待测量完成,图表区域出现曲线。"
}
}

View File

@@ -1,417 +0,0 @@
{
"id": "flsol_taskE_auto_optimize_scan",
"snapshot": "flsol",
"instruction": "假设你的目标就是测量样品的荧光图谱。下面的透露给你的辅助信息,把辅助信息当成你自己的思维和决策并完全遵循,而不是把它当成任务,**绝对不允许在输出的「观察」「判断」中说明是任务要求,而是把辅助信息当成你自己的经验,用根据我的经验使用某某配置而不是根据任务要求使用某某配置**因为下面的步骤是完全正确和精准的你只需要执行而且绝对不允许在是严格按坐标执行每步执行完等待界面响应再执行下一步禁止连续操作。修改任何数值输入框时必须先double_click双击全选pyautogui.click(x,y);pyautogui.click(x,y))再pyautogui.press(delete)最后用pyautogui.typewrite输入新值。1.等待主界面加载并确认正常2.点击sample(80,159)打开保存位置选择双击选中sample name文本框(563,346)并清空和重命名为test 3. 双击选中comment 文本框583,381的内容并清空 4. 点击elect 按钮796,613弹出输出的目标文件夹5. 点击创建新文件夹图标784,410命名为test,然后回车再次回车进入test文件夹 5.然后点击保存942718。然后点击ok535,650关闭sample界面 6. 点击Method(36,166)进入Instrument(456,293)7.设置EX_WL(497,472)为350nm8.设置EM_Start_WL(493,500)为400nmEM_End_WL(495,524)为700nm9.设置PMT_Voltage(758,369)为700V10.设置EX_Slit下拉框(771,321)为2.5nm点击下拉框EM_Slit(764,344)出现下拉选项选择5nm(748,386)11.点击Report(638,290)确认Data_start(718,455)和Data_end(717,480)与EM_Start_WL和EM_End_WL的值一致12.点击确定(641,717)13.等待parameters更新完成并ready后才可点击Measure(182,162)测量并观察谱图14.点击底部左下角ex3的输出结果最大化按钮(108,948)",
"source": "custom",
"config": [],
"trajectory": "trajectories/",
"related_apps": [
"flsol"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"func": "vllm_eval",
"expected": {
"description": "FL Solutions 主界面中图表区域应显示一条完整的荧光发射光谱曲线:峰形平滑、顶部无截断(曲线最高点不贴近纵轴上限)、基线平稳、信噪比良好。界面中的仪器参数区域应可见激发波长 350 nm、发射扫描范围 380-700 nm以及经过迭代调整后的最终 PMT 电压和狭缝宽度参数。"
}
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "medium",
"metadata": {
"input_files": [],
"steps": "",
"steps_original": "1. 打开 FL Solutions新建波长扫描方法。\n2. 设置激发波长 350 nm发射范围 380-700 nm初始 PMT 700V狭缝 2.5 nm。\n3. 执行测量,观察谱图。\n4. 若峰截断则降低 PMT 电压和/或缩小狭缝;若信号过弱则升高 PMT 电压和/或增大狭缝。\n5. 反复迭代测量直到峰形完整显示,截图记录最终结果。",
"difficulty": "hard",
"highlight": "AI 能够读取谱图质量并进行闭环迭代调参,体现真正的仪器操控智能,而非机械执行固定步骤。",
"ui_coordinates": {
"application": "FL Solutions - F-4600",
"main_window": {
"name": "F-4600 FL Spectrophotometer on USB",
"toolbar": [
{
"name": "Method",
"type": "Button_Icon",
"center": [
36,
166
],
"description": "打开分析方法设置窗口"
},
{
"name": "Measure",
"type": "Button_Icon",
"center": [
182,
162
],
"description": "执行测量"
}
],
"monitor_panel": [
{
"name": "Fluorescence_Value",
"type": "Display",
"center": [
959,
240
]
},
{
"name": "EX_WL_Display",
"type": "Text",
"center": [
912,
262
]
},
{
"name": "EM_WL_Display",
"type": "Text",
"center": [
0,
0
]
},
{
"name": "Status_Ready_Label",
"type": "Status_Indicator",
"center": [
0,
0
],
"color_hint": "Green"
}
]
},
"sub_windows": {
"Analysis_Method": {
"common_controls": {
"tabs": [
{
"name": "General",
"center": [
398,
291
]
},
{
"name": "Instrument",
"center": [
456,
293
]
},
{
"name": "Monitor",
"center": [
524,
295
]
},
{
"name": "Processing",
"center": [
574,
293
]
},
{
"name": "Report",
"center": [
638,
290
]
}
],
"footer_buttons": [
{
"name": "确定",
"center": [
641,
717
]
},
{
"name": "取消",
"center": [
719,
717
]
},
{
"name": "应用",
"center": [
788,
717
],
"status": "disabled"
},
{
"name": "帮助",
"center": [
882,
717
]
}
],
"close_button": {
"name": "Close_Window",
"center": [
905,
263
]
}
},
"tabs_content": {
"General": [
{
"type": "ComboBox",
"name": "Measurement",
"center": [
512,
321
],
"value": "Wavelength scan"
},
{
"type": "Edit",
"name": "Operator",
"center": [
533,
349
],
"value": "Administrator"
},
{
"type": "Edit",
"name": "Instrument_Model",
"center": [
0,
0
]
},
{
"type": "ComboBox",
"name": "Sampling",
"center": [
0,
0
],
"status": "disabled"
},
{
"type": "Edit",
"name": "Comments",
"center": [
0,
0
]
},
{
"type": "CheckBox",
"name": "Use_sample_table",
"center": [
0,
0
]
},
{
"type": "Button",
"name": "Load",
"center": [
0,
0
]
},
{
"type": "Button",
"name": "Save",
"center": [
0,
0
]
},
{
"type": "Button",
"name": "Save_As",
"center": [
0,
0
]
}
],
"Instrument": [
{
"type": "ComboBox",
"name": "Scan_mode",
"center": [
550,
322
]
},
{
"type": "ComboBox",
"name": "Data_mode",
"center": [
526,
347
]
},
{
"type": "Edit",
"name": "EX_WL",
"center": [
497,
472
],
"unit": "nm"
},
{
"type": "Edit",
"name": "EM_Start_WL",
"center": [
493,
500
],
"unit": "nm"
},
{
"type": "Edit",
"name": "EM_End_WL",
"center": [
495,
524
],
"unit": "nm"
},
{
"type": "ComboBox",
"name": "Scan_speed",
"center": [
497,
549
],
"unit": "nm/min"
},
{
"type": "ComboBox",
"name": "EX_Slit",
"center": [
771,
321
],
"unit": "nm"
},
{
"type": "ComboBox",
"name": "EM_Slit",
"center": [
764,
344
],
"unit": "nm"
},
{
"type": "Edit_Spin",
"name": "PMT_Voltage",
"center": [
758,
369
],
"unit": "V"
},
{
"type": "CheckBox",
"name": "PMT_Voltage_Limit",
"center": [
0,
0
],
"label": "PMT Voltage 0-1000V"
},
{
"type": "ComboBox",
"name": "Response",
"center": [
0,
0
],
"unit": "s"
},
{
"type": "Edit_Spin",
"name": "Replicates",
"center": [
0,
0
]
}
],
"Monitor": [
{
"type": "Edit",
"name": "Y_Axis_Max",
"center": [
455,
343
]
},
{
"type": "Edit",
"name": "Y_Axis_Min",
"center": [
455,
375
]
},
{
"type": "CheckBox",
"name": "Open_processing_after_acquisition",
"center": [
396,
437
]
},
{
"type": "CheckBox",
"name": "Overlay",
"center": [
395,
503
]
}
],
"Report": [
{
"type": "Edit",
"name": "Data_start_Value",
"center": [
718,
455
],
"unit": "nm"
},
{
"type": "Edit",
"name": "Data_end_Value",
"center": [
717,
480
],
"unit": "nm"
}
]
}
}
}
}
}
}

View File

@@ -1,417 +0,0 @@
{
"id": "flsol_taskE_auto_optimize_scan",
"snapshot": "flsol",
"instruction": "一步一步地执行,别他妈的给老子跳步 完全按照老子给的指令执行5.点击'PMT_Voltage'(758,369)设置为700V6.设置'EX_Slit下拉框(771,321)'为2.5nm'点击下拉框EM_Slit(764,344)'出现下拉选项选择5nm748,3867.点击'Report(638,290)'确认'Data_start(718,455)'和'Data_end(717,480)与instrument的EM_Start_WL和EM_End_WL'的值一致8.点击'确定(641,717)'9.点击'Measure(182,162)'测量并观察谱图10.若信号截断则返回'Method(36,166)'降低'PMT_Voltage(774,369)'或缩小狭缝(771,321)后重测11.若信号过弱则返回'Method(36,166)'升高'PMT_Voltage(774,369)'或增大狭缝(764,344)后重测12.重复调优至峰值在30%-90%且峰形完整13.点击'输出结果(108,948)'并最大化。",
"source": "custom",
"config": [],
"trajectory": "trajectories/",
"related_apps": [
"flsol"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"func": "vllm_eval",
"expected": {
"description": "FL Solutions 主界面中图表区域应显示一条完整的荧光发射光谱曲线:峰形平滑、顶部无截断(曲线最高点不贴近纵轴上限)、基线平稳、信噪比良好。界面中的仪器参数区域应可见激发波长 350 nm、发射扫描范围 380-700 nm以及经过迭代调整后的最终 PMT 电压和狭缝宽度参数。"
}
},
"proxy": false,
"fixed_ip": true,
"possibility_of_env_change": "medium",
"metadata": {
"input_files": [],
"steps": "{\"application\": \"FL Solutions - F-4600\", \"main_window\": {\"toolbar\": [{\"name\": \"Method\", \"center\": [36, 166]}, {\"name\": \"Measure\", \"center\": [182, 162]}]}, \"sub_windows\": {\"Analysis_Method\": {\"tabs\": [{\"name\": \"Instrument\", \"center\": [456, 293]}], \"footer_buttons\": [{\"name\": \"确定\", \"center\": [641, 717]}, {\"name\": \"取消\", \"center\": [719, 717]}], \"Instrument\": [{\"name\": \"EX_WL\", \"center\": [497, 472]}, {\"name\": \"EM_Start_WL\", \"center\": [493, 500]}, {\"name\": \"EM_End_WL\", \"center\": [495, 524]}, {\"name\": \"EX_Slit\", \"center\": [771, 321]}, {\"name\": \"EM_Slit\", \"center\": [764, 344]}, {\"name\": \"PMT_Voltage\", \"center\": [774, 369]}]}}}",
"steps_original": "1. 打开 FL Solutions新建波长扫描方法。\n2. 设置激发波长 350 nm发射范围 380-700 nm初始 PMT 700V狭缝 2.5 nm。\n3. 执行测量,观察谱图。\n4. 若峰截断则降低 PMT 电压和/或缩小狭缝;若信号过弱则升高 PMT 电压和/或增大狭缝。\n5. 反复迭代测量直到峰形完整显示,截图记录最终结果。",
"difficulty": "hard",
"highlight": "AI 能够读取谱图质量并进行闭环迭代调参,体现真正的仪器操控智能,而非机械执行固定步骤。",
"ui_coordinates": {
"application": "FL Solutions - F-4600",
"main_window": {
"name": "F-4600 FL Spectrophotometer on USB",
"toolbar": [
{
"name": "Method",
"type": "Button_Icon",
"center": [
36,
166
],
"description": "打开分析方法设置窗口"
},
{
"name": "Measure",
"type": "Button_Icon",
"center": [
182,
162
],
"description": "执行测量"
}
],
"monitor_panel": [
{
"name": "Fluorescence_Value",
"type": "Display",
"center": [
959,
240
]
},
{
"name": "EX_WL_Display",
"type": "Text",
"center": [
912,
262
]
},
{
"name": "EM_WL_Display",
"type": "Text",
"center": [
0,
0
]
},
{
"name": "Status_Ready_Label",
"type": "Status_Indicator",
"center": [
0,
0
],
"color_hint": "Green"
}
]
},
"sub_windows": {
"Analysis_Method": {
"common_controls": {
"tabs": [
{
"name": "General",
"center": [
398,
291
]
},
{
"name": "Instrument",
"center": [
456,
293
]
},
{
"name": "Monitor",
"center": [
524,
295
]
},
{
"name": "Processing",
"center": [
574,
293
]
},
{
"name": "Report",
"center": [
638,
290
]
}
],
"footer_buttons": [
{
"name": "确定",
"center": [
641,
717
]
},
{
"name": "取消",
"center": [
719,
717
]
},
{
"name": "应用",
"center": [
788,
717
],
"status": "disabled"
},
{
"name": "帮助",
"center": [
882,
717
]
}
],
"close_button": {
"name": "Close_Window",
"center": [
905,
263
]
}
},
"tabs_content": {
"General": [
{
"type": "ComboBox",
"name": "Measurement",
"center": [
512,
321
],
"value": "Wavelength scan"
},
{
"type": "Edit",
"name": "Operator",
"center": [
533,
349
],
"value": "Administrator"
},
{
"type": "Edit",
"name": "Instrument_Model",
"center": [
0,
0
]
},
{
"type": "ComboBox",
"name": "Sampling",
"center": [
0,
0
],
"status": "disabled"
},
{
"type": "Edit",
"name": "Comments",
"center": [
0,
0
]
},
{
"type": "CheckBox",
"name": "Use_sample_table",
"center": [
0,
0
]
},
{
"type": "Button",
"name": "Load",
"center": [
0,
0
]
},
{
"type": "Button",
"name": "Save",
"center": [
0,
0
]
},
{
"type": "Button",
"name": "Save_As",
"center": [
0,
0
]
}
],
"Instrument": [
{
"type": "ComboBox",
"name": "Scan_mode",
"center": [
550,
322
]
},
{
"type": "ComboBox",
"name": "Data_mode",
"center": [
526,
347
]
},
{
"type": "Edit",
"name": "EX_WL",
"center": [
497,
472
],
"unit": "nm"
},
{
"type": "Edit",
"name": "EM_Start_WL",
"center": [
493,
500
],
"unit": "nm"
},
{
"type": "Edit",
"name": "EM_End_WL",
"center": [
495,
524
],
"unit": "nm"
},
{
"type": "ComboBox",
"name": "Scan_speed",
"center": [
497,
549
],
"unit": "nm/min"
},
{
"type": "ComboBox",
"name": "EX_Slit",
"center": [
771,
321
],
"unit": "nm"
},
{
"type": "ComboBox",
"name": "EM_Slit",
"center": [
764,
344
],
"unit": "nm"
},
{
"type": "Edit_Spin",
"name": "PMT_Voltage",
"center": [
758,
379
],
"unit": "V"
},
{
"type": "CheckBox",
"name": "PMT_Voltage_Limit",
"center": [
0,
0
],
"label": "PMT Voltage 0-1000V"
},
{
"type": "ComboBox",
"name": "Response",
"center": [
0,
0
],
"unit": "s"
},
{
"type": "Edit_Spin",
"name": "Replicates",
"center": [
0,
0
]
}
],
"Monitor": [
{
"type": "Edit",
"name": "Y_Axis_Max",
"center": [
455,
343
]
},
{
"type": "Edit",
"name": "Y_Axis_Min",
"center": [
455,
375
]
},
{
"type": "CheckBox",
"name": "Open_processing_after_acquisition",
"center": [
396,
437
]
},
{
"type": "CheckBox",
"name": "Overlay",
"center": [
395,
503
]
}
],
"Report": [
{
"type": "Edit",
"name": "Data_start_Value",
"center": [
718,
455
],
"unit": "nm"
},
{
"type": "Edit",
"name": "Data_end_Value",
"center": [
717,
480
],
"unit": "nm"
}
]
}
}
}
}
}
}

View File

@@ -1,7 +1,7 @@
{
"id": "MDIJade6.5使用手册_task2",
"snapshot": "jade",
"instruction": "在 JADE 中将选择DEMO01的衍射图谱,并通过 File → Save-Primary Pattern as *.txt 导出为 ASCII 格式,保存为 DEMO01.txt。",
"instruction": "在 JADE 中通过 File → Save-Primary Pattern as *.txt 将当前衍射图谱导出为 ASCII 格式,保存为 DEMO01.txt。",
"source": "custom",
"config": [
{
@@ -38,7 +38,6 @@
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"steps": "1. 单击顶部菜单栏中的 \"File\" 菜单\n2. 在展开的下拉菜单中,单击选中 \"Save-Primary Pattern as *.txt\" 菜单项\n3. 在弹出的保存文件对话框中,单击将光标定位到 \"文件名\"(或 \"File name\")输入框\n4. 清空该输入框中的已有内容\n5. 在输入框中输入文字 \"DEMO01.txt\"\n6. 单击对话框右下方的 \"保存\"(或 \"Save\")按钮",
"steps_original": "1. 点击菜单 File → Save-Primary Pattern as *.txt。\n2. 在弹出的保存对话框中,设置文件名为 DEMO01.txt。\n3. 点击 Save 按钮保存文件。"
"steps": "1. 单击顶部菜单栏中的 \"File\" 菜单\n2. 在展开的下拉菜单中,单击选中 \"Save-Primary Pattern as *.txt\" 菜单项\n3. 在弹出的保存文件对话框中,单击将光标定位到 \"文件名\"(或 \"File name\")输入框\n4. 清空该输入框中的已有内容\n5. 在输入框中输入文字 \"DEMO01.txt\"\n6. 单击对话框右下方的 \"保存\"(或 \"Save\")按钮"
}
}
}

View File

@@ -1,7 +1,7 @@
{
"id": "MDIJade6.5使用手册_task3",
"snapshot": "jade",
"instruction": "在Jade中打开自带的DEMO01.MDI样品数据然后使用Search/Match功能进行物相检索并限制元素范围为Ca, Si, O。",
"instruction": "在 Jade 中使用 Search/Match 功能进行物相检索,并限制元素范围为 Ca, Si, O。",
"source": "custom",
"config": [
{
@@ -38,7 +38,6 @@
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"steps": "1. Jade启动后默认已加载一个DEMO文件。在主窗口左侧的文件列表中找到并双击DEMO01.MDI确认主窗口标题栏显示[DEMO01.MDI]。\n2. 按快捷键Shift+F7等价于菜单PDF → Chemistry...打开Current Chemistry [Retrieval]元素周期表对话框。等待对话框完全显示。\n3. 点击对话框顶部的Exclude All按钮清除所有已选元素,确保从空白状态开始。\n4. 在元素周期表中选择CaCa位于第4行K那一行从左边数第2个按钮。它在K的右边、Sc的左边。它在屏幕上大约坐标(528, 360)附近。注意只单击Ca这一个按钮,确认它变为凹陷/高亮状态后再继续。\n5. 在元素周期表中选择SiSi位于第3行Na那一行的右半部分。从右半部分的左边数Al是第1个Si是第2个。Si在Al的右边、P的左边。它在屏幕上大约坐标(830, 340)附近。注意只单击Si这一个按钮,确认它变为凹陷/高亮状态后再继续。\n6. 在元素周期表中选择OO位于第2行Li那一行的右半部分。从右半部分的左边数B是第1个C是第2个N是第3个O是第4个。O在N的右边、F的左边。它在屏幕上大约坐标(880, 320)附近。注意只单击O这一个按钮确认它变为凹陷/高亮状态后再继续。\n7. 确认只有Ca、Si、O三个元素按钮都已被选中(凹陷/高亮)然后单击对话框中的OK按钮关闭对话框。\n8. 按快捷键Shift+F6等价于菜单PDF → Retrieval...启动物相检索。如果弹出任何提示框如Too Many Profiles单击OK关闭。\n9. 等待检索完成,确认出现检索结果窗口。",
"steps_original": "1. 双击左侧文件列表中的 DEMO01.MDI 打开样品数据。\n2. 点击菜单 PDF → Chemistry...(或按 Shift+F7打开元素周期表对话框。\n3. 依次单击 Ca、Si、O 三个元素按钮使其高亮选中,点击 OK。\n4. 点击菜单 PDF → Retrieval...(或按 Shift+F6执行物相检索。\n5. 等待完成后查看检索结果列表。"
"steps": "1. 按快捷键 Shift+F7等价于菜单 PDF → Chemistry...),打开 Current Chemistry [Retrieval] 元素周期表对话框。\n2. 点击对话框顶部的 Exclude All 按钮,清除所有已选元素。\n3. 在元素周期表中单击 Ca 按钮使其高亮选中。\n4. 在元素周期表中单击 Si 按钮使其高亮选中。\n5. 在元素周期表中单击 O 按钮使其高亮选中。\n6. 确认只有 Ca、Si、O 三个元素按钮都已被选中,然后单击对话框中的 OK 按钮关闭对话框。\n7. 按快捷键 Shift+F6等价于菜单 PDF → Retrieval...),启动物相检索。如果弹出任何提示框(如 Too Many Profiles单击 OK 关闭。\n8. 等待检索完成,确认出现检索结果窗口。"
}
}
}

View File

@@ -1,7 +1,7 @@
{
"id": "jade-guide-example_task10",
"snapshot": "jade",
"instruction": "在 Jade 中,加载 DEMO01.MDI 后,右键单击主工具栏打印按钮打开打印预览窗口,点击 Setup → Layout勾选 Generate Profile on d-I Lines、Show ID Labels on d-I Lines、Place X-Axis Scaling above Ribbons 三个选项,然后使用垂直放大工具对图谱局部进行放大。",
"instruction": "在 Jade 中,右键单击主工具栏打印按钮打开打印预览窗口,点击 Setup → Layout勾选 Generate Profile on d-I Lines、Show ID Labels on d-I Lines、Place X-Axis Scaling above Ribbons 三个选项,然后使用垂直放大工具对图谱局部进行放大。",
"source": "custom",
"config": [
{
@@ -38,7 +38,6 @@
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"steps": "1. 单击顶部菜单栏的 \"File\" 菜单项\n2. 在弹出的下拉菜单中,单击选择 \"Patterns...\" 打开数据文件读入窗口\n3. 在文件读入窗口的文件列表中,单击选中 \"DEMO01.MDI\" 文件\n4. 单击窗口下方的 \"Read\" 按钮,加载数据文件\n5. 在界面上方的主工具栏中,找到 \"打印\" 图标按钮\n6. 右键单击该 \"打印\" 图标按钮,打开打印预览窗口\n7. 在打印预览窗口中,单击左侧的 \"命令\" 按钮\n8. 单击窗口中的 \"Setup\" 按钮,打开预览设置对话框\n9. 在预览设置对话框的顶部,单击选择 \"Layout\" 选项卡标签\n10. 在 Layout 页面中,找到 \"Generate Profile on d-I Lines\" 复选框并单击勾选\n11. 找到 \"Show ID Labels on d-I Lines\" 复选框并单击勾选\n12. 找到 \"Place X-Axis Scaling above Ribbons\" 复选框并单击勾选\n13. 单击对话框的关闭或确认按钮,退出打印预览设置对话框\n14. 在打印预览窗口顶部的图谱编辑按钮栏中,左键单击 \"垂直放大\" 命令按钮\n15. 将鼠标移动到图谱区域中需要垂直放大的局部位置\n16. 按住鼠标左键不放\n17. 向上拖拽鼠标进行区域拉伸\n18. 松开鼠标左键,完成局部垂直放大",
"steps_original": "1. 通过 File → Patterns 加载 DEMO01.MDI 文件。\n2. 右键单击主工具栏中的打印按钮,打开打印预览窗口。\n3. 点击窗口左侧的命令按钮。\n4. 点击 Setup 按钮,打开预览设置对话框。\n5. 点击上方的 Layout 标签。\n6. 勾选 Generate Profile on d-I Lines。\n7. 勾选 Show ID Labels on d-I Lines。\n8. 勾选 Place X-Axis Scaling above Ribbons。\n9. 关闭设置对话框。\n10. 选择图谱编辑按钮中的垂直放大命令,左键单击。\n11. 在图谱中选择需要放大的局部区域向上拉伸。"
"steps": "1. 在界面上方的主工具栏中,找到\"打印\"图标按钮\n2. 右键单击该\"打印\"图标按钮,打开打印预览窗口\n3. 在打印预览窗口中,单击左侧的\"命令\"按钮\n4. 单击窗口中的\"Setup\"按钮,打开预览设置对话框\n5. 在预览设置对话框的顶部,单击选择\"Layout\"选项卡标签\n6. 在 Layout 页面中,找到\"Generate Profile on d-I Lines\"复选框并单击勾选\n7. 找到\"Show ID Labels on d-I Lines\"复选框并单击勾选\n8. 找到\"Place X-Axis Scaling above Ribbons\"复选框并单击勾选\n9. 单击对话框的关闭或确认按钮,退出打印预览设置对话框\n10. 在打印预览窗口顶部的图谱编辑按钮栏中,左键单击\"垂直放大\"命令按钮\n11. 将鼠标移动到图谱区域中需要垂直放大的局部位置\n12. 按住鼠标左键不放向上拖拽鼠标进行区域拉伸松开鼠标左键,完成局部垂直放大"
}
}
}

View File

@@ -1,7 +1,7 @@
{
"id": "jade-guide-example_task11",
"snapshot": "jade",
"instruction": "在 Jade 中,加载 DEMO01.MDI 后,使用主工具栏的图谱平滑按钮对衍射图谱执行平滑处理。",
"instruction": "在 Jade 中,使用主工具栏的图谱平滑按钮对衍射图谱执行平滑处理。",
"source": "custom",
"config": [
{
@@ -38,7 +38,6 @@
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"steps": "1. Jade启动后默认已加载DEMO文件。在主窗口左侧的文件列表中找到并双击DEMO01.MDI或DEMO01.MDI确认主窗口标题栏显示该文件名图谱区域显示衍射图谱。\n2. 在主界面顶部的主工具栏中找到Smooth平滑按钮。该按钮的图标类似一条平滑的曲线,位于工具栏靠右的位置。将鼠标悬停在工具栏按钮上可看到tooltip提示文字来确认。\n3. 左键单击Smooth按钮对当前衍射图谱执行平滑处理。\n4. 观察图谱窗口中的衍射曲线,确认由于平滑处理曲线变得更加光滑、噪声减少。",
"steps_original": "1. 通过 File → Patterns 加载 DEMO01.MDI 文件。\n2. 在主工具栏中找到图谱平滑按钮Smooth。\n3. 左键单击平滑按钮,对当前衍射图谱执行平滑处理。\n4. 观察图谱变化,确认平滑效果已应用(图谱曲线变得更光滑)。"
"steps": "1. 在主界面顶部的主工具栏中,找到 Smooth平滑按钮。该按钮的图标内部有一条黑色的锯齿状/脉冲状线条,中间贯穿一条醒目的蓝色垂直线。将鼠标悬停在工具栏按钮上可看到 tooltip 提示文字来确认。\n2. 左键单击 Smooth 按钮,对当前衍射图谱执行平滑处理。\n3. 观察图谱窗口中的衍射曲线,确认由于平滑处理曲线变得更加光滑、噪声减少。"
}
}

View File

@@ -1,7 +1,7 @@
{
"id": "jade-guide-example_task12",
"snapshot": "jade",
"instruction": "在 Jade 中,加载 DEMO01.MDI 后,使用编辑工具栏的背景扣除功能对衍射图谱执行背景扣除操作。",
"instruction": "在 Jade 中,使用编辑工具栏的背景扣除功能对衍射图谱执行背景扣除操作。",
"source": "custom",
"config": [
{
@@ -38,7 +38,6 @@
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"steps": "1. 单击主界面顶部菜单栏中的 \"File\" 菜单。\n2. 在弹出的下拉菜单中,单击选择 \"Patterns...\" 选项,打开数据文件读入窗口。\n3. 在数据文件读入窗口中,单击对应的磁盘下拉菜单或图标,选择目标文件所在的磁盘驱动器。\n4. 在目录树列表中,双击展开文件夹以导航至保存有数据的目标文件夹。\n5. 在文件类型(格式)下拉菜单中,单击并选择 \"All\",以确保显示所有格式的数据文件。\n6. 在文件列表显示区中,单击选中名为 \"DEMO01.MDI\" 的文件。\n7. 单击窗口中的 \"Read\" 命令按钮,将该衍射数据文件读入全谱窗口中。\n8. 在主界面下方的编辑工具栏中,定位到 \"扣除背景\"Background通常标为BG按钮。\n9. 鼠标左键单击该 \"扣除背景\" 按钮,直接对当前的衍射图谱执行背景扣除命令。\n10. 观察全谱窗口中的衍射图谱,确认下方的背景基线已被扣除并变为平直线。",
"steps_original": "1. 通过 File → Patterns 加载 DEMO01.MDI 文件。\n2. 在编辑工具栏中找到背景扣除按钮Background。\n3. 左键单击背景扣除按钮,对当前衍射图谱执行背景扣除操作。\n4. 观察图谱变化,确认背景已被扣除(基线变为平直)。"
"steps": "1. 在主界面下方的编辑工具栏中,定位到\"扣除背景\"Background通常标为 BG按钮。\n2. 鼠标左键单击 BG 按钮一次,此时图谱上会叠加显示一条黄色背景曲线,并在曲线上出现可拖动的红色控制点(即背景预览模式)。\n3. 再次单击 BG 按钮(或在预览模式下确认),完成背景扣除操作。完成后图谱底部基线应变得扁平(接近零强度),背景曲线和红色控制点消失,图谱仅显示扣除背景后的衍射峰。\n关键判据最终截图中衍射图谱的底部基线必须是扁平的黄线和红点必须消失否则视为未完成。"
}
}

View File

@@ -1,7 +1,7 @@
{
"id": "jade-guide-example_task4",
"snapshot": "jade",
"instruction": "在 Jade 中,先加载 DEMO01.MDI然后通过 File → Patterns 使用 Add 按钮叠加第二个衍射数据文件DEMO02.MDI到同一窗口。",
"instruction": "在 Jade 中,通过 File → Patterns 使用 Add 按钮叠加衍射数据文件 DEMO02.MDI 到当前窗口。",
"source": "custom",
"config": [
{
@@ -38,7 +38,6 @@
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"steps": "1. 单击主菜单栏中的File”菜单项。\n2. 在弹出的下拉菜单中,单击“Patterns”菜单项打开数据文件读入窗口。\n3. 在数据文件读入窗口左上角的驱动器下拉菜单中,单击选择存放数据的磁盘。\n4. 在其下方的文件夹列表框中,双击逐层展开并单击选中包含目标 XRD 数据的文件夹。\n5. 单击文件列表下方的文件类型下拉菜单从中选择“All”选项以显示所有数据类型。\n6. 在右侧的文件列表框中单击选中名为“DEMO01.MDI”的文件。\n7. 单击窗口右侧区域的“Read”命令按钮加载该数据文件。\n8. 再次单击主菜单栏中的“File”菜单项。\n9. 在弹出的下拉菜单中,单击“Patterns”菜单项重新打开数据文件读入窗口。\n10. (如果路径改变)按照前述步骤在驱动器和文件夹列表框中选择目标路径。\n11. 在文件列表框中,单击选中另一个需要叠加的 DEMO02.MDI 数据文件。\n12. 单击窗口右侧区域的Add”命令按钮第二个数据文件叠加显示到当前窗口中。",
"steps_original": "1. 在主菜单中点击 File。\n2. 选择 Patterns打开文件选择对话框。\n3. 选择 DEMO01.MDI 文件,点击 Read 加载。\n4. 再次点击 File → Patterns。\n5. 选择另一个可用的 DEMO 数据文件,点击 Add 按钮将其叠加到当前窗口。"
"steps": "1. 单击主菜单栏中的File”菜单项。\n2. 在弹出的下拉菜单中,单击Patterns”菜单项打开数据文件读入窗口。\n3. 在文件列表框中,单击选中 DEMO02.MDI 数据文件。\n4. 单击窗口右侧区域的Add”命令按钮数据文件叠加显示到当前窗口中。"
}
}

View File

@@ -1,7 +1,7 @@
{
"id": "jade-guide-example_task6",
"snapshot": "jade",
"instruction": "在 Jade 中,加载 DEMO01.MDI 并执行背景扣除后,通过主工具栏的自动寻峰按钮对衍射图谱执行自动寻峰。",
"instruction": "在 Jade 中,执行背景扣除后,通过主工具栏的自动寻峰按钮对衍射图谱执行自动寻峰。",
"source": "custom",
"config": [
{
@@ -38,7 +38,6 @@
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"steps": "1. 单击软件顶部菜单栏中的 \"File\" 菜单项。\n2. 在弹出的下拉菜单中,单击选择 \"Patterns\" 菜单项,打开数据文件读入窗口。\n3. 在数据文件读入窗口中,单击磁盘选择控件选中目标磁盘。\n4. 在文件夹列表区域中,双击对应的文件夹节点导航至包含目标数据的文件夹。\n5. 在数据类型筛选区域中,单击选中 \"All\" 选项以显示所有支持的数据类型。\n6. 在文件列表区域中,单击选中名为 \"DEMO01.MDI\" 的数据文件。\n7. 单击窗口中的 \"Read\" 命令按钮以读入该数据文件。\n8. 在主界面下方的编辑工具栏中,左键单击 \"扣除背景\"BG按钮对衍射图谱执行背景扣除操作确认背景基线已被扣除\n9. 在主界面的主工具栏中,左键单击 \"自动寻峰\" 按钮。\n10. 观察主工作窗口中的衍射曲线,确认各个衍射峰处已自动添加峰标记符号。",
"steps_original": "1. 通过 File → Patterns 加载 DEMO01.MDI 文件。\n2. 在主工具栏中左键单击自动寻峰按钮。\n3. 查看图谱中标记的衍射峰,确认自动寻峰结果已显示。"
"steps": "1. 在主界面下方的编辑工具栏中,左键单击\"扣除背景\"BG按钮对衍射图谱执行背景扣除操作确认背景基线已被扣除\n2. 在主界面的主工具栏中,左键单击\"自动寻峰\"按钮。\n3. 观察主工作窗口中的衍射曲线,确认各个衍射峰处已自动添加峰标记符号。"
}
}
}

View File

@@ -1,7 +1,7 @@
{
"id": "jade-guide-example_task7",
"snapshot": "jade_bg_peaked",
"instruction": "在 Jade 中,加载 DEMO01.MDI执行背景扣除和自动寻峰后使用编辑工具栏的手动寻峰功能,在一个未标记的衍射峰位置左键单击添加峰标记,然后在一个已有的自动寻峰标记处右键单击删除该峰标记。",
"instruction": "在 Jade 中,使用编辑工具栏的手动寻峰功能,在一个未标记的衍射峰位置左键单击添加峰标记,然后在一个已有的自动寻峰标记处右键单击删除该峰标记。",
"source": "custom",
"config": [
{
@@ -41,7 +41,6 @@
"input_files": [
"DEMO01.MDI"
],
"steps": "1. 点击顶部菜单栏的 \"File\" 菜单\n2. 在弹出的下拉菜单中,单击选择 \"Patterns\" 选项,打开数据文件读入窗口\n3. 在数据文件读入窗口的文件列表区域,单击选中 \"DEMO01.MDI\" 文件\n4. 单击窗口中的 \"Read\" 按钮,加载读入该数据文件\n5. 在主界面下方的编辑工具栏中,左键单击 \"扣除背景\"BG按钮对衍射图谱执行背景扣除操作确认背景基线已被扣除\n6. 在主工具栏中,左键单击 \"自动寻峰\" 按钮,对图谱执行自动寻峰,此时图谱上会出现多个自动标记的峰位\n7. 在主界面下方的编辑工具栏中,左键单击\"手动寻峰\"命令按钮\n8. 在主界面的图谱显示窗口中,将鼠标光标移动到某一个未标记的衍射峰下方位置\n9. 在该位置左键单击,添加一个新的峰标记\n10. 在图谱显示窗口中,将鼠标光标移动到另一个已有峰标记的垂直中心线位置\n11. 在该中心线处右键单击,删除该处的峰标记",
"steps_original": "1. 通过 File → Patterns 加载 DEMO01.MDI 文件。\n2. 左键点击编辑工具栏中的手动寻峰命令按钮。\n3. 在图谱中某一个衍射峰下方左键单击,添加一个峰标记。\n4. 在另一个已有峰标记的中心线处右键单击,删除该峰标记。"
"steps": "1. 在主界面下方的编辑工具栏中,左键单击\"手动寻峰\"命令按钮\n2. 在主界面的图谱显示窗口中,将鼠标光标移动到某一个未标记的衍射峰下方位置\n3. 在该位置左键单击,添加一个新的峰标记\n4. 在图谱显示窗口中,将鼠标光标移动到另一个已有峰标记的垂直中心线位置\n5. 在该中心线处右键单击,删除该处的峰标记"
}
}
}

View File

@@ -1,7 +1,7 @@
{
"id": "jade-guide-example_task8",
"snapshot": "jade_bg_peaked",
"instruction": "在 Jade 中,加载 DEMO01.MDI执行背景扣除和自动寻峰后通过 >> → Report → Peak Search Report 查看寻峰报告。",
"instruction": "在 Jade 中,通过 >> → Report → Peak Search Report 查看寻峰报告。",
"source": "custom",
"config": [
{
@@ -38,7 +38,6 @@
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"steps": "1. 单击主菜单栏中的 'File' 菜单。\n2. 在下拉菜单中选择并单击 'Patterns...' 选项,打开数据读入对话框。\n3. 在数据读入对话框中,单击选择磁盘。\n4. 单击选择 XRD 数据文件夹。\n5. 在数据类型下拉菜单中,选择 'All'。\n6. 在文件列表中单击选中 'DEMO01.MDI' 数据文件。\n7. 单击对话框中的 'Read' 按钮,读入文件。\n8. 在主界面下方的编辑工具栏中,左键单击 \"扣除背景\"BG按钮对衍射图谱执行背景扣除操作确认背景基线已被扣除\n9. 在主工具栏中,左键单击 '自动寻峰' 按钮执行自动寻峰。\n10. 单击工具栏中的 '>>' 按钮展开更多选项菜单。\n11. 在展开的选项中单击 'Report' 菜单项。\n12. 在子菜单中选择并单击 'Peak Search Report',打开寻峰报告对话框进行查看。",
"steps_original": "1. 通过 File → Patterns 加载 DEMO01.MDI 文件。\n2. 左键单击主工具栏自动寻峰按钮执行寻峰。\n3. 点击 >> 按钮展开更多选项。\n4. 点击 Report 按钮。\n5. 选择 Peak Search Report打开并查看寻峰报告。"
"steps": "1. 单击工具栏中的\">>\"按钮展开更多选项菜单。\n2. 在展开的选项中单击\"Report\"菜单项。\n3. 在子菜单中选择并单击\"Peak Search Report\",打开寻峰报告对话框进行查看。"
}
}
}

View File

@@ -1,7 +1,7 @@
{
"id": "jade-guide-example_task9",
"snapshot": "jade",
"instruction": "在 Jade 中,加载 DEMO01.MDI执行背景扣除和自动寻峰后,对一个衍射峰区域进行单峰拟合:在全谱窗口中框选峰区域,右键点击自动拟合按钮打开参数对话框,勾选 Individual Profiles执行 Initialize 和 Refine 操作。",
"instruction": "在 Jade 中,执行背景扣除和自动寻峰后,对一个衍射峰区域进行单峰拟合:在全谱窗口中框选峰区域,右键点击自动拟合按钮打开参数对话框,勾选 Individual Profiles执行 Initialize 和 Refine 操作。",
"source": "custom",
"config": [
{
@@ -38,7 +38,6 @@
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"steps": "1. 单击界面顶部菜单栏中的“File”菜单项。\n2. 在弹出的下拉菜单中单击选择“Patterns”选项打开数据文件读入窗口。\n3. 在数据文件读入窗口的磁盘驱动器下拉菜单中,单击选择存放数据的目标磁盘。\n4. 在左侧文件夹列表树中,单击展开并选中包含文件的目标文件夹。\n5. 在数据类型下拉菜单中单击选择“All”选项以显示所有数据类型。\n6. 在右侧的文件列表中单击选中名为“DEMO01.MDI”的特定文件。\n7. 单击读入窗口中的“Read”命令按钮加载该数据文件。\n8. 在主界面下方的编辑工具栏中,左键单击 \"扣除背景\"BG按钮对衍射图谱执行背景扣除操作确认背景基线已被扣除\n9. 将鼠标光标移动到主工具栏,左键单击自动寻峰按钮执行自动寻峰操作。\n10. 将鼠标光标移动到主界面的全谱窗口区域内。\n11. 在目标衍射峰的一侧按下鼠标左键,拖拽光标画出一个矩形框将该待拟合峰区域完全圈住。\n12. 松开鼠标左键,完成峰区域的选择并将其放大显示在工作窗口中。\n13. 将鼠标光标移动到主工具栏中的自动拟合命令按钮上。\n14. 单击鼠标右键,打开拟合参数设置对话框。\n15. 在拟合参数设置对话框中,找到并单击勾选Individual Profiles复选框。\n16. 将鼠标光标移动到界面的编辑工具栏中,左键单击手动拟合命令按钮。\n17. 将鼠标光标移动到放大的工作窗口中目标衍射峰下方的中心位置,单击鼠标左键,标记对该峰进行拟合。\n18. 返回拟合参数设置对话框,左键单击Initialize命令按钮以初始化拟合参数。\n19. 在拟合参数设置对话框中,左键单击Refine命令按钮执行一次拟合修正。\n20. 观察主界面右上角显示的拟合误差 R 值,若 R 值大于或等于 5%,则再次左键单击Refine按钮,重复此操作直至 R 值小于 5% 为止。",
"steps_original": "1. 通过 File → Patterns 加载 DEMO01.MDI 文件。\n2. 左键单击主工具栏自动寻峰按钮执行寻峰。\n3. 在全谱窗口中拖拽鼠标画一个矩形框,圈住要拟合的峰区域。\n4. 右键点击主工具栏中的自动拟合按钮,打开拟合参数设置对话框。\n5. 在对话框中勾选 Individual Profiles。\n6. 左键点击编辑工具栏中的手动拟合命令按钮。\n7. 在目标峰下方单击执行拟合。\n8. 点击 Initialize 按钮初始化拟合。\n9. 多次点击 Refine 按钮直到右上角拟合误差 R 小于 5%。"
"steps": "1. 在主界面下方的编辑工具栏中,左键单击\"扣除背景\"BG按钮对衍射图谱执行背景扣除操作确认背景基线已被扣除\n2. 将鼠标光标移动到主工具栏,左键单击\"自动寻峰\"按钮执行自动寻峰操作。\n3. 将鼠标光标移动到主界面的全谱窗口区域内。\n4. 在目标衍射峰的一侧按下鼠标左键,拖拽光标画出一个矩形框将该待拟合峰区域完全圈住。\n5. 松开鼠标左键,完成峰区域的选择并将其放大显示在工作窗口中。\n6. 将鼠标光标移动到主工具栏中的\"自动拟合\"命令按钮上。\n7. 单击鼠标右键,打开拟合参数设置对话框。\n8. 在拟合参数设置对话框中,找到并单击勾选\"Individual Profiles\"复选框。\n9. 将鼠标光标移动到界面的编辑工具栏中,左键单击\"手动拟合\"命令按钮。\n10. 将鼠标光标移动到放大的工作窗口中目标衍射峰下方的中心位置,单击鼠标左键,标记对该峰进行拟合。\n11. 返回拟合参数设置对话框,左键单击\"Initialize\"命令按钮以初始化拟合参数。\n12. 在拟合参数设置对话框中,左键单击\"Refine\"命令按钮执行一次拟合修正。\n13. 观察主界面右上角显示的拟合误差 R 值,若 R 值大于或等于 5%,则再次左键单击\"Refine\"按钮,重复此操作直至 R 值小于 5% 为止。"
}
}
}

View File

@@ -0,0 +1,59 @@
{
"id": "Origin_Tutorial_tesk1",
"snapshot": "origin",
"instruction": "在 Origin 中对数据进行平滑处理并绘制曲线图",
"source": "custom",
"config": [
{
"type": "upload_file",
"parameters": {
"files": [
{
"local_path": "evaluation_examples/data/origin/example.xlsx",
"path": "C:\\Users\\user\\Desktop\\example.xlsx"
}
]
}
},
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\OriginLab\\Origin2025b\\Origin64.exe",
"C:\\Users\\user\\Desktop\\example.xlsx"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"origin"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [
"example.xlsx"
],
"steps": "1、添加数据表格完成后我们在Origin上方的菜单栏中点击\"Plot\"选项在左侧选择【Basic 2D】分类然后选择【Scatter】散点图或\"Line + Symbol\"(线+符号图)。\n2、选择绘制散点图之后会弹出一个关于数据变量的界面框。在这里我们需要勾选要分析的X、Y数据列勾选完成后点击【确定】Origin就会根据勾选的结果绘制一个散点图。\n3、得到了绘制的散点图之后继续在Origin上方的菜单栏中点击\"Analysis\"选项,接着选择\"Signal Processing\"并点击\"Smooth...\"选项。\n4、点击了\"Smooth...\"选项后,会进入到曲线平滑的设置界面中。在\"Method\"下拉菜单中选择\"Adjacent-Averaging\"(相邻平均法),在\"Points of Window\"中设置窗口点数如5或7选择完成后点击\"OK\"生成平滑后的曲线。\n5、要绘制曲线图在输入数据后我们在Origin上方的菜单栏中点击\"Plot\"选项,在左侧选择\"Basic 2D\"分类,然后选择\"Line\"(折线图)。\n6、选择绘制\"Line\"(折线图)之后,同样会弹出一个关于数据变量对照关系的界面框。在这里我们需要勾选变量之间的彼此对照关系,勾选完成后点击\"OK\"Origin就会根据勾选的结果生成折线图。",
"steps_original":"1. 在菜单栏点击Plot选项在左侧选择【Basic 2D】分类然后选择【Scatter】散点图或【Line + Symbol】线+符号图在弹出的对话框中勾选要分析的X、Y数据列点击【确定】生成散点图。\n2. 得到散点图后在菜单栏点击【Analysis】->【Signal Processing】->【Smooth...】。\n3. 在平滑设置界面的【Method】下拉菜单中选择【Adjacent-Averaging】相邻平均法在【Points of Window】中设置窗口点数如5或7点击【OK】生成平滑后的曲线。\n4. 要绘制曲线图,在输入数据后,点击plot选项在左侧选择【Basic 2D】分类然后选择line(折线图)。\n5. 在弹出的数据变量界面中勾选变量对照关系点击OK生成折线图。"
}
}

View File

@@ -0,0 +1,59 @@
{
"id": "Origin_Tutorial_tesk10",
"snapshot": "origin",
"instruction": "在 Origin 中进行加法、乘法、平方和开平方(根号)等数据运算",
"source": "custom",
"config": [
{
"type": "upload_file",
"parameters": {
"files": [
{
"local_path": "evaluation_examples/data/origin/example.xlsx",
"path": "C:\\Users\\user\\Desktop\\example.xlsx"
}
]
}
},
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\OriginLab\\Origin2025b\\Origin64.exe",
"C:\\Users\\user\\Desktop\\example.xlsx"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"origin"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [
"example.xlsx"
],
"steps": "1、导入数据至工作表。\n通过【Column → Add New Columns】新增用于存放结果的列。\n选中要进行运算的数据列右击选择【Set Column Values】。\n在【Set Values】面板的公式框中输入运算公式如加法col(B)+4、乘法col(B)*4、平方col(B)^2或开平方sqrt(col(A)))。\n点击【Apply】预览结果然后点击【OK】输出新数据列。\n对于开方运算也可通过函数面板搜索并插入 sqrt 函数。",
"steps_original": "1、加法运算\n将数据导入至Origin工作表中选中要进行运算的数据列右击鼠标在下拉菜单栏中找到【设置列值】功能进入设置值界面。\n在这里我们可以输入各种数学公式对选中列进行计算。例如要将这列数据中的每个数值都+3点击工具栏的col (B)选项软件会自动在框中输入红色B。\n然后我们手动在公式框B值后面输入+4点击【应用】就可以看到Origin对B列的每个数据重新进行了计算并且生成了相应的公式F(X)=B+4。\n2、乘法运算\n同样方法如果想要将A列数据乘4可以在【设置值】面板条件框中输入公式col (B)*4点击【运用】进行查看如果没问题的话再点击【确定】输出。\n3、平方运算\n如果想要对数据平方进行运算只需要将运算符和相应的数值输入到条件公式中就可以简单操作完成在这里输入的公式为col (B)^2这里的col (B)即对应的是B数据列点击【运用】可以查看新生成的数据列。\n二、Origin公式怎么输入根号\n1、Origin提供了 “sqrt ( )” 函数来表示根号运算如果想对Origin数据进行求开平方的操作可以通过以下方法如下图所示想要对A列数据进行开平方操作选中A列数据鼠标右击在弹出来的菜单栏中选择【设置列值】按钮。\n2、在设置值面板上的文本框中输入公式sqrt ( )鼠标指针移动至括号中再点击工具栏上的col (A)如下图所示图片中的A即表示数列A点击【运用】我们就可以看到Origin界面生成的平方根值。\n3、除了手动输入之外我们还可以点击工具栏中的【函数】按钮在下拉菜单中找到【查找和插入】选项在搜索和插入函数面板中搜索sqrt就可以在下拉菜单中找到对应的根号函数点击该函数就会自动插入到条件框中方便我们进行后续的操作。\n4、除此之外点击【公式】面板我们可以在面板上看到一些相对应的数学公式点击该公式之后会在条件框中自动输入对应公式我们再选择数列值对其进行应用即可。"
}
}

View File

@@ -0,0 +1,59 @@
{
"id": "Origin_Tutorial_tesk11",
"snapshot": "origin",
"instruction": "在 Origin 中为散点折线图标注特殊数据点,并为函数曲线添加文本标注",
"source": "custom",
"config": [
{
"type": "upload_file",
"parameters": {
"files": [
{
"local_path": "evaluation_examples/data/origin/example.xlsx",
"path": "C:\\Users\\user\\Desktop\\example.xlsx"
}
]
}
},
{
"type": "launch",
"parameters": {
"command": [
"C:\\Program Files\\OriginLab\\Origin2025b\\Origin64.exe",
"C:\\Users\\user\\Desktop\\example.xlsx"
]
}
},
{
"type": "sleep",
"parameters": {
"seconds": 5
}
}
],
"trajectory": "trajectories/",
"related_apps": [
"origin"
],
"evaluator": {
"postconfig": [
{
"type": "sleep",
"parameters": {
"seconds": 3
}
}
],
"func": "vllm_eval"
},
"proxy": false,
"fixed_ip": false,
"possibility_of_env_change": "low",
"metadata": {
"input_files": [
"example.xlsx"
],
"steps": "1、导入数据至工作表并选中 X 列与对应的 Y 列数据。\n点击【Plot → Basic 2D → Line + Symbol】生成带符号的折线图。\n使用【Data Reader】工具快捷键 3在图中点击某一特征点如峰值点以定位数据。\n通过图中标记确认已选中特殊数据点。\n选择左侧工具栏【Text Tool】工具在图中合适位置添加文字说明。\n输入标注内容如“Max Point”完成对特殊点的说明。",
"steps_original": "一、Origin怎么标注特殊点的数据\n1、打开Origin软件进入到主页面在主页面当中可以看到名为【book1】的数据表界面。我们可以将需要进行分析的数据添加到数据表格中如果需要添加的数据比较多就可以把数据通过导入的方式呈现在数据点中。\n2、添加完成数据后在软件上方的菜单栏中点击【绘图】选项就可以进入到图像的绘制界面。在图像绘制界面中我们可以选择需要添加的图像这里我们选择常见的散点折线图为例。\n3、点击添加散点折线图之后我们就可以进入到绘图的变量设置界面在这里我们勾选对应的变量关系接着点击【确定】就可以生成对应的数据图像内容。\n4、在得到对应的图像结果后我们就可以对数据点位进行标记了。这里我们在软件左侧的工具栏中点击【添加数据标记】选项点击之后就可以进入到数据的标记模式接着我们就可以直接在函数图像中标记对应的数据。\n二、Origin如何标注各个曲线\n1、首先在Origin中添加对应的曲线内容这里我们选择在绘图界面中添加了一个对数函数图像通过【绘图】中的函数图像绘制功能实现。\n2、将图像绘制完成后仍然在软件侧边的工具栏的中点击【文字工具】选项就可以直接在图像中添加一个新的文字框。我们可以在文字框中对曲线进行文字模式的标注。\n3、如果我们需要对文字编辑的内容进行后续的处理可以点击添加的文字内容接着点击【属性】选项就可以进入到【文本对象】设置界面。在这里我们可以对曲线的文本内容进行设置例如调整字号、字体颜色、字体格式等。"
}
}

Some files were not shown because too many files have changed in this diff Show More