Python OpenAI
音频转文本client.audio.transcriptions.create()将音频转为文字client.audio.transcriptions.create(file=open("audio.mp3","rb"), model="whisper-1")客户端初始化openai.OpenAI(api_key="API_KEY")创建客户端对象client = openai.OpenAI(ap
Python OpenAI
openai 是一个强大的 Python 库,用于与 OpenAI 的一系列模型和服务进行交互。
openai 封装了所有 RESTful API 调用,让开发者能轻松地在自己的 Python 应用中集成强大的 AI 能力,例如自然语言处理、图像生成和语音识别等。
主要功能:
文本生成:使用 GPT-4 或 GPT-5 等模型生成文章、代码、摘要、对话等。
图像生成:通过 DALL-E 模型根据文本描述创建图像。
嵌入(Embeddings):将文本转换成向量表示,常用于语义搜索、文本分类和聚类等任务。
语音转文本:使用 Whisper 模型将音频文件转录成文本。
微调(Fine-tuning):通过提供自己的数据集来训练一个更具针对性的模型。
助手(Assistants)API:构建能够理解上下文、调用工具并进行长期交互的复杂应用。
openai 开源地址:https://github.com/openai/openai-python
如何使用?
首先,你需要用 pip 安装 openai 库:
# 如果下述命令报错,请将pip替换为pip3
pip install openai
然后需要去 OpenAI 官网注册账号,并在 API 密钥页面生成一个 API Key。
实例
import os
from openai import OpenAI
client = OpenAI(
# This is the default and can be omitted
api_key="你申请的 API key",
)
response = client.responses.create(
model="gpt-4o",
instructions="You are a coding assistant that talks like a pirate.",
input="How do I check if a Python object is an instance of a class?",
)
print(response.output_text)
我们国内目前访问 openai 还是有点麻烦,所以本章节采阿里云百炼的 AI 模型来调用演示,国内很多也支持 openai,比如 DeepSeek。
阿里云百炼的通义千问模型支持 OpenAI 兼容接口,您只需调整 API Key、BASE_URL 和模型名称,即可将原有 OpenAI 代码迁移至阿里云百炼服务使用。
我们需要开通阿里云百炼模型服务并获得 API-KEY。
我们可以先使用阿里云主账号访问百炼模型服务平台:https://bailian.console.aliyun.com/,然后点击右上角登录,登录成功后点击右上角的齿轮⚙️图标,选择 API key,然后复制 API key,如果没有也可以创建 API key:
开通阿里云百炼不会产生费用,仅模型调用(超出免费额度后)、模型部署、模型调优会产生相应计费。
现在要使用 API,都需要按 token 来计费,还好都不贵,我们可以先购买个最便宜的包:阿里云百炼大模型服务平台。
使用方式
接下来我们使用 OpenAI SDK 访问百炼服务上的通义千问模型。
非流式调用示例
实例
from openai import OpenAI
import os
def get_response():
client = OpenAI(
api_key="sk-xxx", # 请用阿里云百炼 API Key
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1", # 填写DashScope SDK的base_url
)
completion = client.chat.completions.create(
model="qwen-plus", # 此处以qwen-plus为例,可按需更换模型名称。模型列表:https://help.aliyun.com/zh/model-studio/getting-started/models
messages=[{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}]
)
# json 数据
#print(completion.model_dump_json())
print(completion.choices[0].message.content)
if __name__ == '__main__':
get_response()
运行代码可以获得以下结果:
我是通义千问,阿里巴巴集团旗下的通义实验室自主研发的超大规模语言模型。我可以帮助你回答问题、创作文字,比如写故事、写公文、写邮件、写剧本、逻辑推理、编程等等,还能表达观点,玩游戏等。如果你有任何问题或需要帮助,欢迎随时告诉我!
流式调用示例
实例
from openai import OpenAI
def get_response():
client = OpenAI(
api_key="sk-xxx",
base_url="https://dashscope.aliyuncs.com/compatible-mode/v1",
)
completion = client.chat.completions.create(
model="qwen-plus",
messages=[
{'role': 'system', 'content': 'You are a helpful assistant.'},
{'role': 'user', 'content': '你是谁?'}
],
stream=True,
stream_options={"include_usage": True}
)
for chunk in completion:
# chunk 里可能没有 choices 或 delta
if hasattr(chunk, "choices") and len(chunk.choices) > 0:
choice = chunk.choices[0]
if hasattr(choice, "delta") and hasattr(choice.delta, "content"):
print(choice.delta.content, end='', flush=True)
if __name__ == '__main__':
get_response()
运行代码可以获得以下结果:
我是通义千问,阿里巴巴集团旗下的通义实验室自主研发的超大规模语言模型。我可以帮助你回答问题、创作文字,比如写故事、写公文、写邮件、写剧本、逻辑推理、编程等等,还能表达观点,玩游戏等。如果你有任何问题或需要帮助,欢迎随时告诉我!
参考手册
>功能说明
分类 方法 / 属性 方法 / 属性 示例代码
安装与导入 pip install openai 安装官方 Python SDK import openai
客户端初始化 openai.OpenAI(api_key="API_KEY") 创建客户端对象 client = openai.OpenAI(api_key="sk-xxx")
模型管理 client.models.list() 获取可用模型列表 models = client.models.list()
文本补全 client.completions.create() 根据提示生成文本 client.completions.create(model="text-davinci-003", prompt="你好", max_tokens=50)
聊天生成 client.chat.completions.create() 基于消息生成对话 client.chat.completions.create(model="gpt-3.5-turbo", messages=[{'role':'user','content':'你好'}])
流式输出 stream=True 边生成边输出 for chunk in client.chat.completions.create(…, stream=True): print(chunk.choices[0].delta.content, end='')
上传文件 client.files.upload() 上传训练或微调文件 client.files.upload(file=open("data.jsonl","rb"), purpose="fine-tune")
查看文件 client.files.list() 获取文件列表 client.files.list()
微调模型 client.fine_tunes.create() 对模型进行微调 client.fine_tunes.create(training_file="file-xxx", model="davinci")
生成嵌入 client.embeddings.create() 获取文本向量 client.embeddings.create(input="Hello world", model="text-embedding-3-small")
音频转文本 client.audio.transcriptions.create() 将音频转为文字 client.audio.transcriptions.create(file=open("audio.mp3","rb"), model="whisper-1")
错误处理 openai.error.OpenAIError 捕获 SDK 错误 try: … except openai.error.OpenAIError as e: print(e)
配置超时 client = OpenAI(api_key="xxx", timeout=30) 设置请求超时 client = OpenAI(api_key="sk-xxx", timeout=30)
更多 API 参考:
更多推荐
所有评论(0)