GPT4 OpenAI 非官方 API
通过 Selenium 在 chat.openai.com 上访问非官方 GPT-4 API
你是否申请了 GPT-4 API 访问权限,但OpenAI 太忙没有回复?我也是,这就是为什么我创建了这个包。它使用 selenium webdriver 来模拟在 chat.openai.com 上的用户交互。如果账户具有 ChatGPT Plus
,驱动程序将使用 GPT-4,否则将使用默认的 GPT-3.5。
它通过 GPT4OpenAI(token=token, model='gpt-4')
或 model='gpt-4-plugins'
来选择模型,支持 GPT4 浏览器、DALL-E 3 和插件。
注意: 这个非官方的 API 库并未得到 OpenAI 的认可,并且违反了他们的服务条款。使用它需自行承担风险;创作者对任何后果不承担责任。请遵守平台的服务条款,并谨慎使用非官方资源。
核心逻辑来自 IntelligenzaArtificiale/Free-Auto-GPT。
演示
演示脚本
from gpt4_openai import GPT4OpenAI
# Token 是来自 chat.openai.com 的 __Secure-next-auth.session-token
llm = GPT4OpenAI(token=my_session_token, headless=False, model='gpt-4')
# GPT3.5 将回答 8,而 GPT4 应该能聪明地回答 10
response = llm('如果房间里有 10 本书,而我读了 2 本,还剩几本书在房间里?')
print(response)
DALL-E 3 支持
该代码用于上述演示 GIF。
from gpt4_openai import GPT4OpenAI
llm = GPT4OpenAI(token=my_session_token, headless=False,
model='gpt-4' # DALL-E 3 仅适用于 gpt-4
)
img_bytes = llm.generate_image('生成一张可爱小狗在屋内的等距图像。', image_path = './img_save_path.png')
浏览支持
from gpt4_openai import GPT4OpenAI
# Token 是来自 chat.openai.com 的 __Secure-next-auth.session-token
llm = GPT4OpenAI(token=my_session_token, headless=False, model='gpt-4-browsing')
# ChatGPT 将首先浏览网络查找她男朋友的名字/年龄,然后返回答案
response = llm('Dua Lipa 和她男朋友的年龄差是多少?')
print(response)
Langchain 支持
GPT4OpenAI
实际上扩展自 langchain.llms.base
中的 LLM
类。因此你可以很容易地在 langchain 生态系统中使用这个库。示例:
from gpt4_openai import GPT4OpenAI
from langchain import LLMChain
from langchain.prompts.chat import (ChatPromptTemplate, SystemMessagePromptTemplate, AIMessagePromptTemplate, HumanMessagePromptTemplate)
template="你是一个将英语翻译成海盗语的助手。"
system_message_prompt = SystemMessagePromptTemplate.from_template(template)
example_human = HumanMessagePromptTemplate.from_template("嗨")
example_ai = AIMessagePromptTemplate.from_template("啊哈,伙计们")
human_message_prompt = HumanMessagePromptTemplate.from_template("{text}")
chat_prompt = ChatPromptTemplate.from_messages([system_message_prompt, example_human, example_ai, human_message_prompt])
# Token 是来自 chat.openai.com 的 __Secure-next-auth.session-token
llm = GPT4OpenAI(token=my_session_token)
chain = LLMChain(llm=llm, prompt=chat_prompt)
print(chain.run("我叫 John,我喜欢吃披萨。"))
输出将是:
AI: 啊哈,我叫 John,我喜欢吃披萨,伙计们!
如何获取会话 token
- 访问 https://chat.openai.com 并通过
F12
打开开发者工具。 - 在
Application
>Storage
>Cookies
>https://chat.openai.com
中找到__Secure-next-auth.session-token
cookie。 - 复制
Cookie Value
字段中的值。
OpenAI 的 GPT4 与其他提供者的比较
最初,我尝试了 poe.com (在 gpt4free 实现的私有 API),但发现输入上下文窗口比 OpenAI ChatGPT 的要小。Bing 的 GPT4 也是一样。
安装
要安装此 Python 包,请运行以下命令:
pip install gpt4-openai-api
依赖项
这些依赖项将直接下载:
undetected-chromedriver
(selenium browser)markdownify
langchain