使用 Python 调用 OpenAI 的接口初识

使用 Python 调用 OpenAI 的接口非常简单,以下将结合实际代码示例和使用场景进行详细讲解,步骤如下:

文章目录

  • 1. 安装 OpenAI 官方库
  • 2. 准备 API Key
  • 3. 基本使用示例:调用 ChatGPT
  • **代码示例:**
  • **运行结果:**
  • 4. 高级用法:场景示例
  • **场景 1:生成内容(文章/文案/代码)**
  • **代码示例:**
  • **使用场景:**
  • **场景 2:数据分析和代码生成**
  • **代码示例:**
  • **可能的生成代码:**
  • **使用场景:**
  • **场景 3:问答机器人**
  • **代码示例:**
  • **使用场景:**
  • **场景 4:批量处理文本**
  • **代码示例:**
  • **使用场景:**
  • 5. 注意事项
  • 6. 常见问题与解决方案
  • **问题 1:如何处理 API 限制?**
  • **问题 2:如何提高请求效率?**

  • 1. 安装 OpenAI 官方库

    首先,确保安装了 OpenAI 的 Python 客户端库:

    pip install openai
    

    2. 准备 API Key

    要调用 OpenAI 的接口,需要在 OpenAI 账户 中获取一个 API Key。

    将你的 API Key 存储在一个变量中,比如:

    OPENAI_API_KEY = "your_openai_api_key"
    

    3. 基本使用示例:调用 ChatGPT

    以下是一个简单示例,用 ChatGPT 模型完成一个对话任务:

    代码示例:

    import openai
    
    # 设置 API 密钥
    OPENAI_API_KEY = 'your_openai_api_key'
    
    client = OpenAI(
      api_key=OPENAI_API_KEY,
      base_url='xxxxx' # 默认是https://api.openai.com/v1, 国内请求需要代理
    )
    
    completion = client.chat.completions.create(
      # model="gpt-4o-mini",
      model="gpt-3.5-turbo",
      store=True,
      messages=[
        {"role": "system", "content": "你是一个AI助手"},
        {"role": "user", "content": "帮我写一个Python计算两个数之和的函数。"}
      ]
    )
    
    print(completion.choices[0].message);
    
    

    运行结果:

    def add_numbers(a, b):
        return a + b
    

    4. 高级用法:场景示例

    以下是几个常见的使用场景和实现方法:

    场景 1:生成内容(文章/文案/代码)

    代码示例:
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": "你是一名专业的文案编辑。"},
            {"role": "user", "content": "请帮我写一段产品介绍,主题是AI教育工具。"}
        ],
        temperature=0.6,
        max_tokens=200,
    )
    
    print(response['choices'][0]['message']['content'])
    
    使用场景:
  • 用于自动生成营销文案、产品说明、或技术博客内容。

  • 场景 2:数据分析和代码生成

    代码示例:
    import openai
    
    # 设置 API 密钥
    OPENAI_API_KEY = 'your_openai_api_key'
    
    client = OpenAI(
      api_key=OPENAI_API_KEY,
      base_url='xxxxx' # 默认是https://api.openai.com/v1, 国内请求需要代理
    )
    response = client.chat.completions.create(
        model="gpt-4",
        messages=[
            {"role": "system", "content": "你是一名数据科学家。"},
            {"role": "user", "content": "请用Python写一个分析CSV文件的脚本,提取每列的平均值。"}
        ],
        temperature=0.5,
        max_tokens=300,
    )
    
    print(response['choices'][0]['message']['content'])
    
    可能的生成代码:
    import pandas as pd
    
    # 读取CSV文件
    def analyze_csv(file_path):
        data = pd.read_csv(file_path)
        means = data.mean()  # 计算每列的平均值
        return means
    
    # 示例调用
    file_path = "data.csv"
    print(analyze_csv(file_path))
    
    使用场景:
  • 自动生成常见的 Python 数据分析代码。

  • 场景 3:问答机器人

    代码示例:
    import openai
    
    # 设置 API 密钥
    OPENAI_API_KEY = 'your_openai_api_key'
    
    client = OpenAI(
      api_key=OPENAI_API_KEY,
      base_url='xxxxx' # 默认是https://api.openai.com/v1, 国内请求需要代理
    )
    
    def chatbot_response(user_input):
        response = client.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[
                {"role": "system", "content": "你是一个智能问答机器人,可以回答各种问题。"},
                {"role": "user", "content": user_input}
            ],
            temperature=0.7,
            max_tokens=150,
        )
        return response['choices'][0]['message']['content']
    
    # 用户输入
    user_query = "如何用Python读取JSON文件?"
    print(chatbot_response(user_query))
    
    使用场景:
  • 创建客服机器人或在线学习助手。

  • 场景 4:批量处理文本

    代码示例:
    import openai
    
    # 设置 API 密钥
    OPENAI_API_KEY = 'your_openai_api_key'
    
    client = OpenAI(
      api_key=OPENAI_API_KEY,
      base_url='xxxxx' # 默认是https://api.openai.com/v1, 国内请求需要代理
    )
    
    texts = [
        "帮我总结这段话的重点:Python是一种非常流行的编程语言,广泛用于Web开发和数据分析。",
        "帮我翻译这句话:Hello, how are you?",
        "生成一句关于人工智能未来发展的预测。"
    ]
    
    responses = []
    for text in texts:
        response = client.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[{"role": "user", "content": text}],
            temperature=0.6,
            max_tokens=100,
        )
        responses.append(response['choices'][0]['message']['content'])
    
    print("\n".join(responses))
    
    使用场景:
  • 文本翻译、总结、生成预测等批量任务。

  • 5. 注意事项

    1. API Key 安全性: 不要在代码中直接暴露 API Key,可以使用环境变量:

      import os
      openai.api_key = os.getenv("OPENAI_API_KEY")
      
    2. 费用控制: OpenAI 的 API 按请求的 token 数量计费,注意控制 max_tokens 和调用频率。

    3. 模型选择: 根据任务选择合适的模型(如 gpt-3.5-turbogpt-4)。


    6. 常见问题与解决方案

    问题 1:如何处理 API 限制?

    可以通过 openai.error 模块捕获错误并重试:

    import openai
    from openai.error import RateLimitError
    
    # 设置 API 密钥
    OPENAI_API_KEY = 'your_openai_api_key'
    
    client = OpenAI(
      api_key=OPENAI_API_KEY,
      base_url='xxxxx' # 默认是https://api.openai.com/v1, 国内请求需要代理
    )
    
    try:
        response = client.chat.completions.create(
            model="gpt-3.5-turbo",
            messages=[{"role": "user", "content": "你好!"}],
        )
        print(response['choices'][0]['message']['content'])
    except RateLimitError:
        print("请求频率过高,请稍后再试。")
    

    问题 2:如何提高请求效率?

  • 将多个任务合并到一个请求中。
  • 减少 max_tokens

  • 通过以上方法,你可以在 Python 中灵活调用 OpenAI 的接口来实现各种场景需求。

    作者:匹马夕阳

    物联沃分享整理
    物联沃-IOTWORD物联网 » 使用 Python 调用 OpenAI 的接口初识

    发表回复