尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

四、《从零手撸 Agent》 — 流式输出:接住 AI “一个字一个字” 想出来的过程

四、《从零手撸 Agent》 — 流式输出:接住 AI “一个字一个字” 想出来的过程 本文是《从零手撸 Agent》系列第 1 篇。这个系列假设你刚起步从最基础的 API 调用一路写到能部署的多智能体系统代码全部可复现。起因前阵子公司想搞个内部 AI 工具活儿落我头上。说实话我当时对大模型的认知停留在网页上跟它聊天代码怎么调、钱怎么算、Key 从哪来一概不知。折腾了一晚上跑通第一次调用之后我发现这件事本身不难难的是没人告诉你坑在哪。所以第一篇不讲 Agent就讲怎么从零跑通第一次调用。后面所有复杂的东西都建立在这 10 行代码上。装环境虚拟环境别跳过Python 3.10 以上去官网装。Windows 用户注意安装界面最底下那个 “Add Python to PATH”勾上。我就是没勾对着python: command not found懵了十分钟。然后建项目、建虚拟环境1mkdir my-first-agent cd my-first-agent 2python -m venv .venv 3 4# Windows PowerShell: 5.venv\Scripts\activate 6# Mac / Linux: 7source .venv/bin/activate 8 9pip install openai虚拟环境这步很多人嫌麻烦直接跳过。别。我同事图省事往系统 Python 里装了一堆库后来版本冲突最后重装环境解决了。给它一个独立小房间省得以后拆家。pip 慢的话换清华源pip install openai -i https://pypi.tuna.tsinghua.edu.cn/simple申请 Key我用的 DeepSeek注册就送额度国内直连适合起步。通义千问也行。注册完在控制台找 “API Keys”创建复制那串sk-开头的字符。注意它只显示一次马上存到本地记事本。还有一条铁律Key 绝不进 git 仓库。被盗刷的案例见得太多了。第一次调用新建first_call.py1from openai import OpenAI 2 3client OpenAI( 4 api_keysk-你自己的key, 5 base_urlhttps://api.deepseek.com, 6) 7 8response client.chat.completions.create( 9 modeldeepseek-chat, 10 messages[ 11 {role: user, content: 用一句话解释什么是API} 12 ], 13) 14 15print(response.choices[0].message.content)运行1python first_call.py我拿到的回答是“API 就像餐厅的服务员你点菜发请求它转达厨房服务器再把做好的菜数据端回来。”行通了。但如果你跟我一样是个较真的人这 10 行里至少有三个地方值得停下来想想。为什么要base_url因为 DeepSeek、千问这些厂商都兼容 OpenAI 的接口格式同一个 SDK 换个地址就能打给不同家。以后换模型改一个字符串的事。choices[0]是什么鬼历史遗留。早期接口支持一次生成多个候选回答现在固定返回 1 个所以永远是choices[0]背下来就行。messages 为什么是个数组这是下一篇的主题先埋个伏笔模型根本不记得你上一次说了什么。钱是怎么算的把最后一行换成print(response)跑一遍在输出里找usageusage{ prompt_tokens: 12, # 你发过去的内容 completion_tokens: 35, # 模型的回答 total_tokens: 47, }token 是模型的计量单位大概 0.75 个英文单词或者 0.6 个汉字。计费按这个来。第一次看到这个字段的时候我还没什么感觉后来做了 Agent 才知道这个字段能让你省一半的钱。这里先记住一句话你发的内容越多越贵。后面讲上下文管理时全靠这条。Key 别写死在代码里我第一版代码就把 Key 硬编码了被同事看到骂了一顿。标准做法是环境变量1# Mac / Linux: 2export OPENAI_API_KEYsk-你的key 3# Windows PowerShell: 4$env:OPENAI_API_KEYsk-你的key1import os 2from openai import OpenAI 3client OpenAI( 4 api_keyos.environ[OPENAI_API_KEY], 5 base_urlhttps://api.deepseek.com, 6)我踩过的 4 个坑希望你绕开python: command not found—— 装的时候没勾 Add to PATH重装勾上pip install卡死 —— 网络问题换镜像源Key 泄露 —— 只存本地环境变量.gitignore里加上相关文件AttributeError: dict object has no attribute ...—— 后面会反复遇到十有八九是把字典当对象用了或者反过来收个尾这一篇其实就干了一件事跑通 10 行代码。但把每一行都搞明白后面会顺很多。下一篇讲一个更反直觉的事你连着问它两个问题第二个问题里它根本不记得第一个问题说了什么。很多人第一次发现这一点时的反应是这模型怎么这么笨。其实不是它笨是 API 的设计就是这样。动手环节不看文章独立跑通一次调用把问题换掉确认自己会改打印完整 response找到 usage算算花了几个 token写在最后如果想系统、完整地吃透 Harness、Hermes 整套前沿智能体开发体系完成从只会调模型到可控、高质量、可落地的 AI 工程交付进阶可以关注慕课网近期上新的《HarnessHermes 多智能体开发特训营》。 课程直达https://class.imooc.com/sale/hagent
返回列表