Ink-Osier / PandoraToV1Api

站在巨人的肩膀上的项目,感谢zhile大佬的Pandora-Next项目
517 stars 106 forks source link

建议使用第三方工具生成arkose,以增加Pandora可用次数 #28

Closed cyx1322 closed 6 months ago

cyx1322 commented 6 months ago

可以在程序中生成arkosetoken,而不是用pandora,这样能大幅度降低Pandora额度消耗。 推荐这个库:Arkose Fetch 这是一个go语言的项目。如果想整合到python中,可以使用C共享库,以下是一个例子:

//main.go

package main

/*
#include <stdlib.h>
*/
import "C"
import (
    "github.com/acheong08/funcaptcha"
)

//export ArkoseToken
func ArkoseToken() *C.char {
    _, token, _ := funcaptcha.GetOpenAIToken()
    return C.CString(token) // 将Go字符串转换为C字符串
}

func main() {}

使用go build编译这个文件为c共享库

go build -o arkose_token.so -buildmode=c-shared main.go

然后就可以在python中调用了

import ctypes

# 加载共享库
lib = ctypes.CDLL('./arkose_token.so')

# 调用函数
lib.ArkoseToken.restype = ctypes.c_char_p  # 设置返回类型为字符串
token = lib.ArkoseToken()
print('Token:', token.decode('utf-8'))  # 解码C字符串为Python字符串

然后每次调用backend时使用生成的arkosetoken即可,这样gpt4每条的消耗就从14条变为了4条,可用性将会大大提高。

Ink-Osier commented 6 months ago

这个项目生成的arkose使用稳定嘛,我不太了解这方面,会不会导致封号之类的问题

cyx1322 commented 6 months ago

我用了一段时间,比较稳定,没有导致封号 或者也可以让用户自行选择,自行承担风险

Minstrel-Pal commented 6 months ago

没啥必要把,你要无限使用那用ninja不就好了,你要用pandora-next就完全走那边的api,何必走了pandora-next的代理又要用第三方的arkose呢?

cyx1322 commented 6 months ago

ninja的不能生成图片,也不能上传文件。 不过你说的也有道理🤣现在pandora的次数已经够我用了,甚至分享给朋友都没问题 Ink大佬可以考虑优先做别的issue中的enhancement哈

Ink-Osier commented 6 months ago

ninja的不能生成图片,也不能上传文件。 不过你说的也有道理🤣现在pandora的次数已经够我用了,甚至分享给朋友都没问题 Ink大佬可以考虑优先做别的issue中的enhancement哈

哈哈好,不过我也一直在关注有没有办法能尽可能降低大家的额度消耗,有时间我都会试试的~

Minstrel-Pal commented 6 months ago

ninja的不能生成图片,也不能上传文件。 不过你说的也有道理🤣现在pandora的次数已经够我用了,甚至分享给朋友都没问题 Ink大佬可以考虑优先做别的issue中的enhancement哈

这个项目用的不是backend-api接口转v1吗?用pandora和ninja没啥区别吧。

cyx1322 commented 6 months ago

ninja的不能生成图片,也不能上传文件。 不过你说的也有道理🤣现在pandora的次数已经够我用了,甚至分享给朋友都没问题 Ink大佬可以考虑优先做别的issue中的enhancement哈

这个项目用的不是backend-api接口转v1吗?用pandora和ninja没啥区别吧。

ninja代理的backend api不支持画图的,参考ninja http api

Minstrel-Pal commented 6 months ago

ninja的不能生成图片,也不能上传文件。 不过你说的也有道理🤣现在pandora的次数已经够我用了,甚至分享给朋友都没问题 Ink大佬可以考虑优先做别的issue中的enhancement哈

这个项目用的不是backend-api接口转v1吗?用pandora和ninja没啥区别吧。

ninja代理的backend api不支持画图的,参考ninja http api

ninja本身不支持图片的传输,但问题是你用了这个项目啊,这项目是干啥的?我用本项目配合ninja画了多少图了你告诉我不支持。

cyx1322 commented 6 months ago

ninja的不能生成图片,也不能上传文件。 不过你说的也有道理🤣现在pandora的次数已经够我用了,甚至分享给朋友都没问题 Ink大佬可以考虑优先做别的issue中的enhancement哈

这个项目用的不是backend-api接口转v1吗?用pandora和ninja没啥区别吧。

ninja代理的backend api不支持画图的,参考ninja http api

