从GPT-3到GPT-4:大模型应用开发的演进之路

👋 大家好,欢迎来到我的技术博客!

📚 在这里,我会分享学习笔记、实战经验与技术思考,力求用简单的方式讲清楚复杂的问题。

🎯 本文将围绕人工智能 这个话题展开,希望能为你带来一些启发或实用的参考。

🌱 无论你是刚入门的新手,还是正在进阶的开发者,希望你都能有所收获!


文章目录

  • [从GPT-3到GPT-4:大模型应用开发的演进之路 🚀](#从GPT-3到GPT-4:大模型应用开发的演进之路 🚀)
    • [引言:AI开发者的黄金时代 🧙‍♂️](#引言:AI开发者的黄金时代 🧙‍♂️)
    • [第一部分:GPT-3 时代 ------ 朴素文本补全的蛮荒之力 🦄](#第一部分:GPT-3 时代 —— 朴素文本补全的蛮荒之力 🦄)
      • [1.1 诞生即巅峰](#1.1 诞生即巅峰)
      • [1.2 开发模式的局限](#1.2 开发模式的局限)
      • [1.3 代码回顾:原始的 API 调用](#1.3 代码回顾:原始的 API 调用)
    • [第二部分:GPT-4 时代 ------ 多模态与指令微调的双重革命 🤖](#第二部分:GPT-4 时代 —— 多模态与指令微调的双重革命 🤖)
      • [2.1 从 "Completion" 到 "ChatCompletion"](#2.1 从 "Completion" 到 "ChatCompletion")
      • [2.2 核心能力跃迁](#2.2 核心能力跃迁)
      • [2.3 新旧时代对比图](#2.3 新旧时代对比图)
    • [第三部分:应用架构的范式转移 🏗️](#第三部分:应用架构的范式转移 🏗️)
      • [3.1 向量数据库 (Vector Databases) 的崛起](#3.1 向量数据库 (Vector Databases) 的崛起)
      • [3.2 Agent (代理) 模式的诞生](#3.2 Agent (代理) 模式的诞生)
      • [3.3 编排框架 (Orchestration Frameworks)](#3.3 编排框架 (Orchestration Frameworks))
    • [第四部分:实战代码演进 ------ 亲手打造应用 🚧](#第四部分:实战代码演进 —— 亲手打造应用 🚧)
      • [4.1 基础版:简单的文本生成 (Legacy)](#4.1 基础版:简单的文本生成 (Legacy))
      • [4.2 进阶版:利用 Function Calling 构建天气查询助手 🌤️](#4.2 进阶版:利用 Function Calling 构建天气查询助手 🌤️)
      • [4.3 高阶级:构建一个简易的 RAG 知识库问答系统 📚](#4.3 高阶级:构建一个简易的 RAG 知识库问答系统 📚)
    • [第五部分:性能优化与成本控制 💰](#第五部分:性能优化与成本控制 💰)
      • [5.1 Prompt 压缩术](#5.1 Prompt 压缩术)
      • [5.2 模型选择策略](#5.2 模型选择策略)
      • [5.3 架构优化图](#5.3 架构优化图)
    • [第六部分:展望未来与行业影响 🔮](#第六部分:展望未来与行业影响 🔮)
      • [6.1 下一站:GPT-5?](#6.1 下一站:GPT-5?)
      • [6.2 开发者必备技能栈](#6.2 开发者必备技能栈)
    • 结语

从GPT-3到GPT-4:大模型应用开发的演进之路 🚀

引言:AI开发者的黄金时代 🧙‍♂️

在人工智能的历史长河中,2020年至2024年这四年间的变化,足以抵得上过去十年的发展。从最初仅能进行简单文本补全的 GPT-3 ,到如今能够理解图像、编写代码、进行复杂推理的 GPT-4,大模型不仅改变了人机交互的方式,更彻底重塑了应用开发的范式。

曾几何时,我们需要编写大量的规则引擎和if-else语句来处理用户的自然语言;而现在,一切皆可"提示"(Prompt)。今天,我们就来深度剖析这场技术革命,探讨应用开发是如何从"调用API"演进为"搭建AI架构"的。本文将包含最新的技术对比、实战代码示例以及架构图的 mermaid 图表展示 📊。


第一部分:GPT-3 时代 ------ 朴素文本补全的蛮荒之力 🦄

1.1 诞生即巅峰

2020年6月,OpenAI 发布了 GPT-3 。虽然它的参数量(1750亿)已经令人瞠目结舌,但在开发者眼中,当时的它更像是一个"高级的 autocomplete(自动补全)工具"。当时的API接口主要围绕 text-davinci-003(即后来的 Curie、Davinci 模型)设计。

1.2 开发模式的局限

在那个年代,应用开发的逻辑是这样的:

  1. 构建 Prompt: 将用户的输入包装成一个完整的句子或段落,加上指令(如"Translate this to French: ...")。
  2. 发送请求: 发送纯文本给模型。
  3. 解析输出: 模型返回一段文本,需要开发者使用正则表达式或字符串分割来提取关键信息。

痛点:

  • 无状态(Stateless): 模型不记得上一轮对话写了什么。每一次请求都必须把之前的上下文(History)手动拼接进去,这对于长对话是极大的成本负担(Token浪费)。
  • 输出不稳定: 同样的Prompt,每次返回的格式可能都不一样,极难用于需要结构化数据的场景(如提取JSON)。
  • 单一模态: 只能输入文字,输出文字。无法处理图片、PDF等非结构化数据。

1.3 代码回顾:原始的 API 调用

让我们回到过去,用 Python 的 openai 库(早期版本)写一个简单的情感分析功能:

python 复制代码
import openai

# 早期的API调用方式
openai.api_key = "YOUR_API_KEY"

def analyze_sentiment_gpt3(text):
    prompt = f"判断以下文本的情感是正面还是负面,返回一个词:'{text}'"
    
    response = openai.Completion.create(
        model="text-davinci-003", # 当时的顶级模型
        prompt=prompt,
        temperature=0.3, # 控制随机性
        max_tokens=60
    )
    
    return response.choices[0].text.strip()

user_review = "这个产品太棒了,爱不释手!"
print(analyze_sentiment_gpt3(user_review))

可以看到,在这个时代,我们实际上是在"套话",试图通过精妙的 Prompt 工程让模型猜出我们想要什么格式。这为后来的 Prompt Engineering 学科奠定了基础。


第二部分:GPT-4 时代 ------ 多模态与指令微调的双重革命 🤖

2.1 从 "Completion" 到 "ChatCompletion"

GPT-4 的发布不仅仅是一次模型升级,而是接口形态 的革命。OpenAI 推出了全新的 Chat API 。这一改变看似只是加了一个 messages 数组,实际上彻底解决了上下文记忆的问题。

  • System Message: 设定 AI 的角色(人格、行为规范)。
  • User Message: 用户的输入。
  • Assistant Message: 模型的回复(可用于存入历史记录)。

2.2 核心能力跃迁

GPT-4 带来的不仅仅是更强的文本生成能力,更带来了应用开发的质的飞跃:

  1. 多模态输入 (Vision): 开发者可以给模型输入图片,让它描述图片内容(虽然当时并未完全公开,但API架构已支持)。
  2. 超长上下文 (Context Window): 从 4k Token 一路飙升到 128k Token。这意味着企业可以将一整本《哈利波特》或者上百页的 PDF 直接丢给 AI 进行分析。
  3. Function Calling (函数调用): 这是一个里程碑式的功能。它允许 AI 决定"何时"调用外部工具(如查询天气、调用数据库、发送邮件)。
  4. JSON Mode / Structured Output: 强制模型输出合法的 JSON 格式,解决了多年来解析非结构化数据的难题。

2.3 新旧时代对比图

下面这个 Mermaid 流程图展示了从 GPT-3 到 GPT-4,应用逻辑的转变:
GPT-3
GPT-4
Yes
No
用户请求
选择模型
手动拼接 Prompt
text-davinci-003
字符串补全
正则解析
消息数组 Messages
ChatGPT API
是否需要工具?
Function Calling
执行 Python/数据库代码
直接生成回复


第三部分:应用架构的范式转移 🏗️

如果说 GPT-3 时期的开发是"如何让模型说话",那么 GPT-4 时代的开发则是"如何利用模型指挥 "。这催生了一套全新的技术栈,通常被称为 LLM Apps Stack

3.1 向量数据库 (Vector Databases) 的崛起

GPT-4 虽然聪明,但它的知识截止到训练数据的那一刻(Cutoff)。如何让 AI 知道最新的新闻或企业私域数据?
答案:RAG (检索增强生成)

我们需要将文本转化为向量(Embeddings),存入向量数据库。当用户提问时,先检索相似内容,再喂给 GPT-4。这也就是我们常说的 Chat with your documents

3.2 Agent (代理) 模式的诞生

在 GPT-4 之前,AI 是被动的。GPT-4 之后,AI 可以是主动的。
ReAct (Reasoning + Acting) 推理框架允许模型在思考过程中调用工具。例如,模型可以在回答"今天北京多少度"之前,先调用 get_weather 函数。

3.3 编排框架 (Orchestration Frameworks)

为了简化开发,LangChainLlamaIndex 等框架横空出世。它们像是乐高积木,帮助开发者快速搭建 RAG 和 Agent 流程。


第四部分:实战代码演进 ------ 亲手打造应用 🚧

接下来,我们将通过三个具体的代码示例,展示如何从"石器时代"演进到"工业时代"。

4.1 基础版:简单的文本生成 (Legacy)

这是最基础的调用,展示了如何稳定地使用新版本的 SDK。

python 复制代码
from openai import OpenAI

client = OpenAI(api_key="sk-...")

# 这里的模型已经变成了 gpt-4-turbo-preview
response = client.chat.completions.create(
    model="gpt-4-turbo-preview",
    messages=[
        {"role": "system", "content": "你是一个专业的编剧,擅长写悬疑小说。"},
        {"role": "user", "content": "写一个发生在太空站的三分钟短剧开头。"}
    ],
    temperature=0.7,
    max_tokens=500
)

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

4.2 进阶版:利用 Function Calling 构建天气查询助手 🌤️

这是 GPT-4 特有的能力。我们先定义一个获取天气的函数,让模型决定何时调用它。

步骤 1:定义工具

python 复制代码
tools = [
    {
        "type": "function",
        "function": {
            "name": "get_weather",
            "description": "获取指定城市的天气信息",
            "parameters": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "城市名称,例如:北京、上海"
                    }
                },
                "required": ["location"]
            }
        }
    }
]

步骤 2:发起请求

python 复制代码
messages = [
    {"role": "user", "content": "明天去上海出差,需要带伞吗?"}
]

response = client.chat.completions.create(
    model="gpt-4-turbo-preview",
    messages=messages,
    tools=tools
)

# 获取模型的回复
assistant_message = response.choices[0].message
print(assistant_message.tool_calls) 
# 输出大致为:[ChatCompletionMessageToolCall(id='...', function=Function(arguments='{"location":"上海"}', name='get_weather'))]

步骤 3:执行工具并返回结果

此时,程序会暂停,Python 脚本需要模拟调用 API 获取上海天气,然后将结果传回给模型,模型最终生成自然语言回答。这就是 Agent 的雏形。

4.3 高阶级:构建一个简易的 RAG 知识库问答系统 📚

这是目前最主流的 GPT-4 应用场景。我们需要用到 langchainchromadb(或者 FAISS)。

为了代码的可读性,这里展示核心逻辑结构:

python 复制代码
# 伪代码示例,展示 RAG 架构逻辑
from langchain.document_loaders import TextLoader
from langchain.text_splitter import CharacterTextSplitter
from langchain.embeddings import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain.chains import RetrievalQA
from langchain.llms import OpenAI

# 1. 加载文档 (假设是长篇小说)
loader = TextLoader("novel.txt")
documents = loader.load()

# 2. 将长文档切片 (Chunking)
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_documents(documents)

# 3. 向量化 (Embedding)
# 使用 text-embedding-ada-002 模型
embeddings = OpenAIEmbeddings()
db = Chroma.from_documents(texts, embeddings)

# 4. 检索 (Retrieval)
qa = RetrievalQA.from_chain_type(llm=OpenAI(model="gpt-4-turbo"), chain_type="stuff", retriever=db.as_retriever())

# 5. 查询 (Query)
query = "书中主角的母亲是怎么去世的?"
result = qa.run(query)
print(result)

这段代码背后的逻辑是:当用户提问时,系统不是直接在互联网上搜索,而是先在本地知识库(Vector DB)中找到最相关的段落(Chunks),然后将用户问题 + 相关段落一起发送给 GPT-4。这不仅解决了知识截止的问题,还大大降低了幻觉(Hallucination)出现的概率。


第五部分:性能优化与成本控制 💰

随着应用场景的复杂化,Token 成本成了开发者不得不考虑的问题。

5.1 Prompt 压缩术

在 GPT-4 之前,大家巴不得把全世界都丢给 AI。在 GPT-4 时代,我们必须"精打细算"。

  • Summarizing: 每隔几轮对话,用 GPT-4 自己对历史记录进行摘要,用简短的摘要替换冗长的历史记录,从而节省上下文窗口。
  • Few-shot Learning: 不要给太多例子,1-2个高质量例子足以。

5.2 模型选择策略

不要凡事都用 GPT-4。

  • 简单的文员工作(如格式调整、邮件起草)-> GPT-3.5 Turbo
  • 复杂的推理、代码编写、角色扮演 -> GPT-4 Turbo
  • 大批量向量搜索 -> Embedding Models (ada-002)

5.3 架构优化图

下面展示了如何设计一个"智能路由"架构,让 AI 自动选择用哪个模型:
简单任务
复杂推理
图片理解
成本低, 速度快
成本高, 能力强
处理图片
用户请求
Router Agent
gpt-3.5-turbo
gpt-4-turbo
Vision Model


第六部分:展望未来与行业影响 🔮

6.1 下一站:GPT-5?

根据目前的趋势,下一代模型将不仅仅是"更大地堆参数",而是在:

  • 更强的自律能力 (Agentic): AI 能否自发地规划任务步骤并执行?
  • 原生多模态: 不仅仅是看图说话,而是像人一样理解物理世界。
  • 个性化: 根据极少的样本(Few-shot)模仿特定人的语气和思维。

6.2 开发者必备技能栈

现在的开发者需要从传统的"增删改查"思维中跳出来,转而掌握:

  1. Prompt Engineering (提示工程): 不仅仅是写 Prompt,而是设计工作流。
  2. AI Ethics (AI 伦理): 防止模型输出有害内容,如何安全地进行微调。
  3. Vector Math (向量数学): 理解 Embedding 的原理是理解一切 RAG 的基础。

结语

从 GPT-3 到 GPT-4,我们见证了人工智能从"玩具"变为"工具",从"工具"变为"平台"的过程。这不仅仅是 API 的升级,更是软件工程思想的一次大洗牌。

曾经,我们需要编写复杂的逻辑来应对用户的每一个意图;现在,我们只需编写意图的描述,剩下的交给大模型去完成。这条演进之路仍在继续,作为开发者的我们,唯有保持热情,持续学习,才能在这场浪潮中站稳脚跟 🚢。


参考资料:

  1. OpenAI Platform Documentation
  2. LangChain: Build agents
  3. Vector Database Explained - Wikipedia
  4. What is RAG? - Hugging Face Blog

🙌 感谢你读到这里!

🔍 技术之路没有捷径,但每一次阅读、思考和实践,都在悄悄拉近你与目标的距离。

💡 如果本文对你有帮助,不妨 👍 点赞 、📌 收藏 、📤 分享 给更多需要的朋友!

💬 欢迎在评论区留下你的想法、疑问或建议,我会一一回复,我们一起交流、共同成长 🌿

🔔 关注我,不错过下一篇干货!我们下期再见!✨

相关推荐
Roselind_Yi17 天前
【吴恩达2026 Agentic AI】面试向+项目实战(含面试题+项目案例)-1
人工智能·python·面试·职场和发展·langchain·gpt-3·agent
AI-Ming19 天前
程序员转行学习 AI 大模型: 模型微调| 附清晰概念分类
人工智能·pytorch·深度学习·机器学习·chatgpt·nlp·gpt-3
慵懒的猫mi1 个月前
deepin UOS AI 助手接入飞书(Feishu)配置指南
linux·人工智能·ai·gpt-3·飞书·文心一言·deepin
HXIWbeyzus1 个月前
面向削峰填谷的电动汽车多目标优化调度策略 关键词:电动汽车 削峰填谷 多目标 充放电优化 参考...
gpt-3
老刘说AI1 个月前
初识神经网络与机器学习
人工智能·深度学习·神经网络·机器学习·语言模型·gpt-3·集成学习
小雨中_2 个月前
3.1 GPT 系列:Generative Pre-Training(从 GPT-1 到 GPT-3)
人工智能·gpt·深度学习·机器学习·自然语言处理·gpt-3
pvIaUtLZ2 个月前
永磁同步电机自适应抗扰的ADRC控制模型研究
gpt-3
zhaosuyuan3 个月前
InstructGPT 2022详细解读
gpt·语言模型·llm·gpt-3
后端小张3 个月前
【AI 学习】解锁Claude Skills:开启AI应用新维度
人工智能·深度学习·学习·自然语言处理·gpt-3·claude·skill