pengzhile/pandora

fakeopen 已支持 ChatGPT 转 Turbo API

pengzhile opened this issue · 186 comments

这个服务旨在模拟 Turbo API,免费且使用的是ChatGPT8k模型。

  1. 首先到 https://ai.fakeopen.com/token 去生成一个fk-开头的Share Token
  2. 然后用这个fk-xxx去请求 https://ai.fakeopen.com/v1/chat/completions 即可用免费体验Turbo API了。
  3. 请求和返回参数完全兼容。ChatGPT同时只有1条会话的限制也是存在的。
  4. Share Token当然不只是可以这么用,还可以在使用ChatGPT时当作Access Token使用,这个自己去探索吧。
  5. https://ai.fakeopen.com/v1/chat/completions 是完整反代,还可用sk-xxxAccess Token请求,会扣OpenAI额度。
  6. 对于相同的Unique Name和相同用户的Access Token,生成的Share Token总是相同的。这点对于续期非常方便。
  7. 新推出Share Token池服务:https://ai.fakeopen.com/pool,多账号来解决并发问题。
  8. 这里还有个自动生成的脚本:https://gist.github.com/pengzhile/448bfcfd548b3ae4e665a84cc86c4694
  9. PandoraAPI模式也已支持Share TokenPool Token,这次API免费了。

其中ChatGPTTurbo API模型映射关系为:

image

2023-06-19 更新:Share Token 已支持会话隔离。 #927

2023-06-24 更新:Share Token 日生成数扩充至 100 个。

2023-06-24 更新:Pool Token 容量已扩充至 100 个,且可 Share Token 和官方 Api Key 混排。

2023-06-24 更新:两个免费用 Pool Token,感谢群里用自己号组池子的热心网友。

  • pk-this-is-a-real-free-pool-token-for-everyone 很多 Share Token 组成的池子。
  • pk-this-is-a-real-free-api-key-pk-for-everyone 一些120刀 Api Key组成的池子。

这下各位知道什么语言最好了吧?

ffinly commented

PHP是世界上最好的语言

现在学 php 还能来得及吗

PHP是世界上最好的语言

牛的

这回真无敌了

还让不让人活了

终于有用网页模拟api的工具了,能否实现在本地部署支持生成 Share Token ? 这样子本地使用账号密码登陆 哪怕Access Token过期,重新登陆之后 Share Token 依然有效,这样其他软件使用的时候就不用14天手动更新token了

PHP是世界上最好的语言

狗群主牛逼

PHP是世界上最好的语言

终于有用网页模拟api的工具了,能否实现在本地部署支持生成 Share Token ? 这样子本地使用账号密码登陆 哪怕Access Token过期,重新登陆之后 Share Token 依然有效,这样其他软件使用的时候就不用14天手动更新token了

你说的功能是有的请看第6条。

大佬你好,感谢大佬的工作~

我尝试用 Share Token 进行调用

curl --location 'https://ai.fakeopen.com/v1/chat/completions' \
--header 'Authorization: Bearer fk-*' \
--header 'Content-Type: application/json' \
--data '{
    "model": "gpt-3.5-turbo",
    "max_tokens": 100,
    "messages": [
        {
            "role": "system",
            "content": "You are an helpful assistant."
        },
        {
            "role": "user",
            "content": "Who are you?"
        }
    ]
}'

但是提示

{"error":{"message":"Unauthorized - Access token is missing","type":"requests","param":null,"code":null}}

换成 Access Token 则成功返回了结果。

大佬你好,感谢大佬的工作~

我尝试用 Share Token 进行调用

curl --location 'https://ai.fakeopen.com/v1/chat/completions' \
--header 'Authorization: Bearer fk-*' \
--header 'Content-Type: application/json' \
--data '{
    "model": "gpt-3.5-turbo",
    "max_tokens": 100,
    "messages": [
        {
            "role": "system",
            "content": "You are an helpful assistant."
        },
        {
            "role": "user",
            "content": "Who are you?"
        }
    ]
}'

但是提示

{"error":{"message":"Unauthorized - Access token is missing","type":"requests","param":null,"code":null}}

换成 Access Token 则成功返回了结果。

access token当然成功,那是会花钱的。你生成share token时是否限制了很短的时间或网站?

想起来了,是设置了网站限制,我重新设置一下,感谢回复~

使用share token转API发现一个小问题:如果回答比较长只会回复前600个字左右,从chatgpt转成api后没有会话ID,没法continue。能不能发现被截断了能自动continue?谢谢~

使用share token转API发现一个小问题:如果回答比较长只会回复前600个字左右,从chatgpt转成api后没有会话ID,没法continue。能不能发现被截断了能自动continue?谢谢~

你说这话可能都没用过api吧。。

ffinly commented

//整理的说明,留给有需要的人:

