ChatGPT API调用实战指南:从零开始构建你的第一个AI对话应用

1次阅读
没有评论

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

image.webp

背景痛点:新手常见问题

开发者首次调用 ChatGPT API 时往往会遇到以下典型问题:

ChatGPT API 调用实战指南:从零开始构建你的第一个 AI 对话应用

  • 认证失败:API 密钥未正确配置或环境变量加载异常
  • 上下文丢失:未正确处理 message 数组导致多轮对话记忆失效
    n- 计费不可控:未监控 token 消耗导致意外费用产生
  • 响应迟缓:未启用流式传输导致长响应等待时间

技术对比:Completion 与 Chat API

  1. Completion API
  2. 适用于单次补全任务(如文本续写)
  3. 无内置对话上下文管理

  4. Chat API

  5. 专为多轮对话设计
  6. 通过 messages 数组维护上下文
  7. 支持角色标记(system/user/assistant)

核心实现步骤

环境准备

  1. 创建 Python 虚拟环境

    python -m venv chatgpt_env
    source chatgpt_env/bin/activate  # Linux/Mac
    chatgpt_env\Scripts\activate     # Windows

  2. 安装必需库

    pip install openai python-dotenv

基础调用示例

import openai
from dotenv import load_dotenv
import os

# 加载环境变量
load_dotenv()
openai.api_key = os.getenv("OPENAI_API_KEY")

# 带错误处理的 API 调用
def chat_completion(messages: list[dict]) -> str:
    try:
        response = openai.ChatCompletion.create(
            model="gpt-3.5-turbo",
            messages=messages,
            temperature=0.7,
            max_tokens=500
        )
        return response.choices[0].message.content
    except Exception as e:
        print(f"API 调用失败: {str(e)}")
        return ""

关键参数解析

  • temperature(0-2):
  • 值越高结果越随机
  • 建议创意类应用使用 0.7-1.0

  • max_tokens

  • 限制生成内容长度
  • 需考虑输入 + 输出的总 token 限制

生产环境建议

费用监控

# 获取消耗的 token 数量
def get_usage(response):
    return response.usage.total_tokens

流式响应处理

# 流式接收响应
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)

敏感数据过滤

推荐方案:

  1. 请求前过滤用户输入
  2. 使用 moderation 端点检测违规内容
  3. 响应内容二次检查

代码规范要求

  1. 所有函数添加类型注解
  2. 异常捕获需具体化(如openai.error.RateLimitError
  3. 遵循 PEP8 命名规范

延伸实践

建议尝试:

  1. 使用 FastAPI 构建 RESTful 网关
  2. 添加 JWT 鉴权层
  3. 实现对话历史存储(如 Redis)

完整项目示例可参考 OpenAI 官方 Cookbook 仓库。遇到具体问题时,建议先查阅 API 文档中的错误代码说明,多数常见问题都有明确解决方案。

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