198 lines
7.0 KiB
Plaintext
198 lines
7.0 KiB
Plaintext
# Instruction
|
||
- You are an expert in cleaning process data descriptions. Given a task, you are provided with a set of annotation description
|
||
data for a certain visual LLM related to human user operation videos. Plus, You are provided with full trace of playwright action,
|
||
whic includes action and url before and after the action.
|
||
- You need to analyze all the descriptive data and ultimately summarize a complete and reasonable user operation description that can accomplish the given task.
|
||
- For each strategy, give a clear list of the low level action sequence.
|
||
|
||
# Task
|
||
Set my gitlab status as Enjoying life.
|
||
|
||
# Annotation description
|
||
### Step-by-Step Actions in the Video Segment
|
||
|
||
#### 1. **Action:**
|
||
I click on the user menu icon located at the top-right corner of the screen.
|
||
|
||
**Page Changes:**
|
||
A dropdown menu appears, displaying options such as "Set status," "Edit profile," "Preferences," and "Sign out."
|
||
|
||
**Possible Purpose:**
|
||
The likely intent is to access user-specific settings or options, such as updating my status or navigating to personal settings.
|
||
|
||
---
|
||
|
||
#### 2. **Action:**
|
||
I select the "Set status" option from the dropdown menu.
|
||
|
||
**Page Changes:**
|
||
A modal window titled "Set a status" opens. This window contains a text input field with the placeholder "What's your status?", a checkbox labeled "Set yourself as busy," a dropdown for "Clear status after," and two buttons labeled "Remove status" and "Set status."
|
||
|
||
**Possible Purpose:**
|
||
The purpose is to update my current status, which could be for communication purposes within the platform, indicating availability or focus to other users.
|
||
|
||
---
|
||
|
||
#### 3. **Action:**
|
||
I click inside the text input field where it says "What's your status?".
|
||
|
||
**Page Changes:**
|
||
The text input field becomes active, allowing me to type a new status message.
|
||
|
||
**Possible Purpose:**
|
||
The intent is to enter a custom status message to provide more specific information about my current activity or availability.
|
||
|
||
---
|
||
|
||
#### 4. **Action:**
|
||
I type a status message into the text input field.
|
||
|
||
**Page Changes:**
|
||
The typed message appears in the input field, replacing the placeholder text.
|
||
|
||
**Possible Purpose:**
|
||
The purpose is to draft a personalized status update that reflects my current situation or task.
|
||
|
||
---
|
||
|
||
#### 5. **Action:**
|
||
I click the "Set status" button at the bottom of the modal window.
|
||
|
||
**Page Changes:**
|
||
The modal window closes, and the status update is applied. A notification at the bottom left corner of the screen confirms "Status updated."
|
||
|
||
**Possible Purpose:**
|
||
The intent is to save and apply the new status message, making it visible to others on the platform.
|
||
|
||
---
|
||
|
||
#### 6. **Action:**
|
||
I observe the updated status in the user menu area.
|
||
|
||
**Page Changes:**
|
||
The user menu now displays the newly set status, confirming that the update was successful.
|
||
|
||
**Possible Purpose:**
|
||
The purpose is to verify that the status has been correctly updated and is accurately reflected in the user interface.
|
||
|
||
---
|
||
|
||
### Summary
|
||
In this video segment, I navigated through the user menu to set a custom status message. The actions included accessing the user menu, selecting the "Set status" option, entering a status message, and confirming the update. Each step was performed to ensure the status was correctly set and visible, likely for communication or availability purposes within the platform.
|
||
|
||
# Playwright action
|
||
[
|
||
{
|
||
"action_uid": "user-menu",
|
||
"idx": 0,
|
||
"action_repr": "frame.clickget_by_test_id(\"user-menu\").get_by_role(\"link\", name=\"Byte Blaze\")",
|
||
"before": {
|
||
"url": "http://ec2-3-133-227-75.us-east-2.compute.amazonaws.com:8023/"
|
||
},
|
||
"after": {
|
||
"url": "http://ec2-3-133-227-75.us-east-2.compute.amazonaws.com:8023/"
|
||
}
|
||
},
|
||
{
|
||
"action_uid": "button_Set status",
|
||
"idx": 3,
|
||
"action_repr": "frame.clickget_by_role(\"button\", name=\"Set status\")",
|
||
"before": {
|
||
"url": "http://ec2-3-133-227-75.us-east-2.compute.amazonaws.com:8023/"
|
||
},
|
||
"after": {
|
||
"url": "http://ec2-3-133-227-75.us-east-2.compute.amazonaws.com:8023/"
|
||
}
|
||
},
|
||
{
|
||
"action_uid": "action_2",
|
||
"idx": 2,
|
||
"action_repr": "frame.clickget_by_placeholder(\"What's your status?\")",
|
||
"before": {
|
||
"url": "http://ec2-3-133-227-75.us-east-2.compute.amazonaws.com:8023/"
|
||
},
|
||
"after": {
|
||
"url": "http://ec2-3-133-227-75.us-east-2.compute.amazonaws.com:8023/"
|
||
}
|
||
}
|
||
]
|
||
|
||
# Output format
|
||
- 先总结整个任务的Objective,然后按照Strategy-SubStrategy-action三级层次来给出整个过程,
|
||
- 接着给出整个操作流程后的观察和有趣的发现,最后严格按照json格式输出三级层次的过程描述。
|
||
- 最后的输出json应该是包在```{json}```之间,最底层动作需要包含描述、对应的playwright动作指令顺序编号,以及具体指令内容。
|
||
|
||
# Example
|
||
### Complete User Operation Description to Display Labeled Issues in kkroening/ffmpeg-python
|
||
|
||
**Objective:** Filter and display all issues labeled as "question" in the kkroening/ffmpeg-python repository.
|
||
|
||
---
|
||
|
||
#### **Strategy 1: Navigate to the Repository**
|
||
**Low-Level Action Sequence:**
|
||
1. **Search for the user "kkroening"**
|
||
- Click the global search bar (placeholder: "Search GitLab").
|
||
- Type "kkroening" and press `Enter`.
|
||
2. **Select the user from results**
|
||
- Click the "Users" tab in search results.
|
||
- Click on "Karl Kroening @kkroening" in the user list.
|
||
3. **Access the repository**
|
||
- Navigate to the "Personal projects" section.
|
||
- Click on the "ffmpeg-python" project.
|
||
|
||
---
|
||
|
||
#### **Strategy 2: Filter Issues by Label**
|
||
**Low-Level Action Sequence:**
|
||
1. **Open the Issues tab**
|
||
- Scroll to the left sidebar menu.
|
||
- Click the "Issues" tab (displaying the count, e.g., "Issues 402").
|
||
2. **Apply label filtering**
|
||
- Click the search/filter bar in the issues list.
|
||
- Select the "Label" dropdown from the filter options.
|
||
- Type or select "question" from the label dropdown.
|
||
- Click the search/apply button to confirm the filter.
|
||
|
||
---
|
||
|
||
#### **Final Oberservation**
|
||
The issues list will refresh to show only issues with the "question" label. The URL will reflect the filter:
|
||
`.../ffmpeg-python/-/issues/?label_name[]=question`.
|
||
|
||
---
|
||
|
||
### Key Observations from Playwright Trace
|
||
- The final URL after filtering:
|
||
`http://ec2-3-135-39-80.../ffmpeg-python/-/issues/?label_name%5B%5D=question`
|
||
confirms the "question" label filter is applied.
|
||
- Critical interactions include selecting the "Label" dropdown and explicitly choosing "question" to refine results.
|
||
|
||
### Final output
|
||
```json
|
||
[{
|
||
"strategy" : "Navigate to the Repository",
|
||
"substrategies": [
|
||
{
|
||
"substrategy": "Search for the user \"kkroening\"",
|
||
"actions" : [
|
||
{
|
||
"description": "Click the global search bar (placeholder: \"Search GitLab\"). ",
|
||
"playwright_idx" : 18,
|
||
"playwright_instruction" : "frame.pressget_by_placeholder(\"Search GitLab\")Enter"
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"substrategy": "Select the user from results",
|
||
"actions" : [
|
||
]
|
||
}
|
||
]
|
||
},
|
||
{
|
||
"strategy" : "Filter Issues by Label",
|
||
"substrategies" : [
|
||
]
|
||
}]
|
||
``` |