准备工作
注册OpenAI账号并获取API密钥,访问OpenAI官网登录后,在“API Keys”页面生成密钥。
安装OpenAI官方Python库:
pip install openai
基础调用示例
设置API密钥并发送请求:
import openai
openai.api_key = "你的API密钥"
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "解释量子力学"}]
)
print(response.choices[0].message.content)
流式响应处理
逐字接收生成内容,适合长文本:
stream = openai.ChatCompletion.create(
model="gpt-4",
messages=[{"role": "user", "content": "写一篇关于AI的短文"}],
stream=True
)
for chunk in stream:
content = chunk.choices[0].delta.get("content", "")
print(content, end="", flush=True)
参数调优指南
通过调整参数控制输出:
temperature(0-2):值越高结果越随机max_tokens:限制生成的最大长度top_p:核采样阈值,影响多样性
示例配置:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": "生成创业点子"}],
temperature=0.7,
max_tokens=100,
top_p=0.9
)
错误处理
捕获API异常并重试:
from tenacity import retry, stop_after_attempt
@retry(stop=stop_after_attempt(3))
def query_gpt(prompt):
try:
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content
except Exception as e:
print(f"Error: {str(e)}")
raise
多轮对话实现
维护上下文对话记录:
conversation = [
{"role": "system", "content": "你是一个专业翻译官"}
]
while True:
user_input = input("用户: ")
conversation.append({"role": "user", "content": user_input})
response = openai.ChatCompletion.create(
model="gpt-3.5-turbo",
messages=conversation
)
ai_reply = response.choices[0].message.content
conversation.append({"role": "assistant", "content": ai_reply})
print(f"AI: {ai_reply}")
875

被折叠的 条评论
为什么被折叠?