附OpenAI账户将Chat接口转API使用方法
免费用户可免费使用3.5 Turbo API(8k模型)
Plus用户可免费使用3.5 Turbo API 及 4.0 API(gpt-4 3小时25次,上限200次/天,gpt-4-mobile,上限600次/天)

  1. 获取accessToken
    方法一(推荐):(账户和密码登录)https://ai.fakeopen.com/auth1 (第三方登录)https://ai.fakeopen.com/auth
    方法二(官网):先官网( https://chat.openai.com )登录,再访问这里( http://chat.openai.com/api/auth/session )将accessToken的值取出
    方法三:不管你用什么方法,拿到accessToken都可以

  2. 创建Share Token
    https://ai.fakeopen.com/token
    取一个独一无二的名字(unique name),有效期与accessToken时间一致(过期秒数填写0),限制使用网站留空,生成一个fk-开头的Share Token。
    同一用户同一unique name续期fk不变(fk根据user_id和unique name来生成)。
    备注:接口限流20次/天

  3. 使用Share Token
    使用生成的Share Token(fk-开头,相当于OpenAI的API Key),在其它支持OpenAI API的程序中调用(需要将 api.openai.com 替换为 ai.fakeopen.com ),请求和返回参数完全兼容。ChatGPT同时只有1条会话的限制也是存在的。
    模型映射如下(左侧为API请求时用的模型,右侧为官方chat的模型):
    gpt-3.5-turbo --> text-davinci-002-render-sha
    gpt-3.5-turbo-0301 --> text-davinci-002-render-sha
    gpt-4 --> gpt-4-mobile
    gpt-4-0314 --> gpt-4-mobile
    gpt-4-32k --> gpt-4-plugins
    gpt-4-32k-0314 --> gpt-4-plugins

备注:映射后3.5模型和4.0-32k模型上下文长度均为8K,4.0模型上下文为4K;接口限流5次/10s。

  1. 新推出Share Token池服务:https://ai.fakeopen.com/pool ,多账号来解决并发问题,接口限流20次/30s。
    这里还有个自动生成的脚本:https://gist.github.com/pengzhile/448bfcfd548b3ae4e665a84cc86c4694

大佬,你的fake网站每天有多少人访问?一天多少次请求?想了解一下有多少开发者

使用share token转API发现一个小问题:如果回答比较长只会回复前600个字左右,从chatgpt转成api后没有会话ID,没法continue。能不能发现被截断了能自动continue?谢谢~

你说这话可能都没用过api吧。。

我又测试了一次,从黑盒测试看,我预估目前会continue一次。但是如果回答内容很长,无法多次continue。这次一个超长回复的用例,可以用来测试:

假装你是一位东方哲学大师,擅长描绘孔子、老子、庄子、王阳明、佛祖等人物形象。当用户提出问题时,按以下次序依次回答:孔子、老子、庄子、王阳明、佛祖。请生成大约500字的回答,使用简体中文输出,以markdown格式输出。现在,请回答: 为什么有些人能无私的帮助他人

如何自动续签 shareToken 呢?
目前我已实现 accessToken 定时刷新, 想要与此同时刷新 shareToken,发现页面上的cf Turnstile 绕不过去😭

如何自动续签 shareToken 呢?
目前我已实现 accessToken 定时刷新, 想要与此同时刷新 shareToken,发现页面上的cf Turnstile 绕不过去😭

上无头浏览器啊😁

使用share token转API发现一个小问题:如果回答比较长只会回复前600个字左右,从chatgpt转成api后没有会话ID,没法continue。能不能发现被截断了能自动continue?谢谢~

你说这话可能都没用过api吧。。

我又测试了一次,从黑盒测试看,我预估目前会continue一次。但是如果回答内容很长,无法多次continue。这次一个超长回复的用例,可以用来测试:

假装你是一位东方哲学大师,擅长描绘孔子、老子、庄子、王阳明、佛祖等人物形象。当用户提出问题时,按以下次序依次回答:孔子、老子、庄子、王阳明、佛祖。请生成大约500字的回答,使用简体中文输出,以markdown格式输出。现在,请回答: 为什么有些人能无私的帮助他人

遇到同样的问题,貌似只能continue一次,然后就500错误,求大佬们解决

使用share token转API发现一个小问题:如果回答比较长只会回复前600个字左右,从chatgpt转成api后没有会话ID,没法continue。能不能发现被截断了能自动continue?谢谢~

你说这话可能都没用过api吧。。

我又测试了一次,从黑盒测试看,我预估目前会continue一次。但是如果回答内容很长,无法多次continue。这次一个超长回复的用例,可以用来测试:

假装你是一位东方哲学大师,擅长描绘孔子、老子、庄子、王阳明、佛祖等人物形象。当用户提出问题时,按以下次序依次回答:孔子、老子、庄子、王阳明、佛祖。请生成大约500字的回答,使用简体中文输出,以markdown格式输出。现在,请回答: 为什么有些人能无私的帮助他人

遇到同样的问题,貌似只能continue一次,然后就500错误,求大佬们解决

这个跟官方api一样,堆叠的token数太多要遗忘前面的。话说你们都用过官方api吗???

这是一个答复的多次continue的问题,不是多次对话。

这是一个答复的多次continue的问题,不是多次对话。

回复压进messages数组,再跑一遍就行了啊

你们用官方api都是怎么continue的?

这是一个答复的多次continue的问题,不是多次对话。

官方api的回答都是一次性返回所有内容,不会截断的。

官方api的回答都是一次性返回所有内容,不会截断的。

你设置一下官方max_tokens=10看看

我在使用第三方的API套壳软件时,没遇到需要continue的情况,可能是因为第三方套壳软件发送请求时不设置max_token。另外,我刚才仔细看了OpenAI APIAPI是无状态,会有截断,但是没有类似chatgpt web界面的continue一说。

OpenAI API消息截断通常发生在:发送请求时设置max_token,并且回复内容长度超过max_token会进行截断,并设置标志位finish_reason=length。截断就是断了,无论是发送continue还是将GPT回复消息放到message重新发回去,都是新的一轮对话,是让GPT去补全缺失内容。

这和ChatGPT web的continue是完全不同的概念:

  • ChatGPT web界面的消息截断后的continue,就像:小王写了3页作文先给你看第1页,continue再给你看第2页,再continue给你看第3页 (基于conversation_id)。
  • API消息截断后的补全,就像:小王写了3页作文先给你看第1页,后2页丢了,然后给小李续写后面的内容。这就是为什么API补全后的内容总让人感觉怪怪的。

那么,在ChatGPTAPI发生消息截断时,只有通过conversation_id才能真正获得缺失内容,其它的方案都是补全而已。

太牛了,刚试了一下可以用。
这两个是什么意思呢?

  • 允许显示会话列表
  • 展示账号邮箱

太牛了,刚试了一下可以用。 这两个是什么意思呢?

  • 允许显示会话列表
  • 展示账号邮箱

当share token当作access token用在pandora cloud 时就有用了。

我在使用第三方的API套壳软件时,没遇到需要continue的情况。我刚才仔细看了OpenAI API,是有1个标志位finish_reason=length表示被截断需要continue。可能这些第三方API套壳软件在发送请求时不设置max_token以避免出现截断情况。我试了好几款流行的第三方API套壳软件,貌似处理continue都不理想。

这个标志位也处理过了,能正确赋值。

如何自动续签 shareToken 呢?
目前我已实现 accessToken 定时刷新, 想要与此同时刷新 shareToken,发现页面上的cf Turnstile 绕不过去😭

上无头浏览器啊😁

在 nas 上用 bash 来做的定时任务,以此来刷新 accessToken。所以不太方便用 headless brwoser。是否还有别的办法呢,目前我是没想到😂。

Tzeao commented

狗群主牛逼

这个服务旨在模拟 Turbo API,免费且使用的是ChatGPT8k模型。

  1. 首先到 https://ai.fakeopen.com/token 去生成一个fk-开头的Share Token
  2. 然后用这个fk-xxx去请求 https://ai.fakeopen.com/v1/chat/completions 即可用免费体验Turbo API了。
  3. 请求和返回参数完全兼容。ChatGPT同时只有1条会话的限制也是存在的。
  4. Share Token当然不只是可以这么用,还可以在使用ChatGPT时当作Access Token使用,这个自己去探索吧。
  5. https://ai.fakeopen.com/v1/chat/completions 是完整反代,还可用sk-xxxAccess Token请求,会扣OpenAI额度。
  6. 对于相同的Unique Name和相同用户的Access Token,生成的Share Token总是相同的。这点对于续期非常方便。

其中ChatGPTTurbo API模型映射关系为:
image

这下各位知道什么语言最好了吧?

这个2.这个链接怎么打不开呢

打开?这是个post请求

这个服务旨在模拟 Turbo API,免费且使用的是ChatGPT8k模型。

  1. 首先到 https://ai.fakeopen.com/token 去生成一个fk-开头的Share Token
  2. 然后用这个fk-xxx去请求 https://ai.fakeopen.com/v1/chat/completions 即可用免费体验Turbo API了。
  3. 请求和返回参数完全兼容。ChatGPT同时只有1条会话的限制也是存在的。
  4. Share Token当然不只是可以这么用,还可以在使用ChatGPT时当作Access Token使用,这个自己去探索吧。
  5. https://ai.fakeopen.com/v1/chat/completions 是完整反代,还可用sk-xxxAccess Token请求,会扣OpenAI额度。
  6. 对于相同的Unique Name和相同用户的Access Token,生成的Share Token总是相同的。这点对于续期非常方便。

其中ChatGPTTurbo API模型映射关系为:
image

这下各位知道什么语言最好了吧?

这个2.这个链接怎么打不开呢

打开?这是个post请求

求大佬指教

这个服务旨在模拟 Turbo API,免费且使用的是ChatGPT8k模型。

  1. 首先到 https://ai.fakeopen.com/token 去生成一个fk-开头的Share Token
  2. 然后用这个fk-xxx去请求 https://ai.fakeopen.com/v1/chat/completions 即可用免费体验Turbo API了。
  3. 请求和返回参数完全兼容。ChatGPT同时只有1条会话的限制也是存在的。
  4. Share Token当然不只是可以这么用,还可以在使用ChatGPT时当作Access Token使用,这个自己去探索吧。
  5. https://ai.fakeopen.com/v1/chat/completions 是完整反代,还可用sk-xxxAccess Token请求,会扣OpenAI额度。
  6. 对于相同的Unique Name和相同用户的Access Token,生成的Share Token总是相同的。这点对于续期非常方便。

其中ChatGPTTurbo API模型映射关系为:
image

这下各位知道什么语言最好了吧?

这个2.这个链接怎么打不开呢

打开?这是个post请求

求大佬指教

给小彭都整无语了

这个服务旨在模拟 Turbo API,免费且使用的是ChatGPT8k模型。

  1. 首先到 https://ai.fakeopen.com/token 去生成一个fk-开头的Share Token
  2. 然后用这个fk-xxx去请求 https://ai.fakeopen.com/v1/chat/completions 即可用免费体验Turbo API了。
  3. 请求和返回参数完全兼容。ChatGPT同时只有1条会话的限制也是存在的。
  4. Share Token当然不只是可以这么用,还可以在使用ChatGPT时当作Access Token使用,这个自己去探索吧。
  5. https://ai.fakeopen.com/v1/chat/completions 是完整反代,还可用sk-xxxAccess Token请求,会扣OpenAI额度。
  6. 对于相同的Unique Name和相同用户的Access Token,生成的Share Token总是相同的。这点对于续期非常方便。

其中ChatGPTTurbo API模型映射关系为:
image

这下各位知道什么语言最好了吧?

这个2.这个链接怎么打不开呢

打开?这是个post请求

求大佬指教

给小彭都整无语了

小白一个,我之前用docker部署的,按教程拿到access token登录的,今天用这个share token登录然后没感觉到啥区别

这个服务旨在模拟 Turbo API,免费且使用的是ChatGPT8k模型。

  1. 首先到 https://ai.fakeopen.com/token 去生成一个fk-开头的Share Token
  1. 然后用这个fk-xxx去请求 https://ai.fakeopen.com/v1/chat/completions 即可用免费体验Turbo API了。
  1. 请求和返回参数完全兼容。ChatGPT同时只有1条会话的限制也是存在的。
  1. Share Token当然不只是可以这么用,还可以在使用ChatGPT时当作Access Token使用,这个自己去探索吧。
  1. https://ai.fakeopen.com/v1/chat/completions 是完整反代,还可用sk-xxxAccess Token请求,会扣OpenAI额度。
  1. 对于相同的Unique Name和相同用户的Access Token,生成的Share Token总是相同的。这点对于续期非常方便。

其中ChatGPTTurbo API模型映射关系为:

image

这下各位知道什么语言最好了吧?

这个2.这个链接怎么打不开呢

打开?这是个post请求

求大佬指教

给小彭都整无语了

小白一个,我之前用docker部署的,按教程拿到access token登录的,今天用这个share token登录然后没感觉到啥区别

本来就没区别啊

这个服务旨在模拟 Turbo API,免费且使用的是ChatGPT8k模型。

  1. 首先到 https://ai.fakeopen.com/token 去生成一个fk-开头的Share Token
  1. 然后用这个fk-xxx去请求 https://ai.fakeopen.com/v1/chat/completions 即可用免费体验Turbo API了。
  1. 请求和返回参数完全兼容。ChatGPT同时只有1条会话的限制也是存在的。
  1. Share Token当然不只是可以这么用,还可以在使用ChatGPT时当作Access Token使用,这个自己去探索吧。
  1. https://ai.fakeopen.com/v1/chat/completions 是完整反代,还可用sk-xxxAccess Token请求,会扣OpenAI额度。
  1. 对于相同的Unique Name和相同用户的Access Token,生成的Share Token总是相同的。这点对于续期非常方便。

其中ChatGPTTurbo API模型映射关系为:

image

这下各位知道什么语言最好了吧?

这个2.这个链接怎么打不开呢

打开?这是个post请求

求大佬指教

给小彭都整无语了

小白一个,我之前用docker部署的,按教程拿到access token登录的,今天用这个share token登录然后没感觉到啥区别

本来就没区别啊

那这个share token和turbo api是干嘛的呢?之前不是3.5turbo吗?

这个服务旨在模拟 Turbo API,免费且使用的是ChatGPT8k模型。

  1. 首先到 https://ai.fakeopen.com/token 去生成一个fk-开头的Share Token
  1. 然后用这个fk-xxx去请求 https://ai.fakeopen.com/v1/chat/completions 即可用免费体验Turbo API了。
  1. 请求和返回参数完全兼容。ChatGPT同时只有1条会话的限制也是存在的。
  1. Share Token当然不只是可以这么用,还可以在使用ChatGPT时当作Access Token使用,这个自己去探索吧。
  1. https://ai.fakeopen.com/v1/chat/completions 是完整反代,还可用sk-xxxAccess Token请求,会扣OpenAI额度。
  1. 对于相同的Unique Name和相同用户的Access Token,生成的Share Token总是相同的。这点对于续期非常方便。

其中ChatGPTTurbo API模型映射关系为:

image

这下各位知道什么语言最好了吧?

这个2.这个链接怎么打不开呢

打开?这是个post请求

求大佬指教

给小彭都整无语了

小白一个,我之前用docker部署的,按教程拿到access token登录的,今天用这个share token登录然后没感觉到啥区别

本来就没区别啊

那这个share token和turbo api是干嘛的呢?之前不是3.5turbo吗?

share token 的作用,1 是分享给别人用,比 access token 更短更方便,能隐藏自己的真实 access token,你可以随时结束 share token 的有效性。而且只要 unique name 没变,access token 更新后 share token 也是不会变的。2. 仿照官方的 api key,去调用这里大佬提到的 api,直接传 access token 走的是 OpenAI 的正式 API 扣费通道,传 share token 走的是 chatgpt 转 api。但你连 post 都不知道是什么概念的话,应该没有这个需求吧。

如果有人想到了如何自动刷新 shareToken,请踢我一脚,谢谢。

使用这个的前提是:我得有一个可以正常调用api权限的openai账号?

使用这个的前提是:我得有一个可以正常调用api权限的openai账号?

不需要,有ChatGPT权限即可。

这个服务旨在模拟 Turbo API,免费且使用的是ChatGPT8k模型。

  1. 首先到 https://ai.fakeopen.com/token 去生成一个fk-开头的Share Token
  1. 然后用这个fk-xxx去请求 https://ai.fakeopen.com/v1/chat/completions 即可用免费体验Turbo API了。
  1. 请求和返回参数完全兼容。ChatGPT同时只有1条会话的限制也是存在的。
  1. Share Token当然不只是可以这么用,还可以在使用ChatGPT时当作Access Token使用,这个自己去探索吧。
  1. https://ai.fakeopen.com/v1/chat/completions 是完整反代,还可用sk-xxxAccess Token请求,会扣OpenAI额度。
  1. 对于相同的Unique Name和相同用户的Access Token,生成的Share Token总是相同的。这点对于续期非常方便。

其中ChatGPTTurbo API模型映射关系为:

image

这下各位知道什么语言最好了吧?

这个2.这个链接怎么打不开呢

打开?这是个post请求

求大佬指教

给小彭都整无语了

小白一个,我之前用docker部署的,按教程拿到access token登录的,今天用这个share token登录然后没感觉到啥区别

本来就没区别啊

那这个share token和turbo api是干嘛的呢?之前不是3.5turbo吗?

share token 的作用,1 是分享给别人用,比 access token 更短更方便,能隐藏自己的真实 access token,你可以随时结束 share token 的有效性。而且只要 unique name 没变,access token 更新后 share token 也是不会变的。2. 仿照官方的 api key,去调用这里大佬提到的 api,直接传 access token 走的是 OpenAI 的正式 API 扣费通道,传 share token 走的是 chatgpt 转 api。但你连 post 都不知道是什么概念的话,应该没有这个需求吧。

那是不是openai给的5刀额度用完了就不能用了呢

如果有人想到了如何自动刷新 shareToken,请踢我一脚,谢谢。

看来这是个强需求。

那是不是openai给的5刀额度用完了就不能用了呢

对于用access token去调用,是的,除非你自己给账户再充钱。
对于用share token,不是,这个是把你用网页和ChatGPT对话的方式模拟成了api调用,本质上应该和你直接在网页上对话没区别。

那是不是openai给的5刀额度用完了就不能用了呢

对于用access token去调用,是的,除非你自己给账户再充钱。 对于用share token,不是,这个是把你用网页和ChatGPT对话的方式模拟成了api调用,本质上应该和你直接在网页上对话没区别。

谢谢

页面cf拿掉了,自己搞接口吧。

fk-xxx不支持高并发的把

fk-xxx不支持高并发的把

看 7, 8 条。

页面cf拿掉了,自己搞接口吧。

已搞定。🙏

2. https://ai.fakeopen.com/v1/chat/completions

我用api key去发请求,是不是这个反代不能用啊?我得到的是这个 Invalid URL (POST /v1/chat/completions/v1/completions)

  1. https://ai.fakeopen.com/v1/chat/completions

我用api key去发请求,是不是这个反代不能用啊?我得到的是这个 Invalid URL (POST /v1/chat/completions/v1/completions)

看报错信息,你不觉得你的 url 太长了吗?

2. https://ai.fakeopen.com/v1/chat/completions

我就是传的这个 os.environ['OPENAI_API_BASE'] = "https://ai.fakeopen.com/v1/chat/completions" ,最后的错误却是这个 InvalidRequestError: Invalid URL (POST /v1/chat/completions/v1/completions) ,我不知道的是,为什么他自己后面会拼了一层,我用的是api key

  1. https://ai.fakeopen.com/v1/chat/completions

我就是传的这个 os.environ['OPENAI_API_BASE'] = "https://ai.fakeopen.com/v1/chat/completions" ,最后的错误却是这个 InvalidRequestError: Invalid URL (POST /v1/chat/completions/v1/completions) ,我不知道的是,为什么他自己后面会拼了一层,我用的是api key

你这都不是chat,啥项目

我用的这个工具 from langchain.llms import OpenAI

我用的这个工具 from langchain.llms import OpenAI

我猜你是想 将 api.openai.com 替换为 ai.fakeopen.com,如下:

OPENAI_API_BASE=https://ai.fakeopen.com/v1

参考源码api_base = os.environ.get("OPENAI_API_BASE", "https://api.openai.com/v1")

我用的这个工具 from langchain.llms import OpenAI

我猜你是想 将 api.openai.com 替换为 ai.fakeopen.com,如下:

OPENAI_API_BASE=https://ai.fakeopen.com/v1

参考源码api_base = os.environ.get("OPENAI_API_BASE", "https://api.openai.com/v1")

是的,我试过,是不是这个反代理只支持openai这个包用?

我用的这个工具 from langchain.llms import OpenAI

我猜你是想 将 api.openai.com 替换为 ai.fakeopen.com,如下:
OPENAI_API_BASE=https://ai.fakeopen.com/v1
参考源码api_base = os.environ.get("OPENAI_API_BASE", "https://api.openai.com/v1")

是的,我试过,是不是这个反代理只支持openai这个包用?

我也用的 langchain

from langchain.llms import OpenAI, openai
openai.api_key = os.getenv("OPENAI_API_KEY")

    llm = OpenAI(model_name="gpt-4-32k")  # text-ada-001,gpt-3.5-turbo
    qa = RetrievalQA.from_chain_type(llm=llm, retriever=retriever, chain_type="stuff",
                                     chain_type_kwargs=chain_type_kwargs, return_source_documents=True)

只要把环境变量OPENAI_API_BASE设置为https://ai.fakeopen.com/v1OPENAI_API_KEY设置为 fk-开头的Share Token 就可以了

jonntd commented
import requests
api_prefix = 'https://ai.fakeopen.com'
session = requests.Session()
def say(text):
    payload = {
          "model": "gpt-3.5-turbo",
          "messages": [
              {"role": "system", "content": f"You are ChatGPT, a large language model trained by OpenAI. \
                Follow the user's instructions carefully. Respond using markdown chinese"},
              {"role": "user","content": text}]}   
              
    headers = {'Authorization': 'Bearer fk-*', 'Content-Type': 'application/json', }
    url = '{}/v1/chat/completions'.format(api_prefix)
    response = session.post(url, headers=headers, json=payload)
    if response.status_code == 200:
        return response.json()["choices"][0]['message']['content']
    return

if __name__ == "__main__":
    text = say("1+1")
    print(text)

我用的是sk-xxxx的key,不知道是不是这个原因

对了,这个share token 在使用聊天机器 ChatOpenAI 的时候,才是免费的吧,其他功能api都是要收费的吧

请。。收下我的膝盖

如何自动续签 shareToken 呢? 目前我已实现 accessToken 定时刷新, 想要与此同时刷新 shareToken,发现页面上的cf Turnstile 绕不过去😭

大佬,如何实现access token 定时刷新,求渔

如何自动续签 shareToken 呢? 目前我已实现 accessToken 定时刷新, 想要与此同时刷新 shareToken,发现页面上的cf Turnstile 绕不过去😭

大佬,如何实现access token 定时刷新,求渔

issue里不是写了吗

server模式使用share token或pool Token,配置nginx反代即可web访问使用

docker命令

docker run -e PANDORA_SERVER=0.0.0.0:8899 -e PANDORA_API=true -e PANDORA_ACCESS_TOKEN=pk-xxxxxxx -p 8898:8898 --restart=always -d pengzhile/pandora:latest

nginx反代

location ^~ / {
proxy_pass http://127.0.0.1:8899/; # 将流量代理到 Pandora-Cloud 服务
proxy_set_header Host $host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header REMOTE-HOST $remote_addr;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection "upgrade";
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
proxy_set_header X-Forwarded-Proto $scheme;
proxy_http_version 1.1;
}

如何自动续签 shareToken 呢? 目前我已实现 accessToken 定时刷新, 想要与此同时刷新 shareToken,发现页面上的cf Turnstile 绕不过去😭

大佬,如何实现access token 定时刷新,求渔

仔细看看文档中原理那篇。抓到 refreshToken 后,搞个定时任务,curl 请求拿一次 accessToken,然后把 accessToken 当做 docker 的启动参数即可。

我在试着用这个功能跑autogpt,但是出现了这样的错误,请问是为什么?
exception msg: You exceeded your current quota, please check your plan and billing details.

h1xy commented

我在试着用这个功能跑autogpt,但是出现了这样的错误,请问是为什么? exception msg: You exceeded your current quota, please check your plan and billing details.

你这个应该没配好实际用了API了,用Web转API的话不可能出现额度问题,只有并发问题。

我在试着用这个功能跑autogpt,但是出现了这样的错误,请问是为什么? exception msg: You exceeded your current quota, please check your plan and billing details.

你这个应该没配好实际用了API了,用Web转API的话不可能出现额度问题,只有并发问题。

可是我直接把openai包里面的url改了,这不可能啊

我在试着用这个功能跑autogpt,但是出现了这样的错误,请问是为什么? exception msg: You exceeded your current quota, please check your plan and billing details.

你这个应该没配好实际用了API了,用Web转API的话不可能出现额度问题,只有并发问题。

可是我直接把openai包里面的url改了,这不可能啊

那你使用的key是官方的sk开头,还是群主提供的fk或pk呢?

我在试着用这个功能跑autogpt,但是出现了这样的错误,请问是为什么? exception msg: You exceeded your current quota, please check your plan and billing details.

你这个应该没配好实际用了API了,用Web转API的话不可能出现额度问题,只有并发问题。

可是我直接把openai包里面的url改了,这不可能啊

那你使用的key是官方的sk开头,还是群主提供的fk或pk呢?

fk

找到原因了,只支持chat/completions不支持completions

找到原因了,只支持chat/completions不支持completions

大佬跑autogpt成功了吗

找到原因了,只支持chat/completions不支持completions

大佬跑autogpt成功了吗

没有,fakeopen这个服务只支持endpoint带chat的API,但是autogpt里面应该用到了一些不带的,导致跑不起来
可能以后会抽时间看看能不能把那些部分替换掉吧,当然你提个issue让他支持那些API更好(

如何自动续签 shareToken 呢? 目前我已实现 accessToken 定时刷新, 想要与此同时刷新 shareToken,发现页面上的cf Turnstile 绕不过去😭

怎么实现的 能分享下嘛

如何自动续签 shareToken 呢? 目前我已实现 accessToken 定时刷新, 想要与此同时刷新 shareToken,发现页面上的cf Turnstile 绕不过去😭

怎么实现的 能分享下嘛

https://github.com/fireinrain/opaitokens

如何自动续签 shareToken 呢? 目前我已实现 accessToken 定时刷新, 想要与此同时刷新 shareToken,发现页面上的cf Turnstile 绕不过去😭

怎么实现的 能分享下嘛

  1. 抓到 refreshToken
  2. 请求对应的接口
  3. 设置定时任务,跑一个 bash 脚本

怎样传入官方的apikey参数?

问下楼主,一般连续对话要传将之前几次对话(包括gpt回复的那些)的结果作为上下文回传。用现在的chat转API是不是这个功能就失效了?

因为我觉得按照chat转api的原理,应该只是将单次对话的结果封装成API的结构。但是多轮对话靠的是多轮的上下文信息,那即使我传入assiant的角色,chat是否也无法使用这个assiant的信息,就等于直接丢弃了

因为我觉得按照chat转api的原理,应该只是将单次对话的结果封装成API的结构。但是多轮对话靠的是多轮的上下文信息,那即使我传入assiant的角色,chat是否也无法使用这个assiant的信息,就等于直接丢弃了

没这个问题,API怎么用就怎么用。 system assistant user 都可以用。

大佬添加embedding的接口方便吗

因为我觉得按照chat转api的原理,应该只是将单次对话的结果封装成API的结构。但是多轮对话靠的是多轮的上下文信息,那即使我传入assiant的角色,chat是否也无法使用这个assiant的信息,就等于直接丢弃了

没这个问题,API怎么用就怎么用。 system assistant user 都可以用。

FakeOpen 直接用 Share Token 或者 Pool Token 的话使用 [#system] 会变成 [user] 的(即非强制),[assistance] 貌似也是变成 [user],请问这个是不是因为 OpenAI 本身的限制

是不能用gpt 4嘛,一直报错serve error

是不能用gpt 4嘛,一直报错serve error

opvexe commented
    │               └ {'detail': 'internal server error'}
    └ <pandora.bots.js.ChatResponse object at 0x7f923040a340>

KeyError: 'message'
2023-06-28 08:20:27.961 | ERROR    | pandora.bots.server:__handle_error:118 - 500 Internal Server Error: The server encountered an internal error and was unable to complete your request. Either the server is overloaded or there is an error in the application.

一直在报错呢 gpt4

daiaji commented

因为我觉得按照chat转api的原理,应该只是将单次对话的结果封装成API的结构。但是多轮对话靠的是多轮的上下文信息,那即使我传入assiant的角色,chat是否也无法使用这个assiant的信息,就等于直接丢弃了

没这个问题,API怎么用就怎么用。 system assistant user 都可以用。

FakeOpen 直接用 Share Token 或者 Pool Token 的话使用 [#system] 会变成 [user] 的(即非强制),[assistance] 貌似也是变成 [user],请问这个是不是因为 OpenAI 本身的限制

那看起来system prompt还是有问题。

无以言表,膜拜

@pengzhile 您好,请教一下:
我在使用过程中发现gpt-4模型是没有办法使用的,我订阅了chatgpt plus,但是没有gpt-4的api key。这是意味着必须要有gpt-4的api key才能使用反代的gpt-4模型吗?

root@hecs-234531:~# curl --location 'https://ai.fakeopen.com/v1/chat/completions' --header 'Authorization: Bearer fk-**' --header 'Content-Type: application/json' --data '{
    "model": "gpt-4",
    "max_tokens": 100,
    "messages": [
        {
            "role": "system",
            "content": "You are an helpful assistant."
        },
        {
            "role": "user",
            "content": "Who are you?"
        }
    ]
}'
{"error":{"message":"The model: `gpt-4` does not exist","type":"invalid_request_error","param":null,"code":null}}
gougui commented

今天用gpt-4一直报模型不存在,之前正常的,同号在共享站能用gpt-4,不清楚是个例还是其它人也有这个问题呀?

请问pool token该如何使用呢

今天用gpt-4一直报模型不存在,之前正常的,同号在共享站能用gpt-4,不清楚是个例还是其它人也有这个问题呀?

今天我这边也是报错说不存在

有大佬解决了嘛?

有大佬解决了嘛?

同问 都好几天了,一直都是这个报错,看来是个共性问题

+1

curl --location 'https://ai.fakeopen.com/v1/chat/completions' \                                                                                                                                                                         
--header 'Authorization: Bearer fk-xxxxxxxxxxxxxxxxxxxx' \
--header 'Content-Type: application/json' \
--data '{
    "model": "gpt-4",
    "max_tokens": 100,
    "messages": [
        {
            "role": "system",
            "content": "You are an helpful assistant."
        },
        {
            "role": "user",
            "content": "Who are you?"
        }
    ]
}'

报错

{"error":{"message":"The model: `gpt-4` does not exist","type":"invalid_request_error","param":null,"code":null}}
iallu commented

用自动机器人,大家知道是什么情况吗?

Login begin: lulu2003@aigcchatgpt.xyz, 1/20
Login failed: lulu2003@aigcchatgpt.xyz, HTTPSConnectionPool(host='auth0.openai.com', port=443): Max retries exceeded with url: /authorize?client_id=pdlLIX2Y72MIl2rhLhTE9VV9bN905kBh&audience=https%3A%2F%2Fapi.openai.com%2Fv1&redirect_uri=com.openai.chat%3A%2F%2Fauth0.openai.com%2Fios%2Fcom.openai.chat%2Fcallback&scope=openid%20email%20profile%20offline_access%20model.request%20model.read%20organization.read%20offline&response_type=code&code_challenge=w6n3Ix420Xhhu-Q5-mOOEyuPZmAsJHUbBpO8Ub7xBCY&code_challenge_method=S256&prompt=login (Caused by ProxyError('Cannot connect to proxy.', NewConnectionError('<urllib3.connection.HTTPSConnection object at 0x0000021E974CC910>: Failed to establish a new connection: [WinError 10061] 由于目标计算机积极拒绝,无法连接。')))
Login begin: putilaozu1688@aigcchatgpt.xyz, 2/20