Files
prompt-engineering-for-deve…/docs/content/环境配置.ipynb
2023-07-24 15:19:02 +08:00

244 lines
6.1 KiB
Plaintext
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

{
"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": "Python 3 (ipykernel)",
"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.10.11"
}
},
"nbformat": 4,
"nbformat_minor": 4
}