The OpenAI Python library provides convenient access to the OpenAI API from applications written in the Python language. It includes a pre-defined set of classes for API resources that initialize themselves dynamically from API responses which makes it compatible with a wide range of versions of the OpenAI API.
See the OpenAI API docs.
You don't need this source code unless you want to modify the package. If you just want to use the package, just run:
pip install --upgrade openaiInstall from source with:
python setup.py installThe library needs to be configured with your account's secret key which is available on the website. Either set it as the OPENAI_API_KEY environment variable before using the library:
export OPENAI_API_KEY='sk-...'Or set openai.api_key to its value:
import openai openai.api_key = "sk-..." # list engines engines = openai.Engine.list() # print the first engine's id print(engines.data[0].id) # create a completion completion = openai.Completion.create(engine="ada", prompt="Hello world") # print the completion print(completion.choices[0].text)This library additionally provides an openai command-line utility which makes it easy to interact with the API from your terminal. Run openai api -h for usage.
# list engines openai api engines.list # create a completion openai api completions.create -e ada -p "Hello world"Examples of how to use embeddings, fine tuning, semantic search, and codex can be found in the examples folder.
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.
To get an embedding for a text string, you can use the embeddings method as follows in Python:
import openai openai.api_key = "sk-..." # supply your API key however you choose # choose text to embed text_string = "sample text" # choose an embedding model_id = "text-similarity-davinci-001" # compute the embedding of the text embedding = openai.Embedding.create(input=text_string, engine=model_id)['data'][0]['embedding']An example of how to call the embeddings method is shown in the get embeddings notebook.
Examples of how to use embeddings are shared in the following Jupyter notebooks:
- Classification using embeddings
- Clustering using embeddings
- Code search using embeddings
- Semantic text search using embeddings
- User and product embeddings
- Zero-shot classification using embeddings
For more information on embeddings and the types of embeddings OpenAI offers, read the embeddings guide in the OpenAI documentation.
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).
Examples of fine tuning are shared in the following Jupyter notebooks:
- Classification with fine tuning (a simple notebook that shows the steps required for fine tuning)
- Fine tuning a model that answers questions about the 2020 Olympics
For more information on fine tuning, read the fine-tuning guide in the OpenAI documentation.
- Python 3.7.1+
In general we want to support the versions of Python that our customers are using, so if you run into issues with any version issues, please let us know at support@openai.com.
This library is forked from the Stripe Python Library.