244
docs/content/环境配置.ipynb
Normal file
244
docs/content/环境配置.ipynb
Normal 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
|
||||
}
|
||||
BIN
figures/docs/C0/Anaconda-file-list.png
Normal file
BIN
figures/docs/C0/Anaconda-file-list.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 24 KiB |
BIN
figures/docs/C0/openai-choose.png
Normal file
BIN
figures/docs/C0/openai-choose.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 29 KiB |
BIN
figures/docs/C0/openai-get-key.png
Normal file
BIN
figures/docs/C0/openai-get-key.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 236 KiB |
Reference in New Issue
Block a user