AI/LLM应用开发实战(一):从零搭建你的第一个LLM应用

📚 本文是《AI/LLM 应用开发实战》系列第 1 篇。本系列将从零开始,手把手带你掌握大语言模型应用开发的核心技能。

前言

2025-2026年,大语言模型(LLM)已经从实验室走进了千家万户的开发工具箱。无论你是后端工程师、前端开发者还是数据分析师,掌握 LLM 应用开发都将成为你的核心竞争力。

本篇文章将带你了解 LLM 的基础概念,学会调用 OpenAI 和 Anthropic 两大主流 API,并完成你的第一个对话应用 Demo。

一、LLM 基础概念速览

1.1 什么是大语言模型?

大语言模型(Large Language Model)是基于 Transformer 架构、在海量文本数据上训练的深度学习模型。它的核心能力是**理解和生成自然语言文本**。

目前主流的 LLM 包括:

  • **OpenAI GPT 系列**:GPT-4o、GPT-4.1 等,通用能力强
  • **Anthropic Claude 系列**:Claude 4 Sonnet/Opus,擅长长文本和推理
  • **开源模型**:Llama 3、Qwen、DeepSeek 等,可私有化部署
  • 1.2 关键概念

  • **Token**:模型处理文本的最小单位。中文大约 1 个字 ≈ 1-2 个 token
  • **Context Window**:模型一次能处理的最大 token 数,如 GPT-4o 支持 128K
  • **Temperature**:控制输出随机性,0 表示确定性输出,1 表示更有创意
  • **System Prompt**:系统提示词,定义模型的角色和行为规范
  • 二、环境准备

    2.1 安装依赖

    
    pip install openai anthropic python-dotenv
    

    2.2 配置 API Key

    创建 `.env` 文件,填入你的 API Key:

    
    OPENAI_API_KEY=sk-your-openai-key-here
    ANTHROPIC_API_KEY=sk-ant-your-anthropic-key-here
    
    💡 **获取方式**:OpenAI 在 platform.openai.com,Anthropic 在 console.anthropic.com 注册获取。

    三、调用 OpenAI API

    OpenAI 的 Chat Completions API 是目前最广泛使用的 LLM 接口。

    
    import os
    from openai import OpenAI
    from dotenv import load_dotenv
    
    load_dotenv()
    
    client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
    
    def chat_with_gpt(user_message: str, system_prompt: str = "你是一个有帮助的AI助手。") -> str:
        """调用 OpenAI GPT 模型进行对话"""
        response = client.chat.completions.create(
            model="gpt-4o",
            messages=[
                {"role": "system", "content": system_prompt},
                {"role": "user", "content": user_message}
            ],
            temperature=0.7,
            max_tokens=1024
        )
        return response.choices[0].message.content
    
    # 测试调用
    if __name__ == "__main__":
        answer = chat_with_gpt("用一句话解释什么是机器学习?")
        print(f"GPT 回答:{answer}")
    

    运行结果示例:

    
    GPT 回答:机器学习是让计算机通过数据自动学习规律并做出预测或决策的技术,而无需显式编程每一条规则。
    

    四、调用 Anthropic Claude API

    Anthropic 的 Claude 模型在长文本理解和复杂推理方面表现出色。

    
    import os
    import anthropic
    from dotenv import load_dotenv
    
    load_dotenv()
    
    client = anthropic.Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
    
    def chat_with_claude(user_message: str, system_prompt: str = "你是一个有帮助的AI助手。") -> str:
        """调用 Anthropic Claude 模型进行对话"""
        response = client.messages.create(
            model="claude-sonnet-4-20250514",
            max_tokens=1024,
            system=system_prompt,
            messages=[
                {"role": "user", "content": user_message}
            ]
        )
        return response.content[0].text
    
    # 测试调用
    if __name__ == "__main__":
        answer = chat_with_claude("用一句话解释什么是深度学习?")
        print(f"Claude 回答:{answer}")
    

    五、实战:构建多轮对话应用

    真正的对话应用需要维护上下文。下面我们构建一个支持多轮对话、可切换模型的完整 Demo:

    
    import os
    from openai import OpenAI
    import anthropic
    from dotenv import load_dotenv
    
    load_dotenv()
    
    class ChatBot:
        """支持多轮对话的聊天机器人,可切换 OpenAI / Anthropic 后端"""
    
        def __init__(self, provider: str = "openai", system_prompt: str = "你是一个友好的AI助手,回答简洁准确。"):
            self.provider = provider
            self.system_prompt = system_prompt
            self.history = []
    
            if provider == "openai":
                self.openai_client = OpenAI(api_key=os.getenv("OPENAI_API_KEY"))
            elif provider == "anthropic":
                self.anthropic_client = anthropic.Anthropic(api_key=os.getenv("ANTHROPIC_API_KEY"))
    
        def chat(self, user_input: str) -> str:
            self.history.append({"role": "user", "content": user_input})
    
            if self.provider == "openai":
                reply = self._call_openai()
            else:
                reply = self._call_anthropic()
    
            self.history.append({"role": "assistant", "content": reply})
            return reply
    
        def _call_openai(self) -> str:
            messages = [{"role": "system", "content": self.system_prompt}] + self.history
            response = self.openai_client.chat.completions.create(
                model="gpt-4o", messages=messages, temperature=0.7, max_tokens=1024
            )
            return response.choices[0].message.content
    
        def _call_anthropic(self) -> str:
            response = self.anthropic_client.messages.create(
                model="claude-sonnet-4-20250514", max_tokens=1024,
                system=self.system_prompt, messages=self.history
            )
            return response.content[0].text
    
        def reset(self):
            self.history = []
            print("对话已重置。")
    
    def main():
        print("=" * 50)
        print("🤖 LLM 多轮对话 Demo")
        print("输入 /quit 退出,/reset 重置对话,/switch 切换模型")
        print("=" * 50)
    
        provider = input("选择模型 (openai/anthropic): ").strip() or "openai"
        bot = ChatBot(provider=provider)
        print(f"\n当前使用:{provider},开始对话吧!\n")
    
        while True:
            user_input = input("你: ").strip()
            if not user_input:
                continue
            if user_input == "/quit":
                print("再见!👋")
                break
            if user_input == "/reset":
                bot.reset()
                continue
            if user_input == "/switch":
                provider = "anthropic" if provider == "openai" else "openai"
                bot = ChatBot(provider=provider)
                print(f"已切换到 {provider}\n")
                continue
    
            reply = bot.chat(user_input)
            print(f"AI: {reply}\n")
    
    if __name__ == "__main__":
        main()
    

    运行效果:

    
    ==================================================
    🤖 LLM 多轮对话 Demo
    输入 /quit 退出,/reset 重置对话,/switch 切换模型
    ==================================================
    选择模型 (openai/anthropic): openai
    
    当前使用:openai,开始对话吧!
    
    你: Python有哪些常用的Web框架?
    AI: Python 常用的 Web 框架包括 Flask(轻量级)、Django(全功能)、FastAPI(高性能异步)等。
    
    你: 哪个最适合初学者?
    AI: Flask 最适合初学者,它轻量简洁,核心概念少,上手快,非常适合学习 Web 开发的基础原理。
    

    六、两大 API 对比总结

    | 对比项 | OpenAI GPT | Anthropic Claude |

    |--------|-----------|-----------------|

    | 接口风格 | messages 数组含 system | system 参数独立 |

    | 模型推荐 | gpt-4o | claude-sonnet-4 |

    | 计费方式 | 按 token 计费 | 按 token 计费 |

    | 特色优势 | 生态丰富、工具调用强 | 长文本、推理、安全性 |

    总结

    本篇我们完成了:

    1. 理解了 LLM 的核心概念(Token、Context Window、Temperature)

    2. 分别调用了 OpenAI 和 Anthropic 的 API

    3. 构建了一个支持多轮对话、可切换模型的完整应用

    这些是 LLM 应用开发的基石。掌握了 API 调用,接下来最重要的就是学会如何写好提示词。

    ---

    📖 **下一篇预告**:《AI/LLM应用开发实战(二):Prompt Engineering 核心技巧与实战》—— 我们将深入探讨系统提示词设计、Few-shot Learning、Chain-of-Thought 推理、结构化输出等核心技巧,让你的 LLM 应用效果提升一个量级!

    ---

    🔔 如果觉得有帮助,欢迎点赞、收藏、关注,后续更新不迷路!
Logo

有“AI”的1024 = 2048,欢迎大家加入2048 AI社区

更多推荐