GPT-5 与 ChatGPT 新功能详解
📚 2025 大模型实战

GPT-5 与 ChatGPT 新功能详解

📅 创建时间
📁 分类 技术

OpenAI GPT-5 模型能力解析与 ChatGPT 最新功能实战指南。

OpenAI 的 GPT 系列一直是大模型领域的标杆。2025 年,GPT-5 和 ChatGPT 带来了革命性的更新。本文将详细介绍其核心能力与使用技巧。

GPT-5 模型概览

模型规格对比

特性GPT-4 TurboGPT-5o1
上下文长度128K256K200K
知识截止2024.042025.012024.10
多模态文本+图片文本+图片+视频文本
推理能力更强最强
响应速度中等

定价 (2025.01)

GPT-5:
  输入: $15 / 百万 tokens
  输出: $60 / 百万 tokens

GPT-4o:
  输入: $5 / 百万 tokens  
  输出: $15 / 百万 tokens

o1-preview:
  输入: $15 / 百万 tokens
  输出: $60 / 百万 tokens

API 使用指南

基础调用

from openai import OpenAI

client = OpenAI()

# GPT-5 基础调用
response = client.chat.completions.create(
    model="gpt-5",
    messages=[
        {"role": "system", "content": "你是一位专业的技术顾问"},
        {"role": "user", "content": "解释微服务架构的优缺点"}
    ],
    temperature=0.7,
    max_tokens=2000
)

print(response.choices[0].message.content)

流式输出

# 流式响应
stream = client.chat.completions.create(
    model="gpt-5",
    messages=[{"role": "user", "content": "写一个快速排序算法"}],
    stream=True
)

for chunk in stream:
    if chunk.choices[0].delta.content:
        print(chunk.choices[0].delta.content, end="")

Vision 图片理解

import base64

def encode_image(path):
    with open(path, "rb") as f:
        return base64.b64encode(f.read()).decode()

response = client.chat.completions.create(
    model="gpt-5",
    messages=[
        {
            "role": "user",
            "content": [
                {"type": "text", "text": "这张图片展示了什么?"},
                {
                    "type": "image_url",
                    "image_url": {
                        "url": f"data:image/jpeg;base64,{encode_image('photo.jpg')}"
                    }
                }
            ]
        }
    ]
)

o1 推理模型

核心特点

o1 系列是专为复杂推理设计的模型,采用”思考后回答”机制:

# o1 适合复杂推理任务
response = client.chat.completions.create(
    model="o1-preview",
    messages=[
        {
            "role": "user", 
            "content": """
一个农夫需要将狼、羊和白菜运过河。
船一次只能载农夫和一样物品。
如果农夫不在:
- 狼会吃羊
- 羊会吃白菜

请给出最优解决方案,并证明这是最少的过河次数。
"""
        }
    ]
)

# o1 会展示详细的推理过程
print(response.choices[0].message.content)

o1 vs GPT-5 选择

任务类型推荐模型原因
数学证明o1需要深度推理
代码调试o1需要逻辑分析
日常对话GPT-5响应更快
创意写作GPT-5更自然流畅
多模态GPT-5o1 不支持图片

ChatGPT 新功能

1. Memory 记忆功能

ChatGPT 现在可以跨对话记住用户偏好:

# API 中使用用户上下文
response = client.chat.completions.create(
    model="gpt-5",
    messages=[
        {"role": "user", "content": "帮我写代码"}
    ],
    user="user_12345",  # 用户标识,用于记忆
    metadata={
        "preferences": {
            "language": "python",
            "style": "functional",
            "comments": "detailed"
        }
    }
)

2. Custom GPTs 自定义 GPT

创建专属的 AI 助手:

# GPTs 配置示例
gpt_config = {
    "name": "代码审查大师",
    "description": "专业的代码审查助手",
    "instructions": """
你是一位资深的代码审查专家,请:
1. 仔细检查代码质量
2. 指出潜在的安全问题
3. 建议性能优化方案
4. 保持友好专业的语气
""",
    "tools": ["code_interpreter", "web_browser"],
    "knowledge_files": ["coding_standards.pdf"]
}

3. Canvas 协作画布

ChatGPT Canvas 支持实时协作编辑:

┌─────────────────────────────────────────────────────┐
│                   ChatGPT Canvas                     │
├─────────────────┬───────────────────────────────────┤
│                 │                                    │
│    对话区域     │         编辑画布                   │
│                 │                                    │
│  用户: 帮我写   │  ```python                        │
│  一个 API      │  from fastapi import FastAPI      │
│                 │                                    │
│  ChatGPT: 好的  │  app = FastAPI()                  │
│  我来创建...    │                                    │
│                 │  @app.get("/users")               │
│  [编辑建议]     │  async def get_users():           │
│  [添加注释]     │      return {"users": []}         │
│                 │  ```                               │
│                 │                                    │
└─────────────────┴───────────────────────────────────┘

