想学AI应用开发却不知道从何下手不用怕你不需要懂复杂的算法也不需要昂贵的显卡。今天这篇“保姆级”教程带你从零开始用Python写出你的第一个AI对话脚本。包含完整代码、踩坑指南和流式输出优化新手也能轻松跑通一、 写在前面新手别慌真的没那么难很多想转行AI应用开发的新手上来就被“微调”、“CUDA”、“Transformer”这些词吓退了。其实AI应用开发本质上就是写代码调用别人已经训练好的“超级大脑”。你不需要训练模型只需要学会注册一个提供大模型API的平台。拿到一串API Key钥匙。用Python发一个网络请求把问题塞进去把答案拿出来。今天我们就来完成这个“新手村任务”。准备好你的电脑普通配置就行不需要显卡我们开始二、 准备工作领取你的装备在开始写代码之前我们需要准备两样东西1. Python环境确保你的电脑上安装了Python3.8以上版本。在终端输入python --version检查。如果没有去官网下载安装一下。2. 获取大模型API Key新手避坑重点⚠️新手注意很多教程让你直接去用OpenAIGPT-4但这需要海外信用卡和特殊的网络环境对新手极度不友好。强烈建议新手先使用国内的大模型平台比如DeepSeek深度求索、通义千问Qwen、智谱GLM。它们通常有免费额度且注册简单。以DeepSeek为例因为它的API完全兼容OpenAI格式价格极便宜且注册简单搜索“DeepSeek 开放平台”并注册。进入控制台点击“API Keys”创建一个新的Key。⚠️ 千万不要把这个Key发给任何人不要直接写在代码里上传到GitHub后面教你怎么安全存。三、 动手实操从“能跑通”到“能聊天”第一步安装依赖库打开你的终端或者CMD创建一个新的文件夹然后输入以下命令安装我们需要的库pipinstallopenai python-dotenv注虽然很多国内模型不是OpenAI开发的但为了行业通用它们通常兼容OpenAI的SDK。第二步安全地配置你的API Key在项目文件夹下新建一个文件命名为.env内容如下API_KEY你的真实API_KEY填在这里 BASE_URLhttps://api.deepseek.com注BASE_URL是模型平台的接口地址不同平台不一样去官网文档查一下即可。第三步写最基础的代码非流式新建一个chat.py文件粘贴以下代码# pip install openai python-dotenv# 用到的库说明 # osPython 内置标准库提供与操作系统交互的功能如读写环境变量、路径处理。# 本程序中只用它读取环境变量 os.getenv()。# openaiOpenAI 官方提供的 Python SDK第三方库用来调用兼容 OpenAI 接口的大模型 API。# 通过它可以用同样的代码访问 DeepSeek 等兼容 OpenAI 协议的服务。# python-dotenv第三方库用于把当前目录下 .env 文件中的键值对加载到环境变量中# 这样代码就能用 os.getenv() 读到避免把密钥写死在代码里。# OpenAIopenai 库中的客户端类实例化后用来发送 API 请求。# load_dotenvpython-dotenv 提供的函数执行后会读取当前目录下的 .env 文件。importos# 导入 os 模块后续用它读取环境变量fromopenaiimportOpenAI# 从 openai 库中导入 OpenAI 客户端类fromdotenvimportload_dotenv# 从 python-dotenv 库中导入 load_dotenv 函数load_dotenv()# 调用 load_dotenv()读取当前目录下的 .env 文件把其中的 API_KEY、BASE_URL 注入环境变量clientOpenAI(# 创建一个 OpenAI 客户端实例 client后续用它发起 API 请求api_keyos.getenv(API_KEY),# os.getenv(API_KEY) 从环境变量读取名为 API_KEY 的值作为鉴权密钥传入base_urlos.getenv(BASE_URL)# os.getenv(BASE_URL) 读取 API 基础地址让请求发到对应服务器这里指向 DeepSeek)responseclient.chat.completions.create(# 调用聊天补全接口client.chat.completions 是接口对象create() 方法发起一次请求返回结果存入 responsemodeldeepseek-flash,# model 指定使用哪个模型deepseek-flash 为模型名messages[# messages 是对话消息列表必须是列表 [ ]每个元素是一条消息字典{role:user,content:你好,请用一句话介绍你自己}# 一条消息roleuser 表示这是用户角色说的话content 是消息文本内容])print(AI回复:,response.choices[0].message.content)# 打印结果response.choices 是模型返回的候选回复列表[0] 取第一个候选message 是该候选的消息对象content 即文本内容运行这个脚本如果你在控制台看到了AI的回复恭喜你你已经迈出了AI应用开发的第一步四、 升级体验加入“流式输出”打字机效果上面的代码有个缺点它要等AI全部想完才一次性把结果打印出来往往要等好几秒。真正的AI应用如ChatGPT都是一个字一个字往外蹦的流式输出。我们怎么实现修改chat.py加入streamTrueimportosfromopenaiimportOpenAIfromdotenvimportload_dotenv load_dotenv()clientOpenAI(api_keyos.getenv(API_KEY),base_urlos.getenv(BASE_URL))print(AI正在思考中...)# 先打印一句提示语让用户知道请求已发出、正在等待回复纯体验非必需#开启流式输出responseclient.chat.completions.create(# 与 chat.py 不同因下面 streamTrue这里 response 不再是单个完整结果对象而是一个“可迭代的数据块流”要用 for 循环逐块接收modeldeepseek-flash,# model 指定使用哪个模型deepseek-flash 为模型名messages[# messages 是对话消息列表必须是列表 [ ]每个元素是一条消息字典{role:user,content:请写一首关于程序员转行AI的诗。}# 一条消息roleuser 表示这是用户角色说的话content 是消息文本内容],streamTrue# 关键点streamTrue 开启流式输出服务器边生成边把内容切成多个 chunk数据块陆续返回而不是等全部生成完再一次性返回)forchunkinresponse:# for 遍历流式返回的 response每次循环拿到一个 chunk一个数据块里面装着这一刻新增的一小段文本ifchunk.choices[0].delta.contentisnotNone:# chunk.choices[0].delta 是本块的“增量内容”delta增量区别于 chat.py 里的 message 完整消息流式开头/结尾的某些 chunk 的 content 为 None需判空跳过print(chunk.choices[0].delta.content,end,flushTrue)# 打印这一小段end 让 print 结尾不换行默认 end\n 会换行把每段紧挨着拼成完整文字flushTrue 立即刷新输出缓冲区让字符实时显示从而实现打字机效果五、 终极形态写一个能多轮对话的命令行聊天机器人现在的AI是没有记忆的你问一句它答一句。为了让AI记住上下文我们需要把之前的对话记录也传给它。新建chatbot.pyimportosfromopenaiimportOpenAIfromdotenvimportload_dotenv load_dotenv()clientOpenAI(api_keyos.getenv(API_KEY),base_urlos.getenv(BASE_URL))# 初始化对话历史包含系统设定messages[{role:system,content:你是一个乐于助人的AI助手说话要简短幽默。}]print( 聊天机器人已启动输入 quit 退出)whileTrue:user_inputinput(\n你: )ifuser_input.lower()quit:break# 1. 把用户的话加入历史messages.append({role:user,content:user_input})# 2. 请求AIresponseclient.chat.completions.create(modeldeepseek-chat,messagesmessages,streamTrue)# 3. 打印AI回复并收集完整回复文本print(AI: ,end)ai_replyforchunkinresponse:contentchunk.choices[0].delta.contentifcontent:print(content,end,flushTrue)ai_replycontent# 4. 把AI的回复也加入历史实现多轮记忆messages.append({role:assistant,content:ai_reply})print(\n对话结束拜拜)六、 新手避坑指南血泪总结报错AuthenticationError大概率是API Key填错了或者.env文件没读取到。检查Key前后有没有空格。报错Connection error检查网络或者BASE_URL填错了。一定要去平台官方文档复制准确的地址。千万别把Key硬编码在代码里一定要用我上面教的dotenv方法或者设置环境变量。一旦Key泄露别人会瞬间刷爆你的余额。Token超限大模型的记忆是有限的比如128K。多轮对话太久历史记录太长就会报错。解决方案是限制历史记录条数或者对历史记录做摘要这个我们以后讲。七、 总结与下一步计划到这里你已经成功用Python打通了“调用大模型API”的全链路。你学会了1.获取API Key并安全配置2.安装SDK并发送请求3实现流式打字机效果4.用代码维护多轮对话记忆下一步可以玩什么进阶1用FastAPI把这段代码包成接口前端用Vue/React写个网页界面。进阶2引入LangChain给AI挂载一个“查天气”的工具让它变成智能体Agent。进阶3结合本地PDF文档搭建一个RAG知识库问答系统。如果你跟着做跑通了欢迎在评论区留言“打卡”遇到任何报错也欢迎把错误截图发在评论区我会尽力帮大家解答。点赞收藏你的AI应用开发之路不迷路