"OpenAI" (服务连接)

连接该服务需要外部账户 »

将 OpenAI API 与 Wolfram 语言结合使用.

连接与认证

ServiceConnect["OpenAI"] 创建与 OpenAI API 的连接. 如果可以找到之前保存的连接,则将使用该连接;否则,将发起新的身份认证请求.
使用此连接需要访问互联网和 OpenAI 帐户.

请求

ServiceExecute["OpenAI","request",params] 使用参数 params 向 OpenAI API 发送请求. 下面给出了可能的请求.
请求:

"TestConnection" 如果连接成功,返回 Success,否则返回 Failure

文本

请求:

"Completion" 为给定提示创建文本完成

参数:
  • "Prompt"(必需)为其生成补全的提示
    "BestOf"Automatic在选择 "best" 之前生成多少个补全
    "Echo"Automatic在完成中包括提示语
    "FrequencyPenalty"Automatic根据迄今为止在文本中出现的频次对词元进行惩罚(-2 到 2 之间)
    "LogProbs"Automatic包括最有可能的词元以及被选中的词元的对数概率(0 到 5 之间)
    "MaxTokens"Automatic最多生成多少个词元
    "Model"Automatic使用的模型的名称
    "N"Automatic返回多少个补全
    "PresencePenalty"Automatic根据新词元目前是否已出现在文本中来对其进行惩罚(-2 到 2 之间)
    "StopTokens"None最多四个字符串,
  • 用来指示 API 停止生成更多的词元
  • "Stream"Automatic将结果作为服务器发送的事件返回
    "Suffix"Automatic补全后面的结尾
    "Temperature"Automatic采样温度(0 和 2 之间)
    "ToolChoice"Automatic模型调用哪个工具(如果有)
    "Tools"Automatic模型可用的一个或多个 LLMTool 对象
    "TotalProbabilityCutoff"None温度采样的替代方法,称为核心采样,模型只考虑具有所要求的概率质量的词元
    "User"Automatic代表终端用户的唯一标识符
  • 请求:

    "Chat" 为给定的聊天对话创建响应

    参数:
  • "Messages"(必需)对话中的消息列表,用 "Role""Content" 为键的关联给出每条消息
    "FrequencyPenalty"Automatic根据迄今为止在文本中出现的频次对词元进行惩罚(-2 到 2 之间)
    "LogProbs"Automatic包括最有可能的词元以及被选中的词元的对数概率(0 到 5 之间)
    "MaxTokens"Automatic最多生成多少个词元
    "Model"Automatic使用的模型的名称
    "N"Automatic返回多少个聊天补全
    "PresencePenalty"Automatic根据新词元目前是否已出现在文本中来对其进行惩罚(-2 到 2 之间)
    "StopTokens"None最多四个字符串,
  • 用来指示 API 停止生成更多的词元
  • "Stream"Automatic将结果作为服务器发送的事件返回
    "Suffix"Automatic补全后面的结尾
    "Temperature"Automatic采样温度(0 和 2 之间)
    "ToolChoice"Automatic模型调用哪个工具(如果有)
    "Tools"Automatic模型可用的一个或多个 LLMTool 对象
    "TotalProbabilityCutoff"None温度采样的替代方法,称为核心采样,模型只考虑具有所要求的概率质量的词元
    "User"Automatic代表终端用户的唯一标识符
  • 请求:

    "Embedding" 创建表示输入文本的嵌入向量

    参数:
  • "Input"(必需)要为其创建嵌入向量的一个或一组文本
    "EncodingFormat"Automatic以何种格式返回嵌入向量
    "EncodingLength"Automatic结果的维数
    "Model"Automatic使用的模型的名称
    "User"Automatic代表终端用户的唯一标识符
  • 图像

    请求:

    "ImageCreate" 给定提示,创建一个正方形的图片

    参数:
  • "Prompt"(必需)所需图像的文字描述
    "Model"Automatic使用的模型的名称
    "N"Automatic生成多少幅图像
    "Quality"Automatic控制结果的质量;可能的值包括 "hd"
    "Size"Automatic生成图像的大小
    "Style"Automatic生成的图像的风格;可能的值包括 "vivid""natural"
    "User"Automatic代表终端用户的唯一标识符
  • 请求:

    "ImageVariation" 创建给定图像的变体

    参数:
  • "Image"(必需)以其为基础生成变体的图像
    "N"Automatic生成多少幅图像
    "Size"Automatic生成的图像的大小
    "User"Automatic代表终端用户的唯一标识符
  • 请求:

    "ImageEdit" 在给定原始图像和提示的情况下创建编辑后的图像

    参数:
  • "Image"(必需)要编辑的图像;如果未提供掩模,则需要 alpha 通道
    "Mask"None附加图像,其中完全透明的区域表示应编辑的位置
    "N"Automatic生成多少幅图像
    "Prompt"None文字描述,说明希望怎样对图像进行编辑
    "Size"Automatic生成的图像的大小
    "User"Automatic代表终端用户的唯一标识符
  • 音频

    请求:

    "AudioTranscription" 将录音转录成输入语言

    参数:
  • "Audio"(必需)要转录的 Audio 对象
    "Language"Automatic输入音频使用的语言
    "Model"Automatic使用的模型的名称
    "Prompt"None可选文本,用来表明模型的风格,或继续之前的音频片段
    "Temperature"Automatic采样温度(0 和 1 之间)
    "TimestampGranularities"Automatic转录的时间戳粒度("word""segment"
  • 请求:

    "AudioTranslation" 将录音翻译成英语

    参数:
  • "Audio"(必需)要翻译的 Audio 对象
    "Model"Automatic使用的模型的名称
    "Prompt"None可选文本,用来表明模型的风格,或继续之前的音频片段
    "Temperature"Automatic采样温度(0 和 1 之间)
  • 请求:

    "SpeechSynthesize" 根据文字合成语音

    参数:
  • "Input"(必需)要合成的文字
    "Model"Automatic使用的模型的名称
    "Speed"Automatic生成语音的语速
    "Voice"Automatic合成时使用的声音
  • 模型列表

    请求:

    "ChatModelList" 列出 "Chat" 请求可用的模型

    请求:

    "CompletionModelList" 列出 "Completion" 请求可用的模型

    请求:

    "EmbeddingModelList" 列出 "Embedding" 请求可用的模型

    请求:

    "ModerationModelList" 列出 "Moderation" 请求可用的模型

    请求:

    "ImageModelList" 列出与图像相关的请求可用的模型

    请求:

    "SpeechSynthesizeModelList" 列出 "SpeechSynthesize" 请求可用的模型

    请求:

    "AudioModelList" 列出 "AudioTranscribe" 请求可用的模型

    审核

    请求:

    "Moderation" 审核文本是否违反 OpenAI 的内容政策

    参数:
  • "Input"必需要审核的文本
    "Model"Automatic要使用的模型的名称
  • 范例

    基本范例  (1)

    创建新的连接:

    补完一段文字:

    生成聊天的响应:

    计算一个句子的嵌入向量:

    根据提示生成 Image

    转录 Audio 对象:

    将一段文本转换成语音:

    文字  (6)

    补全  (1)

    改变采样温度:

    增加返回的字符数:

    返回多个完成:

    在返回的完成中包含提示:

    聊天  (2)

    回复包含多条消息的聊天:

    改变采样温度:

    增加返回的字符数:

    返回多个完成:

    允许模型使用 LLMTool

    发送多模态输入:

    嵌入  (2)

    为多个句子计算嵌入:

    绘制结果:

    为一组词计算嵌入:

    绘制结果:

    图像  (5)

    ImageCreate  (2)

    创建一个 Image

    返回多个结果:

    改变返回的 Image 的大小:

    使用不同的模型:

    ImageVariation  (1)

    创建 Image 的变体:

    返回多个结果:

    改变返回的 Image 的尺寸:

    ImageEdit  (1)

    用含有 alpha 通道的 Image 表明在何处进行编辑:

    用不透明的 Image 和掩模表明在何处进行编辑:

    返回多个结果:

    改变返回的 Image 的尺寸:

    音频  (4)

    AudioTranscription  (1)

    转录 Audio 对象:

    用提示提供转录的语境:

    转录用不同语言录制的录音:

    提高采样温度:

    Include timestamps in the transcription:

    AudioTranslation  (1)

    Audio 对象翻译成英文:

    用提示提供翻译的语境:

    提高采样温度:

    SpeechSynthesize  (1)

    将一段文本转换成语音:

    合成时使用不同的声音:

    ServiceExecute  ▪  ServiceConnect  ▪  LLMFunction  ▪  LLMSynthesize  ▪  ChatEvaluate  ▪  LLMConfiguration  ▪  ImageSynthesize  ▪  SpeechRecognize  ▪  "AlephAlpha"  ▪  "Anthropic"  ▪  "Cohere"  ▪  "DeepSeek"  ▪  "GoogleGemini"  ▪  "Groq"  ▪  "MistralAI"  ▪  "TogetherAI"  ▪  "GoogleSpeech"