使用教程 · 2026-10

PTA 助手使用教程

装好之后,你手上其实有两个互相独立的工具。想用哪个就用哪个,互不影响。

先分清这两个功能

插件里的两个功能互相独立。只想用「模拟输入」的话,后面所有关于 Key 和账号的内容都可以跳过。

功能干什么要配 API Key 吗要联网 / 花钱吗
模拟输入把输入框里的文本,一个字一个字敲进 PTA 的作答区不需要不联网,不花钱
AI 助手读题、写代码、本地编译跑样例、提交并读回判题结果需要,自己申请一个要联网,按模型用量计费
一

装上它

插件没有签名,所以每个浏览器的装法都不一样。按你实际用的浏览器选一栏,别混着来。

先记住这一条下载下来的 pta-assist-v1.0.zip 必须先解压。Chromium 系只认「解压后的文件夹」,直接选 zip 会报「无法加载清单」。

找到下载入口

官网上点「PTA 助手」卡片就能进项目页,GitHub Release 页面在卡片里。

me.octest.top 首页
首页的项目列表。
PTA 助手项目卡片
项目卡片。点「详情」进项目页,「源码」直接跳 GitHub —— 后者下载更顺手。
GitHub Release 页面,Assets 里有安装包
Release 页面底部的 Assets。按你用的浏览器挑一个下载就行:Chrome / Edge / Brave / Vivaldi / Opera 下载 zip,Firefox / Zen / LibreWolf / Waterfox 下载 xpi。
浏览器下载栏里的 pta-assistant-v1.0.zip
下载下来的 zip。

解压,注意选对目录

Windows 上右键 →「全部解压缩」,macOS 双击会自动解出一个文件夹。解压后打开文件夹,你会看到下面这些东西:

解压后的目录,manifest.json 与 background.js、content.js 同级
manifest.json 和 background.js、content.js 在同一层。待会儿要选的就是这一层。
最容易踩的坑如果解压出来是 解压目录/解压目录/manifest.json 这种套了两层的,请选里层那个。选到外层没有 manifest.json 的目录,浏览器只会报「无法加载清单」。
浏览器右上角菜单里的「扩展」
右上角「…」→「扩展」,可以直接跳到扩展管理页。
  1. 解压 zip(前面已经做完)。
  2. 打开扩展管理页:Chrome 是 chrome://extensions,Edge 是 edge://extensions,Brave / Vivaldi / Opera 各有各的。
  3. 打开左下角的「开发者模式」/「开发人员模式」。
  4. 点「加载已解压的扩展程序」/「加载解压缩的扩展」,选中解压出来、里面有 manifest.json 的那个文件夹。
  5. 装好后到拼图图标里找到「PTA 助手」,点图钉固定到工具栏。
扩展管理页,左下角开发人员模式开关
开发人员模式在左下角,很多人漏掉这一步就找不到加载按钮。
选择扩展目录的对话框
选解压出来的那一层,也就是刚才能看到 manifest.json 的目录。
安装成功的扩展卡片 PTA 助手 1.0.0
卡片出现了就是装好了。后面更新版本,也是在这张卡片上点「刷新」。
以后怎么升级重新解压新版 zip,在扩展卡片上点「刷新」就行。内容脚本有时要刷新一下页面才生效。
装完了?打开任意一道 PTA 题,点工具栏上的 PTA 助手图标,页面上方应该会弹出一个聊天窗。弹出来就成了,接下来看下一章。
二

功能一 · 模拟输入

这个功能不调模型、不需要 API Key、不联网。它只干一件事:把输入框里的文本,一个字一个字敲进 PTA 的作答区。

典型场景是:代码在别处写着(聊天记录、笔记、别的题目页),整段复制过来,再用「输入」送进作答区。手机上敲代码不方便时也常用。

三步

  1. 点工具栏上的插件图标,打开悬浮窗。
  2. 把要输的文本整段粘进下面的输入框(悬浮窗自己的输入框,不是 PTA 的作答区)。
  3. 点「输入」按钮。

