1. 人工智能与大模型 #
- 从「人工智能」讲起,说明大模型在 AI 发展中的位置。
- 理解「规则时代 → 学习时代 → 大模型时代」这条线即可。
2.1 什么是人工智能(AI) #
- 人工智能(AI) 是让机器模拟人类智能的技术,包括学习、推理、判断等能力。
- 早期 AI 靠人工写规则(如「如果包含『退款』就转人工」),灵活度差。
- 现在的 AI 更多靠从数据中学习规律,大模型就是这条路线上的代表成果。
- AI 是交叉学科,涉及计算机、语言学、统计学等。
2.2 从传统 AI 到大模型 #
- 传统 AI:擅长单一任务,如人脸识别、垃圾邮件过滤,每个任务往往要单独训练。
- 大模型时代:一个模型能处理多种语言任务——聊天、翻译、摘要、写代码等。
- 你可以把大模型理解成「读过海量文本、会组织语言回答问题的超级助手」。
- 我们日常用的 ChatGPT、通义千问、DeepSeek 对话,背后都是大语言模型。
2.3 机器学习与深度学习 #
- 机器学习:让程序从样本数据中自动找规律,而不是人写死每一条规则。
- 深度学习:机器学习的一个分支,用多层「神经网络」处理复杂数据(文字、图片、声音)。
- 大语言模型属于深度学习,专门处理自然语言(人类日常使用的文字)。
3. 前置知识 #
3.1 自然语言处理(NLP)是什么 #
- NLP(Natural Language Processing) 是研究「计算机如何理解、处理人类语言」的领域。
- 典型任务:机器翻译、情感分析、文本摘要、问答对话。
- 大语言模型可以看作 NLP 领域当前最主流的技术路线。
- 你调用 API 让模型「写一段话」「回答问题」,本质上就是在做 NLP 任务。
3.2 什么是 Token #
- Token 是大模型处理文本的最小单位,可以是一个字、一个词,或词的一部分。
- 英文里 1 个 token 大约对应 3~4 个字符;中文里 1 个汉字往往接近 1 个 token。
- 模型有上下文窗口限制,例如「8K」「128K」表示一次最多能处理多少 token。
- 对话越长、输入越多,消耗的 token 越多,调用费用通常也越高(按量计费时)。
3.3 什么是 API 调用 #
- API(应用程序接口) 是服务提供方给开发者留好的「远程调用入口」。
- 你不需要在本地安装几百 GB 的模型,只需把问题通过网络发给服务商,就能拿到回答。
- 调用时通常需要 API Key(密钥),用来证明「你是谁、有没有权限」。
- 大模型编程核心就是:用 Python 发 HTTP 请求(或通过 SDK)调用模型 API。
4. 什么是大语言模型 #
- LLM = Large Language Model,中文常称「大语言模型」或简称「大模型」。
4.1 大模型的定义 #
- 大语言模型是在海量文本上训练出来的深度学习模型,能理解和生成自然语言。
- 训练数据来自书籍、网页、代码、对话记录等,模型从中学习语言规律和知识。
- 使用时你给一段输入(prompt),模型根据概率预测下一个字/词,逐字生成回答。
- 对开发者来说,大模型是一个「输入文字 → 输出文字」的黑盒服务。
4.2 大模型的四个「大」 #
- 数据大:训练用了 TB(1 TB = 1024 GB) 级别的文本数据。
- 参数大:模型内部有数十亿到数千亿个可学习参数(如 7B = 70 亿参数)。
- 算力大:训练需要大量 GPU 集群,耗时数周甚至数月。
- 能力大:同一模型可完成聊天、翻译、写邮件、解释代码等多种任务。
- 普通开发者不需要自己训练大模型,直接调用云服务商提供的 API 即可。
4.3 为什么这几年大模型突然火起来 #
- 算力提升:GPU 性能增强,能训练更大规模的模型。
- 算法突破:Transformer 架构(2017 年提出)成为主流,擅长处理序列文本。
- 数据丰富:互联网积累了海量可用于训练的文本。
- 产品化成熟:OpenAI、阿里、百度、DeepSeek 等把能力封装成易用的 API 和网页产品。
- 这些因素叠加,让「会说话、会写作的 AI」从实验室走进了日常应用。
5. AGI 与 AIGC #
AIGC 是当前 AI 技术的重要应用方向,AGI 是长期的终极目标;AIGC 的发展为 AGI 积累了必要的技术基础,但 AGI 还需突破更高层的认知与推理能力。
5.1. 定义不同 #
- AGI(Artificial General Intelligence):指具备人类水平的综合智能,能理解、学习、推理、创造,适应各种复杂环境,目前尚未实现。
- AIGC(Artificial Intelligence Generated Content):指利用 AI 自动生成文本、图像、音频、视频等内容,是当下大模型的主要应用形态。
5.2. 关系 #
| 维度 | AIGC | AGI |
|---|---|---|
| 定位 | 具体应用技术 | 理想形态的智能体 |
| 能力范围 | 生成内容(如写作、绘画、对话) | 跨领域理解、推理、决策、自主学习 |
| 当前状态 | 已广泛落地(如 ChatGPT、Midjourney) | 尚未实现,属于研究愿景 |
| 对另一方的作用 | 为 AGI 提供语言/视觉等基础能力积累 | 如果实现,将极大提升 AIGC 的创造性和自主性 |
AIGC 是 AGI 的“子集或前驱”:当前的 AIGC 系统(如大语言模型)已经具备一定的语言理解和生成能力,这是 AGI 所需的基础能力之一。但 AGI 还需要具备跨领域常识推理、长期记忆、主动学习、自我意识等更高层能力。
AGI 将推动 AIGC 质变:未来若实现 AGI,AIGC 将不再是“按指令生成”,而是能真正理解创作意图、情感、语境,产生更接近人类的原创内容。
AIGC 是今天我们能用的“智能生成工具”,AGI 是未来可能实现的“通用智能大脑”;AIGC 是 AGI 漫长征程中的一个重要里程碑。
6. 常见大模型一览 #
6.1 国内外代表模型 #
- 国内常用:通义千问(阿里)、文心一言(百度)、DeepSeek、智谱 GLM、月之暗面 Kimi 等。
- 国外常用:GPT 系列(OpenAI)、Claude(Anthropic)、Gemini(Google)等。
- 国内服务在注册、支付、网络访问上通常更友好,建议优先选国内平台。
- 很多国内平台提供 OpenAI 兼容接口,学会一种调用方式可复用到多家服务。
6.1.1 国内主流大模型 #
| 模型名称 | 开发者 | 最新版本 | 参数量 | 上下文窗口 | 多模态能力 | 主要特点 | 官网地址补充 |
|---|---|---|---|---|---|---|---|
| 通义千问 | 阿里巴巴 | Qwen3.5-Plus (旗舰) / Qwen3.5-Omni (全模态) | 3970亿 (总) / 170亿 (激活) | 1M tokens(Plus) | 原生多模态,支持处理长达2小时的视频。Omni版本支持图片、视频、语音、文字的全模态输入与输出,可处理超10小时音频。 | 开源(Apache 2.0);视觉与代码能力深度融合,可将手绘界面草图转为前端代码。 | 通用入口:https://tongyi.aliyun.com/qianwen/ 开发者API:https://bailian.console.aliyun.com/ |
| 文心一言 | 百度 | 文心大模型5.0 | 2.4万亿 (2.4T) | 未明确公开 | 原生全模态,统一建模文本、图像、音频、视频,支持输入与输出。 | 超稀疏MoE架构,激活参数比低于3%;中文理解能力强;可通过百度千帆平台调用。 | https://yiyan.baidu.com/ |
| DeepSeek | 深度求索 | DeepSeek-V4 (2026年4月发布) | 1.6万亿 (总) / 490亿 (激活) | 1M tokens | 当前版本为纯文本模型,但长上下文能力是其核心亮点。 | 开源先锋,成本仅为国外竞品的一小部分;擅长长文本推理与代码生成;提供Pro(高性能)和Flash(高性价比)版本。 | 对话入口:https://chat.deepseek.com/ 主站:https://www.deepseek.com/ |
| 智谱 GLM | 智谱AI | GLM-5 (2026年2月发布) | 7450亿 (总) / 440亿 (激活) | 约 202K tokens | 原生多模态,能够理解复杂的UI界面和视觉信息。 | 代码能力强,被誉为“国产代码之神”;全程基于华为昇腾芯片训练,实现国产替代。 | 统一入口z.ai:https://z.ai/ 公司/开发入口:https://www.zhipuai.cn/ 开发者文档:https://open.bigmodel.cn/ https://chatglm.cn/ |
| 月之暗面 Kimi | 月之暗面 | Kimi K2.6 (2026年4月发布) | 1万亿 (总) / 320亿 (激活) | 262K tokens | 支持文本、图像和视频等多模态输入。 | 长文本专家,擅长一次性处理海量文档和代码库;在SWE-Bench代码测试中得分69.2%,支持多Agent并行协作。 | 产品入口:https://kimi.moonshot.cn/ 公司官网:https://www.moonshot.cn/ https://kimi.com/ Kimi Code专用入口:https://kimi.com/code |
6.1.2 国外主流大模型 #
| 模型名称 | 开发者 | 最新版本 | 参数量 | 上下文窗口 | 多模态能力 | 主要特点 | 官网地址补充 |
|---|---|---|---|---|---|---|---|
| GPT系列 | OpenAI | GPT-5.4 (2026年3月发布) | 未公开 | 标准版/Thinking版:1M tokens;Pro版:256K tokens | 原生支持多模态(文本、音频、图像)。 | 首个具备原生计算机使用能力的模型,可通过截图识别并执行跨应用任务;分标准、推理、Pro三个版本。 | 主站:https://openai.com/ 产品入口:https://chat.openai.com/ |
| Claude系列 | Anthropic | Claude Sonnet 4 (2025年5月发布) | 未公开 | 标准版:200K;Beta版:1M tokens | 支持文本和图像输入。 | 安全性与可靠性高;编码能力卓越,SWE-Bench得分达72.7%;在长上下文处理上曾一度领先。 | 对话入口:https://claude.ai/ 公司介绍/API:https://www.anthropic.com/ |
| Gemini系列 | Gemini 2.0 (2026年3月发布) | 未公开 | Ultra/Pro版:2M;Flash版:1M tokens | 原生多模态,支持图文音视频的深度理解与分析。 | 与Google生态深度整合,支持原生工具调用(如Google搜索);多模态推理能力强大,部分基准测试超越GPT-5。 | 对话入口:https://gemini.google.com/ 公司与开发者入口:https://deepmind.google/ |
小提示:上表中的参数量以“亿”或“万亿”为单位,例如“1万亿”等同于“10^12”个参数。这仅代表模型规模,并不直接等价于其性能,模型效果还与训练数据、算法架构等多种因素密切相关。
6.2 开源与闭源怎么选 #
- 闭源模型:不公开权重,只能通过官网或 API 使用(如 GPT-4o),效果往往更好。
- 开源模型:公开模型权重,可下载到本地或用云 API 调用(如 DeepSeek、Qwen 开源版)。
6.3 模型名称里的关键字 #
| 关键词类别 | 关键词 | 示例 | 含义 |
|---|---|---|---|
| 版本/规格 | Max | Qwen3.7-Max, Qwen-Image-Max, QVQ-Max |
表示该系列中规模最大、能力最强的旗舰版模型。通常参数量最大,性能最全面,但推理成本也最高。 |
| Plus | Qwen3.7-Plus, Qwen3-VL-Plus, Qwen-Image-Plus |
表示增强版或高级版。相比基础版,在性能、效果上有显著提升,平衡了能力与成本。 | |
| Flash | Qwen3.6-Flash, Qwen3-VL-Flash, Qwen-Flash |
表示轻量极速版。参数量小、响应速度快、成本低,适合高频调用或实时性要求高的场景。 | |
| Turbo | Z-Image-Turbo, Qwen-Omni-Turbo, Qwen-Math-Turbo |
表示加速版。通过技术优化,在保持大部分性能的前提下显著提升推理速度,降低延迟。 | |
| Pro | Qwen-Image-2.0-Pro |
通常表示专业版或增强版,比普通版拥有更好的性能或更高分辨率,定位高于Plus低于Max。 | |
| Lite | Qwen-MT-Lite |
表示轻量版,功能更精简,资源消耗更少,适合基础需求或快速试用。 | |
| Preview | Qwen3.6-Max-preview |
表示预览版,在正式发布前放出,供用户提前体验或测试新功能,可能不稳定。 | |
| Long | Qwen-Long |
表示支持超长上下文的模型(此处支持1000万tokens),专为处理长文档、长对话设计。 | |
| Doc | Qwen-Doc-Turbo |
表示文档处理专用模型,擅长文档信息抽取、摘要、审核等任务。 | |
| Character | Qwen-Flash-Character, Qwen-Plus-Character |
表示角色扮演模型,优化了人设遵循、情感共情等对话能力,适合构建拟人化AI。 | |
| 开源模型 | Qwen3.6开源模型, Qwen2.5-开源模型 |
表示该模型的权重、代码等对外公开开放,用户可下载、部署、修改,而非仅通过API调用。 | |
| 推理模型 | StepFun推理模型 |
指经过特殊训练(如强化学习)以增强逻辑推理能力的模型,在数学、代码等推理任务上表现突出。 | |
| 多模态与视觉 | VL (Vision-Language) | Qwen3-VL-Plus, Qwen-VL-Max |
视觉-语言模型,能同时理解图像/视频和文本,例如看图问答、OCR、物体检测。 |
| Vision | Qwen-VL中的V即Vision |
指模型的视觉理解能力,与VL同义。 | |
| Omni | Qwen3.5-Omni-Flash, Qwen-Omni-Turbo |
表示全模态模型,能处理文本、图像、音频、视频的任意组合输入,并可能输出多模态内容。 | |
| I2V (Image-to-Video) | HappyHorse-I2V, Wan-I2V |
图片生成视频,输入一张静态图片,输出一段动态视频。 | |
| T2V (Text-to-Video) | HappyHorse-T2V, Wan-T2V |
文本生成视频,根据文字描述生成视频内容。 | |
| R2V (Reference-to-Video) | HappyHorse-R2V, Wan-R2V |
参考生成视频,基于多张参考图片(如人物、场景)生成保持一致性的视频。 | |
| T2I (Text-to-Image) | Wan-T2I |
文本生成图像,根据文字描述生成图片。 | |
| VideoEdit | HappyHorse-Video-Edit, Wan-VideoEdit |
视频编辑模型,通过指令或参考图对视频进行局部或整体修改。 | |
| Image | Qwen-Image-2.0, Wan-Image |
指与图像相关的模型,如图像生成、编辑。 | |
| OCR (Optical Character Recognition) | Qwen-VL-OCR |
光学字符识别,专门从图片中提取文字信息的模型。 | |
| QVQ | QVQ-Max, Qwen-QVQ-Plus |
千问视觉推理模型的专用前缀,代表具备视觉输入+思维链推理能力。 | |
| GUI | GUI-Plus |
图形用户界面交互模型,能够理解手机、电脑屏幕内容,并执行点击、输入等操作。 | |
| 3D | Tripo |
3D生成模型,从文本或图片生成三维模型(Tripo本身是模型名,但其能力为3D)。 | |
| 语音/音频 | TTS (Text-to-Speech) | qwen3-tts-instruct-flash-realtime, Qwen-TTS |
文本转语音,将文字合成自然语音。 |
| ASR (Automatic Speech Recognition) | Qwen3-ASR-Flash, Fun-ASR语音识别 |
自动语音识别,将语音转写成文字。 | |
| VC (Voice Clone) | Qwen3-TTS-VC-Realtime |
声音复刻,根据少量音频样本克隆特定人的声音。 | |
| VD (Voice Design) | Qwen3-TTS-VD-Realtime, Qwen-声音设计 |
声音设计,根据文字描述生成全新的、不存在的合成声音。 | |
| Instruct | qwen3-tts-instruct-flash |
指令式语音合成,可通过自然语言指令控制合成语音的情感、语调、语速等。 | |
| Realtime | Qwen3.5-Omni-Flash-Realtime, Paraformer实时语音识别 |
实时版本,支持低延迟流式处理,适用于实时对话、直播等场景。 | |
| Filetrans | Qwen3-ASR-Flash-Filetrans |
文件转录版,专门处理已上传的音频/视频文件,非实时。 | |
| CosyVoice | CosyVoice大模型 |
特定语音大模型的名称,强调自然、拟人化语音合成。 | |
| Sambert | Sambert语音合成 |
阿里云自研的高表现力语音合成技术品牌。 | |
| Paraformer | Paraformer实时语音识别 |
阿里云自研的语音识别模型系列名称。 | |
| Fun-ASR | Fun-ASR实时语音识别 |
通义实验室的新一代端到端语音识别大模型系列名称。 | |
| EMO / LivePortrait / AnimateAnyone | 悦动人像EMO, 灵动人像LivePortrait, 舞动人像AnimateAnyone |
不同的人物肖像/全身动作视频生成模型名称,用于生成动态人像视频。 | |
| 代码/数学 | Coder | Qwen3-Coder-Plus, Qwen-Coder-Turbo |
专门为编程和代码生成优化的模型,具备强大的代码理解、生成和调试能力。 |
| Math | Qwen-Math-Plus, Qwen-Math-Turbo |
专门为数学解题优化的模型,擅长方程、证明、计算等。 | |
| 翻译 | MT (Machine Translation) | Qwen-MT-Plus, Qwen-MT-Flash |
机器翻译模型,支持多语种互译。 |
| LiveTranslate | Qwen3-LiveTranslate-Flash |
实时同声传译模型,支持音视频流式翻译。 | |
| 向量/检索 | Rerank | Qwen-Rerank |
重排序模型,对检索结果进行精细排序,提升相关性。 |
| Embedding | Qwen-Embedding, Qwen-VL-Embedding |
向量化模型,将文本/图像转换成语义向量,用于检索、聚类等。 | |
| 通义多模态向量 | 通义多模态向量 |
支持文本、图像、视频统一表征的向量模型。 | |
| 其他 | 参数规模 | 7b, 30b, 480b, 27b, 60b, 200亿 |
表示模型的参数量,例如7B=70亿,30B=300亿。通常规模越大能力越强,但成本越高。 |
| deep-research | qwen-deep-research |
深度研究智能体,能使用搜索、推理等工具生成可溯源的报告。 | |
| 声音复刻 / 声音设计 | Qwen-声音复刻, Qwen-声音设计 |
分别是声音克隆和声音合成的中文直称。 | |
| 虚拟模特 / AI试衣 | 虚拟模特, AI试衣-Plus版 |
电商领域专用模型,将服装商品图自动穿戴到模特身上。 | |
| FaceChain | FaceChain人物写真生成 |
人物写真生成模型,可基于少量照片生成多种风格的个人写真。 | |
| WordArt 锦书 | WordArt锦书-文字变形 |
创意艺术字生成模型,可对文字进行纹理、变形等特效设计。 |
7. 大模型能做什么 #
7.1 日常生活场景 #
- 学习辅导:解释概念、出练习题、批改作文。
- 写作辅助:写邮件、周报、小红书文案、翻译。
- 信息整理:长文章摘要、会议纪要提炼。
- 编程助手:解释报错、生成示例代码、代码注释。
- 共同点是:输入文字描述需求,模型输出文字结果,几分钟就能验证效果。
7.2 工作学习场景 #
- 客服问答:根据产品文档自动回答常见问题。
- 数据分析辅助:把表格字段说明发给模型,生成分析思路或 SQL 草稿。
- 知识库问答:结合企业内部文档,做「搜文档 + 生成回答」。
- 这些场景的本质都是:把你的业务文字交给模型,拿回结构化或自然语言的回复。
8. GPU 与大模型 #
8.1 为什么需要 GPU #
- CPU 适合通用计算,逐条处理任务。
- GPU 擅长并行计算,能同时处理大量矩阵运算,正好契合深度学习的需求。
- 大模型训练和推理都依赖大量矩阵乘法,所以 GPU 成为标配。
- 你通过 API 调用时,算力在服务商那边,本地电脑没有 GPU 也能用。
8.2 需要关心什么 #
- 调用云端 API 时,关注延迟、价格、模型名称即可,不必自己买 GPU。
- 只有当你要「本地跑开源模型」时,才需要考虑显卡显存(如 8GB、24GB)。
9. 趋势与挑战 #
9.1 发展方向 #
- 模型能力持续增强,支持更长的上下文和更多模态(文字 + 图片 + 语音)。
- 更多面向垂直行业的定制模型(法律、医疗、金融等)。
- API 价格逐步下降,个人开发者和小团队也能负担。
- 开发工具更完善,与 Python、FastAPI 等框架结合更紧密。
9.2 需要注意的问题 #
- 幻觉:模型可能自信地编造不存在的事实,重要信息要人工核实。
- 隐私:不要把密码、身份证号等敏感数据发给第三方 API。
- 成本:高频调用会产生费用,注意设置用量上限。
- 合规:生成内容需符合法律法规和平台使用协议。
10. 调用大模型 API #
- 带你完成从安装到运行的完整流程。
- 示例使用 OpenAI 官方 Python SDK,国内多数平台(通义、DeepSeek 等)都兼容这套写法。
10.1 调用前准备 #
- 在模型服务商网站注册账号(如阿里云百炼、DeepSeek 开放平台)。
- 在控制台创建 API Key,复制保存(只显示一次,丢失需重新创建)。
- 确认平台提供的 Base URL(接口地址)和模型名称(如
qwen-turbo、deepseek-chat)。 - 本机安装 Python 3.8 及以上版本。
10.2 安装依赖 #
- 使用 OpenAI 官方 SDK,一行命令安装。
- 如果你用
uv管理项目,把openai加入依赖后执行uv sync也行。
# 安装 OpenAI Python SDK
pip install openai
# 验证是否安装成功
python -c "import openai; print(openai.__version__)"10.3 用环境变量保存 API Key #
- 不要把 API Key 写进代码或上传到 Git,泄露后别人会消耗你的额度。
- 推荐用环境变量:代码里读取,密钥保存在系统或
.env文件中。 - Windows PowerShell 临时设置示例(当前窗口有效):
# 设置 API Key(把 sk-xxx 换成你的真实密钥)
$env:OPENAI_API_KEY = "sk-6a81543e4e9047ae8f2f9d44a8ee7de2"
# 若使用国内兼容接口,再设置 Base URL(按平台文档填写)
$env:OPENAI_BASE_URL = "https://api.deepseek.com"- 下面这段 Python 演示如何从环境变量读取密钥,无密钥时给出提示而非报错崩溃:
# 导入 os,用于读取环境变量
import os
# 从环境变量读取 API Key
api_key = os.getenv("OPENAI_API_KEY")
# 从环境变量读取接口地址,未设置则为 None
base_url = os.getenv("OPENAI_BASE_URL")
# 检查 Key 是否存在
if not api_key:
# 没有 Key 时打印友好提示
print("未检测到 OPENAI_API_KEY,请先在终端设置环境变量。")
print("PowerShell 示例: $env:OPENAI_API_KEY = 'sk-你的密钥'")
else:
# 有 Key 时只显示前后几位,避免完整泄露
masked = api_key[:7] + "..." + api_key[-4:]
# 打印脱敏后的 Key
print("已读取 API Key:", masked)
# 打印 Base URL(可能为空,部分平台使用默认地址)
print("Base URL:", base_url or "(使用 SDK 默认地址)")10.4 一问一答 #
- 下面程序实现大模型调用:发送一句话,打印模型回复。
- 需先设置
OPENAI_API_KEY;若使用国内平台,还需设置OPENAI_BASE_URL和对应的model名称。 - 首次调用 API
- 模型 & 价格
- Token 用量计算
# 导入 os 模块,用于读取环境变量
import os
# 导入 requests,用于发送 HTTP 请求
import requests
# 获取 OPENAI_API_KEY 环境变量的值,如果没有则使用备用 key
api_key = os.getenv("OPENAI_API_KEY") or "sk-6a81543e4e9047ae8f2f9d44a8ee7de2"
# 如果没有获得 API key,则提示用户并退出程序
if not api_key:
print("请先设置环境变量 OPENAI_API_KEY")
raise SystemExit(1)
# 获取 OPENAI_BASE_URL 环境变量的值,如果没有则使用默认 deepseek 地址
base_url = os.getenv("OPENAI_BASE_URL") or "https://api.deepseek.com"
# 组织 API 请求地址和 headers
api_url = f"{base_url.rstrip('/')}/v1/chat/completions"
headers = {
"Authorization": f"Bearer {api_key}",
"Content-Type": "application/json"
}
# 构建请求数据
model_name = os.getenv("OPENAI_MODEL", "deepseek-v4-pro")
data = {
"model": model_name,
"messages": [
{"role": "user", "content": "你好,请用一句话介绍你自己。"}
]
}
# 发送 POST 请求
response = requests.post(api_url, headers=headers, json=data)
# 检查请求是否成功
if response.status_code != 200:
print("请求失败:", response.status_code, response.text)
raise SystemExit(1)
# 解析 JSON 响应
result = response.json()
# 从回复中获取模型回复内容
answer = result["choices"][0]["message"]["content"]
# 打印模型回复内容
print("模型回复:", answer)
# 打印本次调用消耗的 token 数
print("消耗 token:", result.get("usage", {}).get("total_tokens", "无信息"))10.5 多轮对话示例 #
- 真实应用中常需要「带着上文」连续聊天,
messages列表就是对话历史。 role取值:user(用户)、assistant(模型)、system(系统人设,可选)。- 多轮对话
# 导入 os 模块,用于处理系统环境变量
import os
# 使用 requests 代替 openai 模块
import requests
# 从环境变量获取 API Key,如果不存在则使用默认 key
api_key = os.getenv("OPENAI_API_KEY") or "sk-6a81543e4e9047ae8f2f9d44a8ee7de2"
# 如果 API Key 为空,则提示用户设置环境变量,并终止程序
if not api_key:
print("请先设置环境变量 OPENAI_API_KEY")
raise SystemExit(1)
# 获取基础 URL
base_url = os.getenv("OPENAI_BASE_URL") or "https://api.deepseek.com"
# 获取模型名称
model = os.getenv("OPENAI_MODEL", "deepseek-v4-pro")
# 构建多轮对话历史列表
messages = [
{"role": "system", "content": "你是一位资深旅游顾问,擅长为不同需求的客户规划个性化行程。"},
{"role": "user", "content": "我想明年春天去北京旅游,有什么推荐的景点吗?"},
]
def ask_chat(messages):
url = f"{base_url}/v1/chat/completions"
headers = {
"Content-Type": "application/json",
"Authorization": f"Bearer {api_key}"
}
data = {
"model": model,
"messages": messages
}
response = requests.post(url, headers=headers, json=data)
response.raise_for_status()
return response.json()
# 发起第一次聊天请求
response1 = ask_chat(messages)
# 获取模型的第一轮回答内容
assistant_reply1 = response1["choices"][0]["message"]["content"]
messages.append({"role": "assistant", "content": assistant_reply1})
# 添加用户的追问消息,形成第二轮对话
messages.append({"role": "user", "content": "我比较喜欢自然风光和安静的地方,可以推荐一些特色小众目的地吗?"})
# 发起第二次聊天请求,带上完整的对话历史
response2 = ask_chat(messages)
assistant_reply2 = response2["choices"][0]["message"]["content"]
# 打印第二轮助手的回复内容
print("第二轮回复:")
print(assistant_reply2)10.6 常见问题 #
- 报错 401 Unauthorized:API Key 错误或过期,重新复制密钥并检查环境变量。
- 报错 model not found:
model名称与平台不一致,对照控制台文档修改。 - 连接超时:检查网络;国内访问 OpenAI 官方通常需要代理,建议用国内兼容接口。
- 想省钱:选
Turbo/Flash等轻量模型,缩短输入文本,减少不必要的多轮历史。