OpenAI 官方 SDK
以下为 Python 示例,Java / Go 等语言用法完全相同,只改 api_key 和 base_url 即可,其他参数与官方保持一致。
参考官方文档:platform.openai.com/docs/api-reference
对话 + 思考过程(reasoning summary)
python
from openai import OpenAI
import json
def ask_gpt_question(prompt):
client = OpenAI(
api_key='sk-xxxxxx', # 你的令牌
base_url='https://www.dianlitoken.com/v1/', # 接口地址
)
try:
response = client.responses.create(
model='gpt-5-mini',
reasoning={
'effort': 'high', # 高推理强度
'summary': 'detailed', # 返回思考过程,在响应数据的 summary 字段
},
input=[
{'role': 'system', 'content': '你是一个有帮助的中文智能助手'},
{'role': 'user', 'content': prompt}
],
stream=False
)
print('=== 原始响应(JSON美化)===')
print(json.dumps(response.to_dict(), ensure_ascii=False, indent=2))
print('\n=== 最终答案 ===')
print(response.output_text)
return response.output_text
except Exception as e:
return str(e)
answer = ask_gpt_question(
'解答以下数学问题:一个水池有两个进水管和一个排水管。'
'第一个进水管单独打开6小时可以注满水池,'
'第二个进水管单独打开3小时可以注满水池,'
'排水管单独打开2小时可以排空水池。'
'如果三个管同时打开,多少小时可以注满水池?'
)关键参数
reasoning.effort:low/medium/high— 思考强度,越高思考越久reasoning.summary:detailed/concise/auto— 思考摘要详细程度stream:长推理任务推荐设True,避免等太久
流式请求(推荐用于长任务)
python
response = client.responses.create(
model='gpt-5-mini',
input=[{'role': 'user', 'content': '...'}],
stream=True,
)
for event in response:
if event.type == 'response.output_text.delta':
print(event.delta, end='', flush=True)MCP / 网页搜索 等工具
协议要求
OpenAI 的 MCP 和网页搜索等 tools 功能必须使用 responses 格式(即 client.responses.create),并且只有 gpt-5 等新模型支持。
python
response = client.responses.create(
model='gpt-5',
input=[{'role': 'user', 'content': '今天北京天气怎么样?'}],
tools=[
{'type': 'web_search_preview'} # 启用网页搜索
]
)更多 tools 类型见 OpenAI 官方文档。