输进去之前

悬浮窗输入框里已粘好代码,右侧 PTA 作答区还是空的12345
文本已经躺在悬浮窗的输入框里了,右侧 PTA 的作答区还是空的。
  1. 1悬浮窗的输入框,先把代码粘到这里
  2. 2PTA 的作答区,此刻还是空的
  3. 3「输入」按钮 —— 把上面那段文本敲进作答区
  4. 4「发送」按钮 —— 这是 AI 功能,和「输入」不是一回事
  5. 5工具栏上的拼图图标,点它开关悬浮窗

输进去之后

作答区已被填入代码,悬浮窗显示写入成功与回读比对结果1234
点完「输入」之后的样子。
  1. 1写入结果:先 focus 编辑器再逐字符派发事件,写完还会回读一遍确认写入的行数和目标一致
  2. 2作答区已经被填上了,行号和代码都在
  3. 3「输入」可以反复点,每次都用当前输入框的内容覆盖作答区
  4. 4输入框空了,所以「发送」是灰的
为什么它不直接改编辑器的内容PTA 的作答区有反抄袭控制,直接写剪贴板再模拟 Ctrl+V 是无效的。所以「输入」走的是真实键盘事件:先让编辑器获得焦点,再一个字符一个字符地敲过去。这也是它比复制粘贴慢一点的原因。

「输入」和「发送」的区别

按钮文本去哪要不要 API Key联网吗
输入直接敲进 PTA 作答区不需要不联网
发送发给模型,回答显示在悬浮窗里需要要联网

两个按钮挨在一起,但完全是两件事。用「输入」时别点成「发送」。

「输入」的注意事项
  • 代码长的时候要等一会,它是逐字符敲的,过程中别去操作作答区。
  • 每次点「输入」都是整段覆盖,会替换掉作答区里原有的内容。
  • 输完看一眼「回读比对」那行,报「N 行与目标一致」才说明真的写进去了。
  • 这个功能在哪个页面都能用,不限于题目页。
三

功能二 · AI 助手

这是插件的主功能。它能读题面、读写你的作答区、用内置的 C 编译器本地跑样例,还能替你提交并读回判题结果。用之前要先配一次 API Key。

先认识一下悬浮窗

打开后的悬浮窗:标题栏、提示语、输入框、输入与发送按钮12345678
刚打开时的样子。
  1. 1标题栏。右边依次是「新会话」「设置」「关闭」
  2. 2开场提示,点工具栏图标可以随时开关这个窗
  3. 3输入框。Enter 发送,Shift + Enter 换行
  4. 4「输入」—— 功能一,写入作答区
  5. 5「发送」—— 发给模型
  6. 6PTA 的语言选择,插件会跟着这里的设置走
  7. 7「提交本题作答」,插件替你提交时点的是它
  8. 8PTA 的作答区,插件能直接读它、也能覆写它
  • 悬浮窗可以拖标题栏移动、拉右下角改大小,位置和尺寸会被记住。
  • 双击标题栏或双击工具栏图标可以恢复默认位置和大小。
  • 「新会话」会清空当前对话,但不会影响你作答区里的代码。

配置:先拿到 API Key

插件本身不带模型,得连一个模型服务。默认接的是硅基流动(SiliconFlow),接口是 OpenAI 兼容格式,所以换别的服务也可以,只要填对应的地址。

  1. 打开硅基流动官网,注册并登录。
  2. 进「账户管理 → API 密钥」,新建一个,描述随便填(比如 pta)。
  3. 密钥只在创建时完整显示,当场复制下来。
  4. 顺便去「模型广场」看一眼有哪些模型,把想用的模型 ID 复制下来。
  5. 回到插件的设置页,填 API Key,接口地址和模型一般已经有默认值,确认一下再保存。
