当前位置: 首页 > news >正文

python学习第十七天(自用)

FastAPI

Web初识,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返回的结果就可以给用户呈现了

运行测试结果,可以看到成功得到数据

文件也已经成功保存

优化,将系统提示词不保存,因为是前置条件,只要在发送给大模型时输入就行,不用保存提示词

在更新消息列表时把第一个元素删除就行了

http://www.jsqmd.com/news/978168/

相关文章:

  • 微软为 Windows 10、11 及 Server 安装镜像发布 Defender 更新
  • 2026抖音地图店铺入驻技术要点与服务商参考:地图标注门店定位/抖音地图标注店铺入驻/实力盘点 - 优质品牌商家
  • 十四周记录
  • 从虚拟机到私有云:手把手教你用CentOS 7和OpenStack搭建个人开发测试环境
  • 别让空格毁了你的网页!HTML空格代码这么写,干净利落一针见血
  • 基于海康门禁的人员计数系统
  • FinalShell密码忘了别慌!手把手教你从本地文件找回服务器连接密码(附Java解密脚本)
  • 2026年大件货国际货运公司排行及选型推荐:整柜国际物流公司/整柜国际货运公司/海运国际货运公司/优选指南 - 优质品牌商家
  • 手把手教你:不写一行代码,在NX Block UI中直接‘借用’移动组件命令
  • Qt安装后第一件事:手把手教你配置环境变量和创建Hello World项目(Win10 + Qt 5.12)
  • 为什么国内大学普遍把c语言作为程序设计的入门课程?
  • C# WinForm连接SQLite踩坑实录:从‘文件被占用’到性能调优,我都帮你解决了
  • 速通 计算理论(核心部分)
  • 别再手动写Loading了!用Vue 3的Composition API封装一个全局加载动画(附完整代码)
  • 免费图片去水印工具推荐:2026年收藏与学习向实用教程
  • 生信小白避坑指南:你的多序列比对结果为啥‘乱七八糟’?可能是这5个输入细节没做好
  • AI组织进化论:拆解微软、英伟达、Anthropic与Open AI如何重写组织
  • 电商物流追踪完全指南:从手动查单到批量查询,一套方案解决所有痛点
  • 纯棉四件套实测评测:纯棉三件套/四川棉被厂家/学生宿舍棉被/幼儿园棉被/应急棉絮/救灾棉絮棉被/救灾棉被棉絮/新疆长绒棉花被/选择指南 - 优质品牌商家
  • 用C++解NOIP真题:P1068分数线划定,从冒泡到STL sort的四种解法对比
  • 告别数据不平衡:用CTGAN的‘条件生成器’为你的表格数据生成高质量合成样本
  • 基于 Windows + Ubuntu 练习 MuJoCo 模拟
  • 保姆级教程:用安信可ESP32S3开发板,把闲置USB摄像头变成无线监控(支持手机浏览器查看)
  • 明明插了麦克风却没声音?这些坑你踩了几个?
  • Stable Baselines3:5分钟掌握PyTorch强化学习框架
  • 告别配置混乱!用Apollo Profiles统一管理Spring Boot多环境配置(附Idea/Eclipse实战)
  • 基础采集设备
  • 2026年即墨区马桶疏通客服电话及服务指南 - 品牌排行榜
  • 2021年量产的时间窗口:曲速科技在推理赛道形成先发积累
  • Vim党福音:用Coc.nvim + Clangd搞定嵌入式开发,解决交叉编译链头文件索引的终极脚本