实习结帖(flask加上AIGC实现设计符合OpenAPI要求的OpenAPI Schema,让AIGC运行时可以调用api,协助公司门后迁移新后端等)

news2024/12/27 15:08:31

          终于,笔者的实习生活也要告一段落了,最后的几天都在忙着和公司做AIGC的项目,在搞api的设计以及公司门户网站的迁移。

牛马搬运工(牛马了3天)

        先说这个门户网站的迁移,我原本以为只是换个后端(若依),数据库改改就能用,结果居然是换一个服务器,那就寄了,更寄的是,在转移新闻数据的时候,时间跨度大(20年初),结果就是新闻里面的图片采用的保存技术不同!

DataURIscheme

        DataURIscheme是一种将小数据直接嵌入网页中的技术,减少HTTP请求,提高页面加载速度。(案例转载从https://blog.csdn.net/bbc2005/article/details/73369893)

        例如你有一个图片,希望在前端展示,而他可能需要通过以下这种方式获取

这就是http URI scheme

<img src="http://sjolzy.cn/images/A.jpg"/>

Data URI scheme是将http转为base64

以下这种方式就是Data URI scheme


<img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAQAAAADCAIAAAA7ljmRAAAAGElEQVQIW2P4DwcMDAxAfBvMAhEQMYgcACEHG8ELxtbPAAAAAElFTkSuQmCC" />

它把一些 8-bit 数据翻译成标准 ASCII 字符,虽然人看不懂了,但是

  base64编码把图片文件增加了1/3,Data URI和MHTML同时使用相当于增加了2/3,但CSS和JavaScript可以使用gzip压缩,其可以节省2/3的数据量,所以使用gzip压缩后的最终数据量是(1 + 1/3) * 2 * (1/3) = 8/9,所以最终流量是减少的。还能减少请求数节约大量的时间。

        而通过全选复制下的新闻内容包括了其中的富文本内容,也就导致复制的图片呈现的是base64的字符串,并且他不是一个图片文件,而是链接,一旦弃用原数据库图片就就地升天,这个问题的发现是在转移过程中出现了。

### Error updating database. Cause: com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large (6,066,082 > 4,194,304). You can change this value on the server by setting the 'max_allowed_packet' variable. ### The error may exist in com/xuanyuan/portal/mapper/PortalInformationMapper.java (best guess) ### The error may involve com.xuanyuan.portal.mapper.PortalInformationMapper.insert-Inline ### The error occurred while setting parameters ### SQL: INSERT INTO portal_information ( information_id, title, cover, content, status, type, sort, create_by, create_time ) VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ? ) ### Cause: com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large (6,066,082 > 4,194,304). You can change this value on the server by setting the 'max_allowed_packet' variable. ; Packet for query is too large (6,066,082 > 4,194,304). You can change this value on the server by setting the 'max_allowed_packet' variable.; nested exception is com.mysql.cj.jdbc.exceptions.PacketTooBigException: Packet for query is too large (6,066,082 > 4,194,304). You can change this value on the server by setting the 'max_allowed_packet' variable.

后端数据库塞不进去了,数据太长了,query不足,虽然可以调整mysql策略解决,当问题是导入的图片仅仅是链接而不是本体。以下为同一种图片两种情况的存储,可以发现小图片base64塞满了数据且比原图片还大。

不转码保存但是网页协议落后

        一般来说,网络协议落后也没有什么问题,但是http协议加载不出图片,需要改为https才能访问图片,不过很好的是出问题的这些不再是转base64保存,不用看哪些又臭又长的链接,但是原门户网站只能通过http访问,想要图片则必须将图片新开标签自己在前面加上https,只能说这实在是太折磨了而且不同后端存储的设置也不一样,转图片在改一样不方便。就这样这三天我感觉我都要得腱鞘炎了,我有没有工伤我不知道,但是我的鼠标倒是今创业未半而中道崩殂了。

利用flask搭建后端,设计功能开放api给AIGC使用

这个东西如果你们想尝试,可以去看看文擎毕昇或其他的AIGC平台,对应的就是工具这一块,我们需要实现的,就是设计了flask(python的一个框架)的各个路由分支,和他的功能实现就好了,下面是一个获取系统的运行时长的案例。(注意:理论上api的调用需要使用域名,理论上使用网络隧穿可能是一种无合法域名的实现方式之一,当然如果你是本地部署的,那直接localhost:端口也没问题)

1.	from flask import Flask, jsonify
2.	import time
3.	
4.	app = Flask(__name__)
5.	
6.	start_time = time.time()
7.	
8.	@app.route('/uptime', methods=['GET'])
9.	def get_uptime():
10.	    uptime_seconds = time.time() - start_time
11.	    return jsonify({'uptime': uptime_seconds})
12.	
13.	if __name__ == '__main__':
14.	    app.run(debug=True)

这是与其对应的OpenAPI Schema。

1.	{
2.	  "openapi": "3.1.0",
3.	  "info": {
4.	    "title": "Uptime API",
5.	    "description": "API to check the server uptime",
6.	    "version": "v1.0.0"
7.	  },
8.	  "servers": [
9.	    {
10.	      "url": "http://localhost:5000"
11.	    }
12.	  ],
13.	  "paths": {
14.	    "/uptime": {
15.	      "get": {
16.	        "summary": "Get Uptime",
17.	        "description": "Returns the uptime of the server in seconds.",
18.	        "operationId": "getUptime",
19.	        "responses": {
20.	          "200": {
21.	            "description": "Uptime in seconds",
22.	            "content": {
23.	              "application/json": {
24.	                "schema": {
25.	                  "type": "object",
26.	                  "properties": {
27.	                    "uptime": {
28.	                      "type": "number",
29.	                      "description": "Uptime in seconds"
30.	                    }
31.	                  }
32.	                }
33.	              }
34.	            }
35.	          }
36.	        }
37.	      }
38.	    }
39.	  },
40.	  "components": {
41.	    "schemas": {}
42.	  }
43.	}
44.	

输入的OpenAPI Schema支持json和yaml两种常见格式,都需要满足openapi格式,什么,你不会写,这都ai时代了个,找大语言模型跑一下,或者拿AIGC试着做一个小助手都可以啊!为了保证api的实现唯一接口,需要为每一个操作提供opreationID,人工智能将会自动解析对应需求,在实际应用中将会自动设计数据包发送给后端。

         说起网络隧穿,就想起了以前高中大学的时候搞这个,一个为了mc联机,一个为了去教室拿ipad玩电脑。现在呢,真的感慨时间流逝真快,变化之大,以前网络隧穿效果其实并不好(远程连接),而现在mumu出了一个gamevivewer能更好的远程控制,还能电脑多开桌面,手机控制后台的桌面,当然我用这个只是为了上课签到。。。。早八打开远程定位打卡。

 这个隧穿也陪伴了我好久。

结语

        整个实习我接触了很多新东西,不仅是技术上的,与人处事人际交往也是如此,很多时候纸上得来终觉浅绝知此事要躬行,也是一句真理,回过头才发现,不知不觉就实习了这么长的时间,也有些感慨,大四了,也快毕业了,那以后的人生,也差不多开始完全靠自己书写了。

         估计高中那时的我们都没能想象到今天是怎么样的,没想过人工智能这么强大,没想过qq宠物也有一天会离我们远去,没想过高中电脑课学的VB到今天已经是半截入土的,没想过flash也会收费,未来到底是怎么样的呢,现在的我倒也有点感到伤感,感觉一天一天和时代脱轨,未来到底是怎么样的,希望是美好的吧,也希望每一年也能告诉自己,一年过去了,我也有了新变化,也有了成长吧。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2172591.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新版本Android Studio如何新建Java code工程

新版本Android Studio主推Kotlin&#xff0c;很多同学以为无法新建Java工程了&#xff0c;其实是可以的&#xff0c;如果要新建Java代码的Android工程&#xff0c;在New Project的时候需要选择Empty Views Activity&#xff0c;如图所示&#xff0c;gradle也建议选为build.grad…

RP2040 C SDK GPIO和IRQ 唤醒功能使用

RP2040 C SDK GPIO和中断功能使用 SIO介绍 手册27页&#xff1a; The Single-cycle IO block (SIO) contains several peripherals that require low-latency, deterministic access from the processors. It is accessed via each processor’s IOPORT: this is an auxiliary…

MyBatis——Plus

MyBatis——Plus怎么知道他是访问哪张表

48 旋转图像

解题思路&#xff1a; \qquad 这道题同样需要用模拟解决&#xff0c;原地算法要求空间复杂度尽量小&#xff0c;最好为 O ( 1 ) O(1) O(1)。模拟的关键是找到旋转的内在规律&#xff0c;即旋转前后的位置坐标的变化规律。 \qquad 正方形矩阵类似洋葱&#xff0c;可以由不同大小…

计算机毕业设计 在线问诊系统的设计与实现 Java实战项目 附源码+文档+视频讲解

博主介绍&#xff1a;✌从事软件开发10年之余&#xff0c;专注于Java技术领域、Python人工智能及数据挖掘、小程序项目开发和Android项目开发等。CSDN、掘金、华为云、InfoQ、阿里云等平台优质作者✌ &#x1f345;文末获取源码联系&#x1f345; &#x1f447;&#x1f3fb; 精…

又一条地铁无人线开通!霞智科技智能清洁机器人正式“上岗”

2024年9月26日12时&#xff0c;又一条无人线开通运营&#xff0c;这是陕西省首条全自动无人驾驶地铁线路。该线路作为北跨战略的先行工程&#xff0c;是连接主城区与渭北地区的轨道交通快线&#xff0c;对优化城市总体空间布局、推动区域融合发展、促进沿线产业升级具有十分重要…

电脑上数据丢了怎么找回来 Win系统误删文件如何恢复

无论是在工作中&#xff0c;还是生活中&#xff0c;电脑都是不可缺少的重要工具&#xff0c;尤其是在工作中&#xff0c;电脑不仅可以高效的完成工作&#xff0c;还可以存储工作中的重要资料。不过在使用电脑的时候&#xff0c;也会遇到数据丢失的情况。针对这一问题&#xff0…

渗透测试--文件上传常用绕过方式

文件上传常用绕过方式 1.前端代码&#xff0c;限制只允许上传图片。修改png为php即可绕过前端校验。 2.后端校验Content-Type 校验文件格式 前端修改&#xff0c;抓取上传数据包&#xff0c;并且修改 Content-Type 3.服务端检测&#xff08;目录路径检测&#xff09; 对目…

在Java中使用GeoTools解析POI数据并存储到PostGIS实战

目录 前言 一、POI数据相关介绍 1、原始数据说明 2、空间数据库表设计 二、POI数据存储的设计与实现 1、对应的数据模型对象的设计 2、属性表数据和空间信息的读取 3、实际运行结果 三、总结 前言 POI点&#xff0c;全称为Point of Interest&#xff08;兴趣点&#xf…

大数据技术:Hadoop、Spark与Flink的框架演进

大数据技术&#xff0c;特别是Hadoop、Spark与Flink的框架演进&#xff0c;是过去二十年中信息技术领域最引人注目的发展之一。这些技术不仅改变了数据处理的方式&#xff0c;而且还推动了对数据驱动决策和智能化的需求。在大数据处理领域&#xff0c;选择合适的大数据平台是确…

git 清除二进制文件的 changes 状态

问题&#xff1a;某个分支上修改了二进制文件&#xff0c;导致 changes 一直存在&#xff0c;切换到主分支也仍然存在&#xff0c;点击 Discard 也没用 使用 git reset --hard 还原到初始状态&#xff0c;也不行&#xff0c;不过输出结果会给出错误信息 Encountered 7 file(s) …

raise Exception(“IPAdapter model not found.“)

IPAdapter模型文件太多了&#xff0c;而节点IPAdapter Unified Loader是通过函数&#xff08;get_ipadapter_file与get_clipvision_file&#xff09;预设来加载模型文件&#xff0c;当发生错误“IPAdapter model not found.“时并不指明模型文件名&#xff0c;导致想要有针对性…

C语言 | Leetcode C语言题解之第438题找到字符串中所有字母异位词

题目&#xff1a; 题解&#xff1a; /*** Note: The returned array must be malloced, assume caller calls free().*/ /* *int strCmpn&#xff1a;比较滑动窗口和字符串的相同值 char * s&#xff1a;字符串s&#xff0c;滑动窗口的位置 char * p&#xff1a;字符串p&#…

【Python】Flask-Admin:构建强大、灵活的后台管理界面

在 Web 应用开发中&#xff0c;构建一个直观且功能丰富的后台管理系统对于处理数据和维护应用至关重要。虽然构建一个完全自定义的管理后台界面非常耗时&#xff0c;但 Flask-Admin 提供了一个简洁、灵活的解决方案&#xff0c;可以让开发者快速集成一个功能齐全的后台管理系统…

【移植】轻量系统STM32F407芯片移植案例

往期知识点记录&#xff1a; 鸿蒙&#xff08;HarmonyOS&#xff09;应用层开发&#xff08;北向&#xff09;知识点汇总 鸿蒙&#xff08;OpenHarmony&#xff09;南向开发保姆级知识点汇总~ 持续更新中…… 介绍基于 STM32F407IGT6 芯片在拓维信息 Niobe407 开发板上移植 Op…

Linux操作系统中MongoDB

1、什么是MongoDB 1、非关系型数据库 NoSQL&#xff0c;泛指非关系型的数据库。随着互联网web2.0网站的兴起&#xff0c;传统的关系数据库在处理web2.0网站&#xff0c;特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心&#xff0c;出现了很多难以克服的问…

改变安全策略的五大实践

随着网络威胁形势的加剧&#xff0c;网络安全计划必须不断发展以保护组织的使命。 为了管理这种持续的网络安全发展&#xff0c;应遵循五项关键的安全计划变更管理实践&#xff1a; 1. 识别并吸引受安全风险影响的业务利益相关者 随着新的网络安全风险被发现&#xff0c;受影…

HEITRONICS TC13红外辐射高温计CT13 INFRARED RADIATION PYROMETER CT13

HEITRONICS TC13红外辐射高温计CT13 INFRARED RADIATION PYROMETER CT13

山海优选电商平台卷轴模式订单系统核心架构解析

山海优选卷轴模式的订单核心源码是涉及订单处理、支付、搜索、状态管理等关键功能的代码部分。由于直接提供完整的源代码可能涉及版权和隐私保护问题&#xff0c;我将基于参考文章中的信息&#xff0c;概述该模式订单核心源码的主要结构和功能点。 一、订单核心源码概述 在山海…

IDEA2020运行项目时不从配置的maven仓库找jar包,从C盘默认路径下找jar包

目录 问题描述&#xff1a; 解决方案&#xff1a; 问题描述&#xff1a; 使用IDEA2020做java开发&#xff0c;idea的设置中maven仓库地址配在D盘&#xff0c; maven的配置文件setting.xml中的仓库也已经确认配置到D盘&#xff0c; 项目根据pom文件自动下载jar包时也会下载到…