openai/openai-python

Public

mirrored from https://github.com/openai/openai-pythonAvailable

CodeCommitsIssuesPull requestsActionsInsightsSecurity
v0.14.0

Branches

Tags

  • No tags available.
0Branches0Tags
Go to file
Add file
Code

Clone

HTTPS

Download ZIP

README.md

164lines · modeblame

3c6d4cd6Greg Brockman5 years ago1# OpenAI Python Library
2
3The OpenAI Python library provides convenient access to the OpenAI API
4from applications written in the Python language. It includes a
5pre-defined set of classes for API resources that initialize
6themselves dynamically from API responses which makes it compatible
7with a wide range of versions of the OpenAI API.
8
9## Documentation
10
d53d9efbRachel Lim5 years ago11See the [OpenAI API docs](https://beta.openai.com/docs/api-reference?lang=python).
3c6d4cd6Greg Brockman5 years ago12
13## Installation
14
15You don't need this source code unless you want to modify the package. If you just
16want to use the package, just run:
17
18```sh
19pip install --upgrade openai
20```
21
22Install from source with:
23
24```sh
25python setup.py install
26```
27
d53d9efbRachel Lim5 years ago28## Usage
29
30The 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
33export OPENAI_API_KEY='sk-...'
34```
35
36Or set `openai.api_key` to its value:
37
38```python
39import openai
40openai.api_key = "sk-..."
41
42# list engines
43engines = openai.Engine.list()
44
45# print the first engine's id
46print(engines.data[0].id)
47
48# create a completion
49completion = openai.Completion.create(engine="ada", prompt="Hello world")
50
51# print the completion
52print(completion.choices[0].text)
53```
54
f288b001Sorin Suciu4 years ago55### Microsoft Azure Endpoints
56
57In order to use the library with Microsoft Azure endpoints, you need to set the api_type, api_base and api_version in addition to the api_key. The api_type must be set to 'azure' and the others correspond to the properites of your endpoint.
58In addition, the deployment name must be passed as the engine parameter.
59
60```python
61import openai
62openai.api_type = "azure"
63openai.api_key = "..."
64openai.api_base = "https://example-endpoint.openai.azure.com"
65openai.api_version = "2021-11-01-preview"
66
67# create a completion
68completion = openai.Completion.create(engine="deployment-namme", prompt="Hello world")
69
70# print the completion
71print(completion.choices[0].text)
72
73# create a search and pass the deployment-name as the engine Id.
74search = openai.Engine(id="deployment-namme").search(documents=["White House", "hospital", "school"], query ="the president")
75
76# print the search
77print(search)
78```
62b51ca0Boris Dayma4 years ago79
f288b001Sorin Suciu4 years ago80Please note that for the moment, the Microsoft Azure endpoints can only be used for completion and search operations.
81
d53d9efbRachel Lim5 years ago82### Command-line interface
83
84This library additionally provides an `openai` command-line utility
85which makes it easy to interact with the API from your terminal. Run
86`openai api -h` for usage.
87
0e21703eTed Sanders4 years ago88```sh
d53d9efbRachel Lim5 years ago89# list engines
90openai api engines.list
91
92# create a completion
93openai api completions.create -e ada -p "Hello world"
94```
95
0e21703eTed Sanders4 years ago96## Example code
97
98Examples 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).
99
100### Embeddings
101
102In 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.
103
104To get an embedding for a text string, you can use the embeddings method as follows in Python:
105
106```python
107import openai
108openai.api_key = "sk-..." # supply your API key however you choose
109
110# choose text to embed
111text_string = "sample text"
112
113# choose an embedding
f4be8f2fhallacy4 years ago114model_id = "text-similarity-davinci-001"
0e21703eTed Sanders4 years ago115
116# compute the embedding of the text
f4be8f2fhallacy4 years ago117embedding = openai.Embedding.create(input=text_string, engine=model_id)['data'][0]['embedding']
0e21703eTed Sanders4 years ago118```
119
120An 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).
121
122Examples of how to use embeddings are shared in the following Jupyter notebooks:
123
124- [Classification using embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/Classification.ipynb)
125- [Clustering using embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/Clustering.ipynb)
126- [Code search using embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/Code_search.ipynb)
127- [Semantic text search using embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/Semantic_text_search_using_embeddings.ipynb)
128- [User and product embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/User_and_product_embeddings.ipynb)
129- [Zero-shot classification using embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/Zero-shot_classification.ipynb)
eabf01f0Ted Sanders4 years ago130- [Recommendation using embeddings](https://github.com/openai/openai-python/blob/main/examples/embeddings/Recommendation.ipynb)
0e21703eTed Sanders4 years ago131
132For 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.
133
134### Fine tuning
135
136Fine 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).
137
138Examples of fine tuning are shared in the following Jupyter notebooks:
139
140- [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)
141- Fine tuning a model that answers questions about the 2020 Olympics
142- [Step 1: Collecting data](https://github.com/openai/openai-python/blob/main/examples/finetuning/olympics-1-collect-data.ipynb)
143- [Step 2: Creating a synthetic Q&A dataset](https://github.com/openai/openai-python/blob/main/examples/finetuning/olympics-2-create-qa.ipynb)
144- [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)
145
62b51ca0Boris Dayma4 years ago146Sync your fine-tunes to [Weights & Biases](https://wandb.me/openai-docs) to track experiments, models, and datasets in your central dashboard with:
147
148```bash
149openai wandb sync
150```
151
0e21703eTed Sanders4 years ago152For more information on fine tuning, read the [fine-tuning guide](https://beta.openai.com/docs/guides/fine-tuning) in the OpenAI documentation.
153
3c6d4cd6Greg Brockman5 years ago154## Requirements
155
62f8d40fMadeleine Thompson4 years ago156- Python 3.7.1+
3c6d4cd6Greg Brockman5 years ago157
158In general we want to support the versions of Python that our
159customers are using, so if you run into issues with any version
160issues, please let us know at support@openai.com.
161
162## Credit
163
164This library is forked from the [Stripe Python Library](https://github.com/stripe/stripe-python).