Compare commits
24 Commits
lzy/flsol-
...
lzy/data-p
| Author | SHA1 | Date | |
|---|---|---|---|
| c325c5bec6 | |||
| 2836981670 | |||
| f2d40ed181 | |||
| 7eb8c4000c | |||
| 581ccc4dfd | |||
| 04dfd5a89a | |||
| b37e4d4372 | |||
| d9986142b4 | |||
| 6a5fe8e8ca | |||
| 252d2f79ce | |||
| 4e192cf013 | |||
| 04089fa218 | |||
| a38d2faec3 | |||
| b1ed0a4785 | |||
| c9912ad54c | |||
| 970d430dcf | |||
| fe1bdae9a6 | |||
| adb66ef972 | |||
| 3f0ef4849a | |||
| ae202be7b9 | |||
| 64e19ba17e | |||
| ae92e80a0b | |||
| 0e2702fb5b | |||
| 16ea3641bd |
2
.gitignore
vendored
2
.gitignore
vendored
@@ -146,6 +146,8 @@ dmypy.json
|
||||
# data
|
||||
**/data/**/*
|
||||
!**/utils/data/**/*
|
||||
!**/data/origin/
|
||||
!**/data/origin/**/*
|
||||
|
||||
# tmp files
|
||||
**/tmp/**/*
|
||||
|
||||
87
batch_reeval.py
Normal file
87
batch_reeval.py
Normal 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()
|
||||
@@ -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)
|
||||
|
||||
@@ -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) \
|
||||
|
||||
@@ -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(
|
||||
|
||||
@@ -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!")
|
||||
|
||||
@@ -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")
|
||||
@@ -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)")
|
||||
@@ -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
@@ -1,3 +0,0 @@
|
||||
@echo off
|
||||
cd /d D:\python_server
|
||||
start /B pythonw D:\python_server\main.py
|
||||
@@ -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
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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
|
||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -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.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
evaluation_examples/data/origin/example.xlsx
Normal file
BIN
evaluation_examples/data/origin/example.xlsx
Normal file
Binary file not shown.
BIN
evaluation_examples/data/origin/example_with_graph.opju
Normal file
BIN
evaluation_examples/data/origin/example_with_graph.opju
Normal file
Binary file not shown.
Binary file not shown.
6
evaluation_examples/data/origin/test.csv
Normal file
6
evaluation_examples/data/origin/test.csv
Normal 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
|
||||
|
14
evaluation_examples/data/origin/test2.csv
Normal file
14
evaluation_examples/data/origin/test2.csv
Normal 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
|
||||
|
109
evaluation_examples/data/ovito/sample.dump
Normal file
109
evaluation_examples/data/ovito/sample.dump
Normal 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
|
||||
5
evaluation_examples/data/ovito/test_energy.xyz
Normal file
5
evaluation_examples/data/ovito/test_energy.xyz
Normal 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
|
||||
@@ -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. 点击剩余两个氢原子,分别替换为两个氯配体。" }
|
||||
}
|
||||
@@ -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. 确保苯环显示在工作界面中。"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 运行几何优化确保分子结构正确。" }
|
||||
}
|
||||
@@ -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. 检查分子是否获得合乎逻辑的几何结构。"
|
||||
}
|
||||
}
|
||||
@@ -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. 点击单碳结构上的一个氢原子,将其替换为羧基。"
|
||||
}
|
||||
}
|
||||
@@ -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 运行几何优化确保分子结构正确。"
|
||||
}
|
||||
}
|
||||
@@ -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 名称、分子质量、单同位素质量、化学式、原子数、键数、净电荷和净自旋多重度等相关信息。" }
|
||||
}
|
||||
@@ -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 按钮加载文件并启动分析"
|
||||
}
|
||||
}
|
||||
@@ -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 的复选框以隐藏经典模型"
|
||||
}
|
||||
}
|
||||
@@ -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 视角"
|
||||
}
|
||||
}
|
||||
@@ -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. 单击 '计算' 按钮开始计算,完成后单击 '关闭'。"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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' 的行以渲染该轨道"
|
||||
}
|
||||
}
|
||||
@@ -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' 按钮进行高质量渲染"
|
||||
}
|
||||
}
|
||||
@@ -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 按钮开始播放分子的振动动画"
|
||||
}
|
||||
}
|
||||
@@ -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 按钮停止播放"
|
||||
}
|
||||
}
|
||||
@@ -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'的文件夹。"
|
||||
}
|
||||
}
|
||||
@@ -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. 确认书签栏上出现了该页面的书签。"
|
||||
}
|
||||
}
|
||||
@@ -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'。"
|
||||
}
|
||||
}
|
||||
@@ -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。"
|
||||
}
|
||||
}
|
||||
@@ -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. 确认该开关处于开启状态。"
|
||||
}
|
||||
}
|
||||
@@ -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. 确认该开关处于开启状态。"
|
||||
}
|
||||
}
|
||||
@@ -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'。"
|
||||
}
|
||||
}
|
||||
@@ -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. 确认被关闭的标签页重新出现在标签栏中。"
|
||||
}
|
||||
}
|
||||
@@ -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密码管理器界面。"
|
||||
}
|
||||
}
|
||||
@@ -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 LIII,2019年2月3日)。\n4. 确认页面上显示了该场比赛的比分信息。"
|
||||
}
|
||||
}
|
||||
@@ -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. 确认页面显示的是行李费计算器界面。"
|
||||
}
|
||||
}
|
||||
@@ -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的副作用信息列表。"
|
||||
}
|
||||
}
|
||||
@@ -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. 等待主界面加载完毕。"
|
||||
}
|
||||
}
|
||||
@@ -1,48 +0,0 @@
|
||||
{
|
||||
"id": "flsol_task2",
|
||||
"snapshot": "flsol",
|
||||
"instruction": "打开 FL Solutions for F-4600,新建一个波长扫描(Wavelength Scan)方法,将激发波长(Excitation Wavelength)设置为 350 nm,扫描范围设为 400–700 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。"
|
||||
}
|
||||
}
|
||||
@@ -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 电压 700V,Ex/Em 狭缝宽度各 5.0 nm,Response 设为 Auto。"
|
||||
}
|
||||
}
|
||||
@@ -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. 等待测量完成,图表区域出现曲线。"
|
||||
}
|
||||
}
|
||||
@@ -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.然后点击保存(942,718)。然后点击ok(535,650)关闭sample界面 6. 点击Method(36,166)进入Instrument(456,293);7.设置EX_WL(497,472)为350nm;8.设置EM_Start_WL(493,500)为400nm,EM_End_WL(495,524)为700nm;9.设置PMT_Voltage(758,369)为700V;10.设置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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,417 +0,0 @@
|
||||
{
|
||||
"id": "flsol_taskE_auto_optimize_scan",
|
||||
"snapshot": "flsol",
|
||||
"instruction": "一步一步地执行,别他妈的给老子跳步 完全按照老子给的指令执行5.点击'PMT_Voltage'(758,369)设置为700V;6.设置'EX_Slit(下拉框)(771,321)'为2.5nm,'点击下拉框EM_Slit(764,344)'出现下拉选项,选择5nm(748,386);7.点击'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"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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\")按钮"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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. 在元素周期表中选择Ca:Ca位于第4行(K那一行),从左边数第2个按钮。它在K的右边、Sc的左边。它在屏幕上大约坐标(528, 360)附近。注意只单击Ca这一个按钮,确认它变为凹陷/高亮状态后再继续。\n5. 在元素周期表中选择Si:Si位于第3行(Na那一行)的右半部分。从右半部分的左边数,Al是第1个,Si是第2个。Si在Al的右边、P的左边。它在屏幕上大约坐标(830, 340)附近。注意只单击Si这一个按钮,确认它变为凹陷/高亮状态后再继续。\n6. 在元素周期表中选择O:O位于第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. 等待检索完成,确认出现检索结果窗口。"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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. 按住鼠标左键不放,向上拖拽鼠标进行区域拉伸,松开鼠标左键,完成局部垂直放大。"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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. 观察图谱窗口中的衍射曲线,确认由于平滑处理曲线变得更加光滑、噪声减少。"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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关键判据:最终截图中衍射图谱的底部基线必须是扁平的,黄线和红点必须消失,否则视为未完成。"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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”命令按钮,将该数据文件叠加显示到当前窗口中。"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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. 观察主工作窗口中的衍射曲线,确认各个衍射峰处已自动添加峰标记符号。"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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. 在该中心线处右键单击,删除该处的峰标记。"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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\",打开寻峰报告对话框进行查看。"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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% 为止。"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -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生成折线图。"
|
||||
}
|
||||
}
|
||||
@@ -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、除此之外,点击【公式】面板,我们可以在面板上看到一些相对应的数学公式,点击该公式之后,会在条件框中自动输入对应公式,我们再选择数列值,对其进行应用即可。"
|
||||
}
|
||||
}
|
||||
@@ -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
Reference in New Issue
Block a user