openai/openai-python
Publicmirrored fromhttps://github.com/openai/openai-pythonAvailable
README.md
130lines · modecode
| 1 | # OpenAI Python Library |
| 2 | |
| 3 | The OpenAI Python library provides convenient access to the OpenAI API |
| 4 | from applications written in the Python language. It includes a |
| 5 | pre-defined set of classes for API resources that initialize |
| 6 | themselves dynamically from API responses which makes it compatible |
| 7 | with a wide range of versions of the OpenAI API. |
| 8 | |
| 9 | ## Documentation |
| 10 | |
| 11 | See the [OpenAI API docs](https://beta.openai.com/docs/api-reference?lang=python). |
| 12 | |
| 13 | ## Installation |
| 14 | |
| 15 | You don't need this source code unless you want to modify the package. If you just |
| 16 | want to use the package, just run: |
| 17 | |
| 18 | ```sh |
| 19 | pip install --upgrade openai |
| 20 | ``` |
| 21 | |
| 22 | Install from source with: |
| 23 | |
| 24 | ```sh |
| 25 | python setup.py install |
| 26 | ``` |
| 27 | |
| 28 | ## Usage |
| 29 | |
| 30 | The library needs to be configured with your account's secret key which is available on the [website](https://beta.openai.com/account/api-keys). Either set it as the `OPENAI_API_KEY` environment variable before using the library: |
| 31 | |
| 32 | ```bash |
| 33 | export OPENAI_API_KEY='sk-...' |
| 34 | ``` |
| 35 | |
| 36 | Or set `openai.api_key` to its value: |
| 37 | |
| 38 | ```python |
| 39 | import openai |
| 40 | openai.api_key = "sk-..." |
| 41 | |
| 42 | # list engines |
| 43 | engines = openai.Engine.list() |
| 44 | |
| 45 | # print the first engine's id |
| 46 | print(engines.data[0].id) |
| 47 | |
| 48 | # create a completion |
| 49 | completion = openai.Completion.create(engine="ada", prompt="Hello world") |
| 50 | |
| 51 | # print the completion |
| 52 | print(completion.choices[0].text) |
| 53 | ``` |
| 54 | |
| 55 | ### Command-line interface |
| 56 | |
| 57 | This library additionally provides an `openai` command-line utility |
| 58 | which makes it easy to interact with the API from your terminal. Run |
| 59 | `openai api -h` for usage. |
| 60 | |
| 61 | ```sh |
| 62 | # list engines |
| 63 | openai api engines.list |
| 64 | |
| 65 | # create a completion |
| 66 | openai api completions.create -e ada -p "Hello world" |
| 67 | ``` |
| 68 | |
| 69 | ## Example code |
| 70 | |
| 71 | Examples of how to use [embeddings](https://github.com/openai/openai-python/tree/main/examples/embeddings), [fine tuning](https://github.com/openai/openai-python/tree/main/examples/finetuning), [semantic search](https://github.com/openai/openai-python/tree/main/examples/semanticsearch), and [codex](https://github.com/openai/openai-python/tree/main/examples/codex) can be found in the [examples folder](https://github.com/openai/openai-python/tree/main/examples). |
| 72 | |
| 73 | ### Embeddings |
| 74 | |
| 75 | In the OpenAI Python library, an embedding represents a text string as a fixed-length vector of floating point numbers. Embeddings are designed to measure the similarity or relevance between text strings. |
| 76 | |
| 77 | To get an embedding for a text string, you can use the embeddings method as follows in Python: |
| 78 | |
| 79 | ```python |
| 80 | import openai |
| 81 | openai.api_key = "sk-..." # supply your API key however you choose |
| 82 | |
| 83 | # choose text to embed |
| 84 | text_string = "sample text" |
| 85 | |
| 86 | # choose an embedding |
| 87 | model_id = "text-similarity-davinci-001" |
| 88 | |
| 89 | # compute the embedding of the text |
| 90 | embedding = openai.Embedding.create(input=text_string, engine=model_id)['data'][0]['embedding'] |
| 91 | ``` |
| 92 | |
| 93 | An example of how to call the embeddings method is shown in the [get embeddings notebook](https://github.com/openai/openai-python/blob/main/examples/embeddings/Get_embeddings.ipynb). |
| 94 | |
| 95 | Examples of how to use embeddings are shared in the following Jupyter notebooks: |
| 96 | |
| 97 | - [Classification using embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/Classification.ipynb) |
| 98 | - [Clustering using embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/Clustering.ipynb) |
| 99 | - [Code search using embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/Code_search.ipynb) |
| 100 | - [Semantic text search using embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/Semantic_text_search_using_embeddings.ipynb) |
| 101 | - [User and product embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/User_and_product_embeddings.ipynb) |
| 102 | - [Zero-shot classification using embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/Zero-shot_classification.ipynb) |
| 103 | |
| 104 | For more information on embeddings and the types of embeddings OpenAI offers, read the [embeddings guide](https://beta.openai.com/docs/guides/embeddings) in the OpenAI documentation. |
| 105 | |
| 106 | ### Fine tuning |
| 107 | |
| 108 | Fine tuning a model on training data can both improve the results (by giving the model more examples to learn from) and reduce the cost & latency of API calls (by reducing the need to include training examples in prompts). |
| 109 | |
| 110 | Examples of fine tuning are shared in the following Jupyter notebooks: |
| 111 | |
| 112 | - [Classification with fine tuning](https://github.com/openai/openai-python/blob/main/examples/finetuning/finetuning-classification.ipynb) (a simple notebook that shows the steps required for fine tuning) |
| 113 | - Fine tuning a model that answers questions about the 2020 Olympics |
| 114 | - [Step 1: Collecting data](https://github.com/openai/openai-python/blob/main/examples/finetuning/olympics-1-collect-data.ipynb) |
| 115 | - [Step 2: Creating a synthetic Q&A dataset](https://github.com/openai/openai-python/blob/main/examples/finetuning/olympics-2-create-qa.ipynb) |
| 116 | - [Step 3: Train a fine-tuning model specialized for Q&A](https://github.com/openai/openai-python/blob/main/examples/finetuning/olympics-3-train-qa.ipynb) |
| 117 | |
| 118 | For more information on fine tuning, read the [fine-tuning guide](https://beta.openai.com/docs/guides/fine-tuning) in the OpenAI documentation. |
| 119 | |
| 120 | ## Requirements |
| 121 | |
| 122 | - Python 3.7.1+ |
| 123 | |
| 124 | In general we want to support the versions of Python that our |
| 125 | customers are using, so if you run into issues with any version |
| 126 | issues, please let us know at support@openai.com. |
| 127 | |
| 128 | ## Credit |
| 129 | |
| 130 | This library is forked from the [Stripe Python Library](https://github.com/stripe/stripe-python). |
| 131 | |