# OpenAI APIs OpenAI API is a simple restful api. But the have **Python** and **Node.js** packages built on top of the api. We are using the Python package. ## Installation and Setup * **Python:** * **Windows & MacOS:** Go to [Python3.11](https://www.python.org/downloads/release/python-3118/) and find the link in the page and follow the installer. * **WSL2 & Ubuntu:** 1. run ```sudo apt update && sudo apt upgrade```. 2. Check the Python version: ```python -V```. 3. If you need to update the python, run ```sudo apt upgrade python3```. * **Virtual Environment:** 1. Create a venv: ```python -m venv path-to-venv``` venv stands for Virtual Environment. 2. Activate the venv: **Linux & MacOS:** ```source path-to-venv/bin/activate```. **Windows:** ```path-to-venv\Scripts\activate```. * **VS Code:** 1. Install Python Extension: ```Extensions > search Python > Install microsoft.com Python extension```. 2. Choose the Python interpreter from your venv: ```Settings > Command Palette > Python: Select interpreter > Enter interpreter path > Find > Path-to-env/bin/activate```. 3. Choose the kernel for notebooks. * **Set up API Key:** We use ```dotenv``` package and ```.env``` file. This way can work for all similar APIs. 1. In each venv install ```dotenv``` package by ```pip install dotenv```. 2. In each project folder create ```.env``` file. In this file add the following line: ```OPENAI_API_KEY=key```. 3. At the top of the main file of your project, add the following two lines: ```from dotenv import load_dotenv``` ```load_dotenv()``` ## Models * **API Structure:** The API interface is very simple. You just need a client to call any of the models. The following two lines import the needed class and create an instance of it: ``` from openai import OpenAI client = OpenAI() ``` * **Models List** * **GPT-4 Turbo** accessed by handle ```gpt-4-turbo-preview``` or any of the following handles. 1. ```gpt-4-0125-preview``` Context Window: 128 k, Training Data: Up to Dec 2023. 2. ```gpt-4-1106-preview``` Context Window: 128 k, Training Data: Up to Apr 2023. 3. ```gpt-4-1106-vision-preview``` Context Window: 128 k, Training Data: Up to Apr 2023. Understands images. * **GPT-3.5 Turbo** accessed by handle ```gpt-3.5-turbo``` 1. ```gpt-3.5-turbo-0125``` Context Window: 32 k, Training Data: Up to Sep 2021. * **DALL-E** 1. ```dall-e-3``` released Nov 2023 2. ```dall-e-2``` released Nov 2022 * **TTS** Text to natural sounding spoken text. 1. ```tts-1``` 2. ```tts-1-hd``` * **Whisper** general-purpose speech recognition model. * **Embeddings** numerical representation of text for semantic similarity and semantic search. 1. ```text-embeddings-3-large``` Output dimension: 3072 2. ```text-embeddings-3-small``` Output dimension: 1536 3. ```text-embeddings-ada-002``` Output dimension: 1536 (oldest)