硅基流动控制台首页
硅基流动的控制台。
新建 API 密钥对话框
新建 API 密钥。描述只是个备注,填什么都行。
密钥列表,密钥明文后带复制按钮
生成后的密钥点「复制」拿走。关掉之后列表里就只剩打码的,复制不到了。
模型详情,标题旁有复制按钮
模型详情页,标题旁的复制按钮复制的是模型 ID。这个 ID 要原样填进插件的「模型」里,自己取个名字是不行的。

填进插件里

插件设置页,API Key 还是空的123456
没配置时的样子,API Key 那一栏是空的。
  1. 1账号卡片,只用来显示插件当前登录的是谁
  2. 2API Key,粘贴刚才复制的密钥;右边的眼睛图标可以显示 / 隐藏
  3. 3接口地址,默认硅基流动,旁边就有个「教程」按钮
  4. 4插件自己给的教程入口,不会把你带去别的地方
  5. 5模型,填模型 ID,比如从模型广场复制的那个
  6. 6「保存」写进本地存储,「返回对话」回聊天窗
填好之后的设置页1234
填好保存之后,再打开设置就是这个状态。
  1. 1API Key 输入框
  2. 2接口地址,和硅基流动默认的一致就不用改
  3. 3模型 ID
  4. 4密钥只存在浏览器本地的插件存储里,不会发到接口地址以外的任何地方
想换别的模型服务只要对方是 OpenAI 兼容接口,把「接口地址」换成它的 .../v1 之类的基础地址、「模型」换成它那边的模型 ID 就行,插件不用改。

让它做一道题

打开题目页,开悬浮窗,输入问题,点「发送」。这一步之后就不用管了。

在 PTA 题目页输入「帮我做题」123
「帮我做题」——就这么简单,题目它自己会读。
  1. 1输入「帮我做题」
  2. 2点「发送」
  3. 3作答区现在是空的,等下会被自动填上
助手正在工作:本地实测结果、自动检查说明、询问是否提交12345
干活过程中的样子。
  1. 1顶栏实时显示这次会话花了多少 token(输入 / 输出分开算)
  2. 2「本地实测」:它用插件内置的 C 编译器把代码跑了,拿真实输出和样例比
  3. 3写入后的自动检查结论。这里它自己说明了那条「样例不一致」是误报
  4. 4它会先问你要不要提交,不会自己悄悄点
  5. 5作答区已经被写入了生成的代码
上面那条「样例不一致」是怎么回事插件在写完代码后会做一次自动检查,这次它报样例对不上。它自己查出来原因了:抓样例时把题面里那行不属于输入的东西也当成输入喂了进去,导致解析错位。这是它抓样例的问题,不是代码的问题 —— 所以它才敢让你提交。你也可以自己再跑一遍样例确认。

你回一句「好」,它就会提交,然后把结果带回来。

提交后返回 AC,右侧是判题详情的得分表1234
提交完成,判题结果已经读回来了。
  1. 1submit_answer:替你点了「提交本题作答」,并等判题结果
  2. 2close_dialogs:把判题弹窗关掉,不给你留一堆弹窗
  3. 3提交结果,连题目、用时、得分一起汇报,最后还给了小结
  4. 4右侧是 PTA 自己的判题详情,每个测试点的用时和得分

接着追问和改代码

作答区里已经有代码了,直接开新会话问就行 —— 它能读到你作答区里的当前内容。

带着已有代码追问「代码有什么问题吗」12
「代码有什么问题吗」——它会先读你作答区里的代码再回答。
  1. 1输入「代码有什么问题吗」
  2. 2右侧作答区里的现有代码,它读的就是这份
输出的问题诊断报告,带回到顶部按钮,正在生成123
它会给一份按严重程度排好序的问题清单,而不是笼统地说「这里有 bug」。
  1. 1按「最关键」到「次要」排序的问题清单,每条都配了代码片段
  2. 2「↑ 回到顶部」,长对话里不用一直往下滑
  3. 3「停止」按钮,生成中可以随时打断
