
记录一次Fitten Code逆向并兼容OpenAI请求格式
项目背景:
最近在折腾QQ机器人,想接入一个AI,首先想到的是Deepseek系列,但是官方api已经废了,索性转战第三方,在试了试免费的后感觉效果并不好,有一定概率不回复(或者回复太慢了)。后来又用了付费的,嗯,效果确实好了。BUT!不知道哪个入机拿3个号压测我bot,导致我的API余额被刷没了。
然后,我看到了我在VS Code中安装的插件,(此处省略200字,懒得写了)然后就有了下面的程序。
逆向过程:
1.找到Chat网页
emm,很简单,利用强大的搜索引擎,很快就找到了(PS:可以直接在插件中找到浏览器试用)
网页版连接:https://fc.fittentech.com/
2.获取请求方式
登陆后打开F12,选择“网络”,然后随便发送一些东西(比如:你好),这时就会看到如下请求
在分析后我们可以发现:
发送请求时需要在URL拼接一个apikey参数,并且需要在请求头中设置authorization的Bearer值(如图)
请求的内容为json字符串,格式如下
在”响应“中我们可以看到返回的内容并不是普通的字符串,而是一段经过处理的JSON文本(如图)
将以上文本交给Deepseek后得知
至此,原理差不多明白了,接下来验证猜想
3.验证
试用接口测试插件来验证猜想(这里使用VS Code里的Thunder Client)
设置apikey
设置Auth
设置Body(请求内容,以”你好“为例)
然后发送!!!
返回如下:
至此原理已经了解,接下来就是手搓代码了。
实现兼容OpenAI的格式:
(我太懒了,直接交给bobo吧)
目录结构
.gitignore
:用于指定 Git 版本控制中需要忽略的文件和文件夹。LICENSE.md
和LICENSE_CN.md
:许可证文件,规定了该项目的使用和分发规则。api.py
:主要的 Python 代码文件,实现了 Flask 应用的各种功能。build.bat
:Windows 批处理脚本,用于构建可执行文件。config.ini
:配置文件,存储 Fittentech 的登录信息和 API Key。requirements.txt
:列出了项目所需的 Python 依赖包。
主要文件介绍
requirements.txt
该文件列出了项目所需的 Python 依赖包,包括:
Flask
:用于构建 Web 应用。requests
:用于发送 HTTP 请求。chardet
:用于检测文件编码。
config.ini
配置文件,包含以下配置项:
username
:Fittentech 的登录用户名。password
:Fittentech 的登录密码。api_key
:提供给客户端的 API Key。
api.py
主要的 Python 代码文件,实现了以下功能:
全局变量
Ft_username
:Fittentech 的用户名。Ft_password
:Fittentech 的密码。Ft_access_token
:访问令牌。Ft_refresh_token
:刷新令牌。Ft_user_id
:用户 ID。API_KEY
:API Key。
主要函数
initaliaze()
:初始化函数,从config.ini
文件中读取配置信息,并调用get_auth_token()
函数获取访问令牌。get_auth_token()
:登录 Fittentech 并获取访问令牌、刷新令牌和用户 ID。refresh_auth_token()
:刷新 Fittentech 的访问令牌。generate_random_id()
:生成一个指定长度的随机字符串,用于生成响应的 ID。get_response()
:调用 Fittentech 的 API 获取响应。parse_response()
:解析 Fittentech 的 API 返回的响应。
Flask 路由
/v1/models
:返回模型信息。/v1/chat/completions
:聊天接口,接收用户输入,调用 Fittentech 的 API 获取响应,并返回解析后的结果。
build.bat
Windows 批处理脚本,用于构建可执行文件。主要步骤包括:
- 删除旧的可执行文件
api.exe
。 - 使用
pyinstaller
将api.py
打包成一个单独的可执行文件。 - 将生成的可执行文件复制到当前目录。
- 删除临时生成的
dist
、build
文件夹和api.spec
文件。
Github开源地址:传送门
- 感谢你赐予我前进的力量
赞赏者名单
因为你们的支持让我意识到写文章的价值🙏
评论
匿名评论
隐私政策
你无需删除空行,直接评论以获取最佳展示效果