OpenAI是领先的AI研究公司,提供了一系列强大的AI模型和API。主要产品包括: - GPT系列语言模型 - DALL·E图像生成 - Whisper语音识别 - Codex代码生成
pythonimport openai import os # 设置API密钥 openai.api_key = os.getenv("OPENAI_API_KEY") # 使用ChatCompletion response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[ {"role": "system", "content": "你是一个专业的Python开发者"}, {"role": "user", "content": "如何实现快速排序?"} ], temperature=0.7, max_tokens=1000 ) print(response.choices[0].message.content)
python# 创建图像 response = openai.Image.create( prompt="一只在月光下弹钢琴的猫", n=1, size="1024x1024" ) # 获取图像URL image_url = response['data'][0]['url'] # 图像变体 response = openai.Image.create_variation( image=open("original_image.png", "rb"), n=1, size="1024x1024" )
python# 使用Whisper API audio_file = open("speech.mp3", "rb") transcript = openai.Audio.transcribe("whisper-1", audio_file) print(transcript.text)
python# 结构化提示示例 system_prompt = """ 你是一个专业的数据分析师。请按以下格式回答: 1. 数据概述 2. 关键发现 3. 建议行动 """ user_prompt = "分析过去一个月的销售数据" response = openai.ChatCompletion.create( model="gpt-4", messages=[ {"role": "system", "content": system_prompt}, {"role": "user", "content": user_prompt} ] )
pythonimport time from openai.error import RateLimitError def retry_with_exponential_backoff( func, max_retries=3, initial_delay=1, exponential_base=2, ): def wrapper(*args, **kwargs): num_retries = 0 delay = initial_delay while True: try: return func(*args, **kwargs) except RateLimitError as e: num_retries += 1 if num_retries > max_retries: raise e time.sleep(delay) delay *= exponential_base return wrapper
pythondef count_tokens(text, model="gpt-3.5-turbo"): """估算token数量""" import tiktoken encoding = tiktoken.encoding_for_model(model) return len(encoding.encode(text)) def optimize_prompt(text, max_tokens=2000): """优化prompt长度""" tokens = count_tokens(text) if tokens > max_tokens: # 实现截断逻辑 pass return text
pythonresponse = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "写一个故事"}], stream=True ) for chunk in response: if chunk and chunk.choices[0].delta.content: print(chunk.choices[0].delta.content, end='')
pythonfunctions = [ { "name": "get_weather", "description": "获取指定城市的天气信息", "parameters": { "type": "object", "properties": { "city": {"type": "string"}, "unit": {"type": "string", "enum": ["celsius", "fahrenheit"]} }, "required": ["city"] } } ] response = openai.ChatCompletion.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "北京今天天气怎么样?"}], functions=functions, function_call="auto" )
设置使用限制
内容过滤
使用内容审核API
数据保护