Compare commits
38 Commits
os_world
...
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 | |||
| dc5fd173f1 | |||
| 19795a674b | |||
| 349f2142fb | |||
| a943c1e961 | |||
| d71f1f976d | |||
| 4bde685bbd | |||
| e70f1335f0 | |||
| 9431bd5bfc | |||
| b1052c79cf | |||
| ac3f38ed58 | |||
| e4b039fc02 | |||
| b75f6bf341 | |||
| 07e66490dd | |||
| 9899d4a0c7 |
16
.gitignore
vendored
16
.gitignore
vendored
@@ -146,6 +146,8 @@ dmypy.json
|
||||
# data
|
||||
**/data/**/*
|
||||
!**/utils/data/**/*
|
||||
!**/data/origin/
|
||||
!**/data/origin/**/*
|
||||
|
||||
# tmp files
|
||||
**/tmp/**/*
|
||||
@@ -208,7 +210,21 @@ quick_start.py
|
||||
result_multi_apps_pengxiang_transformers12evaluation_examples/settings/proxy/dataimpulse.json
|
||||
evaluation_examples/settings/proxy/dataimpulse.json
|
||||
|
||||
# Benchmark input data (large binary files - share via cloud storage or Git LFS)
|
||||
evaluation_examples/inputs/
|
||||
|
||||
# Temporary data processing workspace (scraped docs, intermediate scripts)
|
||||
evaluation_examples/sandbox/
|
||||
|
||||
# Image cache
|
||||
evaluation_examples/inputs/.img_cache/
|
||||
|
||||
# Local test configurations (not for public repo)
|
||||
evaluation_examples/spiderman.json
|
||||
evaluation_examples/test_50_random_proportional.json
|
||||
evaluation_examples/test_chrome.json
|
||||
evaluation_examples/prepare_input_files.py
|
||||
|
||||
# Demo task3 录制产物
|
||||
run_demo_task3.py
|
||||
demo_task3_output/
|
||||
|
||||
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()
|
||||
@@ -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"}
|
||||
|
||||
|
||||
@@ -20,42 +20,42 @@ Metric = Callable[[Any, Any], float]
|
||||
Getter = Callable[[gym.Env, Dict[str, Any]], Any]
|
||||
|
||||
MAX_RETRIES = 5 # Maximum retries for environment setup
|
||||
|
||||
|
||||
|
||||
|
||||
def _fix_pyautogui_less_than_bug(command: str) -> str:
|
||||
"""
|
||||
Fix PyAutoGUI '<' character bug by converting it to hotkey("shift", ',') calls.
|
||||
|
||||
|
||||
This fixes the known PyAutoGUI issue where typing '<' produces '>' instead.
|
||||
References:
|
||||
- https://github.com/asweigart/pyautogui/issues/198
|
||||
- https://github.com/xlang-ai/OSWorld/issues/257
|
||||
|
||||
|
||||
Args:
|
||||
command (str): The original pyautogui command
|
||||
|
||||
|
||||
Returns:
|
||||
str: The fixed command with '<' characters handled properly
|
||||
"""
|
||||
# Pattern to match press('<') or press('\u003c') calls
|
||||
# Pattern to match press('<') or press('\u003c') calls
|
||||
press_pattern = r'pyautogui\.press\(["\'](?:<|\\u003c)["\']\)'
|
||||
|
||||
# Handle press('<') calls
|
||||
def replace_press_less_than(match):
|
||||
return 'pyautogui.hotkey("shift", ",")'
|
||||
|
||||
|
||||
# First handle press('<') calls
|
||||
command = re.sub(press_pattern, replace_press_less_than, command)
|
||||
|
||||
# Pattern to match typewrite calls with quoted strings
|
||||
typewrite_pattern = r'pyautogui\.typewrite\((["\'])(.*?)\1\)'
|
||||
|
||||
|
||||
# Then handle typewrite calls
|
||||
def process_typewrite_match(match):
|
||||
quote_char = match.group(1)
|
||||
content = match.group(2)
|
||||
|
||||
|
||||
# Preprocess: Try to decode Unicode escapes like \u003c to actual '<'
|
||||
# This handles cases where '<' is represented as escaped Unicode
|
||||
try:
|
||||
@@ -65,15 +65,15 @@ def _fix_pyautogui_less_than_bug(command: str) -> str:
|
||||
except UnicodeDecodeError:
|
||||
# If decoding fails, proceed with original content to avoid breaking existing logic
|
||||
pass # English comment: Graceful degradation - fall back to original content if decoding fails
|
||||
|
||||
|
||||
# Check if content contains '<'
|
||||
if '<' not in content:
|
||||
return match.group(0)
|
||||
|
||||
|
||||
# Split by '<' and rebuild
|
||||
parts = content.split('<')
|
||||
result_parts = []
|
||||
|
||||
|
||||
for i, part in enumerate(parts):
|
||||
if i == 0:
|
||||
# First part
|
||||
@@ -84,11 +84,11 @@ def _fix_pyautogui_less_than_bug(command: str) -> str:
|
||||
result_parts.append('pyautogui.hotkey("shift", ",")')
|
||||
if part:
|
||||
result_parts.append(f"pyautogui.typewrite({quote_char}{part}{quote_char})")
|
||||
|
||||
|
||||
return '; '.join(result_parts)
|
||||
|
||||
|
||||
command = re.sub(typewrite_pattern, process_typewrite_match, command)
|
||||
|
||||
|
||||
return command
|
||||
|
||||
|
||||
@@ -145,12 +145,12 @@ class DesktopEnv(gym.Env):
|
||||
self.screen_width = screen_size[0]
|
||||
self.screen_height = screen_size[1]
|
||||
|
||||
# Default
|
||||
# Default
|
||||
self.server_port = 5000
|
||||
self.chromium_port = 9222
|
||||
self.vnc_port = 8006
|
||||
self.vlc_port = 8080
|
||||
|
||||
|
||||
# Initialize with default (no proxy) provider
|
||||
self.current_use_proxy = False
|
||||
self.manager, self.provider = create_vm_manager_and_provider(provider_name, region, use_proxy=False)
|
||||
@@ -162,7 +162,7 @@ class DesktopEnv(gym.Env):
|
||||
# vmware, virtualbox are always used as the emulator starts from a dirty state
|
||||
if self.provider_name in {"docker", "aws", "gcp", "azure", "aliyun", "volcengine"}:
|
||||
self.is_environment_used = False
|
||||
elif self.provider_name in {"vmware", "virtualbox"}:
|
||||
elif self.provider_name in {"vmware", "virtualbox", "proxmox"}:
|
||||
self.is_environment_used = True
|
||||
else:
|
||||
raise ValueError(f"Invalid provider name: {self.provider_name}")
|
||||
@@ -173,7 +173,7 @@ class DesktopEnv(gym.Env):
|
||||
if provider_name in {"vmware", "virtualbox"} else path_to_vm
|
||||
else:
|
||||
self.path_to_vm = self.manager.get_vm_path(os_type=self.os_type, region=region, screen_size=(self.screen_width, self.screen_height))
|
||||
|
||||
|
||||
self.snapshot_name = snapshot_name
|
||||
self.cache_dir_base: str = cache_dir
|
||||
# todo: add the logic to get the screen size from the VM
|
||||
@@ -229,8 +229,8 @@ class DesktopEnv(gym.Env):
|
||||
# due to the fact it could be changed when implemented by cloud services
|
||||
path_to_vm = self.provider.revert_to_snapshot(self.path_to_vm, self.snapshot_name)
|
||||
if path_to_vm and not path_to_vm == self.path_to_vm:
|
||||
# path_to_vm has to be a new path
|
||||
|
||||
# path_to_vm has to be a new path
|
||||
|
||||
self.manager.delete_vm(self.path_to_vm, self.region)
|
||||
self.manager.add_vm(path_to_vm, self.region)
|
||||
self.manager.occupy_vm(path_to_vm, os.getpid(), self.region)
|
||||
@@ -245,7 +245,7 @@ class DesktopEnv(gym.Env):
|
||||
self.provider.stop_emulator(self.path_to_vm)
|
||||
|
||||
def reset(self, task_config: Optional[Dict[str, Any]] = None, seed=None, options=None) -> Dict[str, Any]:
|
||||
|
||||
|
||||
# Reset to certain task in OSWorld
|
||||
logger.info("Resetting environment...")
|
||||
logger.info("Switching task...")
|
||||
@@ -258,17 +258,17 @@ class DesktopEnv(gym.Env):
|
||||
# Only revert to snapshot if environment has been used (step/setup)
|
||||
# This optimization is especially important for cloud providers like AWS
|
||||
# where unnecessary snapshot operations are costly and time-consuming
|
||||
|
||||
|
||||
if task_config is not None:
|
||||
# Only consider task proxy requirement if proxy is enabled at system level
|
||||
task_use_proxy = task_config.get("proxy", False) and self.enable_proxy
|
||||
if not self.enable_proxy and task_config.get("proxy", False):
|
||||
logger.info("Task requires proxy but proxy is disabled at system level, ignoring proxy requirement.")
|
||||
|
||||
|
||||
if task_use_proxy != self.current_use_proxy:
|
||||
# keep because get_info_from_website depend on this
|
||||
self.current_use_proxy = task_use_proxy
|
||||
|
||||
|
||||
if self.is_environment_used:
|
||||
logger.info("Environment has been used, reverting to snapshot: {}...".format(self.snapshot_name))
|
||||
self._revert_to_snapshot()
|
||||
@@ -302,7 +302,7 @@ class DesktopEnv(gym.Env):
|
||||
time.sleep(5)
|
||||
else:
|
||||
break
|
||||
|
||||
|
||||
logger.info("Environment setup complete.")
|
||||
|
||||
observation = self._get_obs()
|
||||
@@ -333,7 +333,8 @@ class DesktopEnv(gym.Env):
|
||||
os.makedirs(self.cache_dir, exist_ok=True)
|
||||
self.instruction = task_config["instruction"]
|
||||
self.config = task_config["config"] if "config" in task_config else []
|
||||
|
||||
self.metadata = task_config.get("metadata", {})
|
||||
|
||||
self._set_evaluator_info(task_config)
|
||||
|
||||
def _set_evaluator_info(self, task_config: Dict[str, Any]):
|
||||
@@ -386,7 +387,7 @@ class DesktopEnv(gym.Env):
|
||||
def step(self, action, pause=2):
|
||||
self._step_no += 1
|
||||
self.action_history.append(action)
|
||||
|
||||
|
||||
# Mark environment as used when step is called
|
||||
self.is_environment_used = True
|
||||
|
||||
@@ -461,12 +462,16 @@ class DesktopEnv(gym.Env):
|
||||
self.metric_options["instruction"] = self.instruction
|
||||
self.metric_options["eval_model"] = self.eval_model
|
||||
|
||||
# Pass pre-configured environment info and expected steps
|
||||
self.metric_options["config"] = self.config
|
||||
self.metric_options["metadata"] = self.metadata
|
||||
|
||||
if result_dir:
|
||||
self.metric_options["result_dir"] = result_dir
|
||||
logger.info(f"Using result_dir for vllm_eval: {result_dir}")
|
||||
|
||||
logger.info(f"Evaluation options prepared: {self.metric_options.keys()}")
|
||||
|
||||
|
||||
if type(self.metric) == list:
|
||||
# Multiple metrics to evaluate whether the task is successfully completed
|
||||
results = []
|
||||
|
||||
@@ -73,7 +73,13 @@ class UnifiedLLM:
|
||||
elif model.startswith("claude"):
|
||||
self.provider = "anthropic"
|
||||
elif model.startswith("gemini"):
|
||||
self.provider = "gemini"
|
||||
# If OPENAI_API_KEY is set but GOOGLE_API_KEY is not,
|
||||
# use OpenAI-compatible proxy for Gemini models
|
||||
if os.getenv("OPENAI_API_KEY") and not os.getenv("GOOGLE_API_KEY"):
|
||||
self.provider = "openai"
|
||||
logger.info(f"Using OpenAI-compatible proxy for Gemini model: {model}")
|
||||
else:
|
||||
self.provider = "gemini"
|
||||
else:
|
||||
self.provider = "unknown"
|
||||
|
||||
@@ -287,29 +293,83 @@ class UnifiedLLM:
|
||||
raise ValueError(f"Unsupported provider: {self.provider}")
|
||||
|
||||
|
||||
def _load_screenshots_from_dir(result_dir: str, compress: bool = True, max_size: int = 800, quality: int = 85) -> List[str]:
|
||||
def _sample_key_frames(items: list, max_count: int) -> list:
|
||||
"""
|
||||
Load all step screenshots from result directory and convert to base64
|
||||
Uniformly sample key frames while always keeping the first and last items.
|
||||
|
||||
Args:
|
||||
items: List of items to sample from
|
||||
max_count: Maximum number of items to keep (must be >= 2)
|
||||
|
||||
Returns:
|
||||
List of sampled indices (sorted)
|
||||
"""
|
||||
n = len(items)
|
||||
if n <= max_count:
|
||||
return list(range(n))
|
||||
|
||||
# Always keep first and last
|
||||
if max_count < 2:
|
||||
max_count = 2
|
||||
|
||||
indices = [0] # first frame
|
||||
# Uniformly sample (max_count - 2) frames from the middle
|
||||
middle_count = max_count - 2
|
||||
if middle_count > 0:
|
||||
step = (n - 2) / (middle_count + 1)
|
||||
for i in range(1, middle_count + 1):
|
||||
idx = int(round(i * step))
|
||||
indices.append(idx)
|
||||
indices.append(n - 1) # last frame
|
||||
|
||||
# Deduplicate and sort
|
||||
indices = sorted(set(indices))
|
||||
return indices
|
||||
|
||||
|
||||
def _load_screenshots_from_dir(result_dir: str, compress: bool = False, max_size: int = 800, quality: int = 85, max_images: int = 0) -> tuple:
|
||||
"""
|
||||
Load step screenshots from result directory and convert to base64.
|
||||
When max_images > 0 and there are more screenshots than max_images,
|
||||
uniformly sample key frames (always keeping first and last).
|
||||
|
||||
Args:
|
||||
result_dir: Path to result directory containing step_*.png files
|
||||
compress: Whether to compress images (default: True)
|
||||
max_size: Maximum dimension for compression (default: 800)
|
||||
quality: JPEG quality for compression (default: 85)
|
||||
max_images: Maximum number of screenshots to load (0 = no limit)
|
||||
|
||||
Returns:
|
||||
List of base64 encoded screenshot strings
|
||||
Tuple of (list of base64 encoded screenshot strings, list of short filenames like 'step_1', 'step_2', ...)
|
||||
"""
|
||||
screenshots = []
|
||||
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}")
|
||||
return screenshots
|
||||
return screenshots, filenames
|
||||
|
||||
# Key frame sampling: if max_images > 0 and we have more files than allowed,
|
||||
# keep first + last + uniformly sampled middle frames
|
||||
total_files = len(screenshot_files)
|
||||
if max_images > 0 and total_files > max_images:
|
||||
sampled_indices = _sample_key_frames(screenshot_files, max_images)
|
||||
screenshot_files_sampled = [screenshot_files[i] for i in sampled_indices]
|
||||
logger.info(f"Key frame sampling: {total_files} screenshots -> {len(screenshot_files_sampled)} "
|
||||
f"(max_images={max_images}, kept indices: {sampled_indices})")
|
||||
screenshot_files = screenshot_files_sampled
|
||||
|
||||
import re as _re
|
||||
for filepath in screenshot_files:
|
||||
try:
|
||||
with open(filepath, "rb") as f:
|
||||
@@ -321,11 +381,16 @@ def _load_screenshots_from_dir(result_dir: str, compress: bool = True, max_size:
|
||||
img_b64 = _compress_image(img_b64, max_size=max_size, quality=quality)
|
||||
|
||||
screenshots.append(img_b64)
|
||||
# Extract short name like 'step_1' from 'step_1_20240101@120000.png'
|
||||
basename = os.path.basename(filepath)
|
||||
match = _re.match(r'(step_\d+)', basename)
|
||||
short_name = match.group(1) if match else basename
|
||||
filenames.append(short_name)
|
||||
except Exception as e:
|
||||
logger.error(f"Error loading screenshot {filepath}: {e}")
|
||||
|
||||
logger.info(f"Loaded {len(screenshots)} screenshots from {result_dir}")
|
||||
return screenshots
|
||||
logger.info(f"Loaded {len(screenshots)} screenshots from {result_dir}: {filenames}")
|
||||
return screenshots, filenames
|
||||
|
||||
|
||||
def vllm_eval(result_state, **options) -> float:
|
||||
@@ -342,6 +407,8 @@ def vllm_eval(result_state, **options) -> float:
|
||||
- compress_images: Whether to compress images (default: True)
|
||||
- max_image_size: Maximum image dimension for compression (default: 800)
|
||||
- image_quality: JPEG quality for compression (default: 85)
|
||||
- max_eval_images: Max screenshots for evaluation (0 = no limit, default: 10).
|
||||
When exceeded, keeps first + last + uniformly sampled middle frames.
|
||||
- temperature: Temperature parameter
|
||||
- max_tokens: Maximum tokens
|
||||
- top_p: Top-p parameter
|
||||
@@ -354,20 +421,25 @@ def vllm_eval(result_state, **options) -> float:
|
||||
screenshots = options.get("screenshots", [])
|
||||
|
||||
# Image compression options
|
||||
compress_images = options.get("compress_images", True)
|
||||
compress_images = options.get("compress_images", False)
|
||||
max_image_size = options.get("max_image_size", 800)
|
||||
image_quality = options.get("image_quality", 85)
|
||||
max_eval_images = options.get("max_eval_images", 10)
|
||||
|
||||
screenshot_filenames = [] # Short names like 'step_1', 'step_2', ...
|
||||
|
||||
if result_dir and not screenshots:
|
||||
screenshots = _load_screenshots_from_dir(
|
||||
screenshots, screenshot_filenames = _load_screenshots_from_dir(
|
||||
result_dir,
|
||||
compress=compress_images,
|
||||
max_size=max_image_size,
|
||||
quality=image_quality
|
||||
quality=image_quality,
|
||||
max_images=max_eval_images
|
||||
)
|
||||
logger.info(f"Loaded {len(screenshots)} screenshots from result_dir: {result_dir}")
|
||||
elif screenshots:
|
||||
logger.info(f"Using {len(screenshots)} screenshots from options")
|
||||
screenshot_filenames = [f"step_{i+1}" for i in range(len(screenshots))]
|
||||
# Compress screenshots if needed
|
||||
if compress_images:
|
||||
logger.info("Compressing provided screenshots...")
|
||||
@@ -375,41 +447,100 @@ def vllm_eval(result_state, **options) -> float:
|
||||
|
||||
instruction = options.get("instruction", "")
|
||||
eval_model = options.get("eval_model", "gpt-4-vision-preview")
|
||||
config = options.get("config", [])
|
||||
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)
|
||||
}
|
||||
|
||||
llm = UnifiedLLM(eval_model)
|
||||
|
||||
prompt = f"""You are an expert evaluator for desktop environment tasks.
|
||||
# Build pre-configured environment description from config
|
||||
preconfig_items = []
|
||||
for cfg in config:
|
||||
if cfg.get("type") == "launch":
|
||||
cmds = cfg.get("parameters", {}).get("command", [])
|
||||
if cmds:
|
||||
app_name = os.path.basename(cmds[0]) if cmds else "unknown"
|
||||
preconfig_items.append(f"Application '{app_name}' was automatically launched before the agent started.")
|
||||
elif cfg.get("type") == "sleep":
|
||||
pass # not relevant to scoring
|
||||
elif cfg.get("type") == "open":
|
||||
path = cfg.get("parameters", {}).get("path", "")
|
||||
preconfig_items.append(f"File/URL '{path}' was automatically opened before the agent started.")
|
||||
|
||||
Task Instruction: {instruction}
|
||||
preconfig_section = ""
|
||||
if preconfig_items:
|
||||
preconfig_desc = "\n".join(f" - {item}" for item in preconfig_items)
|
||||
preconfig_section = f"""
|
||||
PRE-CONFIGURED ENVIRONMENT (done BEFORE the agent started, NOT the agent's work):
|
||||
{preconfig_desc}
|
||||
IMPORTANT: The above actions were performed automatically as part of environment setup. The agent did NOT perform these actions. Do NOT give ANY credit for them. For example, if the application was pre-launched, the agent merely having the application open is worth 0 points - that was the starting state."""
|
||||
|
||||
I will provide you with screenshot(s) showing the current state of the desktop environment. Please analyze the task execution step by step and provide a detailed evaluation.
|
||||
# Build expected steps section from metadata
|
||||
expected_steps_section = ""
|
||||
if metadata.get("steps"):
|
||||
expected_steps_section = f"""
|
||||
EXPECTED STEPS for this task (use as reference for what the agent should have done):
|
||||
{metadata['steps']}
|
||||
NOTE: Evaluate the screenshots against these expected steps. Only give credit for steps that show VISIBLE evidence of completion BEYOND the pre-configured starting state."""
|
||||
|
||||
IMPORTANT: You must respond with ONLY a valid JSON object (no additional text before or after). Use the following exact format:
|
||||
# Build image list description for the prompt
|
||||
if screenshot_filenames:
|
||||
img_list_str = ", ".join(screenshot_filenames)
|
||||
img_info = f"""\nYou are provided with exactly {len(screenshot_filenames)} screenshots in chronological order: {img_list_str}
|
||||
The FIRST screenshot is: {screenshot_filenames[0]}
|
||||
The LAST screenshot (final state): {screenshot_filenames[-1]}
|
||||
IMPORTANT: Only reference screenshots from the list above. Do NOT reference any screenshot that is not listed."""
|
||||
else:
|
||||
img_info = "\nNo screenshots were provided."
|
||||
|
||||
final_name = screenshot_filenames[-1] if screenshot_filenames else "N/A"
|
||||
|
||||
prompt = f"""You are a STRICT evaluator for desktop GUI agent tasks.
|
||||
|
||||
Task: {instruction}
|
||||
{preconfig_section}
|
||||
{expected_steps_section}
|
||||
{img_info}
|
||||
|
||||
════════════════════════════════════════════════════
|
||||
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.
|
||||
════════════════════════════════════════════════════
|
||||
|
||||
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.
|
||||
|
||||
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.
|
||||
|
||||
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"}},
|
||||
{{"step": "Another step", "status": "Success/Fail", "evidence_img": "step_Y.png", "reason": "Brief explanation"}}
|
||||
{{"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 (reference screenshot filenames like step_1.png, step_2.png, etc.)
|
||||
- "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": Brief explanation of why this step succeeded or failed
|
||||
- "final_completion": "True" if the overall task is completed, "False" otherwise
|
||||
- "score": Integer from 0 to 10, where 10 means perfectly completed and 0 means not completed at all
|
||||
|
||||
Remember: Return ONLY the JSON object, no additional text."""
|
||||
}}"""
|
||||
|
||||
try:
|
||||
result = llm.generate_with_images(
|
||||
|
||||
@@ -4,7 +4,7 @@ from desktop_env.providers.base import VMManager, Provider
|
||||
def create_vm_manager_and_provider(provider_name: str, region: str, use_proxy: bool = False):
|
||||
"""
|
||||
Factory function to get the Virtual Machine Manager and Provider instances based on the provided provider name.
|
||||
|
||||
|
||||
Args:
|
||||
provider_name (str): The name of the provider (e.g., "aws", "vmware", etc.)
|
||||
region (str): The region for the provider
|
||||
@@ -39,5 +39,9 @@ def create_vm_manager_and_provider(provider_name: str, region: str, use_proxy: b
|
||||
from desktop_env.providers.volcengine.manager import VolcengineVMManager
|
||||
from desktop_env.providers.volcengine.provider import VolcengineProvider
|
||||
return VolcengineVMManager(), VolcengineProvider()
|
||||
elif provider_name == "proxmox":
|
||||
from desktop_env.providers.proxmox.manager import ProxmoxVMManager
|
||||
from desktop_env.providers.proxmox.provider import ProxmoxProvider
|
||||
return ProxmoxVMManager(), ProxmoxProvider(region)
|
||||
else:
|
||||
raise NotImplementedError(f"{provider_name} not implemented!")
|
||||
|
||||
0
desktop_env/providers/proxmox/__init__.py
Normal file
0
desktop_env/providers/proxmox/__init__.py
Normal file
49
desktop_env/providers/proxmox/manager.py
Normal file
49
desktop_env/providers/proxmox/manager.py
Normal file
@@ -0,0 +1,49 @@
|
||||
import logging
|
||||
import os
|
||||
|
||||
from desktop_env.providers.base import VMManager
|
||||
|
||||
logger = logging.getLogger("desktopenv.providers.proxmox.ProxmoxVMManager")
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
|
||||
class ProxmoxVMManager(VMManager):
|
||||
"""
|
||||
Simplified VM manager for Proxmox.
|
||||
|
||||
Unlike VMware/VirtualBox, Proxmox VMs are pre-created on the server.
|
||||
This manager does not handle VM provisioning, downloading, or local
|
||||
registry management. The VM ID is passed directly via --path_to_vm.
|
||||
"""
|
||||
|
||||
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 the VM ID from environment variable or default.
|
||||
|
||||
For Proxmox, the VM is pre-created. The VM ID should be passed
|
||||
via --path_to_vm argument. This method is only called when
|
||||
--path_to_vm is not provided.
|
||||
"""
|
||||
vmid = os.environ.get("PROXMOX_VM_ID", "102")
|
||||
logger.info(f"Using Proxmox VM ID: {vmid}")
|
||||
return vmid
|
||||
235
desktop_env/providers/proxmox/provider.py
Normal file
235
desktop_env/providers/proxmox/provider.py
Normal file
@@ -0,0 +1,235 @@
|
||||
import logging
|
||||
import os
|
||||
import subprocess
|
||||
import time
|
||||
|
||||
import requests
|
||||
|
||||
from desktop_env.providers.base import Provider
|
||||
|
||||
logger = logging.getLogger("desktopenv.providers.proxmox.ProxmoxProvider")
|
||||
logger.setLevel(logging.INFO)
|
||||
|
||||
WAIT_TIME = 5
|
||||
RETRY_INTERVAL = 3
|
||||
MAX_WAIT_READY = 300 # seconds to wait for VM HTTP server to be ready
|
||||
|
||||
|
||||
class ProxmoxProvider(Provider):
|
||||
"""
|
||||
Proxmox VE provider that manages VMs via SSH to the Proxmox host,
|
||||
executing `qm` commands for VM lifecycle management.
|
||||
|
||||
Configuration via environment variables:
|
||||
PROXMOX_SSH_HOST: SSH target (default: root@10.10.17.3)
|
||||
PROXMOX_VM_IP: Fallback VM IP if guest agent is unavailable (default: 10.10.17.10)
|
||||
"""
|
||||
|
||||
def __init__(self, region: str = None):
|
||||
super().__init__(region)
|
||||
self.ssh_host = os.environ.get("PROXMOX_SSH_HOST", "root@10.10.17.3")
|
||||
self.vm_ip_fallback = os.environ.get("PROXMOX_VM_IP", "10.10.17.10")
|
||||
self._vm_ip_cache = None
|
||||
|
||||
def _ssh_exec(self, command: str, timeout: int = 120, check: bool = True) -> str:
|
||||
"""Execute a command on the Proxmox host via SSH.
|
||||
|
||||
Args:
|
||||
command: The command to run on the remote host.
|
||||
timeout: Timeout in seconds.
|
||||
check: If True, raise on non-zero exit code.
|
||||
|
||||
Returns:
|
||||
stdout output as a stripped string.
|
||||
"""
|
||||
ssh_cmd = [
|
||||
"ssh",
|
||||
"-o", "StrictHostKeyChecking=no",
|
||||
"-o", "ConnectTimeout=10",
|
||||
"-o", "BatchMode=yes",
|
||||
self.ssh_host,
|
||||
command,
|
||||
]
|
||||
logger.debug(f"SSH exec: {' '.join(ssh_cmd)}")
|
||||
try:
|
||||
result = subprocess.run(
|
||||
ssh_cmd,
|
||||
stdout=subprocess.PIPE,
|
||||
stderr=subprocess.PIPE,
|
||||
text=True,
|
||||
encoding="utf-8",
|
||||
timeout=timeout,
|
||||
)
|
||||
if check and result.returncode != 0:
|
||||
logger.error(f"SSH command failed (rc={result.returncode}): {result.stderr.strip()}")
|
||||
return result.stdout.strip()
|
||||
except subprocess.TimeoutExpired:
|
||||
logger.error(f"SSH command timed out after {timeout}s: {command}")
|
||||
return ""
|
||||
except Exception as e:
|
||||
logger.error(f"SSH execution error: {e}")
|
||||
return ""
|
||||
|
||||
def _get_vm_status(self, vmid: str) -> str:
|
||||
"""Get the current status of a VM (e.g. 'running', 'stopped')."""
|
||||
output = self._ssh_exec(f"qm status {vmid}")
|
||||
# output format: "status: running"
|
||||
if ":" in output:
|
||||
return output.split(":", 1)[1].strip()
|
||||
return output.strip()
|
||||
|
||||
def _wait_for_status(self, vmid: str, target_status: str, timeout: int = 120):
|
||||
"""Poll VM status until it matches target_status."""
|
||||
start = time.time()
|
||||
while time.time() - start < timeout:
|
||||
status = self._get_vm_status(vmid)
|
||||
logger.info(f"VM {vmid} status: {status} (waiting for {target_status})")
|
||||
if status == target_status:
|
||||
return True
|
||||
time.sleep(RETRY_INTERVAL)
|
||||
logger.error(f"VM {vmid} did not reach status '{target_status}' within {timeout}s")
|
||||
return False
|
||||
|
||||
def _wait_for_vm_ready(self, vm_ip: str, server_port: int = 5000, timeout: int = MAX_WAIT_READY):
|
||||
"""Poll the VM's HTTP server until it responds with a screenshot."""
|
||||
start = time.time()
|
||||
url = f"http://{vm_ip}:{server_port}/screenshot"
|
||||
while time.time() - start < timeout:
|
||||
try:
|
||||
response = requests.get(url, timeout=(10, 10))
|
||||
if response.status_code == 200:
|
||||
logger.info(f"VM HTTP server is ready at {url}")
|
||||
return True
|
||||
except Exception:
|
||||
pass
|
||||
logger.info(f"Waiting for VM HTTP server at {url}...")
|
||||
time.sleep(RETRY_INTERVAL)
|
||||
logger.error(f"VM HTTP server at {url} not ready within {timeout}s")
|
||||
return False
|
||||
|
||||
def start_emulator(self, path_to_vm: str, headless: bool, os_type: str = "Windows"):
|
||||
"""Start the Proxmox VM.
|
||||
|
||||
Args:
|
||||
path_to_vm: The VM ID as a string (e.g. "102").
|
||||
headless: Ignored for Proxmox (VMs are always headless on server).
|
||||
os_type: OS type of the VM.
|
||||
"""
|
||||
vmid = path_to_vm
|
||||
logger.info(f"Starting Proxmox VM {vmid}...")
|
||||
print(f"Starting Proxmox VM {vmid}...")
|
||||
|
||||
status = self._get_vm_status(vmid)
|
||||
if status == "running":
|
||||
logger.info(f"VM {vmid} is already running.")
|
||||
else:
|
||||
self._ssh_exec(f"qm start {vmid}")
|
||||
if not self._wait_for_status(vmid, "running", timeout=120):
|
||||
raise RuntimeError(f"Failed to start VM {vmid}")
|
||||
|
||||
# Wait for Flask HTTP server inside VM to be ready
|
||||
vm_ip = self._resolve_vm_ip(vmid)
|
||||
self._wait_for_vm_ready(vm_ip)
|
||||
|
||||
def _resolve_vm_ip(self, vmid: str) -> str:
|
||||
"""Try to get VM IP via QEMU Guest Agent, fall back to env var."""
|
||||
if self._vm_ip_cache:
|
||||
return self._vm_ip_cache
|
||||
|
||||
# Try QEMU Guest Agent
|
||||
try:
|
||||
output = self._ssh_exec(
|
||||
f"qm guest cmd {vmid} network-get-interfaces",
|
||||
timeout=15,
|
||||
check=False,
|
||||
)
|
||||
if output and "ip-address" in output:
|
||||
import json
|
||||
interfaces = json.loads(output)
|
||||
for iface in interfaces:
|
||||
for addr in iface.get("ip-addresses", []):
|
||||
ip = addr.get("ip-address", "")
|
||||
# Skip loopback and IPv6 link-local
|
||||
if ip and not ip.startswith("127.") and not ip.startswith("fe80") and ":" not in ip:
|
||||
logger.info(f"Got VM {vmid} IP from guest agent: {ip}")
|
||||
self._vm_ip_cache = ip
|
||||
return ip
|
||||
except Exception as e:
|
||||
logger.debug(f"Guest agent query failed: {e}")
|
||||
|
||||
# Fallback to env var / default
|
||||
logger.info(f"Using fallback VM IP: {self.vm_ip_fallback}")
|
||||
self._vm_ip_cache = self.vm_ip_fallback
|
||||
return self.vm_ip_fallback
|
||||
|
||||
def get_ip_address(self, path_to_vm: str) -> str:
|
||||
"""Return the VM's IP address.
|
||||
|
||||
Args:
|
||||
path_to_vm: The VM ID as a string.
|
||||
|
||||
Returns:
|
||||
IP address string (e.g. "10.10.17.10").
|
||||
"""
|
||||
vmid = path_to_vm
|
||||
return self._resolve_vm_ip(vmid)
|
||||
|
||||
def save_state(self, path_to_vm: str, snapshot_name: str):
|
||||
"""Create a snapshot of the VM.
|
||||
|
||||
Args:
|
||||
path_to_vm: The VM ID.
|
||||
snapshot_name: Name for the snapshot.
|
||||
"""
|
||||
vmid = path_to_vm
|
||||
logger.info(f"Creating snapshot '{snapshot_name}' for VM {vmid}...")
|
||||
self._ssh_exec(f"qm snapshot {vmid} {snapshot_name}", timeout=120)
|
||||
time.sleep(WAIT_TIME)
|
||||
logger.info(f"Snapshot '{snapshot_name}' created for VM {vmid}.")
|
||||
|
||||
def revert_to_snapshot(self, path_to_vm: str, snapshot_name: str):
|
||||
"""Revert the VM to a snapshot and restart it.
|
||||
|
||||
Args:
|
||||
path_to_vm: The VM ID.
|
||||
snapshot_name: Name of the snapshot to revert to.
|
||||
|
||||
Returns:
|
||||
The VM ID (path_to_vm).
|
||||
"""
|
||||
vmid = path_to_vm
|
||||
logger.info(f"Reverting VM {vmid} to snapshot '{snapshot_name}'...")
|
||||
|
||||
# Stop VM first if running
|
||||
status = self._get_vm_status(vmid)
|
||||
if status == "running":
|
||||
self._ssh_exec(f"qm stop {vmid}", timeout=60)
|
||||
self._wait_for_status(vmid, "stopped", timeout=60)
|
||||
|
||||
# Rollback to snapshot
|
||||
self._ssh_exec(f"qm rollback {vmid} {snapshot_name}", timeout=120)
|
||||
time.sleep(WAIT_TIME)
|
||||
|
||||
# Clear IP cache since IP might change after rollback
|
||||
self._vm_ip_cache = None
|
||||
|
||||
logger.info(f"VM {vmid} reverted to snapshot '{snapshot_name}'.")
|
||||
return path_to_vm
|
||||
|
||||
def stop_emulator(self, path_to_vm: str, region=None, *args, **kwargs):
|
||||
"""Stop the VM.
|
||||
|
||||
Args:
|
||||
path_to_vm: The VM ID.
|
||||
"""
|
||||
vmid = path_to_vm
|
||||
logger.info(f"Stopping Proxmox VM {vmid}...")
|
||||
status = self._get_vm_status(vmid)
|
||||
if status == "stopped":
|
||||
logger.info(f"VM {vmid} is already stopped.")
|
||||
return
|
||||
|
||||
self._ssh_exec(f"qm stop {vmid}", timeout=60)
|
||||
self._wait_for_status(vmid, "stopped", timeout=60)
|
||||
self._vm_ip_cache = None
|
||||
logger.info(f"VM {vmid} stopped.")
|
||||
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
|
||||
34
evaluation_examples/data/vesta/NaCl.cif
Normal file
34
evaluation_examples/data/vesta/NaCl.cif
Normal file
@@ -0,0 +1,34 @@
|
||||
# generated using pymatgen
|
||||
data_NaCl
|
||||
_symmetry_space_group_name_H-M 'P 1'
|
||||
_cell_length_a 5.69169400
|
||||
_cell_length_b 5.69169400
|
||||
_cell_length_c 5.69169400
|
||||
_cell_angle_alpha 90.00000000
|
||||
_cell_angle_beta 90.00000000
|
||||
_cell_angle_gamma 90.00000000
|
||||
_symmetry_Int_Tables_number 1
|
||||
_chemical_formula_structural NaCl
|
||||
_chemical_formula_sum 'Na4 Cl4'
|
||||
_cell_volume 184.38459333
|
||||
_cell_formula_units_Z 4
|
||||
loop_
|
||||
_symmetry_equiv_pos_site_id
|
||||
_symmetry_equiv_pos_as_xyz
|
||||
1 'x, y, z'
|
||||
loop_
|
||||
_atom_site_type_symbol
|
||||
_atom_site_label
|
||||
_atom_site_symmetry_multiplicity
|
||||
_atom_site_fract_x
|
||||
_atom_site_fract_y
|
||||
_atom_site_fract_z
|
||||
_atom_site_occupancy
|
||||
Na Na0 1 0.00000000 0.00000000 0.00000000 1
|
||||
Na Na1 1 0.00000000 0.50000000 0.50000000 1
|
||||
Na Na2 1 0.50000000 0.00000000 0.50000000 1
|
||||
Na Na3 1 0.50000000 0.50000000 0.00000000 1
|
||||
Cl Cl4 1 0.50000000 0.00000000 0.00000000 1
|
||||
Cl Cl5 1 0.50000000 0.50000000 0.50000000 1
|
||||
Cl Cl6 1 0.00000000 0.00000000 0.50000000 1
|
||||
Cl Cl7 1 0.00000000 0.50000000 0.00000000 1
|
||||
113
evaluation_examples/data/vesta/anatase_TiO2.cif
Normal file
113
evaluation_examples/data/vesta/anatase_TiO2.cif
Normal file
@@ -0,0 +1,113 @@
|
||||
#------------------------------------------------------------------------------
|
||||
#$Date: 2023-03-26 11:09:57 +0300 (Sun, 26 Mar 2023) $
|
||||
#$Revision: 282068 $
|
||||
#$URL: svn://localhost/cod/cif/5/00/02/5000223.cif $
|
||||
#------------------------------------------------------------------------------
|
||||
#
|
||||
# This file is available in the Crystallography Open Database (COD),
|
||||
# http://www.crystallography.net/
|
||||
#
|
||||
# All data on this site have been placed in the public domain by the
|
||||
# contributors.
|
||||
#
|
||||
data_5000223
|
||||
loop_
|
||||
_publ_author_name
|
||||
'Horn, M'
|
||||
'Schwerdtfeger, C F'
|
||||
'Meagher, E P'
|
||||
_publ_section_title
|
||||
;
|
||||
Refinement of the structure of anatase at several temperatures
|
||||
Sample: T = 300 C
|
||||
;
|
||||
_journal_name_full
|
||||
;
|
||||
Zeitschrift fuer Kristallographie, Kristallgeometrie, Kristallphysik,
|
||||
Kristallchemie (-144,1977)
|
||||
;
|
||||
_journal_page_first 273
|
||||
_journal_page_last 281
|
||||
_journal_volume 136
|
||||
_journal_year 1972
|
||||
_chemical_compound_source 'Lengenbach quarry, Binnatal, Switzerland'
|
||||
_chemical_formula_structural TiO2
|
||||
_chemical_formula_sum 'O2 Ti'
|
||||
_chemical_name_mineral Anatase
|
||||
_chemical_name_systematic 'Titanium oxide'
|
||||
_space_group_IT_number 141
|
||||
_symmetry_cell_setting tetragonal
|
||||
_symmetry_space_group_name_Hall 'I 4bw 2bw -1bw'
|
||||
_symmetry_space_group_name_H-M 'I 41/a m d :1'
|
||||
_cell_angle_alpha 90
|
||||
_cell_angle_beta 90
|
||||
_cell_angle_gamma 90
|
||||
_cell_formula_units_Z 4
|
||||
_cell_length_a 3.7892(4)
|
||||
_cell_length_b 3.7892(4)
|
||||
_cell_length_c 9.537(1)
|
||||
_cell_volume 136.9
|
||||
_database_code_amcsd 0010736
|
||||
_diffrn_ambient_temperature 573.15
|
||||
_exptl_crystal_density_diffrn 3.875
|
||||
_refine_ls_R_factor_all 0.023
|
||||
_cod_original_sg_symbol_H-M 'I 41/a m d S'
|
||||
_cod_original_formula_sum 'Ti O2'
|
||||
_cod_database_code 5000223
|
||||
loop_
|
||||
_space_group_symop_operation_xyz
|
||||
x,y,z
|
||||
-x,-y,z
|
||||
x,1/2+y,1/4-z
|
||||
-x,1/2-y,1/4-z
|
||||
-x,y,z
|
||||
x,-y,z
|
||||
-x,1/2+y,1/4-z
|
||||
x,1/2-y,1/4-z
|
||||
y,x,-z
|
||||
-y,-x,-z
|
||||
y,1/2+x,1/4+z
|
||||
-y,1/2-x,1/4+z
|
||||
-y,x,-z
|
||||
y,-x,-z
|
||||
-y,1/2+x,1/4+z
|
||||
y,1/2-x,1/4+z
|
||||
1/2+x,1/2+y,1/2+z
|
||||
1/2-x,1/2-y,1/2+z
|
||||
1/2+x,y,3/4-z
|
||||
1/2-x,-y,3/4-z
|
||||
1/2-x,1/2+y,1/2+z
|
||||
1/2+x,1/2-y,1/2+z
|
||||
1/2-x,y,3/4-z
|
||||
1/2+x,-y,3/4-z
|
||||
1/2+y,1/2+x,1/2-z
|
||||
1/2-y,1/2-x,1/2-z
|
||||
1/2+y,x,3/4+z
|
||||
1/2-y,-x,3/4+z
|
||||
1/2-y,1/2+x,1/2-z
|
||||
1/2+y,1/2-x,1/2-z
|
||||
1/2-y,x,3/4+z
|
||||
1/2+y,-x,3/4+z
|
||||
loop_
|
||||
_atom_site_label
|
||||
_atom_site_type_symbol
|
||||
_atom_site_symmetry_multiplicity
|
||||
_atom_site_Wyckoff_symbol
|
||||
_atom_site_fract_x
|
||||
_atom_site_fract_y
|
||||
_atom_site_fract_z
|
||||
_atom_site_occupancy
|
||||
_atom_site_attached_hydrogens
|
||||
_atom_site_calc_flag
|
||||
Ti1 Ti4+ 4 a 0. 0. 0. 1. 0 d
|
||||
O1 O2- 8 e 0. 0. 0.2079(2) 1. 0 d
|
||||
loop_
|
||||
_atom_type_symbol
|
||||
_atom_type_oxidation_number
|
||||
Ti4+ 4.000
|
||||
O2- -2.000
|
||||
loop_
|
||||
_cod_related_entry_id
|
||||
_cod_related_entry_database
|
||||
_cod_related_entry_code
|
||||
1 AMCSD 0010736
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "building-metal-complexes_task1",
|
||||
"snapshot": "avogadro",
|
||||
"instruction": "在 Avogadro 2 中,使用 Template Tool 创建 [Co(NH3)6]3+ 配位化合物,设置为八面体配位几何。",
|
||||
"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. 按下键盘快捷键 Ctrl+3(或在顶部工具栏中单击 Template Tool 图标),激活模板工具。\n2. 在左侧(或右侧)的模板工具控制面板中,单击选中 Centers 选项卡。\n3. 在键盘上依次输入字母 C 和 o,以选择 Cobalt (钴) 元素作为金属中心。\n4. 在形式电荷输入框旁,连续单击三次向上箭头(∧)按钮,将中心离子的形式电荷设置为 +3。\n5. 单击坐标下拉框,选择 6: Octahedral(八面体)选项,设定配位几何形状为八面体。\n6. 将鼠标移动到主界面的 3D 视图空白区域,单击鼠标左键,放置带有六个配位氢原子的钴中心结构。\n7. 在模板工具控制面板中,单击选中 Ligands 选项卡。\n8. 单击 Ligand 下拉框,从列表中选择 ammine (NH3) 配体。\n9. 在 3D 视图中,将鼠标悬停并单击钴原子上的第 1 个氢原子,将其替换为氨配体。\n10. 若有氢原子被遮挡,按下 Ctrl+1 切换至导航视角,拖动鼠标旋转分子,使目标氢原子可见,再切换回 Ctrl+3 模板工具后单击钴原子上的第 2 个氢原子,将其替换为氨配体。\n11. 重复上述操作(必要时按 Ctrl+1 旋转视角后切回 Ctrl+3),单击钴原子上的第 3 个氢原子,将其替换为氨配体。\n12. 重复上述操作(必要时按 Ctrl+1 旋转视角后切回 Ctrl+3),单击钴原子上的第 4 个氢原子,将其替换为氨配体。\n13. 重复上述操作(必要时按 Ctrl+1 旋转视角后切回 Ctrl+3),单击钴原子上的第 5 个氢原子,将其替换为氨配体。\n14. 重复上述操作(必要时按 Ctrl+1 旋转视角后切回 Ctrl+3),单击钴原子上的第 6 个氢原子,将其替换为氨配体,完成 [Co(NH3)6]3+ 化合物的构建。",
|
||||
"steps_original": "1. 打开 Template Tool(快捷键 Ctrl+3 或点击工具栏图标)。\n2. 切换到 Centers 选项卡。\n3. 输入 'Co' 或从弹出菜单中选择钴元素。\n4. 点击三次 '+' 符号,将正电荷设置为 +3。\n5. 按键 '6' 或选择八面体几何形状。\n6. 点击空白区域,放置钴中心,六个氢原子会显示在配位位置。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "building-metal-complexes_task3",
|
||||
"snapshot": "avogadro",
|
||||
"instruction": "在 Avogadro 2 中,使用 Template Tool 创建 [Ni(en)(NH3)2]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. 在顶部工具栏中,单击 'Template Tool' 图标按钮(或在键盘上按 Ctrl+3 快捷键)以激活模板工具面板。\n2. 在弹出的模板工具面板中,单击顶部名为 'Centers' 的选项卡。\n3. 在键盘上依次输入字母键 'N' 和 'i',或单击元素下拉菜单并选择 'Nickel',以选中镍元素。\n4. 在形式电荷(形式电荷)数值框旁,连续单击向上箭头('^')按钮两次,将中心离子的形式电荷从 0 调整为 '+2'。\n5. 单击坐标(坐标)下拉菜单将其展开,在弹出的选项列表中选择 '4: Square Planar',以设置平面四方配位几何构型。\n6. 将鼠标移动到 3D 模型视图的空白区域,单击鼠标左键以放置带有四个占位氢原子的镍中心。\n7. 在模板工具面板中,单击顶部名为 'Ligands' 的选项卡切换到配体模式。\n8. 在键盘上依次输入字母键 'e' 和 'n',以在配体库中选中 'ethylenediamine' (乙二胺) 配体。\n9. 在 3D 视图中,单击选中中心镍原子周围的任意一个氢原子。\n10. 在 3D 视图中,单击与上一步选中的氢原子相邻(顺式位置)的另一个氢原子,完成双齿配体的桥接结合。\n11. 在模板工具面板中,单击 '类型(Type)' 下拉菜单,将配体类型从 'Bidentate'(双齿)切换为 'Monodentate'(单齿),然后单击 'Ligand' 下拉菜单并选择 'ammine'(氨)配体。\n12. 在 3D 视图中,单击剩余的第三个占位氢原子将其替换为氨配体。\n13. 在 3D 视图中,单击最后一个剩余的氢原子,将其替换为第二个氨配体,完成目标化合物构建。",
|
||||
"steps_original": "1. 打开 Template Tool。\n2. 切换到 Centers 选项卡。\n3. 输入 'Ni' 或从弹出菜单中选择镍元素。\n4. 连续单击形式电荷数值框旁的向上箭头('^')按钮两次,将正电荷设置为 +2。\n5. 单击坐标下拉菜单将其展开,在列表中选择 '4: Square Planar' 平面四方几何形状。\n6. 点击空白区域,放置镍中心,四个氢原子会显示在配位位置。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"id": "building-metal-complexes_task7",
|
||||
"snapshot": "avogadro",
|
||||
"instruction": "在 Avogadro 2 中,创建具有两个环戊二烯基 (Cp) 和两个氯配体的 ZrCp2Cl2 配合物。",
|
||||
"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. 在键盘上按下快捷键 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. 点击剩余两个氢原子,分别替换为两个氯配体。" }
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "building-organic-molecules_task1",
|
||||
"snapshot": "avogadro",
|
||||
"instruction": "在 Avogadro 2 中,使用软件的 Build 工具插入一个苯环。",
|
||||
"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. 点击菜单栏构建(B) → 插入(I) → 分子…,打开\"插入片段\"对话框。\n2. 在\"筛选\"输入框中输入 benzene。\n3. 筛选结果会显示一个 aromatics 文件夹(树形结构),需要双击或点击展开该文件夹。\n4. 展开后选中列表中的 benzene.cjson 文件。\n5. 点击\"插入\"按钮将苯环插入到工作区。\n6. 点击关闭按钮关闭\"插入片段\"对话框,确认苯环已显示在主工作界面中。",
|
||||
"steps_original": "1. 点击 Build → Insert → Molecule。\n2. 搜索 'benzene' 并确定插入该分子。\n3. 确保苯环显示在工作界面中。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"id": "building-organic-molecules_task3",
|
||||
"snapshot": "avogadro",
|
||||
"instruction": "在 Avogadro 2 中,在甲苯分子的对位添加一硝基(-NO2),生成 4-硝基甲苯。",
|
||||
"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. 按下 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 运行几何优化确保分子结构正确。" }
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "building-organic-molecules_task5",
|
||||
"snapshot": "avogadro",
|
||||
"instruction": "在 Avogadro 2 中,使用 Draw Tool 创建一个单碳结构,然后添加一个羧基(-COOH)。",
|
||||
"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. 在工具栏中单击 '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. 点击单碳结构上的一个氢原子,将其替换为羧基。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "building-organic-molecules_task9",
|
||||
"snapshot": "avogadro",
|
||||
"instruction": "在 Avogadro 2 中,创建一个 4-甲氧基-3-硝基苯甲酸分子,包含苯环、羧基、硝基和甲氧基。",
|
||||
"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. 单击菜单栏 '构建(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 运行几何优化确保分子结构正确。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"id": "naming-a-molecule_task1",
|
||||
"snapshot": "avogadro",
|
||||
"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:\\Users\\user\\Desktop\\ethanol.sdf"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": ["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 名称、分子质量、单同位素质量、化学式、原子数、键数、净电荷和净自旋多重度等相关信息。" }
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"id": "viewing-electrostatic-potential_task1",
|
||||
"snapshot": "avogadro",
|
||||
"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:\\Users\\user\\Desktop\\ethanol.sdf"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"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": ["ethanol.sdf"],
|
||||
"steps_original": "1. 单击菜单栏 'Analyze' → '创建表面...'。\n2. 在弹出的对话框中确认表面设置为 'Van der Waals'。\n3. 将 '着色按' 设置为 '静电势'。\n4. 根据可用选项设置色阶。\n5. 单击 '计算' 按钮开始计算,完成后单击 '关闭'。"
|
||||
}
|
||||
}
|
||||
@@ -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的副作用信息列表。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/imagej/user-guide_task1.json
Normal file
45
evaluation_examples/examples/imagej/user-guide_task1.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "user-guide_task1",
|
||||
"snapshot": "imagej",
|
||||
"instruction": "在 ImageJ 中,通过 File → New → Image 创建一个名为 'Text Image' 的新图像,设置图像类型为 8-bit,背景填充为 White,并设置宽度为 40 像素,高度为 40 像素。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\ImageJ\\ImageJ.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"imagej"
|
||||
],
|
||||
"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. 在顶部菜单栏中,单击展开 \"File\" 菜单。\n2. 在展开的菜单中,单击展开 \"New\" 子菜单。\n3. 在 \"New\" 子菜单中,单击选择 \"Image...\" 选项,打开 \"New Image...\" 对话框。\n4. 在 \"New Image...\" 对话框中,单击 \"Name:\" 右侧的文本输入框以定位光标。\n5. 清空该输入框的已有内容,输入文本 \"Text Image\"。\n6. 单击 \"Type:\" 右侧的下拉菜单以展开选项列表。\n7. 在展开的选项列表中,单击选择 \"8-bit\"。\n8. 单击 \"Fill With:\" 右侧的下拉菜单以展开选项列表。\n9. 在展开的选项列表中,单击选择 \"White\"。\n10. 单击 \"Width:\" 右侧的文本输入框以定位光标。\n11. 清空该输入框的已有内容,输入数字 \"40\"。\n12. 单击 \"Height:\" 右侧的文本输入框以定位光标。\n13. 清空该输入框的已有内容,输入数字 \"40\"。\n14. 单击对话框底部的 \"OK\" 按钮完成创建。",
|
||||
"steps_original": "1. 在菜单栏点击 File → New → Image。\n2. 在弹出的对话框中输入名称 'Text Image'。\n3. 从 Type 下拉菜单中选择 '8-bit'。\n4. 从 Fill With 下拉菜单中选择 'White'。\n5. 在宽度(Width)框中输入 40。\n6. 在高度(Height)框中输入 40。\n7. 点击 OK 按钮完成操作。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/imagej/user-guide_task10.json
Normal file
45
evaluation_examples/examples/imagej/user-guide_task10.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "user-guide_task10",
|
||||
"snapshot": "imagej",
|
||||
"instruction": "在 ImageJ 中,通过 Edit → Selection → Restore Selection 恢复之前存储的选区。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\ImageJ\\ImageJ.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"imagej"
|
||||
],
|
||||
"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. 单击软件顶部菜单栏的 \"Edit\" 菜单。\n2. 在弹出的下拉菜单中,单击(或将鼠标悬停在) \"Selection\" 选项以展开子菜单。\n3. 在弹出的子菜单中,单击 \"Restore Selection\" 选项(或直接按下快捷键 \"E\")来恢复图像上的选区。",
|
||||
"steps_original": "1. 在菜单栏点击 Edit → Selection → Restore Selection。\n2. 在图像上确保选区可见。\n3. 查看并确认选区正确恢复。"
|
||||
}
|
||||
}
|
||||
58
evaluation_examples/examples/imagej/user-guide_task2.json
Normal file
58
evaluation_examples/examples/imagej/user-guide_task2.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"id": "user-guide_task2",
|
||||
"snapshot": "imagej",
|
||||
"instruction": "在 ImageJ 中,通过 Process → Find Maxima 对 blobs.gif 图像执行 Maxima 寻找,设置噪声容忍值为 50,并选择 Output Type 为 'Single Points'。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "upload_file",
|
||||
"parameters": {
|
||||
"files": [
|
||||
{
|
||||
"local_path": "evaluation_examples/data/imagej/blobs.gif",
|
||||
"path": "C:\\Users\\user\\Desktop\\blobs.gif"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\ImageJ\\ImageJ.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"imagej"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"input_files": [
|
||||
"blobs.gif"
|
||||
],
|
||||
"steps": "1. 点击主界面菜单栏的 \"File\" 菜单。\n2. 在展开的下拉菜单中,单击选择 \"Open...\" 选项。\n3. 在弹出的文件选择对话框中,浏览并单击选中 \"blobs.gif\" 文件。\n4. 单击对话框底部的 \"打开\"(或 \"Open\")按钮以加载该图像。\n5. 点击主界面菜单栏的 \"Process\" 菜单。\n6. 在展开的下拉菜单中,单击选择 \"Find Maxima...\" 选项。\n7. 在弹出的 \"Find Maxima...\" 对话框中,单击将光标定位到 \"Noise Tolerance:\" 右侧的文本输入框。\n8. 清空该输入框中的现有内容。\n9. 在该输入框中输入数值 \"50\"。\n10. 单击 \"Output type:\" 右侧的下拉菜单控件以展开选项列表。\n11. 在展开的下拉列表中,单击选中 \"Single Points\" 选项。\n12. 单击对话框底部的 \"OK\" 按钮以执行操作并关闭对话框。",
|
||||
"steps_original": "1. 打开 blobs.gif 文件。\n2. 在菜单栏点击 Process → Find Maxima。\n3. 在弹出的对话框中,将 Noise Tolerance 设置为 50。\n4. 从 Output Type 下拉菜单中选择 'Single Points'。\n5. 点击 OK 按钮完成操作。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/imagej/user-guide_task3.json
Normal file
45
evaluation_examples/examples/imagej/user-guide_task3.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "user-guide_task3",
|
||||
"snapshot": "imagej",
|
||||
"instruction": "在 ImageJ 中,通过 Plugins → Utilities → Find Commands 查找关键字 'threshold' 的相关命令,显示完整信息并运行 'Adaptive3DThreshold'。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\ImageJ\\ImageJ.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"imagej"
|
||||
],
|
||||
"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. 在顶部菜单栏中,单击 \"Plugins\" 菜单。\n2. 在展开的下拉菜单中,单击 \"Utilities\" 子菜单以展开次级菜单。\n3. 在次级菜单中,单击 \"Find Commands...\" 选项以打开 Command Finder 窗口。\n4. 在弹出的 \"Command Finder\" 窗口中,单击 \"Type part of a command:\" 标签右侧的文本输入框以定位光标。\n5. 在该文本输入框中,输入文字 \"threshold\"。\n6. 在窗口的选项区域中,单击勾选 \"Show full information\" 复选框。\n7. 在中间的搜索结果列表中,双击名为 \"Adaptive3DThreshold\" 的列表项以运行该命令。",
|
||||
"steps_original": "1. 在菜单栏点击 Plugins → Utilities → Find Commands。\n2. 在弹出的 Command Finder 窗口中输入 'threshold'。\n3. 勾选 'Show full information'。\n4. 在列表中选择 'Adaptive3DThreshold' 并双击运行命令。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/imagej/user-guide_task4.json
Normal file
45
evaluation_examples/examples/imagej/user-guide_task4.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "user-guide_task4",
|
||||
"snapshot": "imagej",
|
||||
"instruction": "在 ImageJ 中,通过 Image → Adjust → Threshold 使用 'Default' 自动阈值法对当前图像进行阈值分割,并设置显示模式为 Over/Under。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\ImageJ\\ImageJ.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"imagej"
|
||||
],
|
||||
"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. 在主界面顶部菜单栏中,单击 \"Image\" 菜单项\n2. 在弹出的下拉菜单中,将鼠标移动并单击 \"Adjust\" 子菜单项\n3. 在弹出的级联菜单中,单击 \"Threshold...\" 选项,打开 \"Threshold\" 对话框\n4. 在弹出的 \"Threshold\" 对话框中,单击左侧中间的自动阈值方法下拉菜单(位于 \"Dark background\" 复选框上方)\n5. 在展开的下拉列表中,单击选中 \"Default\" 选项\n6. 在 \"Threshold\" 对话框中,单击右侧中间的显示模式下拉菜单(位于自动阈值方法下拉菜单的右侧)\n7. 在展开的下拉列表中,单击选中 \"Over/Under\" 选项\n8. 在 \"Threshold\" 对话框底部的按钮区,单击 \"Apply\" 按钮完成阈值分割操作",
|
||||
"steps_original": "1. 在菜单栏点击 Image → Adjust → Threshold。\n2. 在弹出的对话框中,从 Method 下拉菜单选择 'Default'。\n3. 确保 Display 模式设置为 'Over/Under'。\n4. 点击 Apply 按钮完成操作。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/imagej/user-guide_task5.json
Normal file
45
evaluation_examples/examples/imagej/user-guide_task5.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "user-guide_task5",
|
||||
"snapshot": "imagej",
|
||||
"instruction": "在 ImageJ 中,通过 Analyze → Tools → Curve Fitting 对数据拟合二次多项式,并将最大迭代次数设为 100。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\ImageJ\\ImageJ.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"imagej"
|
||||
],
|
||||
"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. 在顶部菜单栏中,单击 \"Analyze\" 菜单。\n2. 在展开的下拉菜单中,鼠标悬停或单击 \"Tools\" 子菜单以将其展开。\n3. 在 \"Tools\" 子菜单列表中,单击选择 \"Curve Fitting...\" 选项。\n4. 在弹出的 \"Curve Fitter\" 对话框中,单击左上角的函数类型下拉菜单(默认可能显示为 \"Straight Line\" 或其他选项)。\n5. 在展开的下拉列表中,单击选择 \"2nd Degree Polynomial\" 选项。\n6. 在 \"Curve Fitter\" 对话框的上方,单击勾选 \"Show settings\" 复选框(此为弹出高级设置的前提条件)。\n7. 单击对话框上方的 \"Fit\" 按钮。\n8. 在随之弹出的 \"Simplex Fitting Options\" 对话框中,找到 \"Maximum iterations:\" 标签右侧的数值输入框。\n9. 单击该输入框,将光标定位到输入框内部。\n10. 清空输入框中已有的默认数值(例如 4500)。\n11. 在输入框中通过键盘输入数值 \"100\"。\n12. 单击 \"Simplex Fitting Options\" 对话框底部的 \"OK\" 按钮以应用设置并完成拟合。",
|
||||
"steps_original": "1. 在菜单栏点击 Analyze → Tools → Curve Fitting。\n2. 在弹出的对话框中,从 Function 下拉菜单选择 '2nd Degree Polynomial'。\n3. 点击 Fit 按钮。\n4. 在 Simplex Fitting Options 中,将 Maximum number of iterations 设置为 100。\n5. 点击 OK 按钮完成拟合。"
|
||||
}
|
||||
}
|
||||
58
evaluation_examples/examples/imagej/user-guide_task6.json
Normal file
58
evaluation_examples/examples/imagej/user-guide_task6.json
Normal file
@@ -0,0 +1,58 @@
|
||||
{
|
||||
"id": "user-guide_task6",
|
||||
"snapshot": "imagej",
|
||||
"instruction": "在 ImageJ 中,通过 Image → Transform → Rotate 90 Degrees Right 旋转 mri-stack.tif 图像 90°。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "upload_file",
|
||||
"parameters": {
|
||||
"files": [
|
||||
{
|
||||
"local_path": "evaluation_examples/data/imagej/mri-stack.tif",
|
||||
"path": "C:\\Users\\user\\Desktop\\mri-stack.tif"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\ImageJ\\ImageJ.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"imagej"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"input_files": [
|
||||
"mri-stack.tif"
|
||||
],
|
||||
"steps": "1. 在顶部菜单栏中,单击 \"File\" 菜单项。\n2. 在展开的下拉菜单中,单击 \"Open...\" 选项。\n3. 在弹出的文件选择对话框中,找到并单击选中名为 \"mri-stack.tif\" 的文件。\n4. 单击文件选择对话框右下角的 \"打开\" 按钮加载图像。\n5. 确保新打开的 \"mri-stack.tif\" 图像窗口处于前台激活状态。\n6. 在顶部菜单栏中,单击 \"Image\" 菜单项。\n7. 在展开的下拉菜单中,将鼠标指针移动并悬停在 \"Transform\" 选项上,以展开级联子菜单。\n8. 在弹出的级联子菜单中,单击 \"Rotate 90 Degrees Right\" 选项。\n9. 观察处于激活状态的图像窗口,确认图像内容已顺时针旋转 90 度。\n10. 在顶部菜单栏中,单击 \"File\" 菜单项。\n11. 在展开的下拉菜单中,单击 \"Save\" 选项将旋转结果保存到原文件。",
|
||||
"steps_original": "1. 打开 mri-stack.tif 文件。\n2. 在菜单栏点击 Image → Transform → Rotate 90 Degrees Right。\n3. 确保图像正确旋转后保存或查看结果。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/imagej/user-guide_task7.json
Normal file
45
evaluation_examples/examples/imagej/user-guide_task7.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "user-guide_task7",
|
||||
"snapshot": "imagej",
|
||||
"instruction": "在 ImageJ 中,通过 Process → Binary → Options 设置黑色背景选项为开启状态并进行预览。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\ImageJ\\ImageJ.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"imagej"
|
||||
],
|
||||
"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. 在顶部菜单栏中,单击 \"Process\" 菜单项。\n2. 在弹出的下拉菜单中,将鼠标悬停或单击 \"Binary\" 子菜单项以将其展开。\n3. 在展开的 \"Binary\" 子菜单中,单击 \"Options...\" 菜单项,打开选项对话框。\n4. 在弹出的选项对话框中,单击勾选 \"Black background\" 复选框。\n5. 在同一个对话框中,单击勾选 \"Preview\" 复选框以预览效果。\n6. 单击对话框底部的 \"OK\" 按钮以保存设置并关闭对话框。",
|
||||
"steps_original": "1. 在菜单栏点击 Process → Binary → Options。\n2. 在弹出的对话框中勾选 'Black Background'。\n3. 点击 Preview 查看效果。\n4. 点击 OK 按钮保存选项。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/imagej/user-guide_task8.json
Normal file
45
evaluation_examples/examples/imagej/user-guide_task8.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "user-guide_task8",
|
||||
"snapshot": "imagej",
|
||||
"instruction": "在 ImageJ 中,通过 File → Save As → PNG 保存当前图像为 PNG 格式,设置透明索引为 255。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\ImageJ\\ImageJ.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"imagej"
|
||||
],
|
||||
"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. 在顶部菜单栏中,单击 \"Edit\" 菜单项。\n2. 在弹出的下拉菜单中,将鼠标悬停或单击 \"Options\" 选项以展开子菜单。\n3. 在子菜单中,单击 \"Input/Output...\" 选项,打开 Input/Output Options 设置对话框。\n4. 在弹出的对话框中,单击定位到用于设置透明索引(Transparent index)的文本输入框。\n5. 清空该输入框中的原有数值。\n6. 在输入框中输入数字 \"255\"。\n7. 单击对话框底部的 \"OK\" 按钮以保存设置并关闭对话框。\n8. 在顶部菜单栏中,单击 \"File\" 菜单项。\n9. 在弹出的下拉菜单中,将鼠标悬停或单击 \"Save As\" 选项以展开子菜单。\n10. 在子菜单中,单击 \"PNG...\" 选项,打开系统的文件保存对话框。\n11. 在弹出的文件保存对话框中,单击定位到用于输入文件名的文本输入框。\n12. 在输入框中输入目标文件名。\n13. 在对话框的目录树或路径地址栏中,浏览并单击选中指定的保存路径。\n14. 单击对话框右下角的 \"Save\"(或 \"保存\")按钮以确认并完成文件保存。",
|
||||
"steps_original": "1. 在菜单栏点击 File → Save As → PNG。\n2. 在弹出的对话框中,将透明索引设置为 255。\n3. 输入文件名并指定保存路径。\n4. 点击 OK 按钮完成保存。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/imagej/user-guide_task9.json
Normal file
45
evaluation_examples/examples/imagej/user-guide_task9.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "user-guide_task9",
|
||||
"snapshot": "imagej",
|
||||
"instruction": "在 ImageJ 中,通过 Analyze → Measure 测量当前选区的面积和灰度值。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\ImageJ\\ImageJ.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"imagej"
|
||||
],
|
||||
"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. 在 ImageJ 主界面的工具栏中,单击选中一种区域选区工具图标(例如左侧第一个的“矩形选区工具” Rectangular Selection Tool)\n2. 在当前活跃的图像窗口中,将鼠标光标定位到待测量区域的起始点\n3. 按下并按住鼠标左键,拖动鼠标以在图像上绘制出一个覆盖目标区域的选区框\n4. 松开鼠标左键,完成选区的创建\n5. 在 ImageJ 顶部的主菜单栏中,单击“Analyze”菜单以展开下拉列表\n6. 在展开的“Analyze”下拉菜单中,单击选择“Measure”选项(或按下快捷键 'm')\n7. 在系统自动弹出的名为“Results”的表格窗口中,定位到表格最后新增的一行测量数据\n8. 在该行数据中,分别读取“Area”列对应的数值(面积)以及“Mean”列对应的数值(平均灰度值)",
|
||||
"steps_original": "1. 创建或选择一个区域选区。\n2. 在菜单栏点击 Analyze → Measure。\n3. 在弹出的 Results 窗口中查看面积和灰度值等测量结果。"
|
||||
}
|
||||
}
|
||||
30
evaluation_examples/examples/jade/MDIJade6.5使用手册_task1.json
Normal file
30
evaluation_examples/examples/jade/MDIJade6.5使用手册_task1.json
Normal file
@@ -0,0 +1,30 @@
|
||||
{
|
||||
"id": "MDIJade6.5使用手册_task1",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 MDI Jade 中通过菜单 File → Patterns 加载衍射数据文件 DEMO01.MDI。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"steps": "1. 在 Windows 桌面找到名为 MDI Jade 的快捷方式图标。\n2. 双击该快捷方式图标启动 MDI Jade 软件。\n3. 在软件主界面顶部的菜单栏中,单击 File 菜单。\n4. 在弹出的下拉菜单中,单击 Patterns... 选项,打开读入文件对话框。\n5. 在弹出的 Read Pattern Files 对话框中,在中间的 File Name 文件列表区域,寻找并单击选中名为 DEMO01.MDI 的文件。\n6. 单击该对话框左上方的 Read 按钮,将选定的衍射数据文件加载到软件中。",
|
||||
"steps_original": "1. 在桌面找到 MDI Jade 图标,双击打开软件。\n2. 点击菜单 File → Patterns。\n3. 在弹出的对话框中选择 DEMO01.MDI 并点击 Open。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/jade/MDIJade6.5使用手册_task10.json
Normal file
45
evaluation_examples/examples/jade/MDIJade6.5使用手册_task10.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "MDIJade6.5使用手册_task10",
|
||||
"snapshot": "jade",
|
||||
"instruction": "从菜单 Options → Cell Refinement 打开晶胞点阵参数对话框并精修点阵常数。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"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. 使用键盘快捷键 Shift+Ctrl+F4 直接打开 Cell Refinement(晶胞精细化)对话框(等价于菜单 Options → Cell Refinement,但快捷键更可靠;也可以在同一个代码块中先点击 Options 菜单再立即点击 Cell Refinement 菜单项,中间仅 sleep 0.5 秒,注意必须在同一步完成以防菜单自动关闭)。\n2. 等待晶胞点阵参数对话框弹出,查看当前显示的点阵参数列表。\n3. 单击该对话框中的 \"Refine\" 按钮,开始执行点阵参数精修计算。\n4. 等待精修计算完成,并查看对话框中更新后的精修结果数值。\n5. 单击对话框中的 \"Save\" 按钮,保存当前的精修结果。\n6. 单击对话框底部或右上角的 \"Close\"(或关闭)按钮,关闭晶胞点阵参数对话框。",
|
||||
"steps_original": "1. 点击菜单 Options → Cell Refinement。\n2. 在弹出的对话框中检查点阵参数。\n3. 点击 Refine 按钮进行精修。\n4. 检查精修结果并保存。"
|
||||
}
|
||||
}
|
||||
43
evaluation_examples/examples/jade/MDIJade6.5使用手册_task2.json
Normal file
43
evaluation_examples/examples/jade/MDIJade6.5使用手册_task2.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"id": "MDIJade6.5使用手册_task2",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 JADE 中通过 File → Save-Primary Pattern as *.txt 将当前衍射图谱导出为 ASCII 格式,保存为 DEMO01.txt。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"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\")按钮"
|
||||
}
|
||||
}
|
||||
43
evaluation_examples/examples/jade/MDIJade6.5使用手册_task3.json
Normal file
43
evaluation_examples/examples/jade/MDIJade6.5使用手册_task3.json
Normal file
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"id": "MDIJade6.5使用手册_task3",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 Jade 中使用 Search/Match 功能进行物相检索,并限制元素范围为 Ca, Si, O。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"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. 等待检索完成,确认出现检索结果窗口。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/jade/MDIJade6.5使用手册_task4.json
Normal file
45
evaluation_examples/examples/jade/MDIJade6.5使用手册_task4.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "MDIJade6.5使用手册_task4",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 JADE 中通过 Options → Report-Peak ID Extended 计算 RIR 方法的物相质量分数,并保存结果为 PDF 格式。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"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. 在顶部菜单栏中,单击选中 \"Options\" 菜单。\n2. 在展开的下拉菜单中,单击选中 \"Report-Peak ID Extended\"。\n3. 在弹出的 \"Peak ID Extended Report\" 对话框中,查看列表区域确认结果数据完整。\n4. 点击该对话框顶部工具栏中的 \"Save\" 按钮。\n5. 在弹出的 \"Enter File Name to Save\" 对话框中,找到底部的 \"保存类型(T)\" 下拉菜单。\n6. 点击 \"保存类型(T)\" 下拉菜单,选择 \"PDF Overlay List File (*.pdf)\"(或相应的 PDF 格式)。\n7. 在 \"文件名(N)\" 输入框中,单击定位光标并输入需要的文件名。\n8. 单击对话框右下角的 \"保存(S)\" 按钮完成保存。",
|
||||
"steps_original": "1. 打开菜单 Options → Report-Peak ID Extended。\n2. 确认结果数据,确保内容显示完整。\n3. 点击 Save,选择文件类型为 PDF。\n4. 输入文件名并点击保存。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/jade/MDIJade6.5使用手册_task5.json
Normal file
45
evaluation_examples/examples/jade/MDIJade6.5使用手册_task5.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "MDIJade6.5使用手册_task5",
|
||||
"snapshot": "jade",
|
||||
"instruction": "通过 Report → Peak Search Report 菜单计算晶粒大小及微观应变,设置 D 值为 1。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"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. 单击顶部主菜单栏中的 \"Report\" 菜单。\n2. 在展开的下拉菜单中,单击选中 \"Size & Strain Plot\" 菜单项。\n3. 在弹出的 \"Estimate Crystallite Size & Strain from Peak Broadening\" 对话框中,单击选中顶部的 \"Size/Strain\" 单选框。\n4. 将鼠标光标定位到该单选框右侧的 D 值输入框(位于 \"Origin(0,0)\" 选项的右侧)。\n5. 选中或清空输入框内的当前数值(如 2.0),通过键盘输入数字 \"1\"。\n6. 单击对话框左上方的 \"Save\" 按钮以保存计算结果图片。",
|
||||
"steps_original": "1. 点击菜单 Report → Peak Search Report。\n2. 在弹出的对话框中选择 Size/strain 选项。\n3. 设置反卷积参数 D 值为 1。\n4. 点击 Save 按钮保存计算结果。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/jade/MDIJade6.5使用手册_task6.json
Normal file
45
evaluation_examples/examples/jade/MDIJade6.5使用手册_task6.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "MDIJade6.5使用手册_task6",
|
||||
"snapshot": "jade",
|
||||
"instruction": "通过 File → Save 菜单保存当前仪器半高宽校正曲线到 Si_hw_curve.fwhm。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"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. 单击顶部菜单栏的 \"File\" 菜单项\n2. 在展开的下拉菜单中,单击 \"Save\" 菜单项以展开级联子菜单\n3. 在展开的子菜单中,单击选择 \"FWHM Curve of Peaks\" 菜单项,打开保存文件对话框\n4. 在弹出的保存对话框中,单击定位到 \"文件名\" (或 File name) 输入框\n5. 清空 \"文件名\" 输入框中的已有内容\n6. 在 \"文件名\" 输入框中输入文字 \"Si_hw_curve.fwhm\"\n7. 单击对话框底部的 \"保存\" (或 Save) 按钮完成保存操作",
|
||||
"steps_original": "1. 点击菜单 File。\n2. 选择 Save → FWHM Curve of Peaks。\n3. 在保存对话框中输入文件名 Si_hw_curve.fwhm。\n4. 点击 Save 按钮完成保存。"
|
||||
}
|
||||
}
|
||||
44
evaluation_examples/examples/jade/MDIJade6.5使用手册_task7.json
Normal file
44
evaluation_examples/examples/jade/MDIJade6.5使用手册_task7.json
Normal file
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"id": "MDIJade6.5使用手册_task7",
|
||||
"snapshot": "jade",
|
||||
"instruction": "调用 Options → D-Spacing 菜单计算已知结构的衍射谱,加权强度公式为 Z = 12。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"steps": "1. 单击顶部菜单栏的 \"Options\" 菜单\n2. 在弹出的下拉菜单中,单击 \"D-Spacing & hkl...\" 菜单项,打开 \"Calculate d-Spacing & Miller Indices\" 对话框\n3. 在弹出的对话框左下区域,找到 Z 值输入框(位于化学公式输入框的下方,\"Density(c)=\" 文本的左侧,截图中显示为 \"6.0\" 的位置)\n4. 单击该 Z 值输入框将光标定位其中\n5. 清空该输入框中的原有数值\n6. 在该输入框中输入数值 \"12\"\n7. 单击对话框顶部按钮栏中的 \"Calc\" 按钮以生成计算结果\n8. 单击对话框顶部按钮栏最左侧的 \"Close\" 按钮以关闭当前窗口",
|
||||
"steps_original": "1. 打开菜单 Options → D-Spacing。\n2. 在计算衍射谱对话框中,设置加权强度公式参数 Z 值为 12。\n3. 点击 Calculate 按钮以生成计算结果。\n4. 检查结果并关闭窗口。"
|
||||
}
|
||||
}
|
||||
45
evaluation_examples/examples/jade/MDIJade6.5使用手册_task8.json
Normal file
45
evaluation_examples/examples/jade/MDIJade6.5使用手册_task8.json
Normal file
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "MDIJade6.5使用手册_task8",
|
||||
"snapshot": "jade",
|
||||
"instruction": "通过 Options → Calculate Stress 菜单计算残余应力,使用 Fit All 功能拟合曲线。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"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. 在顶部菜单栏中,单击 \"Options\" 菜单。\n2. 在展开的下拉菜单中,单击 \"Calculate Stress\" 菜单项。\n3. 在弹出的计算残余应力相关对话框中,单击名为 \"Fit All\" 的按钮。\n4. 观察主窗口中显示的拟合曲线图,确认拟合已完成。\n5. 单击名为 \"Save\" 的按钮,以保存拟合结果文件。",
|
||||
"steps_original": "1. 点击菜单 Options → Calculate Stress。\n2. 在弹出的对话框中,选择以 Fit All 功能拟合所有数据。\n3. 检查拟合结果图。\n4. 点击 Save 按钮以保存拟合结果文件。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"id": "jade-guide-example_task1",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 Jade 中,通过 Edit → Preferences 打开程序设置对话框,并切换到 Instrument 标签查看设置。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"steps": "1. 在软件顶部的主菜单栏中,单击鼠标左键选择 \"Edit\" 菜单。\n2. 在展开的下拉菜单中,单击鼠标左键选择 \"Preferences\" 菜单项,等待弹出程序设置对话框。\n3. 在弹出的程序设置对话框顶部,单击鼠标左键选中名为 \"Instrument\" 的选项卡(标签页)以查看相关设置。",
|
||||
"steps_original": "1. 在主菜单中点击 Edit。\n2. 选择 Preferences,打开程序设置对话框。\n3. 点击对话框上方的 Instrument 标签,查看相关设置。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"id": "jade-guide-example_task10",
|
||||
"snapshot": "jade",
|
||||
"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": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"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. 按住鼠标左键不放,向上拖拽鼠标进行区域拉伸,松开鼠标左键,完成局部垂直放大。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"id": "jade-guide-example_task11",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 Jade 中,使用主工具栏的图谱平滑按钮对衍射图谱执行平滑处理。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"steps": "1. 在主界面顶部的主工具栏中,找到 Smooth(平滑)按钮。该按钮的图标内部有一条黑色的锯齿状/脉冲状线条,中间贯穿一条醒目的蓝色垂直线。将鼠标悬停在工具栏按钮上可看到 tooltip 提示文字来确认。\n2. 左键单击 Smooth 按钮,对当前衍射图谱执行平滑处理。\n3. 观察图谱窗口中的衍射曲线,确认由于平滑处理曲线变得更加光滑、噪声减少。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"id": "jade-guide-example_task12",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 Jade 中,使用编辑工具栏的背景扣除功能对衍射图谱执行背景扣除操作。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"steps": "1. 在主界面下方的编辑工具栏中,定位到\"扣除背景\"(Background,通常标为 BG)按钮。\n2. 鼠标左键单击 BG 按钮一次,此时图谱上会叠加显示一条黄色背景曲线,并在曲线上出现可拖动的红色控制点(即背景预览模式)。\n3. 再次单击 BG 按钮(或在预览模式下确认),完成背景扣除操作。完成后图谱底部基线应变得扁平(接近零强度),背景曲线和红色控制点消失,图谱仅显示扣除背景后的衍射峰。\n关键判据:最终截图中衍射图谱的底部基线必须是扁平的,黄线和红点必须消失,否则视为未完成。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,44 @@
|
||||
{
|
||||
"id": "jade-guide-example_task2",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 Jade 中,设置 NBS Silicon 为XRD背底曲线并查看峰宽。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"steps": "1. 单击顶部菜单栏中的 \"Edit\" 菜单。\n2. 在弹出的下拉菜单中,单击选中 \"preferences\" 菜单项,打开程序设置对话框。\n3. 在程序设置对话框中,单击选中 \"Instrument\" 标签页。\n4. 单击对话框最下方的下拉菜单控件以将其展开。\n5. 在展开的下拉列表选项中,单击选中 \"NBS Silicon1\"。\n6. 单击对话框中的 \"VIEW FWHM Curve\" 按钮以查看峰宽曲线。",
|
||||
"steps_original": "1. 在程序设置对话框中点击 Instrument 标签。\n2. 从下拉菜单中选择 NBS Silicon1 作为 XRD 背底曲线。\n3. 点击 'View FWHM Curve' 查看峰宽曲线。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
{
|
||||
"id": "jade-guide-example_task3",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 Jade 中,通过 File → Patterns 打开衍射数据文件 DEMO01.MDI。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"input_files": [
|
||||
"DEMO01.MDI"
|
||||
],
|
||||
"steps": "1. 单击主界面顶部菜单栏中的 \"File\" 菜单项\n2. 在展开的下拉菜单中,单击 \"Patterns\" 菜单项,弹出数据文件读入窗口\n3. 在文件读入窗口中,单击磁盘选择下拉菜单将其展开\n4. 在弹出的驱动器列表中,单击选中目标文件所在的磁盘\n5. 在文件夹树形列表中,双击展开并选中包含目标文件的文件夹\n6. 单击文件类型下拉菜单将其展开\n7. 在弹出的文件类型列表中,单击选中 \"All\" 数据类型选项\n8. 在文件展示列表中,单击选中名为 \"DEMO01.MDI\" 的数据文件\n9. 单击窗口中的 \"Read\" 命令按钮,以读入该数据文件",
|
||||
"steps_original": "1. 在主菜单中点击 File。\n2. 选择 Patterns,打开文件选择对话框。\n3. 浏览并选择 DEMO01.MDI 文件,点击 Read。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"id": "jade-guide-example_task4",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 Jade 中,通过 File → Patterns 使用 Add 按钮叠加衍射数据文件 DEMO02.MDI 到当前窗口。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"steps": "1. 单击主菜单栏中的”File”菜单项。\n2. 在弹出的下拉菜单中,单击”Patterns”菜单项,打开数据文件读入窗口。\n3. 在文件列表框中,单击选中 DEMO02.MDI 数据文件。\n4. 单击窗口右侧区域的”Add”命令按钮,将该数据文件叠加显示到当前窗口中。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,45 @@
|
||||
{
|
||||
"id": "jade-guide-example_task5",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 Jade 中,创建 PDF 数据库索引卡并保存到默认路径。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"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. 单击软件顶部主菜单栏中的 \"Tools\" 菜单。\n2. 在展开的下拉菜单中,单击对应创建索引的菜单项,打开 PDF 索引建立窗口。\n3. 在打开的 PDF 索引建立窗口中,单击选中 \"PDF2.DAT 文件\" 选项(或单击对应按钮选择该文件)作为数据来源。\n4. 观察窗口中“保存索引的位置”路径输入框,确认其保持为系统自动设置的默认路径,无需进行修改。\n5. 单击 PDF 索引建立窗口中的 \"Select All\" 按钮,以全选所需内容。\n6. 单击 PDF 索引建立窗口中的 \"Create\" 按钮开始建立索引。\n7. 等待程序运行(约需 10 分钟),直到索引生成过程完全结束。",
|
||||
"steps_original": "1. 在主菜单中点击 Tools。\n2. 选择 'PDF2DAT 文件',打开 PDF 索引创建窗口。\n3. 点击 Select All 命令。\n4. 点击 Create 按钮,等待索引生成完成。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"id": "jade-guide-example_task6",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 Jade 中,执行背景扣除后,通过主工具栏的自动寻峰按钮对衍射图谱执行自动寻峰。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"steps": "1. 在主界面下方的编辑工具栏中,左键单击\"扣除背景\"(BG)按钮,对衍射图谱执行背景扣除操作,确认背景基线已被扣除。\n2. 在主界面的主工具栏中,左键单击\"自动寻峰\"按钮。\n3. 观察主工作窗口中的衍射曲线,确认各个衍射峰处已自动添加峰标记符号。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,46 @@
|
||||
{
|
||||
"id": "jade-guide-example_task7",
|
||||
"snapshot": "jade_bg_peaked",
|
||||
"instruction": "在 Jade 中,使用编辑工具栏的手动寻峰功能,在一个未标记的衍射峰位置左键单击添加峰标记,然后在一个已有的自动寻峰标记处右键单击删除该峰标记。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"input_files": [
|
||||
"DEMO01.MDI"
|
||||
],
|
||||
"steps": "1. 在主界面下方的编辑工具栏中,左键单击\"手动寻峰\"命令按钮。\n2. 在主界面的图谱显示窗口中,将鼠标光标移动到某一个未标记的衍射峰下方位置。\n3. 在该位置左键单击,添加一个新的峰标记。\n4. 在图谱显示窗口中,将鼠标光标移动到另一个已有峰标记的垂直中心线位置。\n5. 在该中心线处右键单击,删除该处的峰标记。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"id": "jade-guide-example_task8",
|
||||
"snapshot": "jade_bg_peaked",
|
||||
"instruction": "在 Jade 中,通过 >> → Report → Peak Search Report 查看寻峰报告。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"steps": "1. 单击工具栏中的\">>\"按钮展开更多选项菜单。\n2. 在展开的选项中单击\"Report\"菜单项。\n3. 在子菜单中选择并单击\"Peak Search Report\",打开寻峰报告对话框进行查看。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,43 @@
|
||||
{
|
||||
"id": "jade-guide-example_task9",
|
||||
"snapshot": "jade",
|
||||
"instruction": "在 Jade 中,执行背景扣除和自动寻峰后,对一个衍射峰区域进行单峰拟合:在全谱窗口中框选峰区域,右键点击自动拟合按钮打开参数对话框,勾选 Individual Profiles,执行 Initialize 和 Refine 操作。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\JADE\\jade 6.5\\MDI Jade 6.5\\jade6.5.exe"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval"
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low",
|
||||
"metadata": {
|
||||
"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% 为止。"
|
||||
}
|
||||
}
|
||||
@@ -1,29 +0,0 @@
|
||||
{
|
||||
"id": "jade_test",
|
||||
"snapshot": "snapshot",
|
||||
"instruction": "请打开桌面上的 JADE 6.5 软件",
|
||||
"source": "custom",
|
||||
"config": [],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"jade"
|
||||
],
|
||||
"evaluator": {
|
||||
"postconfig": [
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 3
|
||||
}
|
||||
}
|
||||
],
|
||||
"func": "vllm_eval",
|
||||
"result": {
|
||||
"type": "vm_command_line",
|
||||
"command": "tasklist | findstr /i jade"
|
||||
}
|
||||
},
|
||||
"proxy": false,
|
||||
"fixed_ip": false,
|
||||
"possibility_of_env_change": "low"
|
||||
}
|
||||
@@ -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、如果我们需要对文字编辑的内容进行后续的处理,可以点击添加的文字内容,接着点击【属性】选项,就可以进入到【文本对象】设置界面。在这里我们可以对曲线的文本内容进行设置,例如调整字号、字体颜色、字体格式等。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk12",
|
||||
"snapshot": "origin",
|
||||
"instruction": "在 Origin 中绘制三维图并修改Z轴",
|
||||
"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": "导入数据至工作表。\n点击【Worksheet → Convert to Matrix → Direct】将工作表数据转换为矩阵数据。\n在生成的矩阵窗口中,点击【Plot → 3D → 3D Colormap Surface】绘制三维曲面图。\n在三维图中选中 Z 轴,右键选择【Scale】进入坐标轴设置。\n在刻度设置中勾选【Reverse】选项以反转 Z 轴方向。\n点击【OK】应用设置,完成三维图的轴调整。",
|
||||
"steps_original": "1、首先我们打开Origin软件,在软件打开后可以看到一个数据表,首先要将工作数据表转化为矩阵。我们需要将相应的三维图数据输入到矩阵表格当中。在菜单栏中点击【创建矩阵】,就可以在矩阵界面中输入数据了。\n2、将相关数据输入到数据表中后,在菜单栏中点击【绘图】。接着选择需要绘制的图像,这里我们就选择绘制三维图。\n3、选择完成后,会进入到坐标轴的设置界面,我们在其中选择相对应的x、y、z的对应坐标轴,选择完成后点击创建,将可以依照我们所输入的数据创建出一个三维图。\n4、当三维图创建完成后,我们可以右键点击图像进入到图像设置界面,在设置管理界面中进一步优化三维图的相关内容。\n1、在绘制完成的图像界面中,我们可以点击上方的菜单栏,在图像界面中单击z轴,可以进入到坐标轴的管理界面。\n2、在设置管理界面中,就可以根据修改的需要对z轴进行编辑了。如果我们需要进行z轴的翻转操作,在其中勾选对应的选项框就可以实现翻转操作。\n3、除此之外,还可以通过修改矩阵数据表中的数据来实现对z轴的数据进行修改,矩阵数据表中的数据是绘制三维坐标图的来源,我们通过修改数据的方式可以从来源中实现数据轴的变化。\n4、如果我们想要对整个三维图进行视觉上的调整,可以点击菜单栏下方的坐标轴调整工具实现,点击对应的调整工具,就可以实现相应的处理效果。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk13",
|
||||
"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": "导入数据至工作表。\n选中 Y 数据列,点击【Plot → Bar, Pie, Area → Column】生成柱状图。\n双击柱状图进入设置界面,在【Fill → Color】中选择 By Points,点击【Apply】设置不同颜色。\n点击工具栏【Line Tool】,按住 Shift 在图中绘制水平线,并拖动至 Y=0 位置。\n在数据表中新增列,右键列名选择【Set Column Values】,输入公式 -col(B) 生成相反数组。",
|
||||
"steps_original": "一、Origin柱状图怎么设置不同颜色\n1、打开Origin软件,进入到主页面后,可以看到其中的数据表。我们需要在数据表中添加相应的数据。\n2、添加数据完成后,在菜单栏中点击【绘图】选项,就可以选择绘制的图形了。我们在其中选择绘制柱状图,点击【柱状图】选项后,Origin会依照我们输入的数据生成一幅柱状图。\n3、生成柱状图之后,我们可以看到柱状图中的不同柱子有着不同的颜色,同时在图例中也有不同颜色的区别。我们双击选中需要设置颜色的柱子,点击后会呈现出一个关于柱状图的设置界面。\n4、在设置界面中,我们就可以调整柱状图的颜色。在弹窗中我们可以看到几种不同的颜色设置模块,包含了【填充颜色】和【边框颜色】,我们在其中选择需要的模块进行颜色调整。\n5、设置完成后,在弹出界面下方点击【确定】,就可以完成Origin柱状图颜色的设置了。\n二、Origin柱状图怎么加一条横线\n1、首先仍然是在数据表的对应列中添加相应的数据,为了满足绘制上下对比图的需要,我们要在数据表中增添两列数据,形成相反数组和误差对照数组。\n2、添加完成数据后,在菜单栏中点击【绘图】,接着选择绘制【堆积条形图】。点击确定后,就能够在Origin中绘制出符合数据表的图形了。\n3、图表绘制完成后,就可以在图表中添加一条横线。在左侧的工具栏中点击直线工具,按住shift键并在图表的0刻度线位置添加一条刻度线。这条刻度线可以实现将柱状图一分为二的效果,让数据呈现更加直观。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk14",
|
||||
"snapshot": "origin",
|
||||
"instruction": "在 Origin 中导入 Excel 数据,计算均值和标准差,并绘制误差棒图,最后调整误差棒大小。",
|
||||
"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": "导入数据至工作表,并选中所有 Y 数据列(不选 X 列)。\n点击【Statistics → Descriptive Statistics → Statistics on Rows】,进入统计界面。\n在【Quantities】中勾选 Mean 和 Standard Deviation,点击【OK】生成统计结果表。\n在结果表中选中 Mean 列,点击【Plot → Column】生成柱状图。\n点击图中柱子,选择【Graph → Add Error Bars】,指定 Standard Deviation 列添加误差棒。",
|
||||
"steps_original": "1、首先将Excel表格中的数据导入到origin中,点击导入Excel表格图标,选中需要导入的数据。\n2、数据导入完成之后,我们可以看到origin将数据分成了X轴和Y轴,制作误差棒图所需要的是Y轴数据,因此我们用鼠标拖动选中Y轴数据,随后在上方工具栏中点击“统计”-“描述统计”-“行统计”。\n3、在弹出的弹窗中选择“确定”,生成均值和标准差。\n4、计算好均值和标准差后,我们找到X轴中的数据,单击X轴数据,在弹出的工具栏中点击“X”图标。\n5、随后选中均值列和标准差列。\n6、随后右键点击数据,点击“绘图”-“柱状图”。\n7、稍等片刻之后,我们就能够得到一个误差棒图了。\n8、我们单击误差棒图,在弹出的工具栏中选择线条粗细度调整工具即可对误差棒的大小进行调整了。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk15",
|
||||
"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": "导入数据并绘制任意图形(如柱状图)。\n点击【Graph → Layer Management】进入图层管理界面。\n在【Size/Position】中修改图层宽度或高度,点击【Apply】调整图层大小。\n右键图表界面,选择【Fit Layer to Page】实现图层自适应页面。\n也可通过拖动图表窗口边框实现图层放大或缩小。",
|
||||
"steps_original": "1、打开并进入到Origin的主页面,在软件主页面中的数据表里添加需要进行分析的数据。\n2、添加完成数据后,在软件的菜单栏中点击【绘图】选项,就可以选择需要绘制的图形。\n3、选择需要绘制的图像后,点击图像,会进入到图像的设置界面,勾选完成自变量的对应点后,就可以生成一幅数据的柱状图。\n4、生成数据图后,如果我们还想在其中添加图层,在菜单栏中点击【插入】选项。接着选择【新图层】,在外拉菜单栏中点击【打开对话框】选项,就可以进入到图层属性设置界面。\n5、在图层设置界面中,我们就可以对图层的相关属性进行自定义调整了。\n1、在Origin中设置图层大小,最为简单和直接的方式便是直接将图层界面最大化或者最小化设置,最大化设置后,原先的图表直接覆盖了整个软件界面,实现了图层放大和缩小的功能。\n2、除了直接拖动调整图表窗口之外,还可以右键点击图表界面,点击后选择【调整图层至页面大小】点击后我们图表就能够以页面的方式呈现出来。\n3、上面说到的两点都是注重调整图表的页面显示大小,我们还可以在Origin中手动设置页面的大小。在软件的菜单栏中点击【图】界面,接着选择【图层管理】选项。\n4、在【图层管理】界面中,点击【大小/位置】选项,点击后就可以手动输入并调整页面的大小与所占的页面比例。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk16",
|
||||
"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": "选中工作表中的两列数据(如 A 列为 X,B 列为 Y)。\n点击菜单【Plot → Basic 2D → Scatter】绘制散点图。\n点击菜单【Tools → Fitting Function Builder】,新建函数并设置参数为 a, b,函数表达式输入 a*x + b,点击【Finish】保存函数。\n点击菜单【Analysis → Mathematics → Interpolate/Extrapolate Y from X…】打开插值窗口。\n在【Input】中选择整张工作表(Whole Sheet),并在【X Values to Interpolate】中输入一个数值(如 1),点击【OK】生成插值结果数据列。",
|
||||
"steps_original": "1、打开Origin软件进入到数据分析的主页面,在主页面中可以看到一个包含数据列的数据表(Book1),我们可以把需要分析的数据样本添加到数据表中。\n2、添加完成数据样本后,接着在Origin上方的菜单栏中点击【绘图】并在其中选择绘制【散点图】。\n3、点击【散点图】之后,需要我们继续添加进行数据拟合的自变量样本(勾选X和Y作为数据变量),添加完成后点击【确定】就可以得到拟合分析的结果。\n4、在得到拟合分析的结果报告之后,我们还可以继续设置拟合的函数。在Origin上方的菜单栏中点击【工具】选项并进入到【拟合函数生成器】界面。\n5、进入到拟合函数生成器界面中之后,需要根据系统的提示添加函数内容,这里我们添加一个简单的线性拟合函数y=ax+b(在添加的时候需要注意添加的格式要符合数据处理的工具格式)。\n6、在拟合函数生成器界面中我们可以根据已知的函数内容和系统的提示完成操作,每当一步的操作完成后点击【下一步】就可以进入到后续的操作中,在完成操作的时候直接在函数生成器界面中点击【完成】。\n7、把这部分函数添加到生成器中之后,我们后续就把函数从生成器中直接取用。\n8、在进行数据拟合的过程中,我们也给大家列举几种常用的函数。\n常见的线性拟合函数:y=ax+b、多项式拟合函数:y=a+b1*x+b2*x²+…+bn*x^n、对数函数拟合:y=a-b*ln(x+c)、幂函数拟合:y=a*x^b\n1、在得到拟合分析的结果后,在Origin上方的菜单栏中点击【分析】选项,接着进入【数学】选项下的【插值】界面。\n2、在插值界面中需要设置插值的起始点和结束点(这里可以根据数据样本的定义域进行设置),设置好了插值的自变量之后,点击【确定】,Origin就会生成插值的样本结果。\n3、生成的工作表中包含了插值曲线中的数据点,我们可以直接查找与纵坐标相匹配的横坐标结果。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk17",
|
||||
"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": "选中工作表中的多列数据(如 A 为 X,B/C/D 为 Y)。\n点击菜单【Plot → Basic 2D → Scatter】绘制多组散点图。\n点击图中任意数据点,选择【Analysis → Fitting → Linear Fit】,在弹窗中点击【OK】生成拟合直线和报告。\n双击图中数据点打开【Plot Details】窗口,在左侧选择某一数据集(如 Y_sin)。\n在【Symbol】选项卡中,将【Symbol Color】设置为【By Points】,点击【OK】应用,实现按点着色效果。",
|
||||
"steps_original": "1、打开Origin软件,在菜单栏【数据】选项卡中选择【从文件导入】按钮导入数据,然后全选表格,点击【绘图】按钮,我们可以看到Origin中提供了丰富的图表类型,在这里选择【基础2D 图】——【散点图】。\n2、Origin会根据所选的数据自动生成散点图。\n3、然后用鼠标选中散点图,点击【分析】菜单,在下拉菜单中选择【拟合】——【线性拟合】选项,打开线性拟合对话框,点击【确定】。\n4、Origin会自动进行线性拟合,并弹出【线性拟合结果】窗口,我们可以看到统计结果表、汇总表、方差分析表、拟合曲线图以及残差图等。\n5、从拟合曲线图中我们可以看出黑色的数据点表示的是实际数据,图中的红色直线是根据这些数据点做的线性拟合曲线,随着A值增大B值整体呈上升趋势,可得出A、B两组数据有很强的关联性,且是正相关关系。\n二、Origin散点图怎么给点分颜色\n1、双击绘制的散点图,打开绘图属性面板,在面板中选择【符号】标签。\n2、【符号颜色】下拉菜单中支持【单色】或【按点】着色,此处选择【按点】以区分不同数据点。然后在颜色选项中选择【索引】,可以根据对应的数列设置不同的颜色,点击颜色列表位置的图标,打开颜色创建面板。\n3、在颜色创建面板中可以为每个索引值指定不同的颜色,还可以根据色调、饱和度、明度等进行自定义设置,设置完成后点击【保存】。\n4、返回上一级菜单,再点击【确定】按钮,Origin会根据不同数据的取值情况,为数据点进行着色。这样可以使散点图能够更直观清晰地展示出数据之间的差异和分布规律。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk18",
|
||||
"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": "选中数据表中的 X 和 Y 列,点击【Plot → Basic 2D → Scatter】生成散点图。\n点击【Analysis → Fitting → Linear Fit】进行线性拟合并生成结果报告。\n点击【Analysis → Fitting → Nonlinear Curve Fit → Open Dialog】打开非线性拟合窗口。\n在【Category】中选择 Exponential,在【Function】中选择 Asymptotic。\n点击【Fit】执行非线性拟合,在图中生成拟合曲线及参数结果。",
|
||||
"steps_original": "1、首先,将数据导入至Origin中,选中需要绘制的两列数据,点击菜单栏中的【绘图】按钮,选择绘制【散点图】,通过散点图,我们可以直观的看到这两组数据之间的对应关系。\n2、散点图绘制完成后,点击菜单栏中【分析】-【拟合】-【线性拟合】选项,打开对话框。\n3、在线性拟合面板中设置拟合参数,【输出量】中勾选【拟合参数】选项,参数的置信度为95%,参数设置完成之后,点击【确定】按钮,Origin就会运行分析,并在结果窗口中显示拟合的参数。\n4、选中数据绘制散点图,选中绘制完成的散点图后,再点击菜单栏【分析】-【拟合】-【非线性曲线拟合】选项,打开非线性曲线拟合对话框。\n5、Origin软件中提供了多种非线性函数类别,如:Exponential指数函数、Logarithmic对数函数、Power幂函数等,我们可以通过这些数学模型对数据进行拟合,从而找到最佳参数。在这里,我们选择的是:Exponential指数类别,然后选择的是:Asymptotic渐进函数,设置完成之后,点击【拟合】Origin就会进行非线性拟合操作。\n6、除了使用Origin中内置的函数参数外,我们还可以根据实际需求,自定义编辑拟合函数,这为我们在实际工作中进行数据处理时提供了更大的灵活性和精准度。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk19",
|
||||
"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": "选中数据表中的 X 和 Y 列,点击【Plot → Basic 2D → Line】生成折线图。\n点击左侧工具栏【Text Tool(T)】,在图中单击并输入文本添加标注框。\n右键点击标注文本,选择【Delete】删除标注框。\n点击左侧工具栏【Data Reader Tool】,在曲线最高点单击进行标注。",
|
||||
"steps_original": "1、打开Origin进入到数据分析主页面,在主页面中可以看到一个名为【Book1】的数据表界面,将需要分析的数据样本添加到数据表格中。\n2、将需要分析的数据添加完成后,在软件上方的菜单栏中点击【绘图】,接着选择需要绘制的图像,这里我们选择绘制一幅折线图。\n3、点击绘制【折线图】后,会出现一个变量显示的界面,在这里我们勾选显示的数据变量(勾选X变量和Y变量),勾选完成后点击【确定】。\n4、点击【确定】后,Origin就会根据输入的数据样本结果绘制一幅折线图图像,绘制图像完成后,在软件左侧的工具栏中点击【插入文本】,接着就可以在图像中输入相应的文字内容了。\n5、将文字内容输入完成后,如果想要去掉标注框中的内容,可以直接鼠标右键点击标注框,在这里可以直接将标注框删除。\n1、当我们需要标注曲线的最大值时,就可以直接在Origin中绘制一幅二次函数的图像。在【绘图】选项中点击绘制样条图。\n2、在图像绘制的数据表格内需要输入绘制的数据点,我们将需要绘制的点位输入其中后,点击【确定】就可以生成对应的绘图结果了。\n3、由于我们绘制的函数在定义域内属于单调递增函数,所以曲线最大值就为x横坐标取最大值时得到的结果。在软件左侧的工具栏中点击【标注】选项,接着把标注点位选择在X的最右侧,就可以对这一段曲线中的函数最大值进行标注了。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk2",
|
||||
"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、将数据输入到表格中后,选择需要绘制图像的数据列。在软件的菜单栏中点击【Plot】选项,在左侧选择【Basic 2D】分类,然后选择【Scatter】(散点图)或【Line + Symbol】(线+符号图),在弹出的对话框中勾选要分析的X、Y数据列,点击【确定】绘制散点图。\n2、绘制散点图完成后,需要调整X轴与Y轴的刻度范围,将坐标原点设置为(0,0)。双击X轴,在弹出的Scale对话框中将【From】设为0,【To】设为数据最大值;双击Y轴,同样将【From】设为0或数据最小值,【To】设为数据最大值,点击【OK】。\n3、将坐标原点设置为(0,0)之后,就可以进行快速线性拟合操作了。在软件的菜单栏中点击【Gadgets】选项,接着点击【Quick Fit】,然后点击【Linear】选项,此时鼠标会变成十字准线,在图表上点击并拖动弹出的黄色拟合框选择需要拟合的数据范围,拟合结果会显示在拟合框中。\n4、在Origin的菜单栏中点击【Analysis】选项,接着点击【Fitting】,然后选择【Linear Fit】进入线性拟合界面。\n5、点击【Linear Fit】选项后,会弹出线性拟合的设置界面。在设置界面中设置好拟合参数后点击【OK】,就会生成相应的拟合数据报告表,在生成的数据结果报告表中可以查看线性拟合的详细信息,其中包括线性拟合的方程数据。",
|
||||
"steps_original":"1. 选择数据列,点击【Plot】菜单,在左侧选择【Basic 2D】分类,然后选择【Scatter】(散点图)。\n2. 调整X轴和Y轴的刻度范围,将坐标原点设置为(0,0):双击X轴,在Scale对话框中将【From】设为0,【To】设为数据最大值;双击Y轴,同样设置【From】为0或数据最小值,【To】为数据最大值,点击【OK】。\n3. 点击【Gadgets】->【Quick Fit】->【Linear】,在图表上拖动弹出的黄色拟合框选择数据范围进行快速拟合。\n4. 点击【Analysis】->【Fitting】->【Linear Fit】,在弹出的设置界面中设置拟合参数,点击【OK】生成拟合报告,其中包含拟合方程。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk20",
|
||||
"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": "选中数据表中的 X 和 Y 列,点击【Plot → Basic 2D → Scatter】生成散点图。\n点击【Analysis → Fitting → Linear Fit】进行线性拟合并生成结果报告。\n回到数据表,选中 Y 数据列,点击【Statistics → ANOVA → One-Way ANOVA】打开方差分析窗口。\n在【Input】中设置 Data 为 Y 列,Factor 选择 X 列作为分组变量。\n点击【OK】运行分析,生成 ANOVA 结果表。",
|
||||
"steps_original": "一、Origin线性拟合怎么操作\n1、打开Origin软件进入到数据分析主页面,在主页面中我们需要将数据样本添加到【Book1】数据表中。\n2、将数据样本添加完成后,在Origin上方的菜单栏中点击【绘图】并选择绘制【散点图】(线性拟合分析是以散点图的数据点为分析的基准)。\n3、选择绘制散点图后,会进入到数据的显示变量设置界面。我们在这里勾选需要显示在图像中的变量(勾选X和Y作为显示的数据变量)。\n4、勾选完成后点击【确定】,就可以在Origin中绘制出样本的散点图。\n5、得到绘制的散点图后,继续在软件上方的菜单栏中点击【分析】选项,接着进入到【拟合】选项,同时在下拉菜单栏中进入【线性拟合】的操作界面。\n6、在线性拟合操作界面中添加需要分析的数据,点击【确定】就可以完成数据样本的拟合分析了。\n二、Origin线性拟合怎么看显著性\n1、我们在前面数据样本的基础上,利用方差分析的方式查看数据样本的显著性。在软件上方的菜单栏中点击【统计】选项,接着进入到【方差分析】界面,在下拉菜单栏中点击【单因素方差分析】选项。\n2、进入到单因素方差分析的界面中之后,我们把需要分析的数据样本添加到方差分析界面中,添加完成后点击【确定】。\n3、点击【确定】后,就可以得到单因素方差分析的数据结果,我们可以直接在数据样本检测报告中查看数据的显著性。\n4、在数据样本分析结果中,我们可以看到在0.05的固定水平之下,总体均值并非显著地不同(样本数据呈现显著性)。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk3",
|
||||
"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、将数据信息添加到数据表格中之后,在软件上方的菜单栏中点击【Plot】选项。在绘图界面中选择【Basic 2D】分类中的散点折线图,勾选完成对应的X、Y坐标内容后,点击确定生成对应的函数图像。\n2、在得到对应的函数图像之后,先选中需要进行标记的数据点,接着在软件左侧的工具栏界面中点击带有【T】字样的【Text Tool】(文本工具)。在需要标记的数据点位置点击并输入标记内容,即可在图像中标记点位。\n3、对于峰值点标记,可以在软件上方的菜单栏中点击【Gadgets】选项,接着点击【Quick Peaks】(快速寻峰)。Origin会自动识别图像中的峰值点,识别到峰值点后,使用左侧工具栏的【Text Tool】对峰值点进行标记。",
|
||||
"steps_original": "1. 在菜单栏点击【Plot】选项,选择【Basic 2D】分类中的散点折线图,勾选X、Y坐标后生成函数图像。\n2. 在生成的图像中,先选中需要标记的数据点,然后在左侧工具栏中点击带有【T】字样的【Text Tool】(文本工具),在数据点位置点击并输入标记内容。\n3 . 对于峰值点标记,点击菜单栏【Gadgets】->【Quick Peaks】(快速寻峰),软件自动识别峰值点后,使用左侧工具栏的【Text Tool】对峰值点进行标记。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk4",
|
||||
"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. 选中需要调整小数点位数的列,点击鼠标右键,在下拉菜单中选择【Properties】(属性)选项。\n2. 进入【Properties】对话框后,在【Options】(选项)中找到【Digits】(位数)设置,将【Default Decimal Digits】(默认小数位数)改为【Significant Digits=】(有效小数位数),然后输入具体的保留位数(如3)。\n3. 点击【OK】或【Apply】,即可看到Origin自动将数据的小数点精度进行了统一调整。",
|
||||
"steps_original": "1. 调整小数点位数:打开Origin,在数据表中选中目标数据列,右键选择【Properties】。\n2.【Options】的【Digits】设置中,将【Default Decimal Digits】(默认小数位数)改为【Significant Digits=】(有效小数位数)\n3. 输入要保留的位数,点击【OK】"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk5",
|
||||
"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. 选中A B两组数据,点击菜单栏【Statistics】->【Descriptive Statistics】->【Statistics on Columns】->【Open Dialog...】,打开统计窗口。\n2. 在对话框中点击【Quantities】选项卡,勾选【Mean】(均值)和【Standard Deviation】(标准差)输出量,点击【OK】。\n3. 按住Ctrl键选择序号列和新生成的均值、标准差列,在工具栏中点击【Plot】绘制点线图,生成误差图。",
|
||||
"steps_original": "1. 选中A组和B组数据,通过描述统计/行统计功能计算各自的均值和标准差。\n2. 选中序号列、均值列和标准差列,使用工具栏绘制点线图以生成误差图。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk6",
|
||||
"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. 按快捷键Ctrl+D 先在Origin工作表中新建一列:点击任意列标题右键。\n2. 鼠标选中E列,按Ctrl+Q快捷键打开对话框\n3. 在设置列值对话框的输入框中,输入求和公式:col(A)+col(B)点击【Apply】(应用)按钮,将A列和B列的数据求和结果填充到新列中,然后点击【OK】关闭对话框。\n4. 选择工作表中的E列,点击菜单栏中的【Plot】(绘图),在下拉菜单中选择【Basic 2D】→【Pie】或【2D Pie Chart】(2D彩色饼图),Origin会根据选中的数据生成饼状图,显示各数据的占比。",
|
||||
"steps_original": "1. 公式计算:在 Origin 工作表中,选中 C 列并右键选择【设置列值】。在对话框中输入公式(例如 col(A)+col(B))或使用函数(如 log(col(B))),点击【应用】进行计算。\n2. 绘制饼状图:选择 X、Y 数据列,点击菜单栏【绘图】并选择 2D 彩色饼图。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk7",
|
||||
"snapshot": "origin",
|
||||
"instruction": "在 Origin 中导入 Excel 数据并绘制散点图,进行非线性曲线拟合,以及为散点图中的点按数据列分配颜色和大小。",
|
||||
"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列数据,通过[Plot] -> [Basic 2D] -> [Scatter]创建散点图。\n2. 选中散点图,通过[Analysis] -> [Fitting] -> [Nonlinear Curve Fit]打开拟合对话框,在[Function Selection]中,将[Category]设置为[Polynomial],[Function]设置为[Parabola],点击[Fit]按钮完成拟合。\n3. 双击散点图数据点,打开[Plot Details]面板,切换到[Symbol]选项卡,点击[Symbol Color]下拉框选择[By Points],在[Color Options]中选择[Indexing],并指定[Col(A): \"X\"]为颜色索引列。\n4. 在[Symbol]选项卡中,将[Shape]改为立体球形(Sphere),将[Size]设置为与A列数据关联(通过[Size]下拉框选择[Col(A)]或开启[Variable Size]并指定A列)。",
|
||||
"steps_original": "1. 选中X、Y列,[Plot]->[Basic 2D]->[Scatter]创建散点图。\n2. 选中散点图,[Analysis]->[Fitting]->[Nonlinear Curve Fit],选择[Polynomial]类别下的[Parabola]函数,点击[Fit]。\n3. 双击散点图打开[Plot Details],在[Symbol]中设置[Symbol Color]为[By Points],选择[Indexing]并指定A列为颜色索引。\n4. 在[Symbol]中将[Shape]改为球形,[Size]与A列数据关联。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk8",
|
||||
"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_original": "1. 选中A、B列数据,点击菜单栏【绘图】->【散点图】生成散点图。\n2. 双击散点图,在绘图属性面板中调整符号样式、颜色、大小等。\n3. 在【标签】选项中启用标签,设置标签为列B,调整偏移和位置。\n4. 点击散点图区域,选择菜单栏【分析】->【线性拟合】。\n5. 在线性拟合对话框中,勾选拟合曲线图、输出到报告表,并选择输出参数。\n6. 查看生成的拟合趋势线及分析报告(参数表、统计表、方差分析等)。",
|
||||
"steps": "1、在开始制作散点图之前,先把要分析的数据准备好,如下图所示,A列表示的产品价格,B列表示的是月销量,我们想要通过观察散点的分布来分析产品价格与月销量之间是否存在相关性。\n2、鼠标选中A、B列数据(确保X、Y轴变量正确),点击菜单栏中的 【绘图】选项卡,选择下拉列表中的【散点图】,Origin会立即根据数据生成对应的散点图。\n3、双击生成的散点图,进入绘图属性面板,选择面板中的【符号】标签,调整符号样式,在Origin中有多种符号样式可以选择,比如圆形、方形、三角形等,也可以设置符号颜色、符号大小以及符号透明度等,还可以将不同数据系列设置为不同形状以作区分。\n4、点击面板中的【标签】选项,勾选启用标签,设置标签形式为col(B),调整水平偏移位置为15像素,勾选【自动调整位置以避免重叠】,将标签位置设置为右侧,然后点击【应用】-【确定】。\n5、鼠标左键点击绘制完成的散点图区域,然后选择菜单栏中的【分析】选项,在下拉菜单中根据数据特点选择合适的拟合方式,在这里我们选择的是【线性拟合】。\n6、在线性拟合对话框中,点击【拟合曲线图】选项卡,勾选面板中的拟合曲线图、输出到报告表中,在【输出量】选项卡中勾选拟合参数、拟合汇总、方差分析等,点击【确定】。\n7、Origin会自动计算并在散点图上添加拟合趋势线,还会生成一系列结果分析表,包括:参数表、统计表、汇总表、方差分析表、拟合曲线图以及残差图等等。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
{
|
||||
"id": "Origin_Tutorial_tesk9",
|
||||
"snapshot": "origin",
|
||||
"instruction": "在 Origin 中显示拟合曲线的公式,以及通过给定的 Y 值计算对应的 X 值。",
|
||||
"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. 选中数据,点击 Analysis 菜单,选择 Fitting,选择 Nonlinear Curve Fit,选择合适的函数完成拟合。\n2. 拟合完成后,拟合公式自动显示在图像上。\n3. 重新打开 Analysis 菜单,选择 Fitting,选择 Nonlinear Curve Fit,打开拟合对话框。\n4. 在对话框左侧面板点击 Fitted Curves,展开后点击 Find X/Y。\n5. 选择 Find X from Y,输入给定的 Y 值,点击 Find 或 OK,得到对应的 X 值。",
|
||||
"steps_original": "一、Origin拟合曲线怎么显示拟合公式\n1、打开Origin软件进入到数据表分析的主页面,在主页面中可以看到一个名为【Book1】的数据列表栏,将需要分析的数据点位添加到数据表中。\n2、将数据点添加完成后,在Origin上方的菜单栏中点击【绘图】选项,在绘图界面中选择【散点图】作为图像绘制的内容(在进行拟合分析时需要用到散点图,分析数据点位的趋势)。\n3、选择绘制散点图后,会出现一个变量的显示界面,在这里选择需要显示的变量内容(勾选X和Y变量),勾选完成后点击【确定】。\n4、点击【确定】之后,Origin就会根据数据样本中的点位绘制出一幅散点图图像。我们在得到图像后,继续在软件上方的菜单栏中点击【分析】,选择【拟合】后点击进入【线性拟合】界面。\n5、在线性拟合界面中需要输入拟合的相关数据信息或者设置,设置完成后点击【确定】就可以生成对应的拟合数据报告了。\n6、在拟合分析的数据报告内,我们可以看到拟合结果的斜率以及截距,同时也可以在数据报告中查找到拟合分析结果的公式信息,如果需要把公式数据添加在图像中,可以在【插入公式】界面中将拟合公式插入到图像内。\n二、Origin拟合曲线怎么从y算出x\n1、我们在绘制完成了对应的散点图图像后,在Origin上方的菜单栏中点击进入拟合分析界面。\n2、在线性拟合设置界面中,点击进入【查找X/Y】选项,在这里勾选根据Y查找X,勾选后点击【确定】。\n3、我们在点击确定后,会得到一个线性拟合的整体数据分析结果,我们可以在这里查找整体数据拟合的相关信息。如果我们需要利用Y的值算出X,可以在数据列表中点击进入【FitLinearFindXfromY1】,接着在其中输入Y值后,就可以得到对应的X数值以及对应的置信区间计算结果。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"id": "Origin_User_Guide_2025b_E_task11",
|
||||
"snapshot": "origin",
|
||||
"instruction": "在 Origin 中通过 Insert → Error Bars 为图表曲线添加误差条,误差来源选择 Percent of Data 5%",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "upload_file",
|
||||
"parameters": {
|
||||
"files": [
|
||||
{
|
||||
"local_path": "evaluation_examples/data/origin/example_with_graph.opju",
|
||||
"path": "C:\\Users\\user\\Desktop\\example_with_graph.opju"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\Program Files\\OriginLab\\Origin2025b\\Origin64.exe",
|
||||
"C:\\Users\\user\\Desktop\\example_with_graph.opju"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 20
|
||||
}
|
||||
}
|
||||
],
|
||||
"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": [],
|
||||
"steps": "1. 单击图表窗口(Graph1)使其成为活动窗口。\n2. 单击主菜单栏中的 \"Insert\" 菜单。\n3. 在下拉菜单中单击 \"Error Bars...\" 菜单项。\n4. 在弹出的 \"Error Bars\" 对话框中,确认 \"Source of Errors\" 已选中 \"Percent of Data (%)\",并确认数值为 5。\n5. 单击 \"OK\" 按钮应用设置并关闭对话框。\n6. 观察图表窗口,确认 Y_sin 曲线上已添加误差条标记。",
|
||||
"steps_original": "1. 在工作表中选中数据列后通过 Plot → Basic 2D → Line 绘制折线图。\n2. 单击图表窗口(Graph1)使其成为活动窗口。\n3. 在主菜单中选择 Insert → Error Bars...。\n4. 在弹出对话框中选择误差数据列并点击 OK 应用。\n5. 查看图表确认误差条已正确添加到数据曲线上。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"id": "Origin_User_Guide_2025b_E_task12",
|
||||
"snapshot": "origin",
|
||||
"instruction": "在 Origin 中通过 Data → Pick Data Points 工具在图表上拾取 3 个数据点并保存到新的工作表中",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "upload_file",
|
||||
"parameters": {
|
||||
"files": [
|
||||
{
|
||||
"local_path": "evaluation_examples/data/origin/example_with_graph.opju",
|
||||
"path": "C:\\Users\\user\\Desktop\\example_with_graph.opju"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\Program Files\\OriginLab\\Origin2025b\\Origin64.exe",
|
||||
"C:\\Users\\user\\Desktop\\example_with_graph.opju"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 20
|
||||
}
|
||||
}
|
||||
],
|
||||
"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": [],
|
||||
"steps": "1. 单击图表窗口(Graph1)标题栏使其成为活动窗口。\n2. 单击主菜单栏中的 'Data' 菜单。\n3. 在下拉菜单中单击 'Pick Data Points' 菜单项。\n4. 系统弹出 'Pick Points' 对话框,鼠标光标自动变为交叉准星。\n5. 在图表区域内移动鼠标,将准星悬停定位在需要拾取的目标数据点上。\n6. 在该数据点上双击鼠标左键,确认 'Pick Points' 对话框中 'Total Picked' 数量增加且坐标值已记录。\n7. 重复步骤 5-6,共拾取 3 个数据点,确认 'Total Picked' 显示为 3。\n8. 拾取完毕后,单击 'Pick Points' 对话框中的 'Done' 按钮。\n9. 确认拾取的数据点已保存到新建的工作表中。",
|
||||
"steps_original": "1. 在工作表中选中数据列后通过 Plot → Line 绘制图表,单击图表窗口使其成为活动窗口。\n2. 在主菜单中选择 Data → Pick Data Points。\n3. 在弹出的 Pick Points 对话框中,使用交叉准星在图表中双击选择数据点,确认对话框中 Total Picked 数量增加且坐标值已记录。\n4. 点击 Done 按钮将选择的数据点保存到新的工作表。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"id": "Origin_User_Guide_2025b_E_task2",
|
||||
"snapshot": "origin",
|
||||
"instruction": "在 Origin 中通过 Window → Script Window 打开脚本窗口,输入并执行 stdDev(col(B)[1:10])=,观察输出的计算结果。",
|
||||
"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": 20
|
||||
}
|
||||
}
|
||||
],
|
||||
"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": [],
|
||||
"steps": "1. 单击顶部主菜单栏中的 \"Window\" 菜单。\n2. 在下拉菜单中单击 \"Script Window\",打开脚本窗口。\n3. 在 Script Window 的文本输入区域中单击,使光标定位于其中。\n4. 输入 \"stdDev(col(B)[1:10])=\"(末尾等号是 LabTalk 语法中触发打印结果的方式)。\n5. 按下 Enter 键执行。\n6. 在 Script Window 中观察打印出的标准差数值。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"id": "Origin_User_Guide_2025b_E_task3",
|
||||
"snapshot": "origin",
|
||||
"instruction": "在 Origin 中通过右键 X 轴 → Scale 修改 X 轴的范围为 2 到 10",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "upload_file",
|
||||
"parameters": {
|
||||
"files": [
|
||||
{
|
||||
"local_path": "evaluation_examples/data/origin/example_with_graph.opju",
|
||||
"path": "C:\\Users\\user\\Desktop\\example_with_graph.opju"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\Program Files\\OriginLab\\Origin2025b\\Origin64.exe",
|
||||
"C:\\Users\\user\\Desktop\\example_with_graph.opju"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 20
|
||||
}
|
||||
}
|
||||
],
|
||||
"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": [],
|
||||
"steps": "1. 在图表窗口(Graph1)的 X 轴(横坐标轴)区域上,右键单击鼠标。\n2. 在弹出的右键快捷菜单中,单击选择 \"Scale...\" 菜单项。\n3. 在弹出的 \"Scale\" 对话框中,单击 \"From\" 右侧的文本输入框,清空现有内容,输入数值 2。\n4. 单击 \"To\" 右侧的文本输入框,清空现有内容,输入数值 10。\n5. 单击对话框底部的 \"OK\" 按钮完成设置并关闭对话框。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"id": "Origin_User_Guide_2025b_E_task4",
|
||||
"snapshot": "origin",
|
||||
"instruction": "在 Origin 中通过 Graph → Rescale to Show All 重设比例以显示所有数据",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "upload_file",
|
||||
"parameters": {
|
||||
"files": [
|
||||
{
|
||||
"local_path": "evaluation_examples/data/origin/example_with_graph_scaled_from2_to_10.opju",
|
||||
"path": "C:\\Users\\user\\Desktop\\example_with_graph_scaled_from2_to_10.opju"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\Program Files\\OriginLab\\Origin2025b\\Origin64.exe",
|
||||
"C:\\Users\\user\\Desktop\\example_with_graph_scaled_from2_to_10.opju"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 20
|
||||
}
|
||||
}
|
||||
],
|
||||
"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": [],
|
||||
"steps": "1. 单击图表窗口(Graph1)使其成为活动窗口(当前 X 轴范围为 2 到 10,部分数据未显示)。\n2. 单击主菜单栏中的 \"Graph\" 菜单,展开下拉菜单。\n3. 在下拉菜单中单击 \"Rescale to Show All\" 菜单项。\n4. 观察图表窗口,确认 X 轴范围已恢复为显示全部数据(0 到约 12.57)。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,56 @@
|
||||
{
|
||||
"id": "Origin_User_Guide_2025b_E_task5",
|
||||
"snapshot": "origin",
|
||||
"instruction": "在 Origin 中通过 Data → Slicer 为图表添加数据切片器,并设置过滤条件为 X 大于 6",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "upload_file",
|
||||
"parameters": {
|
||||
"files": [
|
||||
{
|
||||
"local_path": "evaluation_examples/data/origin/example_with_graph.opju",
|
||||
"path": "C:\\Users\\user\\Desktop\\example_with_graph.opju"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\Program Files\\OriginLab\\Origin2025b\\Origin64.exe",
|
||||
"C:\\Users\\user\\Desktop\\example_with_graph.opju"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 20
|
||||
}
|
||||
}
|
||||
],
|
||||
"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": [],
|
||||
"steps": "1. 单击图表窗口(Graph1)使其成为活动窗口。\n2. 单击主菜单栏中的 \"Data\" 菜单。\n3. 在下拉菜单中单击 \"Slicer...\" 菜单项。\n4. 在弹出的 \"Add Slicer to Graph\" 对话框中,确认 Column 1 已选择 \"A(X) : X\",单击 \"OK\" 按钮。\n5. 图表左侧出现 Slicer 面板,Filters 列表中显示默认条件 \"X = 0\"。\n6. 在 Slicer 面板中双击 \"X = 0\" 条件项,弹出 \"Simple Numeric Filter\" 对话框。\n7. 单击 \"Formula Type\" 下拉菜单,选择 \"is greater than\"。\n8. 单击 \"Value\" 输入框,清空现有内容,输入 6。\n9. 单击 \"OK\" 按钮关闭对话框。\n10. 确认 Slicer 面板中条件更新为 X > 6,图表中仅显示 X 大于 6 的数据点。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"id": "Origin_User_Guide_2025b_E_task8",
|
||||
"snapshot": "origin",
|
||||
"instruction": "在 Origin 中通过 Worksheet → Convert to Matrix 将活动表格转换成矩阵",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "upload_file",
|
||||
"parameters": {
|
||||
"files": [
|
||||
{
|
||||
"local_path": "evaluation_examples/data/origin/test.csv",
|
||||
"path": "C:\\Users\\user\\Desktop\\test.csv"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\Program Files\\OriginLab\\Origin2025b\\Origin64.exe",
|
||||
"C:\\Users\\user\\Desktop\\test.csv"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 20
|
||||
}
|
||||
}
|
||||
],
|
||||
"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": [],
|
||||
"steps": "1. 单击 Book1 工作表窗口标题栏使其成为活动窗口。\n2. 单击主菜单栏中的 \"Worksheet\" 菜单。\n3. 在下拉菜单中将鼠标移至 \"Convert to Matrix\",在展开的子菜单中单击 \"Direct...\"。\n4. 在弹出的对话框中,单击 \"Data Format\" 下拉菜单,选择 \"X across columns\"。\n5. 单击 \"OK\" 按钮完成转换。\n6. 确认系统生成了包含矩阵数据的新窗口(MBook1)。",
|
||||
"steps_original": "1. 通过 File → Import → Single ASCII... 导入桌面上的 test.csv 文件,确认导入选项后点击 OK。\n2. 单击 Book1 工作表窗口使其成为活动窗口。\n3. 在主菜单中选择 Worksheet → Convert to Matrix → Direct...。\n4. 在对话框中选择转换方法(例如 X Across Columns)。\n5. 点击 OK 完成转换,生成矩阵数据。"
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"id": "Origin_User_Guide_2025b_E_task9",
|
||||
"snapshot": "origin",
|
||||
"instruction": "在 Origin 中启用 Object Edit 工具栏,选中图例(Legend)和 Y 轴标题,执行左对齐(Align Left)",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "upload_file",
|
||||
"parameters": {
|
||||
"files": [
|
||||
{
|
||||
"local_path": "evaluation_examples/data/origin/example_with_graph.opju",
|
||||
"path": "C:\\Users\\user\\Desktop\\example_with_graph.opju"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\Program Files\\OriginLab\\Origin2025b\\Origin64.exe",
|
||||
"C:\\Users\\user\\Desktop\\example_with_graph.opju"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 20
|
||||
}
|
||||
}
|
||||
],
|
||||
"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": [],
|
||||
"steps": "1. 单击 Graph1 图表窗口标题栏使其成为当前活动窗口。\n2. 单击主菜单栏中的 \"View\" 菜单。\n3. 在下拉菜单中单击 \"Toolbars...\" 选项。\n4. 在弹出的 Toolbars 对话框中,找到并勾选 \"Object Edit\" 复选框。\n5. 单击 \"Close\" 按钮关闭对话框。\n6. 单击图表窗口中的图例(Legend)对象使其被选中。\n7. 按住 Shift 键,再单击 Y 轴标题(Y-axis title)对象,完成两个对象的多选后松开 Shift 键。\n8. 在顶部 Object Edit 工具栏中,单击第一个按钮 \"Left Alignment\"(左对齐)。\n9. 确认图例(Legend)和 Y 轴标题(Y_sin)的左边缘已对齐。",
|
||||
"steps_original": "1. 单击 Graph1 图表窗口使其成为活动窗口。\n2. 通过 View → Toolbars... 勾选 Object Edit 工具栏,点击 Close。\n3. 在图表窗口中按住 Shift 键依次单击选中需要对齐的多个图表对象。\n4. 在顶部 Object Edit 工具栏中点击对齐按钮(例如 Align Left 左对齐或 Align Center 居中对齐)。\n5. 所选对象将以统一对齐样式排列。"
|
||||
}
|
||||
}
|
||||
57
evaluation_examples/examples/ovito/animation_task3.json
Normal file
57
evaluation_examples/examples/ovito/animation_task3.json
Normal file
@@ -0,0 +1,57 @@
|
||||
{
|
||||
"id": "animation_task3",
|
||||
"snapshot": "ovito",
|
||||
"instruction": "在 OVITO 中将动画帧数从默认设置改为 10 帧每秒。",
|
||||
"source": "custom",
|
||||
"config": [
|
||||
{
|
||||
"type": "upload_file",
|
||||
"parameters": {
|
||||
"files": [
|
||||
{
|
||||
"local_path": "evaluation_examples/data/ovito/test_energy.xyz",
|
||||
"path": "C:\\Users\\user\\Desktop\\test_energy.xyz"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "launch",
|
||||
"parameters": {
|
||||
"command": [
|
||||
"C:\\OVITO Basic\\ovito.exe",
|
||||
"C:\\Users\\user\\Desktop\\test_energy.xyz"
|
||||
]
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "sleep",
|
||||
"parameters": {
|
||||
"seconds": 5
|
||||
}
|
||||
}
|
||||
],
|
||||
"trajectory": "trajectories/",
|
||||
"related_apps": [
|
||||
"ovito"
|
||||
],
|
||||
"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. 在 OVITO 窗口底部的工具栏或状态区域中,单击选择 'Animation settings' 选项,打开 'Animation Settings' 对话框。\n2. 在弹出的 'Animation Settings' 对话框中,定位到顶部的 'Animation' 分组区域。\n3. 单击 'Frames per second:' 标签右侧的数值输入框,将光标定位在输入框内(若为下拉菜单则单击展开)。\n4. 删除并清空该输入框中原有的数值内容。\n5. 使用键盘在输入框中输入数字 '10'(或在下拉选项中单击选中 '10')。\n6. 定位到对话框右下角,单击 'OK' 按钮以保存设置并关闭对话框.",
|
||||
"steps_original": "1. 在 OVITO 窗口底部的工具栏或状态区域中选择 'Animation settings'。\n2. 在弹出的 'Animation settings' 窗口中,找到 'Frames per second' 输入框。\n3. 将帧速率设置为 10。\n4. 点击 'OK' 以保存更改。"
|
||||
}
|
||||
}
|
||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user