CoGPT: 通过GitHub Copilot免费使用gpt-4

这次介绍项目可以把 OpenAI API 格式的请求转发到 GitHub Copilot 服务端,从而免费使用 gpt-4。当然前提是你有 GitHub Copilot。对于学生,可以通过 GitHub Education 免费使用。

先上项目链接: https://github.com/Geniucker/CoGPT

原理介绍

通过修改 Copilot Chat 插件的 js 文件,我们可以 dump 出请求体和请求头,我们可以发现 GitHub Copilot 基本上就是一个提供了 gpt 模型的 API 服务,我们只需要把请求转发到 GitHub Copilot 服务端就可以。但是经过测试,Copilot 并不支持 OpenAPI 最新的模型,但是其包含的 gpt-3.5-turbo 和 gpt-4 基本上可以满足我们的需求。

项目发展过程

最开始使用的是 Python 的 FastAPI 作为服务器,因为 Python 语言本身较为简单,同时 FastAPI 提供了较为方便的请求体解析,异步的支持使得他的性能在 Python 的 http 框架中较为突出。如有兴趣,具体代码可以看 py 分支。

然而,过程中遇到了一些困难:

如何返回流式响应:查找了文档,可以使用 fastapi.responses.StreamingResponse 函数,我们只需要写一个异步生成器,就可以返回流式响应。但是,如果在流式响应的过程中发生了错误,这个异常会被 FastAPI 捕获,导致我们无法自行处理异常。这个问题非常难以解决,所以最终我还是放弃了 Python 作为服务器的方案。

那么服务端剩下的选择基本上就是 Go, Java, Node.js 之类的语言了。由于我之前有接触过一点 Go,同时也给 copilot-gpt4-service 项目贡献过了较多代码,所以我就选择了 Go 作为服务端的语言。这次我们使用了 gin 框架。

如何使用

警告

这个项目仅适合个人使用。并不适合访问量巨大的盈利项目。

最佳实践方式:

  • 本机部署,仅自己使用(推荐)
  • 部署在个人服务器上,仅自己使用,或和几个朋友共同使用(不公开)

不建议的方式:

  • 提供公共服务
    • 在一个 ip 上使用了很多 token 容易被判定为异常行为
  • 使用 Serverless 服务
    • 由于 Serverless 服务的 ip 不固定,所以很容易被判定为异常行为
  • 用于盈利项目
    • 请求量过大,容易被判定为异常行为

重要提示

请不要尝试上述任何一种不建议的方式,否则可能会导致 GitHub Copilot 账号,甚至 GitHub 账号被封禁。

Docker 部署

Linux 上非常推荐使用 Docker 部署

git clone https://github.com/Geniucker/CoGPT.git && cd CoGPT
docker compose up -d

默认情况下,服务会监听在 8080 端口,如果需要修改,可以修改 docker-compose.yml 文件中的 ports 部分。例如,如果你想要监听在 8081 端口,可以把 8080:8080 改为 8081:8080

本机部署

如果你不想使用 Docker,也可以直接在本机使用

Release 页面下载对应平台的文件,解压后运行其中的 cogpt-api 文件即可。

默认情况下,服务会监听在 localhost:8080,如果需要修改,可以参考下文的 配置 部分。

配置

支持两种配置方式,一种是通过环境变量,一种是通过命令行参数

环境变量

支持环境变量和 .env 文件,环境变量的优先级高于 .env 文件

下面是所有支持的环境变量和默认值

keysdefaultdescription
HOSTlocalhostHost to listen on
PORT8080Port to listen on
CACHEtrueWhether to cache tokens in sqlite database. If false, tokens will be cached in memory
CACHE_PATHdb/cache.sqlite3Path to sqlite database. Only used if CACHE is true
DEBUGfalseWhether to enable debug mode. If true, the service will print debug info
LOG_LEVELinfoLog level.
命令行参数

可以通过 ./cogpt-api -h 查看所有支持的命令行参数

使用

获取 token

首先,你要确保你的 GitHub 账号有 GitHub Copilot 的权限。然后从 Release 页面下载对应平台的文件,解压后运行其中的 cogpt-get-apptoken 文件即可,按照说明操作即可。

如有必要设置代理,运行./cogpt-get-apptoken -h 查看帮助

使用

假设你部署的服务在 localhost:8080,你可以在原本应该填https://api.openai.com的地方替换为http://localhost:8080,然后在填写 token 的地方填写你刚刚获取的 token 即可。

许可申明

这个项目大体上基于 copilot-gpt4-service 项目,但是我本身就是这个项目的 Collaborator,并且有很多代码都是我写的,同时 copilot-gpt4-service 为 MIT 协议,所以没有许可问题。

由于 copilot-gpt4-service 的架构较为混乱,并且 PR 保持较多的状态,所以在原项目重构不太现实,所以我就自己写了一个。

当前 CoGPT 项目为 MPL-2.0 协议。

  • 16
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
要在Idea中使用GitHub Copilot插件,您可以按照以下步骤进行操作: 1. 首先,您需要订阅GitHub Copilot服务。\[1\]这是一项付费服务,您可以在GitHub官方网站上找到相关信息并进行订阅。 2. 安装GitHub Copilot插件。在Idea中,您可以通过插件市场或插件管理器搜索并安装GitHub Copilot插件。\[2\]安装完成后,您可能需要重新启动Idea以使插件生效。 3. 使用GitHub Copilot插件。一旦插件安装完成,您可以开始使用GitHub Copilot来辅助编写代码。当您在编写代码时,Copilot会根据您的上下文提示自动为您生成下一步的代码建议。您可以使用Tab键来接受内联建议,使用Esc键来忽略内联建议,使用Alt + \](或Option + \])来显示下一个内联建议,使用Alt + \[(或Option + \[)来显示以前的内联建议,使用Alt + \(或Option + \)来打开Copilot并查看更多建议。\[2\] 值得注意的是,GitHub Copilot使用了OpenAI的GPT-3.5模型,并通过对GitHub上的开源代码进行学习,得到了Codex模型,具备强大的代码生成能力。\[3\]因此,使用GitHub Copilot可以极大地提高编写代码的效率。 希望这些信息对您有所帮助! #### 引用[.reference_title] - *1* [AI写代码 GitHub Copilot + Idea 安装和使用教程](https://blog.csdn.net/yaorongke/article/details/129806885)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [在IDEA上使用GitHub Copilot,同样的样例,你会怎么实现?](https://blog.csdn.net/qq_20185737/article/details/124996518)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [AI自动写代码:GitHub copilot插件在Idea的安装和使用教程](https://blog.csdn.net/zhiyikeji/article/details/131276052)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insert_down28v1,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值