掘金 人工智能 20小时前
不用AI工具,不给年终奖?看我如何刷爆KPI
index_new5.html
../../../zaker_core/zaker_tpl_static/wap/tpl_guoji1.html

 

本文讲述了一位程序员如何利用抓包技术,绕过公司难用的AI编程插件,通过自动化调用API接口和统计接口,成功刷高AI插件使用次数KPI,最终避免了年终奖被扣的窘境。文章详细记录了抓包配置、代码编写、提示词优化以及H5版本开发的全过程,展现了程序员在面对不合理KPI时的创造力和解决问题的能力。

🛠️程序员通过Fiddler抓包工具,成功获取了公司AI插件调用的API地址(/v1/chat/completions)和统计接口(/api/v1/tracking/events),为后续的自动化刷KPI奠定了基础。

💻为了实现自动化“使用”插件,程序员编写了Java代码,模拟调用AI接口,并构造请求体,包括设置模型、用户提问内容等。同时,为了避免被检测为机器人,设置了30~90秒的随机休眠时间。

💡为了解决手动输入问题效率低下的问题,程序员巧妙地利用AI生成技术问题,并按指定格式输出,然后通过程序循环调用提问接口,实现了全自动化刷KPI。

🌐为了方便使用,程序员还额外开发了H5版本,用户只需打开浏览器即可运行刷KPI程序,极大地提高了使用的便捷性。

不用公司的AI插件,没有年终奖

今年AI风头正盛,我所在的公司也搞起了ai编程插件,要求各部门开发人员人均月使用AI代码辅助工具次数≥110次且使用天数≥11天,不达标的直接记0分,直接看图

然而我司“自研”的AI插件实在不堪一用,不能联系上下文,响应慢容易超时,没有历史记录(这个实在不能忍,每次重新打开编辑器历史记录都没了),因此使用者寥寥无几。

作为一个程序员,代码总比困难多。有天在部门程序员吹水群谈到这个时,突然心生一计,如果可以抓包到公司的AI插件调用的api地址,就可以实现自动化“使用”插件了,不就可以不用插件而完成KPI了吗。

抓包配置

说干就干!准备使用使用 Fiddler 抓取 IntelliJ IDEA 插件调用的 API。

    配置 Fiddler 捕获 HTTPS 流量:
      进入菜单 Tools > Options > HTTPS勾选 Capture HTTPS CONNECTs勾选 Decrypt HTTPS traffic点击 Actions > Trust Root Certificate 安装 Fiddler 根证书

2. 配置 IntelliJ IDEA 使用代理:- 进入菜单 File > Settings (Windows/Linux) 或 IntelliJ IDEA > Preferences (macOS)- 导航 Appearance & Behavior > System Settings > HTTP Proxy- 选择 Manual proxy configuration- 设置 Host name: 127.0.0.1;Port number: 8888 (Fiddler 默认端口);勾选 HTTP 和 HTTPS;点击 Check connection 测试代理是否工作;点击 OK 保存设置 

开始抓包

于是,在idea的公司插件提问问题“11+11”:

很快,在 Fiddler 就抓取到对应的数据,抓到调用的api地址是公司的某个域名 + /v1/chat/completions

开始写代码

接下来就是写代码调用该接口:

public static String callAI(String api, String token, String model, String prompt) {    // 构造请求体JSON    JSONObject requestBody = new JSONObject();    requestBody.set("model", model);    requestBody.set("stream", false);    // 构造messages数组    JSONObject message = new JSONObject();    message.set("role", "user");    message.set("content", prompt);    requestBody.set("messages", JSONUtil.createArray().put(message));    // 发送POST请求    HttpResponse response = HttpRequest.post(api)            .header(Header.AUTHORIZATION, "Bearer " + token) // Bearer Token认证            .header(Header.CONTENT_TYPE, "application/json") // JSON内容类型            .body(requestBody.toString()) // 请求体            .timeout(40000) // 超时时间            .execute();    // 检查响应状态    if (!response.isOk()) {        throw new RuntimeException("请求失败: " + response.getStatus() + " - " + response.body());    }    return response.body();}

调用成功!

让AI去解决AI

当前只能自己想问题,然后再去调用公司的AI插件接口,远远还没实现全自动化。于是我就开始尝试设计提示词PROMPT,然后AI回答对应的问题列表,且按要求的格式进行回复。经过再三调优,最终的提示词是:“请随机出50道技术题,要求:1、请直接给出问题,不要过多思考;2、每道题目单独一行;3、每道题目不需要序号。”。要求1主要是避免AI过多思考导致请求接口超时,要求2、3可以根据AI的回复,进行换行分割成为问题数组,然后循环调用提问问题接口。经过测试,每次AI生成的问题都能满足条件。下图是某次生成的问题列表:

下图完成了自动生成问题并自动调用,为避免被检测为机器人,每次调用接口间隔休眠30~90秒时间:

为了方便使用,额外开发H5版本,只需要打开浏览器就能愉快刷KPI。

小插曲

在使用自动化程序调用公司AI插件几百次后,周五统计AI插件使用情况时本人的使用次数仍是个位数。问题到底出在了哪里呢?重新查看抓包过程,才发现遗漏了一个接口/api/v1/tracking/events。

原来统计方式并不是简单计算调用AI接口的次数。公司idea插件在每次调用AI接口后,都会自动调用统计接口,从而统计使用次数、idea版本、插件版本、AI模型、账号等信息。于是,依样画葫芦,增加调用统计接口。

KPI刷爆了

时间来到下周五,在最新的AI插件使用情况统计中,本人的使用次数一骑绝尘、一枝独秀、出类拔萃、遥遥领先。完美撒花!

Fish AI Reader

Fish AI Reader

AI辅助创作,多种专业模板,深度分析,高质量内容生成。从观点提取到深度思考,FishAI为您提供全方位的创作支持。新版本引入自定义参数,让您的创作更加个性化和精准。

FishAI

FishAI

鱼阅,AI 时代的下一个智能信息助手,助你摆脱信息焦虑

联系邮箱 441953276@qq.com

相关标签

AI插件 KPI 抓包 自动化 程序员
相关文章