You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 

177 lines
6.1 KiB

{
"cells": [
{
"cell_type": "markdown",
"id": "2a793b1d-a0a9-404c-ada6-58937227cfce",
"metadata": {},
"source": [
"# Oh dear!\n",
"\n",
"If you've got here, then you're still having problems setting up your environment. I'm so sorry! Hang in there and we should have you up and running in no time.\n",
"\n",
"Setting up a Data Science environment can be challenging because there's a lot going on under the hood. But we will get there.\n",
"\n",
"And please remember - I'm standing by to help out. Message me or email ed@edwarddonner.com and I'll get on the case.\n"
]
},
{
"cell_type": "markdown",
"id": "f5190688-205a-46d1-a0dc-9136a42ad0db",
"metadata": {},
"source": [
"# Step 1\n",
"\n",
"Try running the next cell (click in the cell under this one and hit shift+return).\n",
"\n",
"If this doesn't work, then you're likely not running in an \"activated\" environment. Please check back in the [README](../README.md) for setting up the Anaconda (or virtualenv) environment and activating it, before running `jupyter lab`."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "6c78b7d9-1eea-412d-8751-3de20c0f6e2f",
"metadata": {},
"outputs": [],
"source": [
"# This should run with no output - no import errors:\n",
"\n",
"from openai import OpenAI"
]
},
{
"cell_type": "markdown",
"id": "0ba9420d-3bf0-4e08-abac-f2fbf0e9c7f1",
"metadata": {},
"source": [
"# Step 2\n",
"\n",
"Now let's check that your API key is correct set up in your `.env` file.\n",
"Try running the next cell."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "0ee8e613-5a6e-4d1f-96ef-91132da545c8",
"metadata": {},
"outputs": [],
"source": [
"# This should print your API key to the output\n",
"\n",
"import os\n",
"from dotenv import load_dotenv\n",
"load_dotenv()\n",
"print(\"My key is\", os.getenv(\"OPENAI_API_KEY\"))"
]
},
{
"cell_type": "markdown",
"id": "f403e515-0e7d-4be4-bb79-5a102dbd6c94",
"metadata": {},
"source": [
"## It should print something like:\n",
"\n",
"`My key is sk-proj-blahblahblah`\n",
"\n",
"If it didn't print a key, then it's not able to find a file called `.env` in the `llm_engineering` folder. \n",
"Double check those steps in the instructions. Is it possible that `.env` is actually called `.env.txt`? In Windows, you may need to change a setting in the File Explorer to ensure that file extensions are showing. Or you will see them if you type `dir` in the `llm_engineering` directory.\n",
"\n",
"Nasty gotchas to watch out for: \n",
"- In the .env file, there should be no space between the equals sign and the key. Like: `OPENAI_API_KEY=sk-proj-...`\n",
"- If you copied and pasted your API key from another application, make sure that it didn't replace hyphens in tour key with long dashes\n",
"- If you changed your .env file, you might need to restart your Jupyter \"kernel\" (the python process) to pick up the change via the Kernel menu >> Restart kernel, then rerun the cells from the top.\n",
"\n",
"Worst case, if you're not able to get this part to work, it's not a big deal. You'll just have to paste your key into the Jupyter Notebook (see below for an example), and be sure to remove it before you share the Notebook with anybody else."
]
},
{
"cell_type": "markdown",
"id": "42afad1f-b0bf-4882-b469-7709060fee3a",
"metadata": {},
"source": [
"# Step 3\n",
"\n",
"Now run the below code and you will hopefully see that GPT can handle basic arithmetic!!\n",
"\n",
"If not, see the cell below."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "cccb58e7-6626-4033-9dc1-e7e3ff742f6b",
"metadata": {},
"outputs": [],
"source": [
"from openai import OpenAI\n",
"\n",
"my_api_key = \"REPLACE THIS TEXT WITH YOUR OPENAI API KEY WITHIN THE QUOTE MARKS - it should start sk-proj-\"\n",
"\n",
"openai = OpenAI(api_key=my_api_key)\n",
"completion = openai.chat.completions.create(\n",
" model='gpt-4o-mini',\n",
" messages=[{\"role\":\"user\", \"content\": \"What's 2+2?\"}],\n",
")\n",
"print(completion.choices[0].message.content)"
]
},
{
"cell_type": "markdown",
"id": "81046a77-c359-4388-929f-ffc8ad5cb93c",
"metadata": {},
"source": [
"# If this didn't work\n",
"\n",
"Then there's something up with your API key!\n",
"\n",
"First check this webpage to make sure you have a positive credit balance.\n",
"OpenAI requires that you have a positive credit balance and it has minimums. Contact me if this is a problem - I can likely share a key with a small limit. But my salespitch for OpenAI is that this is well worth it for your education: for less than the price of a music album, you will build so much valuable commercial experience.\n",
"\n",
"https://platform.openai.com/settings/organization/billing/overview\n",
"\n",
"Also try creating a new key (button on the top right) here:\n",
"\n",
"https://platform.openai.com/api-keys\n",
"\n",
"And note that sometimes OpenAI seems to take a few minutes to give you access after you try.\n",
"\n",
"## If all else fails:\n",
"\n",
"(1) Try pasting your error into ChatGPT or Claude! It's amazing how often they can figure things out\n",
"\n",
"(2) Contact me! ed@edwarddonner.com\n",
"\n",
"Thanks so much.."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "42165c99-ec20-460b-b94d-ea1da25b2a0a",
"metadata": {},
"outputs": [],
"source": []
}
],
"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.11.10"
}
},
"nbformat": 4,
"nbformat_minor": 5
}