4. 实时语音对话

GPT-5 支持实时语音交互:

# 语音对话 API
from openai import OpenAI

client = OpenAI()

# 语音转文字
audio_file = open("speech.mp3", "rb")
transcript = client.audio.transcriptions.create(
    model="whisper-1",
    file=audio_file
)

# 文字转语音
speech = client.audio.speech.create(
    model="tts-1-hd",
    voice="nova",
    input="你好,我是 AI 助手,有什么可以帮你的?"
)
speech.stream_to_file("response.mp3")

Function Calling 工具调用

定义工具

tools = [
    {
        "type": "function",
        "function": {
            "name": "search_products",
            "description": "搜索商品信息",
            "parameters": {
                "type": "object",
                "properties": {
                    "query": {
                        "type": "string",
                        "description": "搜索关键词"
                    },
                    "category": {
                        "type": "string",
                        "enum": ["electronics", "clothing", "food"]
                    },
                    "max_price": {
                        "type": "number",
                        "description": "最高价格"
                    }
                },
                "required": ["query"]
            }
        }
    },
    {
        "type": "function",
        "function": {
            "name": "create_order",
            "description": "创建订单",
            "parameters": {
                "type": "object",
                "properties": {
                    "product_id": {"type": "string"},
                    "quantity": {"type": "integer"}
                },
                "required": ["product_id", "quantity"]
            }
        }
    }
]

处理工具调用

import json

def handle_tool_calls(response):
    messages = [{"role": "user", "content": "帮我找一款 500 元以下的蓝牙耳机"}]
    
    response = client.chat.completions.create(
        model="gpt-5",
        messages=messages,
        tools=tools,
        tool_choice="auto"
    )
    
    message = response.choices[0].message
    
    if message.tool_calls:
        for tool_call in message.tool_calls:
            func_name = tool_call.function.name
            func_args = json.loads(tool_call.function.arguments)
            
            # 执行实际函数
            if func_name == "search_products":
                result = search_products(**func_args)
            
            # 将结果返回给模型
            messages.append(message)
            messages.append({
                "role": "tool",
                "tool_call_id": tool_call.id,
                "content": json.dumps(result)
            })
        
        # 获取最终回复
        final_response = client.chat.completions.create(
            model="gpt-5",
            messages=messages
        )
        return final_response.choices[0].message.content

实战案例:智能客服系统

class SmartCustomerService:
    def __init__(self):
        self.client = OpenAI()
        self.system_prompt = """你是一位专业的客服代表。
请遵循以下原则:
1. 礼貌热情,使用"您"称呼客户
2. 准确理解客户需求
3. 提供具体可行的解决方案
4. 无法解决时及时转人工"""
        
        self.tools = [
            {
                "type": "function",
                "function": {
                    "name": "query_order",
                    "description": "查询订单状态",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "order_id": {"type": "string"}
                        },
                        "required": ["order_id"]
                    }
                }
            },
            {
                "type": "function",
                "function": {
                    "name": "create_ticket",
                    "description": "创建工单转人工",
                    "parameters": {
                        "type": "object",
                        "properties": {
                            "issue_type": {"type": "string"},
                            "description": {"type": "string"}
                        },
                        "required": ["issue_type", "description"]
                    }
                }
            }
        ]
    
    def chat(self, user_message: str, conversation_history: list) -> str:
        messages = [{"role": "system", "content": self.system_prompt}]
        messages.extend(conversation_history)
        messages.append({"role": "user", "content": user_message})
        
        response = self.client.chat.completions.create(
            model="gpt-5",
            messages=messages,
            tools=self.tools,
            temperature=0.7
        )
        
        return self._process_response(response, messages)

# 使用示例
service = SmartCustomerService()
history = []
response = service.chat("我的订单 ORD123456 什么时候能到?", history)

总结

GPT-5 和 ChatGPT 2025 带来的核心升级:

  1. 更强的推理能力: o1 系列专攻复杂逻辑
  2. 更长的上下文: 256K tokens 支持更大文档
  3. 更好的多模态: 视频理解能力
  4. 更智能的交互: Memory、Canvas 等新功能
  5. 更丰富的工具: Function Calling 2.0

选型建议:

  • 日常任务用 GPT-4o(性价比高)
  • 复杂推理用 o1(准确性高)
  • 旗舰需求用 GPT-5(能力最全)

下一篇将介绍 Google 的 Gemini 2.0 与其 AI 生态系统。