OpenAI 开发者快速入门

快速上手 OpenAI API,实现文本生成、图像分析、文件处理等功能。


一、生成文本

1. 基础示例:调用模型生成文本

cURL 示例:

curl "https://api.openai.com/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
      "model": "gpt-5",
      "input": "写一个关于独角兽的睡前故事,一句话说完。"
  }'

Python 示例:

from openai import OpenAI
client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    input="写一个关于独角兽的睡前故事,一句话说完。"
)
print(response.output_text)

二、分析图像和文件

1. 分析图像内容

cURL 示例:

curl "https://api.openai.com/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
      "model": "gpt-5",
      "input": [
          {
              "role": "user",
              "content": [
                  {"type": "input_text", "text": "这张图片里有什么?"},
                  {"type": "input_image", "image_url": "https://example.com/cat_and_otter.png"}
              ]
          }
      ]
  }'

Python 示例:

from openai import OpenAI
client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    input=[
        {
            "role": "user",
            "content": [
                {"type": "input_text", "text": "这张图片里有什么?"},
                {"type": "input_image", "image_url": "https://example.com/cat_and_otter.png"}
            ]
        }
    ]
)
print(response.output_text)

2. 分析文件内容

cURL 示例(使用文件 URL):

curl "https://api.openai.com/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
      "model": "gpt-5",
      "input": [
          {
              "role": "user",
              "content": [
                  {"type": "input_text", "text": "分析这封信并总结关键点。"},
                  {"type": "input_file", "file_url": "https://example.com/letter.pdf"}
              ]
          }
      ]
  }'

Python 示例(上传文件):

from openai import OpenAI
client = OpenAI()

# 上传文件
file = client.files.create(
    file=open("document.pdf", "rb"),
    purpose="user_data"
)

# 使用文件
response = client.responses.create(
    model="gpt-5",
    input=[
        {
            "role": "user",
            "content": [
                {"type": "input_file", "file_id": file.id},
                {"type": "input_text", "text": "这份文件的主要内容是什么?"}
            ]
        }
    ]
)
print(response.output_text)

三、扩展模型功能(使用工具)

1. 使用网络搜索工具

cURL 示例:

curl "https://api.openai.com/v1/responses" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer $OPENAI_API_KEY" \
  -d '{
      "model": "gpt-5",
      "tools": [{"type": "web_search"}],
      "input": "今天有什么好消息?"
  }'

Python 示例:

from openai import OpenAI
client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    tools=[{"type": "web_search"}],
    input="今天有什么好消息?"
)
print(response.output_text)

2. 使用文件搜索工具

Python 示例:

from openai import OpenAI
client = OpenAI()

response = client.responses.create(
    model="gpt-5",
    input="OpenAI 的 Deep Research 是什么?",
    tools=[{
        "type": "file_search",
        "vector_store_ids": ["<vector_store_id>"]
    }]
)
print(response)

3. 调用自定义函数

Python 示例:

from openai import OpenAI
client = OpenAI()

tools = [
    {
        "type": "function",
        "name": "get_weather",
        "description": "获取指定地点的当前温度。",
        "parameters": {
            "type": "object",
            "properties": {
                "location": {
                    "type": "string",
                    "description": "城市和国家,例如:北京,中国"
                }
            },
            "required": ["location"],
            "additionalProperties": False,
        },
        "strict": True,
    },
]

response = client.responses.create(
    model="gpt-5",
    input=[
        {"role": "user", "content": "今天北京的天气怎么样?"}
    ],
    tools=tools,
)
print(response.output[0].to_json())

四、流式响应与实时应用

1. 流式传输响应

Python 示例:

from openai import OpenAI
client = OpenAI()

stream = client.responses.create(
    model="gpt-5",
    input=[
        {
            "role": "user",
            "content": "快速说十遍‘双倍泡泡浴’。",
        },
    ],
    stream=True,
)

for event in stream:
    print(event)

五、构建 AI 代理

1. 语言分流代理示例

Python 示例:

from agents import Agent, Runner
import asyncio

spanish_agent = Agent(
    name="西班牙语代理",
    instructions="你只说西班牙语。"
)

english_agent = Agent(
    name="英语代理",
    instructions="你只说英语。"
)

triage_agent = Agent(
    name="分流代理",
    instructions="根据请求的语言,将任务转交给合适的代理。",
    handoffs=[spanish_agent, english_agent],
)

async def main():
    result = await Runner.run(triage_agent, input="Hola, ¿cómo estás?")
    print(result.final_output)

if __name__ == "__main__":
    asyncio.run(main())

关键链接


注意事项

  1. 替换 $OPENAI_API_KEY 为你的实际 API 密钥。
  2. 确保安装了对应的 SDK(如 openai Python 包)。
  3. 文件上传需指定用途(如 purpose="user_data")。
  4. 流式响应需设置 stream=True

如需更多帮助,可查阅 OpenAI 官方文档