构建终端 AI 聊天代理
1. 概述
在之前的基础上,我们要设计并构建使 Jarvis 具备完整功能所需的所有组件。主要涉及终端用户界面的构建、响应函数的优化、初始化操作、单子变换器栈的搭建,以及添加日志记录和使用统计等功能。
2. 终端 UI 骨架与设计思路
我们采用之前章节的设计方法,将类型和函数划分到不同的“世界”:
- 纯函数世界 :处理能保持纯性的所有操作。
- IO “层” :包含与外部世界交互的各类函数,如与 OpenAI API 交互的函数。
- RWS 层 :现在移至 Middleware.hs 文件,处理应用的业务逻辑,需要保存状态和读取设置,但不直接与用户交互。
- UI 操作 :位于顶层,在 src/App.hs 文件的 InputT 单子内。
3. 添加更友好的响应函数
修改处理 OpenAI API 流式响应的函数,以输出美观的文本消息,而非上一章中的 JSON 元信息。
-- src/LLM/OpenAI.hs
processResp :: BS.ByteString -> IO ()
processResp ch = do
mapM_
( \x -> do
let jsonObject = decode (BL.pac
构建终端AI聊天代理
超级会员免费看
订阅专栏 解锁全文
1321

被折叠的 条评论
为什么被折叠?



