ChatGPT API 新手入门指南:从注册到第一个 AI 对话应用

2次阅读
没有评论

共计 2083 个字符,预计需要花费 6 分钟才能阅读完成。

image.webp

前置准备:获取你的 OpenAI API 密钥

  1. 注册 OpenAI 账号
  2. 访问 OpenAI 官网 点击 “Sign up”
  3. 建议使用谷歌账号快速注册(国内用户需准备海外手机号接收验证码)

    ChatGPT API 新手入门指南:从注册到第一个 AI 对话应用

  4. 申请 API 访问权限

  5. 登录后进入 API 密钥管理页面
  6. 点击 “Create new secret key” 生成专属密钥(形如 sk-xxxxxxxx

  7. 重要安全提醒

  8. API Key 相当于密码,请勿直接提交到代码仓库
  9. 建议通过环境变量加载(后文会演示具体方法)
  10. 免费额度为 $5,超出后将自动停用

核心概念:Chat Completions API 工作机制

OpenAI 提供的对话接口主要包含三个关键参数:

  • model:指定使用的模型版本(如 gpt-3.5-turbo
  • messages:对话历史记录,格式为消息对象数组
  • temperature:控制回答随机性(0- 2 之间,值越大答案越多样)

典型的消息结构示例:

[{"role": "system", "content": "你是一个专业的气象顾问"},
    {"role": "user", "content": "今天北京天气怎么样?"}
]

实战:构建天气查询机器人

环境准备

  1. 安装官方 Python SDK:

    pip install openai python-dotenv

  2. 创建 .env 文件存储密钥:

    OPENAI_API_KEY= 你的实际密钥 

完整实现代码

import os
from typing import List, Dict
from dotenv import load_dotenv
import openai

# 加载环境变量
load_dotenv()

class WeatherBot:
    def __init__(self):
        openai.api_key = os.getenv("OPENAI_API_KEY")
        self.prompt = """ 你是一个智能天气助手,当用户询问天气时,按照以下格式回复:[城市] 当前天气:[天气状况],气温:[温度]℃"""

    def ask(self, question: str) -> str:
        try:
            response = openai.ChatCompletion.create(
                model="gpt-3.5-turbo",
                messages=[{"role": "system", "content": self.prompt},
                    {"role": "user", "content": question}
                ],
                temperature=0.7
            )
            return response.choices[0].message.content
        except Exception as e:
            return f"请求失败:{str(e)}"

# 使用示例
if __name__ == "__main__":
    bot = WeatherBot()
    print(bot.ask("上海现在天气如何?"))

生产环境避坑指南

  1. 速率限制处理
  2. 免费账号限制 3 次 / 分钟
  3. 推荐方案:

    • 使用 tenacity 库实现自动重试
    • 捕获 openai.error.RateLimitError 异常
  4. 敏感信息存储

  5. 永远不要将 API Key 硬编码在代码中
  6. 推荐方案:

    • 本地开发使用 .env + python-dotenv
    • 服务器环境使用密钥管理服务(如 AWS Secrets Manager)
  7. 成本控制技巧

  8. 设置使用量警报:Usage Limits 页面
  9. max_tokens 参数设置合理上限

进阶话题

对话上下文管理

实现多轮对话的关键是维护 messages 数组:

class Conversation:
    def __init__(self):
        self.history: List[Dict] = []

    def add_message(self, role: str, content: str):
        self.history.append({"role": role, "content": content})

    def get_response(self) -> str:
        response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=self.history
        )
        return response.choices[0].message.content

流式响应实现

通过设置 stream=True 实现实时输出:

response = openai.ChatCompletion.create(
    model="gpt-3.5-turbo",
    messages=messages,
    stream=True
)

for chunk in response:
    content = chunk.choices[0].delta.get("content", "")
    print(content, end="", flush=True)

结语

通过本文的实践,您已经掌握了 ChatGPT API 的核心用法。建议下一步尝试:
1. 将机器人集成到 Flask/Django 等 Web 框架
2. 探索 Function Calling 实现精准数据查询
3. 使用 Fine-tuning 定制专属领域模型

API 的调试过程可能会遇到各种意外情况,建议多查阅 官方文档 ,遇到问题时可以先检查:网络连接、密钥有效性、参数格式这三个常见方向。

正文完
 0
评论(没有评论)