从 Demo 到生产级别的 Agent 项目

交互响应

同步响应

同步响应就是最简单的,给模型一个输入,然后一直在那里等,等到有答案了一股脑全部返回。

SSE 流式输出

SSE 流式输出是大模型会生成很多个字,每生成一个就推送给前端,看上去就好像在打字一样。

异步输出

异步就有点像事件循环了,一个任务正在等待的过程中可以去做别的,等到做好了再来拿。有点像 async await。

Prompt 版本管理

Prompt 在最开始的情况下可以是一个字符串,但是在需要版本改动,跑测试的时候就很麻烦。成熟的做法是把 Prompt 抽出来,做成独立的模板配置。模板支持变量替换、版本管理、灰度发布。

重试策略:模型 API 挂了怎么办

在 API 挂了的时候应该注意是哪种情况,有的情况比如说网络抖动,或者 HTTP 429 被限流了,那么就应该用指数退避加随机抖动。如果是HTTP 400 格式错误或 HTTP 401 认证失败,那么重试反而没有必要。

大模型的生成很慢,可能要等15-30秒才能生成完整的回答,如果超时时间只设置成5秒,那么超时是很正常的。但是像 TCP 连接这种就不需要这么长的时间,因此应该分层设置超时事件。

限流与降级

当 token 超额时不应该只让用户看到空白页面,应该要有降级措施,比如用便宜模型或者预设一个回答。

幂等性:相同请求不要重复计费

网络抖动导致客户端没收到响应,于是重发了一次请求。如果没有幂等保护,同一个请求可能被执行两次------两倍的 token 消耗、两倍的费用、甚至可能给用户返回两条重复的消息。实现思路很简单:客户端在每个请求上带一个唯一的请求 ID,服务端在处理前先检查这个 ID 有没有被处理过

相关推荐
春风解人意11 小时前
从零开始学习嵌入式P32----网络基础之TCP
c语言·网络·学习·tcp/ip
传奇开心果编程13 小时前
【Rust入门知识点学与练】第21课:Trait 进阶 Advanced Traits
开发语言·学习·rust
水巷石子13 小时前
备考系统架构设计师第一天
学习·架构·软考·设计·考试
是隼人14 小时前
buuctf-pwn inndy_echo(32位fmt)题解(学习过程持续更新)
c语言·学习·安全·pwn入门·ctf入门
xian_wwq14 小时前
【学习笔记】深度认知系列-第16讲-提示词工程
人工智能·笔记·学习
洛阳纸贵14 小时前
MATLAB-matlab基础知识
学习·算法·matlab
Vcaker15 小时前
Linux学习25-harbor私有仓库部署
linux·运维·学习
留白_15 小时前
【tableau入门学习】5、筛选器、参考线和集
学习·tableau
youm200315 小时前
认识Redis
redis·笔记·学习
亮工硬件16 小时前
1-11 STM32内部FLASH(数据掉电保存)
笔记·stm32·单片机·嵌入式硬件·学习