使用OpenAI API密钥定义时遇到问题

我尝试使用langchain openai,但始终无法使其正常工作。

我尝试了openai的快速开始测试:

from openai import OpenAIclient = OpenAI()completion = client.chat.completions.create(  model="gpt-3.5-turbo",  messages=[    {"role": "system", "content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."},    {"role": "user", "content": "Compose a poem that explains the concept of recursion in programming."}  ])print(completion.choices[0].message)

但它会报错:

 line 98, in __init__    raise OpenAIError(openai.OpenAIError: The api_key client option must be set either by passing api_key to the client or by setting the OPENAI_API_KEY environment variable

但在这样设置API密钥后:

import openaiimport osos.environ["OPENAI_API_KEY"] = "myapikey"client = openai.OpenAI()completion = client.chat.completions.create(  model="gpt-3.5-turbo",  messages=[    {"role": "system", "content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."},    {"role": "user", "content": "Compose a poem that explains the concept of recursion in programming."}  ])print(completion.choices[0].messages)

它会显示一大堆错误信息:

    File "C:\Users\jasha\Desktop\code\python\gpt\gpt0\gpt0.py", line 9, in <module>enter code here        completion = client.chat.completions.create(      File "C:\Users\jasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\openai\_utils\_utils.py", line 271, in wrapper        return func(*args, **kwargs)      File "C:\Users\jasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\openai\resources\chat\completions.py", line 659, in create        return self._post(      File "C:\Users\jasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\openai\_base_client.py", line 1180, in post        return cast(ResponseT, self.request(cast_to, opts, stream=stream, stream_cls=stream_cls))      File "C:\Users\jasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\openai\_base_client.py", line 869, in request        return self._request(      File "C:\Users\jasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\openai\_base_client.py", line 945, in _request        return self._retry_request(      File "C:\Users\jasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\openai\_base_client.py", line 993, in _retry_request        return self._request(      File "C:\Users\jasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\openai\_base_client.py", line 945, in _request        return self._retry_request(      File "C:\Users\jasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\openai\_base_client.py", line 993, in _retry_request        return self._request(      File "C:\Users\jasha\AppData\Local\Programs\Python\Python311\Lib\site-packages\openai\_base_client.py", line 960, in _request        raise self._make_status_error_from_response(err.response) from None    openai.RateLimitError: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}

回答:

首先,您需要在项目文件夹中创建一个“.env”文件,像这样

# Once you add your API key below, make sure to not share it with anyone! The API key should remain private.OPENAI_API_KEY=abc123

然后在代码初始化时,它会默认读取该环境变量:

from openai import OpenAI

client = OpenAI()# defaults to getting the key using os.environ.get("OPENAI_API_KEY")# if you saved the key under a different environment variable name, you can do something like:# client = OpenAI(#   api_key=os.environ.get("CUSTOM_ENV_NAME"),# )

还要确保您已正确安装库。或者,您可以直接传递API密钥,但这不推荐,因为这样会暴露在代码中。

!pip install --upgrade pipfrom openai import OpenAIclient = OpenAI(api_key='yourapikey')completion = client.chat.completions.create(  model="gpt-3.5-turbo",  messages=[    {"role": "system", "content": "You are a poetic assistant, skilled in explaining complex programming concepts with creative flair."},    {"role": "user", "content": "Compose a poem that explains the concept of recursion in programming."}  ])print(completion.choices[0].message)

在您发布错误日志后,我终于明白了。错误信息显示您的账户没有余额。您需要一个有效的密钥,或者在您的账户上购买额度。请在这里检查您的账户使用情况 这里

  raise self._make_status_error_from_response(err.response) from None    openai.RateLimitError: Error code: 429 - {'error': {'message': 'You exceeded your current quota, please check your plan and billing details. For more information on this error, read the docs: https://platform.openai.com/docs/guides/error-codes/api-errors.', 'type': 'insufficient_quota', 'param': None, 'code': 'insufficient_quota'}}

来源

Related Posts

L1-L2正则化的不同系数

我想对网络的权重同时应用L1和L2正则化。然而,我找不…

使用scikit-learn的无监督方法将列表分类成不同组别,有没有办法?

我有一系列实例,每个实例都有一份列表,代表它所遵循的不…

f1_score metric in lightgbm

我想使用自定义指标f1_score来训练一个lgb模型…

通过相关系数矩阵进行特征选择

我在测试不同的算法时,如逻辑回归、高斯朴素贝叶斯、随机…

可以将机器学习库用于流式输入和输出吗?

已关闭。此问题需要更加聚焦。目前不接受回答。 想要改进…

在TensorFlow中,queue.dequeue_up_to()方法的用途是什么?

我对这个方法感到非常困惑,特别是当我发现这个令人费解的…

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注