FastAPIWeb初识fastapi开发服务器端内容小结FastAPI介绍入门创建根目录下返回内容/users下返回内容运行根目录下返回值/users下返回值但这种启动方式并不推荐推荐还是在代码里写好运行程序0.0.0.0表示ip地址不做限制同样的输出结果小结汉字谜盒案例开发规范因为传统风格的url中的资源路径每个人定义的都不同命名方式不同导致不规范因此引出restful来规范api接口服务根据http的不同请求方式来规定不同的操作url来定位资源小结基础环境搭建前端这里直接使用准备的页面了由于这里是要返回页面因此这里要使用这个方法来封装运行并查看网页发现与目标网页不符前端页面这里访问css和js文件并没有访问到解决通过挂载静态文件来实现再次运行成功渲染新建会话可以看到这里前端调用接口是在/api/sessions这个目录下调用的而get是查询post是新建delete是删除put是修改因此这里新建会话应该使用post请求会话目录没有则创建该接口功能实现步骤这里使用post请求前端是去/api/sessions去找会话生成会话标识按以前的来就是把当前时间作为会话标识组装消息格式按照以前ai智能伴侣的格式来保存为json文件返回数据按照格式返回数据能执行到这儿说明就执行成功了直接返回200即可重新启动成功请求并且返回结果但返回内容fastapi有统一的对象去返回结果定义响应模型对每个参数的类型做声明因此这里返回数据就可以写成重新运行查看返回值和目标一样AI对话功能分析尝试聊天功能抓包看到请求路径为/api/chat请求方式为POST其中请求体是json格式分析请求数据与响应数据格式因为请求是发送的json格式在fastapi中如何接收json格式文件这里也有相应的方法在方法中声明一个参数request它会将json格式直接封装到这个request对象中其中ChatRequest类我们定义属性要与对应的请求的属性相同请求模型接收请求参数功能测试看到成功返回消息结果也正常输出小结通过request对象封装成json格式接收其中定义的对象要继承Base Model类并且定义的属性要与请求的属性格式相同与AI交互功能实现步骤每回问答都需要将上一回的内容调出来然后按照滚雪球的形式传递给大模型最后返回结果并保存准备系统提示词功能框架以前的与大模型问答的格式获取会话数据获取文件路径通过获取路径函数去读取json文件内容构建与大模型会话列表调用AI大模型公式化操作使用非流式输出因为输出内容少无需流式输出获取响应数据可以一点点根据返回结构来获取内容也可以直接看官方文档来直接获取将大模型返回的内容加到消息列表中并将session_data更新保存到json文件中最后ai返回的结果就可以给用户呈现了运行测试结果可以看到成功得到数据文件也已经成功保存优化将系统提示词不保存因为是前置条件只要在发送给大模型时输入就行不用保存提示词在更新消息列表时把第一个元素删除就行了