OpenAI Python SDK是OpenAI官方提供的Python库,用于方便地访问OpenAI的REST API。该SDK支持Python 3.7及以上版本,提供了同步和异步两种客户端,并包含了所有请求参数和响应字段的类型定义。
OpenAI Python SDK基于httpx库构建,提供了便捷的API访问方式。它是根据OpenAI的OpenAPI规范使用Stainless自动生成的。
要安装OpenAI Python SDK,只需使用pip执行以下命令:
pip install openai
值得注意的是,SDK在v1版本(2023年11月6日发布)进行了重写。如果你正在从旧版本升级,可以参考v1迁移指南,其中包含了自动更新代码的脚本。
使用OpenAI Python SDK的基本流程 如下:
以下是一个简单的示例:
import os from openai import OpenAI client = OpenAI( api_key=os.environ.get("OPENAI_API_KEY"), ) chat_completion = client.chat.completions.create( messages=[ { "role": "user", "content": "你好,请介绍一下自己。", } ], model="gpt-3.5-turbo", ) print(chat_completion.choices[0].message.content)
在这个例子中,我们首先创建了一个OpenAI客户端实例,然后使用chat.completions.create()
方法发送了一个聊天请求。API密钥可以通过环境变量设置,也可以在创建客户端时直接传入。
OpenAI Python SDK支持使用服务器端事件(SSE)进行流式响应。这对于需要实时输出的应用场景非常有用。以下是一个示例:
from openai import OpenAI client = OpenAI() stream = client.chat.completions.create( model="gpt-4", messages=[{"role": "user", "content": "讲一个关于人工智能的故事"}], stream=True, ) for chunk in stream: print(chunk.choices[0].delta.content or "", end="")
SDK提供了异步客户端AsyncOpenAI
,使用方法与同步客户端类似,只需在API调用前加上await
:
import asyncio from openai import AsyncOpenAI client = AsyncOpenAI() async def main(): chat_completion = await client.chat.completions.create( messages=[ { "role": "user", "content": "Python中如何实现异步编程?", } ], model="gpt-3.5-turbo", ) print(chat_completion.choices[0].message.content) asyncio.run(main())
对于返回列表的API方法,SDK提供了自动分页的迭代器,无需手动请求后续页面:
from openai import OpenAI client = OpenAI() all_jobs = [] for job in client.fine_tuning.jobs.list(limit=20): all_jobs.append(job) print(all_jobs)
SDK支持多种文件上传方式,包括字节流、路径对象或元组:
from pathlib import Path from openai import OpenAI client = OpenAI() client.files.create( file=Path("input.jsonl"), purpose="fine-tune", )
SDK定义了多种异常类型,以便于处理不同的错误情况:
import openai from openai import OpenAI client = OpenAI() try: client.fine_tuning.jobs.create( model="gpt-3.5-turbo", training_file="file-abc123", ) except openai.APIConnectionError as e: print("无法连接到服务器") except openai.RateLimitError as e: print("超出API调用限制") except openai.APIStatusError as e: print(f"API返回了非200状态码: {e.status_code}") print(e.response)
使用环境变量存储API密钥: 推荐使用python-dotenv
库将API密钥存储在.env
文件中,而不是直接硬编码在源代码中。
利用类型提示: SDK提供了完整的类型定义,可以在编辑器中获得自动补全和文档提示。
合理使用重试机制: SDK默认对某些错误进行自动重试,你可以通过max_retries
选项自定义重试行为。
注意超时设置: 默认请求超时时间为10分钟,可以通过timeout
选项进行调整。
使用流式响应: 对于生成大量文本的场景,使用流式响应可以提供更好的用户体验。
异步编程: 在需要处理大量并发请求的场景中,使用异步客户端可以提高性能。
合理管理HTTP资源: 使用上下文管理器或手动调用close()
方法来及时释放HTTP连接。
OpenAI Python SDK也支持Azure OpenAI服务,只需使用AzureOpenAI
类替代OpenAI
类:
from openai import AzureOpenAI client = AzureOpenAI( api_version="2023-07-01-preview", azure_endpoint="https://example-endpoint.openai.azure.com", ) completion = client.chat.completions.create( model="deployment-name", messages=[ { "role": "user", "content": "如何使用Python处理JSON数据?", }, ], ) print(completion.choices[0].message.content)
使用Azure OpenAI时,需要注意API的形状可能与核心API有所不同,因此静态类型可能不总是准确的。
OpenAI Python SDK为开发者提供了一种简单而强大的方式来集成OpenAI的AI能力到自己的应用中。通过本指南,你应该已经掌握了SDK的基本用法和一些高级特性。随着AI技术的不断发展,OpenAI也在持续更新和改进其API和SDK。建议定期查看官方文档以了解最新的功能和最佳实践。
记住,在使用AI技术时,要遵守相关的伦理准则和法律规定,确保你的应用以负责任和有益的方式使用AI。祝你在AI开发之旅中取得成功!
OpenAI Python SDK为开发者提供了强大而灵活的工具,让AI集成变得简单高效。无论你是构建聊天机器人、内容生成系统,还是其他需要自然语言处理的应用,这个SDK都能满足你的需求。通过不断学习和实践,你将能够充分发挥OpenAI API的潜力,创造出令人惊叹的AI应用。
最后,别忘了关注OpenAI的官方博客和GitHub仓库,以获取最新的更新和社区讨论。如果你在使用过程中遇到任何问题或有改进建议,也欢迎在GitHub上提出issue或贡献代码。让我们一起推动AI技术的发展,创造更美好的未来!
一键生成PPT和Word,让学习生活更轻松
讯飞智文是一个利用 AI 技术的项目,能够帮助用户生成 PPT 以及各类文档。无论是商业领域的市场分析报告、年度目标制定,还是学生群体的职业生涯规划、实习避坑指南,亦或是活动策划、旅游攻略等内容,它都能提供支持,帮助用户精准表达,轻松呈现各种信息。
深度推理能力全新升级,全面对标OpenAI o1
科大讯飞的星火大模型,支持语言理解、知识问答和文本创作等多功能,适用于多种文件和业务场景,提升办公和日常生活的效率。讯飞星火是一个提供丰富智能服务的平台,涵盖科技资讯、图像创作、写作辅助、编程解答、科研文献解读等功能,能为不同需求的用户提供便捷高效的帮助,助力用户轻松获取信息、解决问题,满足多样化使用场景。
一种基于大语言模型的高效单流解耦语音令牌文本到语音合成模型
Spark-TTS 是一个基于 PyTorch 的开源文本到语音合成项目,由多个知名机构联合参与。该项目提供了高效的 LLM(大语言模型)驱动的语音合成方案,支持语音克隆和语音创建功能,可通过命令行界面(CLI)和 Web UI 两种方式使用。用户可以根据需求调整语音的性别、音高、速度等参数,生成高质量的语音。该项目适用于多种场景,如有声读物制作、智能语音助手开发等。
字节跳动发布的AI编程神器IDE
Trae是一种自适应的集成开发环境(IDE),通过自动化和多元协作改变开发流程。利用Trae,团队能够更快速、精确地编写和部署代码,从而提高编程效率和项目交付速度。Trae具备上下文感知和代码自动完成功能,是提升开发效率的理想工具。
AI助力,做PPT更简单!
咔片是一款轻量化在线演示设计工具,借助 AI 技术,实现从内容生成到智能设计的一站式 PPT 制作服务。支持多种文档格式导入生成 PPT,提供海量模板、智能美化、素材替换等功能,适用于销售、教师、学生等各类人群,能高效制作出高品质 PPT,满足不同场景演示需求。
选题、配图、成文,一站式创作,让内容运营更高效
讯飞绘文,一个AI集成平台,支持写作、选题、配图、排版和发布。高效生成适用于各类媒体的定制内容,加速品牌传播,提升内容营销效果。
专业的AI公文写作平台,公文写作神器
AI 材料星,专业的 AI 公文写作辅助平台,为体制内工作人员提供高效的公文写作解决方案。拥有海量公文文库、9 大核心 AI 功能,支持 30 + 文稿类型生成,助力快速完成领导讲话、工作总结、述职报告等材料,提升办公效率,是体制打工人的得力写作神器。
OpenAI Agents SDK,助力开发者便捷使用 OpenAI 相关功能。
openai-agents-python 是 OpenAI 推出的一款强大 Python SDK,它为开发者提供了与 OpenAI 模型交互的高效工具,支持工具调用、结果处理、追踪等功能,涵盖多种应用场景,如研究助手、财务研究等,能显著提升开发效率,让开发者更轻松地利用 OpenAI 的技术优势。
高分辨率纹理 3D 资产生成
Hunyuan3D-2 是腾讯开发的用于 3D 资产生成的强大工具,支持从文本描述、单张图片或多视角图片生成 3D 模型,具备快速形状生成能力,可生成带纹理的高质量 3D 模型,适用于多个领域,为 3D 创作提供了高效解决方案。
一个具备存储、管理和客户端操作等多种功能的分布式文件系统相关项目。
3FS 是一个功能强大的分布式文件系统项目,涵盖了存储引擎、元数据管理、客户端工具等多个模块。它支持多种文件操作,如创建文件和目录、设置布局等,同时具备高效的事件循环、节点选择和协程池管理等特性。适用于需要大规模数据存储和管理的场景,能够提高系统的性能和可靠性,是分布式存储领域的优质解决方案。
最新AI工具、AI资讯
独家AI资源、AI项目落地
微信扫一扫关注公众号