File size: 3,051 Bytes
25773cf
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
# 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)