ninja本身不支持图片的传输,但问题是你用了这个项目啊,这项目是干啥的?我用本项目配合ninja画了多少图了你告诉我不支持。

我刚才又测试了一下,确实可以画图,但是时不时就会弹出错误提示“未知错误”,而且还是放在response中的,不好在客户端优化,远不如pandora稳定,我第一次就是因为提示错误了,才以为不支持画图的

cyx1322 commented 6 months ago

截屏2023-12-28 18 49 35 截屏2023-12-28 18 49 46 想稳定的话,要不就是用ninja自己的API,不能画图;要不就是pandora,有次数限制

Minstrel-Pal commented 6 months ago

你用的什么客户端画图不稳定,我用的两个chatgpt-next-web和chatgpt-web都没问题,问题出在哪定位了吗?

cyx1322 commented 6 months ago

不是客户端的问题,我拿python试都有问题。 刚才又检查了一下,其实是docker和宿主机的通信有问题,换成ninja的docker版本就行了 谢谢提醒

Naist4869 commented 6 months ago

ninja的不能生成图片,也不能上传文件。 不过你说的也有道理🤣现在pandora的次数已经够我用了,甚至分享给朋友都没问题 Ink大佬可以考虑优先做别的issue中的enhancement哈

哈哈好,不过我也一直在关注有没有办法能尽可能降低大家的额度消耗,有时间我都会试试的~

感谢你的开源精神 非常希望有这个节省额度的功能 我的额度每天都用被完 /:

lycheezhou commented 6 months ago

我觉得这个应该是第一优先级了,可惜没能力提PR 因为都使用了API,而且目前GPT4的比例是1:14 基本上是不够用的

Ink-Osier commented 6 months ago

我觉得这个应该是第一优先级了,可惜没能力提PR 因为都使用了API,而且目前GPT4的比例是1:14 基本上是不够用的

本项目本质上还是基于PandoraNext的生态的一个项目,我可以开放一个pandoranext的arkose获取配置,但是只支持pandoranext格式的arkose获取。

对于其他的arkose token获取途径在不确定稳定性的前提下还是以测试为主,应该不会推送上来的。

Ink-Osier commented 6 months ago

我觉得这个应该是第一优先级了,可惜没能力提PR 因为都使用了API,而且目前GPT4的比例是1:14 基本上是不够用的

如果你觉得pandora的额度消耗过多我觉得现在用ninja这类的项目是一个比较好的选择

lycheezhou commented 6 months ago

lnk佬 PandoraToV1Api支持ninja这个项目吗

Ink-Osier commented 6 months ago

lnk佬 PandoraToV1Api支持ninja这个项目吗

这个我自己没用过,不过根据其他小伙伴在issue里的反馈应该是可以的

Ink-Osier commented 6 months ago

还在关注本issue的各位小伙伴可以关注一下最新版本,支持了自定义arkose获取路径,支持同时设定多url获取,如果你们有想要通过自己生成或者从第三方获取arkose的需求的可以自定义arkose获取路径从而降低pandora的额度消耗,需要你们的服务的接口请求和响应格式与PandoraNext的arkose接口保持一致。

Ink-Osier commented 6 months ago

可以在程序中生成arkosetoken,而不是用pandora,这样能大幅度降低Pandora额度消耗。 推荐这个库:Arkose Fetch 这是一个go语言的项目。如果想整合到python中,可以使用C共享库,以下是一个例子:

//main.go

package main

/*
#include <stdlib.h>
*/
import "C"
import (
  "github.com/acheong08/funcaptcha"
)

//export ArkoseToken
func ArkoseToken() *C.char {
  _, token, _ := funcaptcha.GetOpenAIToken()
  return C.CString(token) // 将Go字符串转换为C字符串
}

func main() {}

使用go build编译这个文件为c共享库

go build -o arkose_token.so -buildmode=c-shared main.go

然后就可以在python中调用了

import ctypes

# 加载共享库
lib = ctypes.CDLL('./arkose_token.so')

# 调用函数
lib.ArkoseToken.restype = ctypes.c_char_p  # 设置返回类型为字符串
token = lib.ArkoseToken()
print('Token:', token.decode('utf-8'))  # 解码C字符串为Python字符串

然后每次调用backend时使用生成的arkosetoken即可,这样gpt4每条的消耗就从14条变为了4条,可用性将会大大提高。

另外基于这个项目实现了一个新的web项目,需要的小伙伴可以看看,应该是兼容本项目的:https://github.com/Ink-Osier/GenerateArkose