V
主页
用 Rust 创建 OpenAI SDK: 为了更好的交互体验进行服务端重构
发布人
上个系列我们完成了一个虽不完善但可用的 llm-sdk,那饺子包好,现在该上醋了。这个系列我们来做一个 AI 助手:Ava。Ava 可以根据我输入的语音,尝试理解我的意图,如果意图符合我预设的一些函数(画画,写代码)那就执行那些函数,否则就像个聊天机器人一样回答我的问题。为了完成这些功能,我们需要支持语音输入,调用 llm-sdk 进行相关 API 的调用,然后把结果返回给用户。由于整个过程耗时很长,所以我们需要考虑不断把中间过程传送给客户端,使其能够提供更及时的交互,为此我们考虑使用 SSE(Server Side Event)。整个系列一共做了 8 讲,希望能够帮助你更好地学习用 Rust 做有用的小工具。和上一个系列类似,这个系列需要的 Rust 水平介于初级到中级之间,不会涉及任何复杂的生命周期或者泛型。 这一讲我们重新审视之前做的很多设计决策,可以看出由于 channel 中我们发送的都是渲染后的 String,这导致我们无法精细化控制 SSE 发送的 Event,从而在 UI 层面无法提供更友好更即时的交互。我们来迭代这些决策,让代码更灵活,交互效果更好。
打开封面
下载高清视频
观看高清视频
视频下载器
Rust crates 大巡礼:使用 tonic 构建 gRPC
用 Rust 创建 OpenAI SDK: Chat Completion API 实现(1)
用 Rust 创建 OpenAI SDK: Audio API 实现
Rust 项目实操 - 从零开始构建预定系统(4):构建 gRPC 接口
用 ChatGPT 构建数据库助手:高效撰写需求
用 Rust 创建 OpenAI SDK: Embedding API 以及重构
Rust 项目实操 - 从零开始构建预定系统(1):思考需求,构建 RFC
Rust 过程宏(第一弹)
Rust 项目实操 - xdiff (5):交互式生成配置
用 Rust 创建 OpenAI SDK: 基础功能以及 Image API 实现
Rust 项目实操 - 从零开始构建预定系统(16):处理 gRPC 的 streaming response
用 Smithy 高效构建 REST API & 客户端 SDK:环境设置和基本语法
Rust crates 大巡礼:dioxus 如何使用 localstorage?
Rust 项目实操 - xdiff (9):使用 trycmd 撰写 CLI 集成测试
Rust 项目实操 - 从零开始构建预定系统(10):处理查询分页
Rust crates 大巡礼:axum 入门 (2) - WebSocket 处理
Rust WASM 开发:如何使用 webcam 捕捉视频?
Rust 项目实操 - 从零开始构建预定系统(22):使用 pglistener 处理预约的变化
Rust crates 大巡礼:Axum(1) - 使用共享状态
程序君的 Rust 培训(1)
Rust 项目实操 - 从零开始构建预定系统(3):系统设计
Rust crates 大巡礼:使用 oso 进行权限处理(下)
Rust 项目实操 - 从零开始构建预定系统(17):构建集成测试
Rust 项目实操 - 从零开始构建预定系统(2):设计数据库 schema
Rust WASM 开发:使用 Tauri 构建桌面应用!
使用 llm-sdk 构建 Ava Bot:项目架构概述
Rust 项目实操 - 从零开始构建预定系统(18):gRPC 客户端如何处理 streaming
Rust 项目实操 - 从零开始构建预定系统(15):把可以开源的代码抽取成新的 crate
Rust crates 大巡礼:dioxus 如何同时支持 web 和桌面应用?
Rust 项目实操 - xdiff (4):提供更友好的错误提示
Rust WASM 开发:获取 webcam 设备列表并响应更新
Rust Deno 深度探索:熟悉 deno 生态
Rust 项目实操 - xdiff (2):使用 clap 构建 CLI
用 Rust 创建 OpenAI SDK: Chat Completion API 实现(3)
Rust Deno 深度探索:处理 Typescript
Rust 项目实操 - 从零开始构建预定系统(6):实现预定功能
用 Smithy 高效构建 REST API & 客户端 SDK:使用 Smithy 高级功能
Rust crates 大巡礼:axum 入门 (2) - WebSocket 单元测试
使用 llm-sdk 构建 Ava Bot:使用 Tools 让 Ava 更智能
程序君的 Rust 培训(2)