助手弹出两个选项让用户选:改并写入作答区,或先别改只讲思路123
要动你的代码时,它会先问。
  1. 1两个选项按钮:「改,写入作答区」/「先别改,只讲思路」。你来决定它动不动手
  2. 2不想等就点「停止」
  3. 3选「写入」之后,作答区会被更新
助手给出三组自测结果表格,说明自动检查误报原因,并请求确认后再提交1234
提交之前它会把自己跑的自测结果摆出来给你看。
  1. 1三组自测的输入 / 实际输出,都是本地编译器真跑出来的
  2. 2哪条自动检查不可信、为什么,它会讲清楚,而不是让你猜
  3. 3「你说一声我再点提交」—— 提交这一步始终要你点头
  4. 4作答区已经同步成改好的版本

几个好用的问法

你想要的可以这么问
只要思路,别直接给答案「先讲思路,不要写代码」
把自己的代码改对「看看我作答区里的代码有什么问题」
换个写法「用另一种思路重写一遍」
查细节「题目里那个边界条件是什么意思」
别乱动我的代码「只讲思路,别写入作答区」
关于费用顶栏会实时显示 token 用量。读整道题面 + 完整的代码 + 跑样例,一次对话很容易上万 token,所以别拿它当搜索引擎用,一次问清楚更省。
四

常见问题

按现象查,大部分问题在这里。

点图标没反应

两个常见原因:一是页面是在装插件之前打开的,刷新一下就行;二是 chrome:// 这类浏览器内部页面不允许注入,这是正常现象,换个普通网页试试。

工具栏上找不到图标

它默认不固定。点拼图图标,在列表里找到「PTA 助手」,点图钉。

加载扩展报「无法加载清单」

九成是选错目录了。要选里面直接有 manifest.json 的那一层。另外确认 zip 真的解压过了,直接选 zip 也会报这个。

「输入」点了没反应,作答区还是空的

先确认你在的是有作答区的页面(题目页),然后看悬浮窗里那条写入结果的提示。另外输入长代码时它要敲一会儿,别急着重复点。

「输入」把原有代码覆盖了

「输入」是整段覆盖,不是追加。要保留原代码就别用这个功能,直接在作答区里编辑。

发送之后报网络错误

三样挨个查:API Key 复制全了没(最常见是少了结尾几个字符)、接口地址对不对、账户里还有没有余额。

回答报模型不存在

「模型」那一栏填的是模型 ID,不是你在模型广场看到的展示名。回到模型详情页点标题旁的复制按钮重新取一次。

AI 功能完全用不了,但「输入」正常

这说明插件装好了、悬浮窗也能开,问题基本都在配置上:回去检查 API Key、接口地址、模型三项。

它报「样例不一致」,但代码看着没问题

这种情况偶发,原因多半是它抓样例时把题面里的非输入内容也喂进去了(题面里常有 [ out ] 这种占位)。让它自己解释,或者要求它用你给的输入单独跑一遍。

它不肯改我的代码

它在等你点选项。要么在那个选择框里点「改,写入作答区」,要么问的时候直接说「允许你修改作答区」。

五

用之前值得知道的几件事

都是实测下来的结论,不是免责声明模板。

API Key 会泄露吗

它存在浏览器本地的插件存储里,只在你点保存之后发给设置里那个接口地址。设置页底部的说明就是这么写的。

本地编译器要联网吗

不用。编译和运行都在插件里完成,不出网 —— 所以它能拿到真实的编译器报错文本,而不是模型猜出来的。

它会自己交卷吗

不会。提交这一步它一定会先问你,你回一句「好」才点。这是刻意留的。

生成的代码能直接交吗

别直接交。它给的正误结论是模型判断,平台判题才是真的。它自己也会因为自动检查误报而给你错的结论,所以提交前自己再核一遍。

和「模拟输入」有关系吗

没关系,这是两个独立功能。只用「输入」的话,插件不用配任何 Key,也不联网。

就这些

装不上、报错或者想要别的功能,去 GitHub 提 issue,或者直接联系作者。