Merge pull request #69 from Weihong-Liu/PDF

feat:Creat 环境变量.ipynb
This commit is contained in:
Logan Zou
2023-07-20 10:49:56 +08:00
committed by GitHub
4 changed files with 244 additions and 0 deletions

View File

@ -0,0 +1,244 @@
{
"cells": [
{
"cell_type": "markdown",
"metadata": {},
"source": [
"# 环境配置"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"我们需要配置⼀个环境来运⾏ Python、Jupyter Notebook、OpenAI API key、相关库以及运⾏本书所需的代码快速⼊⻔。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 安装Anaconda"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"通过清华源镜像来安装[Anaconda](https://mirrors.tuna.tsinghua.edu.cn/anaconda/archive)\n",
"\n",
"<p align=\"center\">\n",
" <img src=\"../../figures/docs/C0/Anaconda-file-list.png\" width=\"1000\" alt=\"Anaconda下载\">\n",
"</p>\n",
"\n",
"选择对应的版本下载安装即可。\n",
"\n",
"\n",
"如果已安装Anaconda则可以跳过以下步骤。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- 如果我们使用Window系统可以下载`Anaconda3-2023.07-1-Windows-x86_64.exe`安装包直接安装即可。"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"- 如果我们使用MacOS系统\n",
" 1. Intel芯片可以下载`Anaconda3-2023.07-1-MacOSX-x86_64.sh`\n",
" 2. Apple芯片可以下载`Anaconda3-2023.07-1-MacOSX-arm64.sh`\n",
" 并执行以下操作:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"vscode": {
"languageId": "shellscript"
}
},
"outputs": [],
"source": [
"# 以Intel处理器为例⽂件名可能会更改\n",
"sh Anaconda3-2023.07-1-MacOSX-x86_64.sh -b"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"接下来初始化终端Shell以便我们可以直接运⾏conda。"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"vscode": {
"languageId": "shellscript"
}
},
"outputs": [],
"source": [
"~/anaconda3/bin/conda init"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"现在关闭并重新打开当前的shell我们会发现在命令行的前面多了一个`(base)`,这是anaconda的一个基础`python`环境。下⾯我们使⽤以下命令来创建⼀个新的环境:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"vscode": {
"languageId": "shellscript"
}
},
"outputs": [],
"source": [
"# 创建一个名为chatgpt且python版本为3.9的环境\n",
"conda create --name chatgpt python=3.9 -y"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"创建完成后,现在我们来激活 chatgpt 环境:"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {
"vscode": {
"languageId": "shellscript"
}
},
"outputs": [],
"source": [
"conda activate chatgpt"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## 安装本书需要用到的python库"
]
},
{
"cell_type": "code",
"execution_count": null,
"metadata": {},
"outputs": [],
"source": [
"!pip install -q python-dotenv\n",
"!pip install -q openai\n",
"## 等更多的python包"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"## OpenAI API key"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"在获取OpenAI API key之前我们需要[openai官网](https://openai.com/)中注册一个账号。这里假设我们已经有了openai账号先在[openai官网](https://openai.com/)登录,登录后如下图所示:\n",
"\n",
"<p align=\"center\">\n",
" <img src=\"../../figures/docs/C0/openai-choose.png\" width=\"1000\" alt=\"openai官网登录后选择API\">\n",
"</p>\n",
"\n",
"我们选择`API`,然后点击右上角的头像,选择`View API keys`,如下图所示:\n",
"\n",
"<p align=\"center\">\n",
" <img src=\"../../figures/docs/C0/openai-get-key.png\" width=\"1000\" alt=\"openai获取key\">\n",
"</p>\n",
"\n",
"点击`Create new secret key`按钮创建OpenAI API key我们将创建好的OpenAI API key复制以此形式`OPENAI_API_KEY=\"sk-...\"`保存到`.env`文件中,并将`.env`文件保存在项目根目录下。# TODO:放到哪个固定位置待确认\n",
"\n",
"下面是读取`.env`文件的代码"
]
},
{
"cell_type": "code",
"execution_count": 10,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"import openai\n",
"from dotenv import load_dotenv, find_dotenv\n",
"\n",
"# 读取本地/项目的环境变量。\n",
"\n",
"# find_dotenv()寻找并定位.env文件的路径\n",
"# load_dotenv()读取该.env文件并将其中的环境变量加载到当前的运行环境中 \n",
"# 如果你设置的是全局的环境变量,这行代码则没有任何作用。\n",
"_ = load_dotenv(find_dotenv())\n",
"\n",
"# 获取环境变量 OPENAI_API_KEY\n",
"openai.api_key = os.environ['OPENAI_API_KEY']"
]
},
{
"cell_type": "markdown",
"metadata": {},
"source": [
"将读取`.env`文件的代码封装成函数供每一章节直接调用获取在OpenAI API key。"
]
},
{
"cell_type": "code",
"execution_count": 9,
"metadata": {},
"outputs": [],
"source": [
"import os\n",
"from dotenv import load_dotenv, find_dotenv\n",
"def get_openai_key():\n",
" _ = load_dotenv(find_dotenv())\n",
" return os.environ['OPENAI_API_KEY']\n",
"\n",
"openai.api_key = get_openai_key()"
]
}
],
"metadata": {
"kernelspec": {
"display_name": "gpt_flask",
"language": "python",
"name": "python3"
},
"language_info": {
"codemirror_mode": {
"name": "ipython",
"version": 3
},
"file_extension": ".py",
"mimetype": "text/x-python",
"name": "python",
"nbconvert_exporter": "python",
"pygments_lexer": "ipython3",
"version": "3.9.16"
},
"orig_nbformat": 4
},
"nbformat": 4,
"nbformat_minor": 2
}

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 236 KiB