"OpenAI" (Service Connection)

This service connection requires an external account »

Use the OpenAI API with the Wolfram Language.

Connecting & Authenticating

ServiceConnect["OpenAI"] creates a connection to the OpenAI API. If a previously saved connection can be found, it will be used; otherwise, a new authentication request will be launched.
Use of this connection requires internet access and an OpenAI account.

Requests

ServiceExecute["OpenAI","request",params] sends a request to the OpenAI API, using parameters params. The following gives possible requests.

Examples

open allclose all

Basic Examples  (1)

Create a new connection:

Scope  (12)

Text  (4)

Completion  (1)

Change the sampling temperature:

Increase the number of characters returned:

Return multiple completions:

Include the prompt in the returned completion:

Chat  (2)

Respond to a chat containing multiple messages:

Change the sampling temperature:

Increase the number of characters returned:

Return multiple completions:

Allow the model to use an LLMTool:

Send multimodal input:

Embedding  (1)

Compute the embedding for multiple sentences:

Plot the results:

Compute the embeddings for a list of words:

Plot the results:

Image  (4)

ImageCreate  (2)

Create an Image:

Return multiple results:

Change the size of the returned Image:

Use a different model:

ImageVariation  (1)

Create a variation of an Image:

Return multiple results:

Change the size of the returned Image:

ImageEdit  (1)

Use an Image with an alpha channel to indicate where the editing will take place:

Use a non-transparent Image and a mask to indicate where the editing will take place:

Return multiple results:

Change the size of the returned Image:

Audio  (4)

AudioTranscription  (1)

Transcribe an Audio object:

Use a prompt to provide context for the transcription:

Transcribe a recording made in a different language:

Increase the temperature used for the sampling:

Include timestamps in the transcription:

AudioTranslation  (1)

Translate an Audio object into English:

Use a prompt to provide context for the translation:

Increase the temperature used for the sampling:

SpeechSynthesize  (1)

Synthesize a piece of text:

Use a different voice for the synthesis:

Request:

"TestConnection" returns Success for working connection, Failure otherwise

Text

Request:

"Completion" create text completion for a given prompt

