【项目重做🤣】AIstudioProxyAPI的Python版正式发布,支持无头模式了

[书接上回]自用开源的AIstudioProxyAPI项目发布,感谢佬友们热情支持继续讨论:

佬友们啊,佬友们。。我回来了

项目进展非常顺利
(除了中途熬夜只是为了改Python的缩进改了两个多小时外)

现在这是进化了
技术栈由Node.js + Playwright + Chrome变成Python + FastAPI + Playwright + Camoufox 的代理服务器
实现效果基本相同,都是旨在通过模拟 OpenAI API 的方式间接访问 Google AI Studio 网页版,但功能上后者是前者的超集

先说一下,这不是简单的重构,这是完完全全的重做:rofl:新代码完全没有不含任何原来的代码成分,得亏是gemini2.5pro和claude3.7,不然不可能仅仅两天内用完全没关系的技术栈和库,就完美复刻甚至拓展功能,一次性改动超过3500+行代码,放在三年前老牛马都做不到,何况我一个每种语言都只会基本语法的学牲。只能感慨时代变迁,ai生产力太恐怖了

md文档已经非常完善

无头模式下非常流畅,尤其是roocode在原本版本的有头模式下对比python版无头模式使用。。
没有渲染就没有压力:face_savoring_food:,一次性发送超长文本完全不带卡的。
至于项目刚发布时X上有人担心的封号问题(亡命之徒无所畏惧)。这个新版本因为用的应该是当下最前沿的反机器人检测浏览器camoufox,每次启动是新的环境,配合浏览器深度指纹欺骗等强大功能,都已经能实现无头模式与gemini网页对话了,安全问题应该不大罢
:face_savoring_food:我自己开发都用了好久了也没事

没在其他环境部署测试,大佬们看看有没有问题,反馈一下?

5.3更新:受佬友的指点,最新的v1.1.0_py已经更新

更加激进,支持处理编辑过的客户端历史消息(OpenWebUI为例),可以自由切换历史记录,且新版本更换消息获取方式,代码更简洁,输出更稳定(获取原生级输出)。
现在不再会出现因为多格式输出等问题导致ai输出不稳定,对于编程工具,酒馆等更加支持

新版本逻辑把实时流式输出换成了伪流式,如果客户端支持启用非流式,建议启用,可以节省时间。

244 Likes

其实这个版本的才是真正具有实用性的一个哈哈哈,所以必须重做!

15 Likes

太强了,佬,这个能不能把gemini.google.com也弄出来

15 Likes

对硬件要求多高啊,我想在服务器上部署 :face_savoring_food:

12 Likes

不知道诶,你本地部署估算一下()?感觉要先docker容器化方便一点,现在版本可能手动搞有点麻烦

9 Likes

怎么你们都不做温度和模型切换 这个挺简单的吧,至于markdown这些文本都很容易获取啊,直接获取最后一个model的class的对话框的编辑按钮就行 :tieba_087:

8 Likes

等我研究下拉个容器起来

6 Likes

教程看着好复杂啊 :joy:

6 Likes

用playwright可能不太优雅,但是无痛

6 Likes

mrke一下

5 Likes

感觉太臃肿了,还是用drissionpage吧,我好久前用drissionpage+Python写的AIstudio2API无头自动化,网页AI聊天部分有的功能都加了,也才1千行代码,xpath定位挺好用的。要是有闲心,可以再重置看看,不过佬才高中生,真的是强,是佬级别了 :tieba_087:()

12 Likes

在简化了

3 Likes

这样非流式可行,做不了流式啊

3 Likes

加油,看好你

3 Likes

是不太优雅,甚至粗暴:grin:

温度和模型切换什么的还没来得及做,看更新计划是有的 :clown_face:

1 Like

谢谢佬支持

流式就伪造呗,就当兼容一下那些只能流式的软件就行了,自动流式的话他那边格式太多了,当然也有更好的解决办法,监听AIstudio他的聊天请求的返回信息,不过需要点技术。

我直接上提示词让ai包在md代码框下固定格式输出,根据开始标记来实时获取传输文本:cry:

2 Likes

这种会降智,而且不是很稳定。然后因为你自己加了提示词原因,还会导致其他人如果也设置提示词的话会不通用。