ARTICLE DETAIL

资讯详情

深耕网站建设、视觉设计与SEO优化的一线实战洞察。

Argilla 标注界面键盘快捷键完全指南:快捷键速查表与前端源码实现解析

Argilla 标注界面键盘快捷键完全指南:快捷键速查表与前端源码实现解析 Argilla 标注界面键盘快捷键完全指南快捷键速查表与前端源码实现解析【免费下载链接】argillaArgilla is a collaboration tool for AI engineers and domain experts to build high-quality datasets项目地址: https://gitcode.com/GitHub_Trending/ar/argilla本篇指南围绕 Argilla 官方文档中的键盘快捷键速查表展开逐条讲解标注Annotation界面中从表单激活、标签选择、评分排名、Span 标注到记录提交/丢弃的全部快捷键并结合argilla-frontend前端源码QuestionsForm.vue、LabelSelection.component.vue、RatingShortcuts.vue、Pagination.vue等深入解析每个快捷键的底层实现逻辑与触发条件。读完本文你不仅能在 Argilla 标注工作中做到全程键盘操作、显著提升标注速度还能理解这些快捷键在前端代码中的真实行为边界如修饰键冲突、数字键缓冲、聚焦状态限制等。一、快捷键速查总表以下表格完整继承自 Argilla 官方文档 shortcuts.md它被内嵌在 annotate_dataset.md 的 Shortcuts 小节中适用于 Argilla 标注界面的表单与记录操作操作Action按键Keys激活表单Activate form⇥ Tab在问题之间移动Move between questions↓ Down arrow或↑ Up arrow选择/取消选择标签Select and unselect label1、2、3在标签或排序选项之间移动Move between labels or ranking options⇥ Tab或⇧ Shift⇥ Tab选择评分与排名Select rating and rank1、2、3让 Span 标注贴合字符选择Fit span to character selection按住⇧ Shift激活文本编辑区Activate text area⇧ Shift↵ Enter退出文本编辑区Exit text areaEsc丢弃记录Discard⌫ Backspace保存草稿macOS⌘ CmdS保存草稿其他系统CtrlS提交Submit↵ Enter在记录页之间移动Move between pages→ Right arrow或← Left arrow这套快捷键面向 Argilla 标注界面的核心交互场景快速聚焦表单 → 在各问题之间切换 → 用数字键完成选择 → 提交或丢弃记录。下面按交互场景分组逐条拆解并给出对应的前端源码实现证据。二、表单激活与问题间导航2.1 激活表单Tab当鼠标/键盘焦点不在标注表单内时按下Tab即可将焦点拉回第一个问题从而开启纯键盘标注流程。其实现位于 QuestionsForm.vue 的handleGlobalKeys方法if (code Tab this.userComesFromOutside) { this.focusOnFirstQuestion(event); return; }组件通过onClickOutside记录userComesFromOutside状态一旦焦点离开表单再按Tab就会调用updateQuestionAutofocus(0)把焦点定位到第一个问题上。这也是整个键盘标注工作流的入口。2.2 在问题之间移动↓/↑当表单包含多个问题时例如同时有标签题、评分题、文本题在某个问题上按下↓或↑即可切换到下一个或上一个问题。对应实现位于 Questions.component.vue每个问题容器都绑定了方向键监听keydown.arrow-up.preventupdateQuestionAutofocus(autofocusPosition - 1) keydown.arrow-down.preventupdateQuestionAutofocus(autofocusPosition 1)updateQuestionAutofocus最终在QuestionsForm.vue中通过Math.min(numberOfQuestions - 1, Math.max(0, index))将目标索引收敛到合法区间保证不会越界。此外单选标签、评分这类点选即答的问题在作答后会通过on-user-answerfocusNext(index)自动聚焦到下一个问题进一步减少按键次数。2.3 在标签/排序选项之间移动Tab/Shift Tab在标签选择题或排序题内部Tab与Shift Tab用于在多个选项之间循环移动焦点。其底层逻辑是 Questions.component.vue 中的handleKeyboardToMoveLoop组件挂载时对每个单选/多选/评分/排名/Span 题容器注册keydown监听收集容器内所有input[typecheckbox]与[tabindex0]可聚焦元素实现焦点在首尾元素之间循环if (!isShiftKeyPressed isLastElementActive) { this.focusOn(e, firstElement); // Tab 到末尾后回到第一个 } else if (isShiftKeyPressed isFirstElementActive) { this.focusOn(e, lastElement); // ShiftTab 到开头后跳到最后 } else { // 否则按顺序移动到下一个/上一个可聚焦元素 }这一设计让你可以在大量标签中逐个浏览而不会被浏览器默认的 Tab 焦点行为带出表单。三、数字键快速选择标签、评分与排名3.1 选择/取消选择标签1、2、3…数字键是标注效率最高的快捷键。在每个标签选项上Argilla 会按选项显示顺序从1开始编号标签旁会直接显示对应数字角标。实现位于 LabelSelection.component.vuekeyboards() { return this.options.reduce((acc, option, index) { acc[option.id] index 1; // 第一个标签是 1第二个是 2依此类推 return acc; }, {}); }键盘处理逻辑keyboardHandler有几点值得注意的行为边界排除修饰键组合Tab、Enter、Backspace、四个方向键以及shift/ctrl/meta修饰键按下时不触发数字选择避免与表单级快捷键提交、丢弃、翻页冲突聚焦保护如果当前焦点在搜索框中当标签数量达到 15 个以上会显示搜索框见OPTIONS_THRESHOLD_TO_ENABLE_SEARCH 15数字键只用于输入搜索内容不会误触标签选择支持多位数字按下数字后组件不会立即响应而是把按键累积到keyCode只有当hasJustOneCoincidence判定该数字串唯一匹配某个标签例如先按1再按2匹配第 12 个标签时才选中300ms 内没有新输入则以当前数字串执行选择setTimeout(..., 300)。这意味着标签超过 9 个时直接连续键入两位数字即可选中对应标签Space键Space会直接触发当前聚焦选项的点击等价于勾选。3.2 选择评分与排名1、2、3…评分题Rating与排序题Ranking同样支持数字键直接选择。其实现位于 RatingShortcuts.vue核心方法answerRatingFor与标签选择共享同一套数字累积 300ms 缓冲模式this.keyCode event.key; if (isNaN(this.keyCode)) return this.reset(); if (this.hasJustOneCoincidence(this.keyCode)) { return this.selectByKeyCode(this.keyCode); } this.timer setTimeout(() { this.selectByKeyCode(this.keyCode); }, 300);其中selectByKeyCode用按键数字去匹配评分选项的valueoptions.find(({ value }) value keyCode)匹配成功后模拟点击对应选项。例如评分维度为 1~5 星时直接按3即选中 3 星。Tab键在该组件中被显式排除if (event.key Tab) return;保证 Tab 继续用于选项间导航而非误选。适用说明以上数字键选择能力面向 Argilla 标注界面中的 Feedback 数据集问题标签、多标签、评分、排名、Span、文本等题型完整题型说明见 annotate_dataset.md。四、文本编辑与 Span 标注快捷键4.1 激活文本编辑区Shift Enter文本题默认展示为只读渲染若启用 Markdown 则渲染富文本按下Shift Enter进入编辑模式。实现位于 TextAreaContents.vuekeydown.shift.enter.exact.preventonEditMode.exact修饰符保证只有恰好按下Shift Enter不附带其他修饰键时才触发随后进入ContentEditableFeedbackTask的可编辑状态。这一约定也避免与全局的Enter提交冲突。4.2 退出文本编辑区Esc编辑完成后按Esc退出编辑模式并失焦。实现在 ContentEditableFeedbackTask.vuekeydown.esc.exactexitEditionModeexitEditionMode会调用this.$refs.text.blur()并向上抛出on-exit-edition-mode事件让父组件同步更新表单状态。4.3 Span 标注贴合字符选择按住Shift在 Span实体抽取标注中默认按词token粒度选中文本打标签当你需要按字符级精确选取片段例如只标某个词中的部分字符时按住Shift的同时用鼠标框选即可。该能力由 SpanAnnotationTextField.vue 实现keyPressing(event, isDown) { if (event.key Shift) { event.preventDefault(); event.stopPropagation(); this.allowCharacterAnnotation(isDown); // 按住 Shift 开启字符级标注 ... } }组件在mounted时监听全局keydown/keyup仅当问题配置allow_character_annotation开启时通过highlighting.allowCharacterAnnotation(isDown)动态切换选择粒度。首次按下Shift之前界面还会在字段旁显示提示文案Hold Shift to select character level见 translation/en.js 中spanAnnotation.shortcutHelper帮助标注者发现该能力使用过一次后提示不再重复出现。另外注意Shift按下时全局快捷键处理器会直接return见下节因此 Span 框选期间不会误触保存/提交等全局快捷键。五、记录级操作丢弃、保存草稿与提交这一类快捷键由表单根组件 QuestionsForm.vue 中的handleGlobalKeys统一调度它监听全局keydown事件其完整映射如下switch (code) { case KeyS: { // ⌘/Ctrl S → 保存草稿 if (this.$platform.isMac) { if (!metaKey) return; } else if (!ctrlKey) return; event.preventDefault(); event.stopPropagation(); this.onSaveDraft(); break; } case Enter: { // Enter → 提交 this.onSubmit(); break; } case Backspace: { // Backspace → 丢弃 this.onDiscard(); break; } default: { this.autoSubmitWithKeyboard(key); break; } }同时该处理器开头有两条保护逻辑if (shiftKey) return;按住 Shift 时不触发任何记录级快捷键确保与文本编辑、Span 框选互不干扰以及if (!this.areActionsEnabled) return;操作不可用时整体禁用。5.1 丢弃记录Backspace按⌫ Backspace将当前记录丢弃标记为 Discarded。onDiscard会先检查isDiscardDisabled || isSaving避免在保存/提交过程中误丢数据。该快捷键对应的按钮图标上也直接标注了⌫符号见QuestionsForm.vue模板中v-text⌫。5.2 保存草稿⌘/Ctrl S按⌘ Cmd SmacOS或Ctrl S其他平台将当前作答保存为草稿Draft便于稍后在 Draft 队列中继续处理。实现中通过this.$platform.isMac区分平台并调用preventDefault阻止浏览器默认的保存网页行为。保存按钮上同样以⌘ S/ctrl S标注快捷键。5.3 提交Enter按↵ Enter提交当前记录的全部作答。需要注意的是只有当所有必答问题都完成作答后提交才会生效onSubmit内部校验questionAreCompletedCorrectly未满足时直接return提交按钮也会被disabled。该约束与 annotate_dataset.md 中必答问题标注红色星号、未答完无法提交的说明一致。从源码还可以看到一个增强行为当数据集只包含一个问题且该问题为单选标签或评分类型时autoSubmitWithKeyboard会在数字键选中答案后自动提交前提是enableAutoSubmitWithKeyboard开启且记录已修改这属于可选的一键速答模式默认通过 prop 控制。5.4 在记录页之间移动→/←在标注底部翻页栏聚焦时按→进入下一条记录、按←返回上一条记录。实现位于 Pagination.vueswitch (code) { case ArrowRight: { ...this.$refs.nextButton.$el.click(); break; } case ArrowLeft: { ...this.$refs.prevButton.$el.click(); break; } }onPressKeyboardShortcuts同样在按下ctrl/meta/shift时直接返回避免与CtrlS保存草稿等组合键冲突翻页按钮的悬浮提示文案为 Previous (←) 与 Next (→)见 translation/en.js 的shortcuts.pagination。在 Focus 视图单条记录逐条标注下这一对快捷键配合数字键选择即可实现选定 → 提交 → 下一条的流水线式标注。六、组合使用建议与注意事项优先背熟这条核心链路Tab激活表单 →↓/↑切题 →1/2/3选择 →Enter提交 →→下一条。它覆盖了标注任务中 90% 以上的高频操作。数字键按显示顺序编号而非标签值标签/评分的数字编号取决于其在问题中的展示顺序源码中index 1与标签的文本值无关标签超过 9 个时支持连续输入多位数字300ms 缓冲窗口内输入完即可。注意修饰键的占用Shift被保留给文本编辑ShiftEnter与 Span 字符级框选Ctrl/Cmd被保留给保存草稿Ctrl/CmdS。在这些组合键按下期间全局快捷键Enter 提交、Backspace 丢弃、方向键翻页都会被屏蔽属预期行为。提交有门槛存在未作答的必答问题时Enter不会提交请先补齐必答项或用Ctrl/CmdS保存草稿稍后处理。草稿、已提交、已丢弃的记录可在对应队列中随时回看修改。大标签列表场景annotate_dataset.md 建议当数据集标签很多10 个以上时在页面底部把每页记录数设为 1然后依靠→/←方向键在记录之间快速移动配合数字键选择标签体验最佳。适用范围上述快捷键面向 Argilla 标注界面对应argilla-frontend前端实现。传统任务文本分类、Token 分类、Text2Text的标注界面同样支持键盘操作例如 Text2Text 中ShiftEnter保存编辑、使用方向键逐条浏览记录详见 annotate_dataset.md 的 Other datasets 部分。七、相关文档annotate_dataset.md快捷键表的出处包含 Feedback 数据集题型标签/多标签/排名/评分/Span/文本与 Focus/Bulk 两种标注视图的完整说明filter_dataset.md配合搜索、过滤与排序使用可进一步减少翻页次数、放大快捷键收益data_model.md了解记录、响应、建议suggestion等底层数据模型便于理解保存草稿/提交/丢弃对应到数据层的真实含义。【免费下载链接】argillaArgilla is a collaboration tool for AI engineers and domain experts to build high-quality datasets项目地址: https://gitcode.com/GitHub_Trending/ar/argilla创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表