Parameters:
  • "Prompt"(required)the prompt for which to generate completions
    "BestOf"Automaticnumber of completions to generate before selecting the "best"
    "Echo"Automaticinclude the prompt in the completion
    "FrequencyPenalty"Automaticpenalize tokens based on their existing frequency in the text so far (between -2 and 2)
    "LogProbs"Automaticinclude the log probabilities on the most likely tokens, as well as the chosen tokens (between 0 and 5)
    "MaxTokens"Automaticmaximum number of tokens to generate
    "Model"Automaticname of the model to use
    "N"Automaticnumber of completions to return
    "PresencePenalty"Automaticpenalize new tokens based on whether they appear in the text so far (between -2 and 2)
    "StopTokens"Noneup to four strings where the API will stop generating further tokens
    "Stream"Automaticreturn the result as server-sent events
    "Suffix"Automaticsuffix that comes after a completion
    "Temperature"Automaticsampling temperature (between 0 and 2)
    "ToolChoice"Automaticwhich (if any) tool is called by the model
    "Tools"Automaticone or more LLMTool objects available to the model
    "TotalProbabilityCutoff"Nonean alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with the requested probability mass
    "User"Automaticunique identifier representing the end user
  • Request:

    "Chat" create a response for the given chat conversation

    Parameters:
  • "Messages"(required)a list of messages in the conversation, each given as an association with "Role" and "Content" keys
    "FrequencyPenalty"Automaticpenalize tokens based on their existing frequency in the text so far (between -2 and 2)
    "LogProbs"Automaticinclude the log probabilities on the most likely tokens, as well as the chosen tokens (between 0 and 5)
    "MaxTokens"Automaticmaximum number of tokens to generate
    "Model"Automaticname of the model to use
    "N"Automaticnumber of chat completions to return
    "PresencePenalty"Automaticpenalize new tokens based on whether they appear in the text so far (between -2 and 2)
    "StopTokens"Noneup to four strings where the API will stop generating further tokens
    "Stream"Automaticreturn the result as server-sent events
    "Suffix"Automaticsuffix that comes after a completion
    "Temperature"Automaticsampling temperature (between 0 and 2)
    "ToolChoice"Automaticwhich (if any) tool is called by the model
    "Tools"Automaticone or more LLMTool objects available to the model
    "TotalProbabilityCutoff"Nonean alternative to sampling with temperature, called nucleus sampling, where the model considers the results of the tokens with the requested probability mass
    "User"Automaticunique identifier representing the end user
  • Request:

    "Embedding" create an embedding vector representing the input text

    Parameters:
  • "Input"(required)one or a list of texts to get embeddings for
    "EncodingFormat"Automaticformat to return the embeddings
    "EncodingLength"Automaticnumber of dimensions of the result
    "Model"Automaticname of the model to use
    "User"Automaticunique identifier representing the end user
  • Image

    Request:

    "ImageCreate" create a square image given a prompt

    Parameters:
  • "Prompt"(required)text description of the desired image
    "Model"Automaticname of the model to use
    "N"Automaticnumber of images to generate
    "Quality"Automaticcontrol the quality of the result; possible values include "hd"
    "Size"Automaticsize of the generated image
    "Style"Automaticstyle of generated images; possible values include "vivid" or "natural"
    "User"Automaticunique identifier representing the end user
  • Request:

    "ImageVariation" create a variation of a given image

    Parameters:
  • "Image"(required)image to use as the basis for the variation
    "N"Automaticnumber of images to generate
    "Size"Automaticsize of the generated image
    "User"Automaticunique identifier representing the end user
  • Request:

    "ImageEdit" create an edited image given an original image and a prompt

    Parameters:
  • "Image"(required)image to edit; requires an alpha channel if a mask is not provided
    "Mask"Noneadditional image whose fully transparent areas indicate where the input should be edited
    "N"Automaticnumber of images to generate
    "Prompt"Nonetext description of the desired image edit
    "Size"Automaticsize of the generated image
    "User"Automaticunique identifier representing the end user
  • Audio

    Request:

    "AudioTranscription" transcribe an audio recording into the input language

    Parameters:
  • "Audio"(required)the Audio object to transcribe
    "Language"Automaticlanguage of the input audio
    "Model"Automaticname of the model to use
    "Prompt"Noneoptional text to guide the model's style or continue a previous audio segment
    "Temperature"Automaticsampling temperature (between 0 and 1)
    "TimestampGranularities"Automaticthe timestamp granularity of transcription (either "word" or "segment")
  • Request:

    "AudioTranslation" translate an audio recording into English

    Parameters:
  • "Audio"(required)the Audio object to translate
    "Model"Automaticname of the model to use
    "Prompt"Noneoptional text to guide the model's style or continue a previous audio segment
    "Temperature"Automaticsampling temperature (between 0 and 1)
  • Request:

    "SpeechSynthesize" synthesize speech from text

    Parameters:
  • "Input"(required)the text to synthesize
    "Model"Automaticname of the model to use
    "Speed"Automaticthe speed of the produced speech
    "Voice"Automaticthe voice to use for the synthesis
  • Model Lists

    Request:

    "ChatModelList" list models available for the "Chat" request

    Request:

    "CompletionModelList" list models available for the "Completion" request

    Request:

    "EmbeddingModelList" list models available for the "Embedding" request

    Request:

    "ModerationModelList" list models available for the "Moderation" request

    Request:

    "ImageModelList" list models available for the image-related requests

    Request:

    "SpeechSynthesizeModelList" list models available for the "SpeechSynthesize" request

    Request:

    "AudioModelList" list models available for the "AudioTranscribe" request

    Moderation

    Request:

    "Moderation" classify if text violates OpenAI's Content Policy

    Parameters:
  • "Input"(required)the text to classify
    "Model"Automaticname of the model to use
  • ServiceExecute  ▪  ServiceConnect  ▪  LLMFunction  ▪  LLMSynthesize  ▪  ChatEvaluate  ▪  LLMConfiguration  ▪  ImageSynthesize  ▪  SpeechRecognize  ▪  "AlephAlpha"  ▪  "Anthropic"  ▪  "Cohere"  ▪  "DeepSeek"  ▪  "GoogleGemini"  ▪  "Groq"  ▪  "MistralAI"  ▪  "TogetherAI"  ▪  "GoogleSpeech"

    Complete a piece of text:

    Generate a response from a chat:

    Compute the embedding for a sentence:

    Generate an Image from a prompt:

    Transcribe an Audio object:

    Synthesize a piece of text: