mengjian-github/copilot-analysis

JavaScript
This is stars and forks stats for /mengjian-github/copilot-analysis repository. As of 12 May, 2024 this repository has 1389 stars and 209 forks.

花了大半个月,我终于逆向分析了Github Copilot 背景 众所周知,Github Copilot是一种基于机器学习的代码自动补全工具。它使用了来自GitHub的大量代码作为训练数据,并使用OpenAI的语言模型来生成代码。Copilot还可以学习用户的编码习惯,并根据上下文推断出正确的代码片段。 在实际使用中发现大部份提示还是非常好用的,能够较为准确的推测出用户意图,甚至是基于项目其他文件的上下文进行推理。比较好奇这里是怎么做到的,于是探索了这个VSCode插件的详细实现。 准备工作 由于Copilot并没有开源,因此我们需要做一些逆向的准备。 首先,找到VSCode插件的安装目录,拿到extension.js: 在mac下插件目录在~/.vscode下,我们可以拿到一个经过压缩混淆的文件: 1. 分割webpack_modules 针对整个webpack压缩混淆的js,我们首先要将不同的bundle识别出来,分割成单个文件,以便于后续的分析。 由于压缩后的代码存在很多不确定性,一开始打算尝试通过正则提取,但无论如何都有各种边界情况导致提取不正确,最简单的方法还是通过AST来提取。 首先,通过babel-parser将源码解析为AST: const...
Read on GithubGithub Stats Page
repotechsstarsweeklyforksweekly
painebenjamin/app.enfugue.aiPythonJavaScriptCSS275+1513+5
adamyi/wechromeJavaScript5030900
chalk/chalkJavaScriptTypeScript20.8k08690
easychen/deepgpt-distJavaScriptHTML2220400
okx/okexchain-docsMDXJavaScript390190
BoomDAO/world-templateMotokoJavaScriptOther20000
BoomDAO/world-engineMotokoJavaScriptOther41020
BoomDAO/game-launcherMotokoTypeScriptJavaScript28030
BoomDAO/examplesJavaScriptMotokoTypeScript20000
anviljs/anvil.demo.scaffoldsPerlJavaScriptErlang0000