Users — Jupyter AI documentation(openai_api_key jupyter notebook)
I. 理解OpenAI API及其密钥
A. OpenAI API概述
OpenAI API是一种人工智能接口,用于生成自然语言文本。该接口可以用于各种任务,如聊天机器人、翻译、文本摘要等。通过OpenAI API,开发者可以轻松地让机器生成高质量的自然语言文本。
OpenAI API提供了多种模型,包括ChatGPT、TextGPT和Davinci等。每一个模型都有其特定的用处和生成能力。开发者可以根据项目需求选择适合的模型。
B. OpenAI API密钥
API密钥是访问OpenAI API的凭证。用户需要在OpenAI官网注册并获得API密钥才能使用API。
通过API密钥,开发者可以调用OpenAI API进行文本生成。每一个API密钥都与对应的OpenAI账户关联,用于标识和验证用户身份。
II. 使用Jupyter Notebook调用OpenAI API
A. 安装OpenAI库和Jupyter Notebook
要在Jupyter Notebook中调用OpenAI API,需要先安装OpenAI库和Jupyter Notebook。
通过pip命令可以方便地安装openai库:pip install openai。同时,需要安装带有AI插件的Jupyter Notebook,以便更好地使用OpenAI API。
B. 配置API密钥
在使用OpenAI API之前,需要配置API密钥。有两种经常使用的配置API密钥的方式。
- 方式一:在Jupyter Notebook中使用%env命令设置OPENAI_API_KEY环境变量。
- 方式二:新建.env文件,将API密钥和代理URL写入.env文件中。
- OPENAI_API_BASE=your-openai-proxy-url
- OPENAI_API_KEY=your-openai-api-key
示例: %env OPENAI_API_KEY=your-api-key-here
示例:
配置API密钥后,可以通过环境变量来访问API,确保安全性。
C. 加载Jupyter AI插件
为了更好地使用OpenAI API,在Jupyter Notebook中加载AI插件可以提供更多功能和便利。
在Jupyter Notebook中输入”%load_ext jupyter_ai”命令便可加载AI插件,该插件将提供更多AI相关的功能和接口。
D. 示例:使用ChatGPT模型调用OpenAI API
下面是一个使用ChatGPT模型调用OpenAI API的示例。
- 在Jupyter Notebook中使用”%env OPENAI_API_KEY=your-api-key”命令配置API密钥。
- 使用openai库调用ChatGPT模型生成文本。
- 示例:response = openai.Completion.create(engine=”tex…”, prompt=”…”)
- print(response[‘choices’][0][‘text’])
通过这个示例,开发者可以了解怎样使用Jupyter Notebook调用OpenAI API,并利用ChatGPT模型生成自然语言文本。
E. 其他注意事项
在使用OpenAI API时,需要注意以下事项:
- API密钥需要妥善保管,避免泄漏。
- 可以通过设置OPENAI_API_BASE环境变量来使用代理访问OpenAI API。
通过注意这些事项,开发者可以更好地使用OpenAI API,并确保安全性和稳定性。
通过上陈述明,开发者可以了解OpenAI API的概念、API密钥的配置方法和在Jupyter Notebook中调用OpenAI API的示例。使用OpenAI API可以轻松地实现各种自然语言文本生成的利用,不管是聊天机器人、翻译或者文本摘要等任务,都可以通过OpenAI API实现。通过使用Jupyter Notebook和OpenAI API,开发者可以更高效地开发和测试自然语言处理的相关利用。
openai_api_key jupyter notebook的进一步展开说明
欢迎使用Jupyter AI用户文档。
如果您有兴趣为Jupyter AI做出贡献,请参阅我们的贡献者指南。
jupyter_ai_magics软件包专门提供IPython魔术命令,不依赖于JupyterLab或jupyter_ai。您可以安装jupyter_ai_magics而无需安装jupyterlab或jupyter_ai。如果您同时安装了jupyter_ai_magics和jupyter_ai,请确保它们的每一个版本相同,以免出错。
jupyter_ai软件包在JupyterLab中提供了lab扩大和用户界面,它依赖于JupyterLab 4。如果您的环境没法升级到JupyterLab 4,请安装jupyter_ai v1.x。有关详细信息,请参阅“安装”。
如果您使用的是conda,请通过运行以下命令在您的环境中安装Python 3.11:
您可以在任何能够运行支持的Python版本3.8至3.11的系统上运行Jupyter AI,包括最新的Windows、macOS和Linux版本。
在使用Jupyter AI启动JupyterLab之前,请确保先激活Conda环境:
然后,依照“要求”和“通过pip安装”中的步骤在此Conda环境中安装JupyterLab和Jupyter AI。
首先,安装conda并创建一个使用Python 3.11的环境:
我们强烈建议您在隔离的Conda环境中安装JupyterLab和Jupyter AI,以免破坏现有Python环境中的Python包。
如果您不使用JupyterLab,并且只想安装Jupyter AI %%ai魔术命令,可以运行:
jupyter_ai的最新主要版本,v2,仅支持JupyterLab 4。如果您需要支持JupyterLab 3,请安装jupyter_ai v1:
当用户使用Jupyter AI进行API要求时,模型提供商可能向用户收取API使用费。Jupyter AI用户在进行API要求时需自行承当所有费用。在提交Jupyter AI的要求之前,请查看您的模型提供商的定价信息。
例如,要使用OpenAI模型,请在终端上安装必要的软件包,并在启动JupyterLab时设置环境变量:
要使用SageMaker的模型,您需要通过boto3进行身份验证。
当您部署模型时,SageMaker将创建终端节点名称。有关详细信息,请参阅SageMaker文档中的“创建终端节点并部署模型”。
您需要pillow Python包才能使用Hugging Face Hub的文本到图象模型。
要使用Bedrock模型,您需要通过boto3进行身份验证。
要使用Bedrock模型,您需要访问Bedrock服务。有关详细信息,请参阅Amazon Bedrock首页。
上述环境变量名称也是在设置聊天界面时使用的设置键的名称。
Jupyter AI支持各种模型提供商和模型。要与特定提供商一起使用Jupyter AI,您一定要安装其Python包,并在环境变量或聊天界面中设置其API密钥(或其他凭据)。
要清除聊天面板,请使用/clear命令。这不会重置AI模型;模型依然可能记住您发送的上一条消息,并可能使用它们来生成回复。
对/learn命令,某些模型在自定义块大小和块堆叠值方面表现更好。要更改默许设置,使用-c或–chunk-size选项和-o或–chunk-overlap选项。
要清除本地向量数据库,您可以运行/learn -d,Jupyter AI将忘记从/learn命令中学到的所有信息。
然后,您可使用/ask询问一个与您使用/learn教授给Jupyter AI的数据相关的问题。
例如,要教授Jupyter AI有关一个满满一全部文件夹的文档的知识,请运行/learn docs/。当Jupyter AI在本地向量数据库中索引此文档时,您将收到一个回复。
如果您正在使用由第三方托管的嵌入模型,请在发送任何机密、敏感或受特权的数据给嵌入模型之前,仔细查看您的模型提供商的策略。
使用/learn命令,您可以教授Jupyter AI有关本地数据的知识,以便Jupyternaut在回答您的问题时可以包括这些数据。这些本地数据由您选择的嵌入模型进行转换,包括文档和源代码文件,以生成可以帮助Jupyter AI组合到语言模型中的提示。
生成的笔记本可能包括毛病,并且在运行其中包括的代码时可能会产生意外的副作用。在运行之前,请仔细审查所有生成的代码。
当Jupyter AI完成生成您的笔记本后,它会向您发送另外一条消息,其中包括它生成的文件名。然后,您可使用文件浏览器打开此文件。
特别是如果您的提示很详细,生成笔记本可能需要几分钟的时间。在此期间,您依然可以正常使用JupyterLab和Jupyter AI。在Jupyter AI工作时,请不要关闭JupyterLab实例。
生成笔记本可能需要很长时间,因此在进行工作时,Jupyter AI将立即响应您的消息。在此期间,您可以继续向其询问其他问题。
您可使用Jupyter AI从文本提示生成全部笔记本。要开始,请打开聊天面板,发送以/generate开头的消息。
在Jupyternaut发送回应后,您的笔记本将立即更新,回应将替换选择。您还可以在聊天面板中查看回复。
当您替换选择时,数据会立即写入,并在Jupyter AI向消息发送回应后。在运行之前,请仔细查看任何生成的代码。
您可以将Jupyternaut的回复复制到剪贴板,以便您可以将其粘贴到您的笔记本或任何其他利用程序中。您也能够在发送消息之前点击“替换选择”来用Jupyternaut的回复替换选择。
您的消息下面将显示Jupyternaut的回复。
在突出显示笔记本的某个部份后,请在聊天面板当选中“包括选择”,然后输入您的消息,并发送消息。您发送的出站消息将包括您的选择。
如果选择包括在您的消息中,这可能会增加您的要求中的令牌数量,从而可能致使要求花费更多的费用。在进行大量要求之前,请查看您的模型提供商的费用政策。
Jupyter AI的聊天界面可以在提示中包括笔记本的部份内容。
GPT4All支持仍处于初期阶段,使用进程中可能会遇到一些毛病。我们的团队正在积极改进对本地托管模型的支持。
在此URL https://
对您使用的每一个模型,您都一定要运行以下命令:
请注意,每一个模型都附带自己的许可证,用户自行负责验证其使用会不会符合许可证。您可以在GPT4All官方网站上找到许可详细信息。
目前,我们对GPT4All提供实验性支持。要开始,请首先肯定要使用的模型。我们目条件供了GPT4All的三个模型:
响应路径: JSONPath字符串,用于从终端响应的JSON中检索语言模型的输出。在此示例中,终端返回具有模式{“generated_texts”:[“
要求模式: 终端所需的JSON对象,其中提示被替换为匹配字符串字面的值。在此示例中,要求模式{“text_inputs”:”
区域名称: 您的SageMaker终端点托管的AWS区域,例如us-west⑵。
终端点名称:您的终端节点的名称。可以从AWS控制台的此URL https://
“语言模型”下的每一个附加字段都是一定要的。这些字段应包括以下数据:
在设置面板当选择Sagemaker提供者时,您将看到以下界面:
Jupyter AI支持在使用JSON模式的SageMaker终端点上托管的语言模型。第一步是通过boto3 SDK进行AWS身份验证,并将凭据存储在默许个人资料中。有关如何履行此操作的指点,请参阅boto3文档。
聊天后端会记住您对话中的最后两次交换,并将它们传递给语言模型。您可以在不重复来自先前对话的信息的情况下询问后续问题。以下是与后续问题的聊天对话的示例:
要编写一条消息,请在聊天界面底部的文本框中键入消息,并按Enter键发送。按Shift + Enter键添加新行(这些是默许的键绑定;您可以在聊天设置窗格中更改它们)。发送消息后,您应当能够在Jupyternaut,即Jupyter AI聊天机器人,的回复中看到一个回应。
在启动JupyterLab后,点击左边侧边栏中的“chat”图标以打开聊天界面。如果您喜欢,可以右键单击该面板图标并将其移到另外一侧。
聊天界面将数据发送到由第三方托管的生成AI模型。请查看模型提供商的隐私政策以了解它怎样使用您发送给它的数据。在使用聊天界面时,请查看其定价模型,以便了解您使用聊天界面时的付费义务。
要使用Jupyter AI magics在笔记本中调用Jupyter AI,您可使用%% ai cell magic和%ai line magic。本节介绍了如何有效使用Jupyter AI magics的准则。这些示例基于Jupyter AI示例笔记本。
如果您已安装了jupyter_ai_magics,那末magics软件包jupyter_ai_magics将自动安装。否则,在终端中运行pip install jupyter_ai_magics以安装magics软件包。
在发送第一个提示到AI模型之前,请在笔记本单元格或IPython shell中运行以下代码加载IPython扩大:
%load_ext jupyter_ai_magics
此命令不应产生任何输出。
注意 如果您使用远程内核(例如Amazon SageMaker Studio),上述命令将引发毛病。这意味着您需要在远程内核上单独安装magics包,即便您的服务器环境中已安装了jupyter_ai_magics。在笔记本中,运行%pip install jupyter_ai_magics并重新运行%load_ext jupyter_ai_magics。
扩大加载后,您可以运行%%ai单元格魔术和%ai行魔术。运行%ai help或%ai help以获得有关语法的帮助。您还可以将–help作为参数传递给任何行魔术命令(例如,%ai list –help)以了解该命令的功能和用法。
选择提供商和模型 #%%
%%ai cell magic允许您使用给定的提示调用所选择的语言模型。模型以全局模型ID标识,该模型ID是一个字符串,其语法为
%% ai anthropic : claude – v1 .2
写一首关于C ++的诗。
我们目前支持以下语言模型提供商:
ai21
anthropic
cohere
huggingface_hub
openai
openai-chat
sagemaker-endpoint
列出可用模型 #%%
Jupyter AI还包括多个子命令,可以通过%ai行魔术调用。Jupyter AI使用子命令在笔记本中提供其他实用程序,同时保持相同简洁的语法来调用语言模型。%ai list子命令打印可用提供商和模型列表。一些提供商在其API中明肯定义了受支持的模型列表。但是,其他提供商,如Hugging Face Hub,缺少明肯定义的可用模型列表。在这类情况下,最好查阅提供商的上游文档。例如,Hugging Face网站上有一个模型列表。您可以选择将提供商ID作为位置参数传递给%ai list以获得某一提供商提供的所有模型。例如,%ai list openai将仅显示由openai提供的模型。
缩写语法 #%%
如果您的模型ID仅与一个提供商关联,您可以省略提供商ID和冒号。例如,由于ai21是j2-jumbo-instruct模型的唯一提供商,您可使用完全的提供商和模型,
%% ai ai21 : j2 – jumbo – instruct
写一些打印“hello world”到控制台的JavaScript代码。
或只使用模型,
%% ai j2 – jumbo – instruct
# 推断AI21提供商
写一些打印“hello world”到控制台的JavaScript代码。
格式化输出 #%%
默许情况下,Jupyter AI假定模型将以markdown格式输出,因此通过默许方式将%%ai命令的输出格式化为markdown。您可使用-f或–format参数覆盖此行动。有效的格式包括:
代码
图象(仅适用于Hugging Face Hub的文本到图象模型)
markdown
数学
HTML
JSON
文本
例如,要强迫将命令的输出解释为HTML,您可以运行:
%% ai anthropic : claude – v1 .2 – f html
使用SVG创建一个具有黑色边框和白色填充的正方形。
以下单元格将以IPython的数学格式生成输出,在Web浏览器中将显示为正确排版的方程式。
%%ai chatgpt -f math
用“$$”包围的格式,生成2D热传导方程。
使用prompt模板 #%%
每一个提供商可以为每一个支持的格式定义prompt模板。prompt模板指点语言模型以特定格式生成输出。默许的prompt模板是一个Python字典,将格式映照到模板。编写BaseProvider的子类的开发人员可以通过实现自己的get_prompt_template函数来根据输出格式、模型和提交的提示来覆盖模板。每一个prompt模板包括字符串{prompt},在运行魔术命令时将其替换为用户提供的提示。
清除OpenAI chat历史记录 #%%
只有在openai-chat提供程序中,您可以运行一个使用-r或–reset选项的单元格魔术命令来清除聊天历史记录。这样做后,您先前使用openai-chat提供程序运行的魔术命令将不再作为上下文添加到此提供程序的要求中。由于%%ai命令是一个单元格魔术命令,因此您一定要在第二行提供一个提示。重置命令不会生成任何输出。
%% ai openai – chat : gpt – 3.5 – turbo – r
重置聊天历史记录
在提示中进行插值 #%%
使用大括号语法,您可以在提示中包括变量和其他Python表达式。这样可让您在使用IPython kernel知道但当前单元格中没有的代码中履行提示。例如,我们可以在一个笔记本单元格中设置一个变量:
poet = “Walt Whitman”
然后,我们可以在后续单元格中的%%ai命令中使用相同的变量:
%% ai chatgpt
以{ poet }的风格写一首诗。
当此单元格运行时,{poet}将被替换为Walt Whitman,或在那时分配给poet的任何诗人名字。
您可使用特殊的In和Out列表以插值语法来解释Jupyter笔记本中的其他位置的代码。例如,如果在一个单元格中运行了以下代码,并将其输入分配给In[11]:
for i in range ( 0 , 5 ):
print ( i )
然后,您可以在后续单元格中的%%ai魔术命令中援用In[11],它将被替换为对应的代码:
%% ai cohere : command – xlarge – nightly
解释下面的代码:– { In [ 11 ]}
您还可使用相同的索引将单元格的输出指定为特殊的Out列表。
%% ai cohere : command – xlarge – nightly
编写将生成以下输出的代码:– { Out [ 11 ]}
Jupyter AI还添加了一个特殊的Err列表,它使用与In和Out相同的索引。例如,如果您在In[3]中运行了一个产生毛病的代码,该毛病会在Err[3]中捕获,以便您可使用以下提示要求解释:
%% ai chatgpt
解释以下Python毛病:– { Err [ 3 ]}
然后AI模型将尝试解释该毛病。您还可以编写一个使用In和Err的提示来尝试使AI模型更正您的代码:
%% ai chatgpt — format code
以下Python代码:– { In [ 3 ]} — 产生以下Python毛病:– { Err [ 3 ]} — 编写一份不会产生该毛病的新代码。
作为解释毛病的快捷方式,您可使用% ai error命令,它将使用您选择的模型解释最近的毛病。
% ai error anthropic : claude – v1 .2
创建和管理别名 #%%
您可使用% ai register命令为模型创建别名。例如,以下命令:
% ai register claude anthropic : claude – v1 .2
将注册别名claude,使其指向anthropic提供商的claude-v1.2模型。然后,您可以像使用任何其他模型名称一样使用该别名:
%% ai claude
写一首关于C ++的诗。
您还可以通过% ai update命令更改别名的目标:
% ai update claude anthropic : claude – instant – v1 .0
您可使用% ai delete命令删除别名:
% ai delete claude
您可使用%ai list命令查看所有别名的列表。别名的名称可以包括ASCII字母(大写和小写)、数字、连字符、下划线和句点。它们可能不包括冒号。它们也不能覆盖内置命令 – 运行%ai help以获得这些命令的列表。别名一定要指向模型或LLMChain对象;它们不能指向其他别名。
openai_api_key jupyter notebook的常见问答Q&A
问题1:如何通过Python调用OpenAI的API?
答案:可以通过以下步骤来使用Python调用OpenAI的API:
- 首先,需要注册OpenAI账号并获得API密钥。
- 导入OpenAI库并配置API密钥:
import openai openai.api_key = 'your-api-key-here'
- 调用OpenAI的API来提交问题并获得答案:
response = openai.Completion.create( engine="davinci", prompt="你的问题", max_tokens=100 ) answer = response.choices[0].text.strip()
示例:
import openai
openai.api_key = 'your-api-key-here'
response = openai.Completion.create(
engine="davinci",
prompt="What is the meaning of life?",
max_tokens=100
)
answer = response.choices[0].text.strip()
print(answer)