Python API
OpenAI
- class RPA.OpenAI.OpenAI
Library to support OpenAI and Azure OpenAI services.
Library is not included in the rpaframework package, so in order to use it you have to add rpaframework-openai with the desired version in your conda.yaml file.
Robot Framework example usage
*** Settings *** Library RPA.Robocorp.Vault Library RPA.OpenAI *** Tasks *** Create a text completion ${secrets} Get Secret secret_name=OpenAI Authorize To OpenAI api_key=${secrets}[key] ${completion} Completion Create ... Write a tagline for an ice cream shop ... temperature=0.6 Log ${completion}
Python example usage
from RPA.Robocorp.Vault import Vault from RPA.OpenAI import OpenAI secrets = Vault().get_secret("OpenAI") baselib = OpenAI() baselib.authorize_to_openai(secrets["key"]) result = baselib.completion_create( Create a tagline for icecream shop', temperature=0.6, ) print(result)
- ROBOT_LIBRARY_DOC_FORMAT = 'REST'
- ROBOT_LIBRARY_SCOPE = 'GLOBAL'
- authorize_to_azure_openai(api_key: str, api_base: str, api_type: Optional[str] = 'azure', api_version: Optional[str] = '2023-05-15') None
Keyword for authorize to Azure OpenAI.
- Parameters
api_key – Your Azure OpenAI API key
api_base – Your Endpoint URL. Example: https://docs-test-001.openai.azure.com/
api_type – “azure”
api_version – “2023-05-15”
Robot Framework example:
${secrets} Get Secret secret_name=AzureOpenAI Authorize To Azure Openai ... api_key=${secrets}[api_key] ... api_base=${secrets}[api_base] ... api_type=azure ... api_version=2023-05-15
Python example:
secrets = Vault().get_secret("AzureOpenAI") baselib = OpenAI() baselib.authorize_to_azure_openai( secrets["api_key"], secrets["api_base"], "azure", "2023-05-15" )
- authorize_to_openai(api_key: str) None
Keyword for authorize to OpenAI with your API key obtained from your account.
- Parameters
api_key – Your OpenAI API key
Robot Framework example:
${secrets} Get Secret secret_name=OpenAI Authorize To OpenAI api_key=${secrets}[key]
Python example:
secrets = Vault().get_secret("OpenAI") baselib = OpenAI() baselib.authorize_to_openai(secrets["key"])
- chat_completion_create(user_content: Optional[str] = None, conversation: Optional[List] = None, model: Optional[str] = 'gpt-3.5-turbo', system_content: Optional[str] = None, temperature: Optional[int] = 1, top_probability: Optional[int] = 1, frequency_penalty: Optional[int] = 0, presence_penalty: Optional[int] = 0) None
Keyword for creating ChatGPT text completions using OpenAI or Azure OpenAI. Keyword returns the response as a string and the message history as a list.
Note. When using
Azure OpenAI
you must provide thedeployment_name
as themodel
parameter instead of the model ID used withOpenAI
.- Parameters
user_content – Text submitted to ChatGPT to generate completions.
conversation – List containing the conversation to be continued. Leave empty for a new conversation.
model – For
OpenAI
the ID of the model to use, e.g.gpt-4
orgpt-3.5-turbo
. ForAzure OpenAI
the Deployment name, e.g.myGPT4deployment
.system_content – The system message helps set the behavior of the assistant.
temperature – What sampling temperature to use between 0 to 2. Higher values means the model will take more risks.
top_probability – An alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with top_p probability mass.
frequency_penalty – Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far.
presence_penalty – Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far.
Robot Framework example:
# Get response without conversation history. ${response} @{chatgpt_conversation}= Chat Completion Create ... user_content=What is the biggest mammal? Log ${response} # Continue the conversation by using the "conversation" argument. ${response} @{chatgpt_conversation}= Chat Completion Create ... conversation=${chatgpt_conversation} ... user_content=How old can it live? Log ${response}
- completion_create(prompt: str, model: Optional[str] = 'text-davinci-003', temperature: Optional[int] = 0.7, max_tokens: Optional[int] = 256, top_probability: Optional[int] = 1, frequency_penalty: Optional[int] = 0, presence_penalty: Optional[int] = 0, result_format: Optional[str] = 'string') None
Keyword for creating text completions in OpenAI and Azure OpenAI. Keyword returns a text string.
Note. When using
Azure OpenAI
you must provide thedeployment_name
as themodel
parameter instead of the model ID used withOpenAI
.- Parameters
prompt – Text submitted to OpenAI for creating natural language.
model – For
OpenAI
the ID of the model to use, e.g.text-davinci-003
. ForAzure OpenAI
the Deployment name, e.g.myDavinci3deployment
.temperature – What sampling temperature to use. Higher values means the model will take more risks..
max_tokens – The maximum number of tokens to generate in the completion..
top_probability – Controls diversity via nucleus sampling. 0.5 means half of all likelihood-weighted options are considered.
frequency_penalty – Number between -2.0 and 2.0. Positive values penalize new tokens based on their existing frequency in the text so far.
presence_penalty – Number between -2.0 and 2.0. Positive values penalize new tokens based on whether they appear in the text so far.
result_format – Result format (string / json). Return just a string or the default JSON response.
Robot Framework example:
${response} Completion Create ... Write a tagline for an icecream shop. ... temperature=0.6 Log ${response}
Python example:
result = baselib.completion_create( 'Create a tagline for icecream shop', temperature=0.6, ) print(result)
- image_create(prompt: str, size: Optional[str] = '512x512', num_images: Optional[int] = 1, result_format: Optional[str] = 'list') None
Keyword for creating one or more images using OpenAI. Keyword returns a list of urls for the images created.
Note. Keyword not supported in the
Azure OpenAI
service.- Parameters
prompt – A text description of the desired image(s). The maximum length is 1000 characters.
size – Size of the files to be created. 256x256, 512x512, 1024x1024
num_images – The number of images to generate. Must be between 1 and 10.
result_format – Result format (list / json).
Robot Framework example:
${images} Image Create ... Cartoon style picture of a cute monkey skateboarding. ... size=256x256 ... num_images=2 FOR ${url} IN @{images} Log ${url} END
Python example:
images = baselib.image_create( 'Cartoon style picture of a cute monkey skateboarding', size='256x256', num_images=2, ) for url in images: print(url)
- image_create_variation(src_image: str, size: Optional[str] = '512x512', num_images: Optional[int] = 1, result_format: Optional[str] = 'list') None
Keyword for creating one or more variations of a image. Keyword returns a list of urls for the images created. Source file must be a valid PNG file, less than 4MB, and square.
Note. Keyword not supported in the
Azure OpenAI
service.- Parameters
src_image – The image to use as the basis for the variation(s). Must be a valid PNG file, less than 4MB, and square.
size – The size of the generated images. Must be one of 256x256, 512x512, or 1024x1024.
num_images – The number of images to generate. Must be between 1 and 10
result_format – Result format (list / json).
Robot Framework example:
${variations} Image Create Variation ... source_image.png ... size=256x256 ... num_images=2 FOR ${url} IN @{variations} Log ${url} END
Python example:
variations = baselib.image_create_variation( 'source_image.png', size='256x256', num_images=2, ) for url in variations: print(url)