一、Android抓包方式 对Https降级进行抓包,降级成Http使用抓包工具对Https进行抓包 二、常用的抓包工具 wireshark:侧重于TCP、UDP传输层,HTTP/HTTPS也能抓包,但不能解密HTTPS报文。比较复杂fiddler:支持HTTP/HTTPS协议,篡改请求入参,篡改响应效据,设置请求断点重发,弱网模拟。但是只支持Windowcharles:基本功能跟fiddler一样。并且所有平台都支持,界面简洁,操作简单(重点) 三、抓包工具Charles 1.下载: 官网地址:Download a Free Trial of Charles • Charles Web Debugging Proxy
2.安装: 下载完成之后,直接点击安装即可。安装完成之后的界面
3.原理: 网络编程Http知识
拦截请求,代理客户端向服务端发送请求拦截服务端响应,拿到服务端返回的公钥,并返回自己的公钥证书,目的是为了接下来的流程中加密会话秘钥客户端需要安装charies证书,并添加信任,否则会报证书无效错误;客户端生成会话秘钥,并使用charies公钥加密发送到服务端再次拦截请求,用自己的私钥解密会话秘钥,并使用前面拿到服务端公钥加密会话秘钥发送到服务端服务端使用自己的私钥解密会话秘钥使用会话秘钥去加密response,并返回charies再次拦截响应,使用会话秘钥去解密response,展示明文,从而达到https抓包的日志 4.证书配置 注意: 在使用6.0及以下的手机的时候,如果想要抓包Https,只需要在手机上安装Charles证书就可以了,但是如果使用的手机是7.0及以上版本的时候,这个时候就不管用了,需要手动的添加该证书的信任
原因: 因为Android在不同的版本,系统为了网络安全,网络配置发生了一些变化
系统的网络安全配置: Android6.0及以下既支持信任系统证书,也支持信任用户安装的证书,也运行明文传输 <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> <certificates src="user" /> </trust-anchors> </base-config> 在Android7.0及以上,不在信任用户安装的证书。这也就是为什么7.0以上的手机即便安装了charles证书,依旧无法抓包的原因 <base-config cleartextTrafficPermitted="true"> <trust-anchors> <certificates src="system" /> </trust-anchors> </base-config> 在android9.0及以上,只信任系统证书,并且不允许明文http的传输 <base-config cleartextTrafficPermitted="false"> <trust-anchors> <certificates src="system" /> </trust-anchors> </base-config> 解决方案: 为了解决Android7.0及以上手机https无法抓包,http无法传输的问题,需要自定义网络安全配置:
在res/raw目录下,添加charles的证书文件charles.pem新增文件 res/xml/network_security_config.xml 文件,将cleartextTrafficPermitted设置成true,并增加trust-anchors标签引用添加进来的charles的证书 cleartextTrafficPermitted="true" //允许在高版本上开启Http的明文传
<?xml version="1.0" encoding="utf-8"?> <network-security-config> <base-config cleartextTrafficPermitted="
Python自动化办公 Python自动化办公的优势和应用场景Python自动化办公简单实战案例学习Python自动化办公的必备技能Python自动化办公实用图书推荐 专栏:《python从入门到实战》
Python自动化办公的优势和应用场景 在数字化时代,高效率的办公方式是企业和个人追求的目标。而Python作为一种简洁、灵活且强大的编程语言,被广泛应用于自动化办公领域。本文将介绍Python自动化办公的概念、优势以及常见应用场景,并通过几个简单的代码示例进行演示。
Python自动化办公是提高办公效率的有力工具。通过编写脚本和程序,可以自动完成重复、繁琐的办公任务,从而释放人力资源,提高工作效率。未来,随着人工智能和自动化技术的不断发展,Python自动化办公将在更多领域发挥重要作用。因此,学习和掌握Python自动化办公技术,将成为现代办公环境中的必备技能。
什么是Python自动化办公?
Python自动化办公是指利用Python编写脚本和程序,实现在办公环境中自动执行任务的过程。通过编写代码,可以自动完成重复、繁琐的办公任务,从而减轻人力负担,提高工作效率。Python自动化办公可以应用于各种办公软件、工具和平台,如Microsoft Office套件、邮件客户端、数据处理软件等。
Python自动化办公有哪些优势?
简洁易学:Python语法简洁明了,易于学习和上手。即使没有编程经验的人员也可以迅速掌握Python的基本知识,并开始编写自动化脚本。强大的库和模块:Python拥有丰富的第三方库和模块,如Openpyxl、Pandas、Requests等,可以帮助我们处理Excel表格、进行数据分析、发送HTTP请求等各种办公任务。跨平台支持:Python是跨平台的编程语言,可以在不同的操作系统上运行。无论是Windows、Mac还是Linux,都可以使用Python进行自动化办公。大型社区支持:Python拥有庞大的开发者社区,有众多的教程、文档和示例代码可供参考。如果在编写自动化脚本时遇到问题,很容易在社区中找到帮助和解决方案。 Python自动化办公有哪些应用场景?
数据处理与分析:Python可以通过Pandas库来读取、处理和分析各种数据文件,如CSV、Excel等。通过编写脚本,可以自动完成数据清洗、转换、统计等任务,提高数据处理效率。文件操作与管理:Python可以通过操作系统模块来实现文件的自动复制、移动、重命名等操作。同时,可以利用第三方库对文件进行批量处理,如压缩、解压缩等,简化日常的文件管理工作。自动化报告生成:Python可以通过生成PDF、Word、HTML等格式的文档,自动生成报告和文档。可以将数据从数据库或其他来源提取出来,结合模板和样式,生成具有一定格式和布局的报告。邮件自动化:Python可以通过SMTP库来实现邮件的自动发送和接收。可以编写脚本自动发送定时邮件、邮件批量处理等,提高邮件处理的效率。网络爬虫:Python拥有强大的网络爬虫库,如BeautifulSoup、Scrapy等,可以自动从网页中提取数据,并进行进一步的处理和分析。这在市场调研、竞争分析等工作中非常有用。 Python自动化办公简单实战案例 1.数据处理与分析
通过Python可以轻松处理各种格式的数据,如Excel、CSV等,实现数据清洗、整理和分析。可以使用pandas库来读取和处理数据,使用matplotlib或seaborn库进行数据可视化,大大提高了数据处理的效率。
示例代码:
python import pandas as pd # 读取Excel数据 data = pd.read_excel('data.xlsx') # 数据清洗和整理 cleaned_data = data.dropna() sorted_data = cleaned_data.sort_values('date') # 数据分析 total_sales = sorted_data['sales'].sum() average_sales = sorted_data['sales'].mean() # 数据可视化 sorted_data.plot(x='date', y='sales', kind='line') 2.文件管理
在办公中,我们经常需要处理大量的文件,包括文件的复制、移动、重命名等操作。Python的shutil库提供了丰富的文件管理功能,可以帮助我们轻松完成这些操作。
示例代码:
python import os import shutil # 复制文件 shutil.copy('source\_file.txt', 'destination\_folder') # 移动文件 shutil.move('source\_file.txt', 'destination\_folder') # 重命名文件 os.rename('old\_file.txt', 'new\_file.txt') 3.邮件发送
登录谷歌云后台:谷歌后台地址配置OAuth 2.0 客户端 ID,初始化谷歌登录客户端ID用这里的web客户端ID,同时需要配置Android的客户端ID(对应包名与SHA-1证书)在build.gradle中添加 google(),同时在dependencies依赖添加 implementation 'com.google.android.gms:play-services-auth:20.2.0' 初始化谷歌登录,把第二步拷贝的客户端ID配置 // 初始化谷歌登录 private void initGoogleSignInClient() { GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN) .requestIdToken("你的客户端ID") .requestEmail() .build(); // Build a GoogleSignInClient with the options specified by gso. mGoogleSignInClient = GoogleSignIn.getClient(this, gso); } cocos调用谷歌登录 /** * google登录 */ public static void login() { Log.d(TAG, "==>login"); // 使用GoogleSignIn.getLastSignedInAccount方法为当前登录的用户请求个人资料信息。 GoogleSignInAccount account = GoogleSignIn.getLastSignedInAccount(getActivity().getApplicationContext()); // 不存在则请求登录 if (account == null) { Intent signInIntent = mGoogleSignInClient.getSignInIntent(); getActivity().startActivityForResult(signInIntent, RC_SIGN_IN); } else { Log.
目录
前言
一、Chroma是什么?
二、使用步骤
1.安装
2.连接Chroma
内存模式
client模式
Server模式
3.创建数据集
4.写入数据
5.查询数据
6.完整代码
7.更多参考
三、瞅瞅chroma之sqlite
总结
前言 大模型很强大,但是大模型也存在知识的局限性,即大模型的知识受限于大模型训练日期,大模型的知识是有截止日期的,不是实时的;再一个有些数据是私有的,大模型也无从知晓。
那么RAG就有了用武之地。而Rag这块就不得不提到向量数据库。
虽然传统数据库也可以进行数据查询检索,但是传统数据库是基于关键词,是没有语义理解的。而向量数据库可以进行语义理解,本质上其实是将语言文字做了向量化,即语义空间,语义相近的向量信息也接近。
向量数据库目前也有很多产品,入门简单的首推Chroma,今天就介绍下
一、Chroma是什么? ChromaDB(也称为Chroma)是一个开源的向量数据库,主要用于AI和机器学习场景。它的主要功能是存储和查询向量数据,这些数据通常是通过嵌入(embedding)算法从文本、图像等数据转换而来的。ChromaDB的设计目标是简化大模型应用的构建过程,允许开发者轻松地将知识、事实和技能等文档整合进大型语言模型(LLM)中。
ChromaDB的特点包括:
轻量级: 它是一个基于向量检索库实现的轻量级向量数据库。易用性: 提供简单的API,易于集成和使用。功能丰富: 支持存储嵌入及其元数据、嵌入文档和查询、搜索嵌入等功能。集成: 可以直接插入LangChain、LlamaIndex、OpenAI等。多语言支持: 包括Python和JavaScript客户端SDK。开源: 采用Apache 2.0开源许可。 ChromaDB的一些限制包括目前只支持CPU计算,不支持GPU加速,且功能相对简单。不过,它计划未来推出托管产品,提供无服务器存储和检索功能,支持向上和向下扩展,让开发者更易于使用。
二、使用步骤 1.安装 ChromaDB的安装简单,可以通过pip或npm进行安装。在Python中,可以通过运行pip install chromadb来安装ChromaDB。
2.连接Chroma 内存模式 数据存在内存,程序运行完数据也就没了
import chromadb from chromadb.config import Settings chroma_client = chromadb.Client(Settings(allow_reset=True)) # 为了演示,实际不需要每次 reset() # chroma_client.reset() client模式 直接连接本地数据库文件,类似sqlite(看了下,Chroma底层存储就是基于sqlite,后面可以简单说下)
import chromadb # chroma_client = chromadb.Client() chroma_client = chromadb.PersistentClient(path="E:\Data\chroma\mydb.db") Server模式 cmd
chroma run --path E:\Data\chroma\test 这个时候会以命令中指定的路径,创建数据库文件,并启动Chroma服务
一、系统前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统,支持OpenAI-GPT全模型+国内AI全模型。本期针对源码系统整体测试下来非常完美,那么如何搭建部署AI创作ChatGPT?小编这里写一个详细图文教程吧。已支持GPTs、GPT语音对话、GPT-4模型、GPT联网提问、DALL-E3文生图、图片对话能力上传图片,GPT4-All联网搜索模型、文档分析、Midjourney绘画动态全功能、AI换脸、垫图混图、插件功能、支持最近火爆的Suno-v3-AI音乐生成大模型。
《SparkAI系统介绍文档 - 渐进式AIGC系统》:
SparkAI系统介绍文档 - 渐进式AIGC系统
1.1 系统架构技术栈 前端: Vite + vue3 + ts + NaiveUI + Tailwindcss
管理端:Vite4 + Vue3 + Element-Plus
服务端(后端):Nodejs + NestJs
数据支持: Mysql5.7(+) + Redis
运行环境:Linux、Windows、MacOs(推荐使用Linux)
数据存储:本地存储 | 阿里云oss | 腾讯云cos | chevereto图床
1.2 特色功能 ①GPT语音对话功能 支持电脑PC浏览器和手机端使用,具有”人的语气“
②GPTs应用
③GPT4-All联网搜索模型
④文档分析
⑤Suno-v3-AI音乐生成 ⑥Midjourney局部编辑重绘
1.3 程序核心功能 已支持 OpenAI GPT全模型 + 国内AI全模型 + 绘画系统 +GPTs+ MJ局部编辑重绘功能+语音对话功能 + 文档分析功能 + Midjourney绘画动态全功能+插件功能!
在这段时间前端网页开发中,遇到点击按钮,实现复制文本到剪切板中的需求,记录一下实现过程和遇到的坑:
首先介绍一下常用的2种复制方法:
1. 使用 document.execCommand() 方法:
function copyToClipboard(text) { const textArea = document.createElement('textArea') textArea.value = val //添加到dom节点中 textArea.style.width = 0 textArea.style.position = 'fixed' textArea.style.left = '-999px' textArea.style.top = '10px' textArea.setAttribute('readonly', 'readonly') document.body.appendChild(textArea) textArea.select() document.execCommand('copy') // 移除元素 document.body.removeChild(textArea) } copyToClipboard("复制的内容") 该方法相对来说比较老,特别是 execCommand 已经弃用了,所以尽可能使用其他方法。
2. 使用 navigator.clipboard 方法:
function copyToClipboard(text) { navigator.clipboard .writeText(text) .then(() => { console.log("复制成功") }) .catch((err) => { console.log("复制失败,请重试"); }); } copyToClipboard("复制的内容") 该方法在 ios浏览器和微信浏览器 中复制无效,判断navigator.clipboard是存在的,但就是writeText时出错,显示拒绝,所以在chrome上运行的网页可以考虑使用该方法。
为什么在IOS和微信中会复制失败呢?
测试发现navigator.clipboard是存在的,但就是writeText时出错,显示拒绝
经查找,gpt给出的可能失败的原因有:
AI代码助手(AI Coding Assistant)是一种利用人工智能帮助开发人员更快、更准确地编写代码的软件工具。 它可以通过根据提示生成代码或在你实时编写代码时建议自动完成代码来实现此目的。 以下是AI代码助手可以做的一些事情: 与你使用的流行代码编辑器集成,例如 IntelliJ IDEA、Goland、Visual Studio Code等等根据提示或代码注释生成完整的代码片段自动完成实时编写的代码行检测代码中的错误、错误和安全漏洞帮助注释代码,以便方便回头参考代码纠错API查询或学习 作为一名技术沉浸者,对于这种能够帮助提升开发效率的助手,是喜闻乐见的。
在实际的开发实践工作中,比较了很多的AI编程助手,几乎都体验过了。
以下是曾体验过的列表:
助手名称助手官网地址通义灵码通义灵码_智能编码助手_AI编程-阿里云Github Copilothttps://github.com/features/copilotCodeGeeXhttps://codegeex.cn/zh-CNCursorhttps://www.cursor.so/KiteKite is saying farewell - Code Faster with KiteTabNineTabnine is an AI assistant that speeds up delivery and keeps your code safeCodeRushhttps://github.com/encap/coderushAlibaba Cloud AI Coding Assistant阿里云智能编码插件 - 灵动指尖 快码加鞭codeiumCodeium · Free AI Code Completion & ChatreplitReplitcodepalCode Generator - CodePalcodesquireCodeSquire - AI code writing assistantcodecatAI Code Explainer - CodeCat.AIaixcoderhttps://aixcoder.comcodigaCodiga: Static Code Analysis in Real-TimeCodeWhispererhttps://aws.amazon.com/cn/codewhisperer/Bito AIBito AI - Become a 10X Dev with Bito - Bito 对于IDE的支持上,所有的AI助手,目前都能够做到基本流行的工具流畅支持,在开发语言的适配上,大家也能够大同小异。
SQL Server介绍 SQL Server是由Microsoft开发和推广的关系数据库管理系统(DBMS),它最初是由Microsoft、Sybase和Ashton-Tate三家公司共同开发的,并于1988年推出了第一个OS/2版本。Microsoft SQL Server近年来不断更新版本,1996年,Microsoft 推出了SQL Server 6.5版本;1998年,SQL Server 7.0版本和用户见面;SQL Server 2000是Microsoft公司于2000年推出,目前最新版本是2017年份推出的SQL SERVER 2017。
一、身份验证配置 在sqlserver服务端电脑打开SqlServer Managerment Studio管理工具,首先通过Windows身份验证登录sqlserver
登录成功之后,右键打开属性,在安全性选项卡勾选sql server和windows身份认证模式,在连接选项卡勾选允许远程连接到此服务器,如下图:
然后点击安全性-登录名,右击sa点击属性,设置sa账户密码,在状态选项卡中选择授予和启用
二、sqlserver开启1433端口
右击计算机,打开管理,如图:
找到服务和应用程序,然后配置sqlserver网络协议,启用TCP/IP,右击属性,如图:
将IP1的TCP端口设置为1433,并启用,如图
将IPALL的TCP端口也设置为1433,如图
注意
如果sqlserver在阿里云服务器上,还得配置下安全组规则,开放1433端口
三、远程登录
输入远程服务ip地址或者域名:1433/实例名
这里可以省略端口和实例名,如图:
自我介绍一下,小编13年上海交大毕业,曾经在小公司待过,也去过华为、OPPO等大厂,18年进入阿里一直到现在。
深知大多数软件测试工程师,想要提升技能,往往是自己摸索成长或者是报班学习,但对于培训机构动则几千的学费,着实压力不小。自己不成体系的自学效果低效又漫长,而且极易碰到天花板技术停滞不前!
因此收集整理了一份《2024年软件测试全套学习资料》,初衷也很简单,就是希望能够帮助到想自学提升又不知道该从何学起的朋友,同时减轻大家的负担。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,基本涵盖了95%以上软件测试开发知识点,真正体系化!
由于文件比较大,这里只是将部分目录大纲截图出来,每个节点里面都包含大厂面经、学习笔记、源码讲义、实战项目、讲解视频,并且后续会持续更新
如果你觉得这些内容对你有帮助,可以添加V获取:vip1024b (备注软件测试)
一个人可以走的很快,但一群人才能走的更远。不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
,都欢迎扫码加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**
一、实验目的 (1)通过实验掌握Spark SQL的基本编程方法;
(2)熟悉RDD到DataFrame的转化方法;
(3)熟悉利用Spark SQL管理来自不同数据源的数据。
二、实验平台 操作系统:Ubuntu20.04
Spark版本:3.4.0
Python版本:3.8.3
数据库:MySQL
三、实验内容和过程 1.Spark SQL基本操作
将下列JSON格式数据复制到Ubuntu系统中,并保存命名为employee.json。
{ "id":1 , "name":" Ella" , "age":36 }
{ "id":2, "name":"Bob","age":29 }
{ "id":3 , "name":"Jack","age":29 }
{ "id":4 , "name":"Jim","age":28 }
{ "id":4 , "name":"Jim","age":28 }
{ "id":5 , "name":"Damon" }
{ "id":5 , "name":"Damon" }
为employee.json创建DataFrame,并写出Python语句完成下列操作:
查询所有数据;查询所有数据,并去除重复的数据;查询所有数据,打印时去除id字段;筛选出age>30的记录;将数据按age分组;将数据按name升序排列;取出前3行数据;查询所有记录的name列,并为其取别名为username;查询年龄age的平均值;查询年龄age的最小值。 实验步骤:
首先在目录/usr/local/spark/mycode/sparksql下,用命令“gedit employee.json”创建文件,并把数据复制进去。然后调用 Builder 对象的 getOrCreate() 方法,创建一个 SparkSession 实例,最后创建DataFrame。
>>> from pyspark.sql import SparkSession
>>> spark = SparkSession.
家庭记账本小程序目录
基于SSM的家庭记账本小程序设计与实现
一、前言
二、系统设计
三、系统功能设计 1、小程序端:
2、后台
四、数据库设计
五、核心代码 六、论文参考
七、最新计算机毕设选题推荐
八、源码获取:
博主介绍:✌️大厂码农|毕设布道师,阿里云开发社区乘风者计划专家博主,CSDN平台Java领域优质创作者,专注于大学生项目实战开发、讲解和毕业答疑辅导。✌️
主要项目:小程序、SpringBoot、SSM、Vue、Html、Jsp、Nodejs等设计与开发。
🍅文末获取源码联系🍅
基于SSM的家庭记账本小程序设计与实现 一、前言 家庭记账本小程序的设计主要是对系统所要实现的功能进行详细考虑,确定所要实现的功能后进行界面的设计,在这中间还要考虑如何可以更好的将功能及页面进行很好的结合,方便用户可以很容易明了的找到自己所需要的信息,还有系统平台后期的可操作性,通过对信息内容的详细了解进行技术的开发。
家庭记账本小程序的开发利用现有的成熟技术参考,以源代码为模板,分析功能调整与家庭记账本小程序管理的实际需求相结合,讨论了基于家庭记账本小程序管理的使用。 关键词:家庭记账本小程序;JAVA
二、系统设计 家庭记账本小程序的系统项目的概述设计分析,主要内容有学习平台的具体分析,进行数据库的是设计,数据采用mysql数据库,并且对于系统的设计采用比较人性化的操作设计,对于系统出现的错误信息可以及时做出处理及反馈。
基于家庭记账本小程序的设计基于现有的安卓手机上运行,可以实现管理员服务端;首页、个人中心、用户管理,消费详情管理、收入详情管理、系统管理等功能。方便用户客户端;首页、消费详情、收入详情、我的等详细的了解及统计分析。根据系统功能需求建立的模块关系图如下图:
三、系统功能设计 1、小程序端: 用户通过登录进入到系统操作界面后,可以根据需求对首页、消费详情、收入详情、我的等模块进行管理维护操作。
如图5-1所示。
图5-1用户注册界面图
用户登录通过账号、密码行页面,进入到家庭记账本小程序主界面,进入到操作界面,进行相对应操作,如图5-2所示。
图5-2用户登录界面图
用户在首页页面可以填写首页、消费详情、收入详情、我的等信息,进行提交操作,如图5-3所示。
图5-3首页界面图
用户进入新闻资讯页面可以填写标题、内容等信息,进行查看操作,如图5-4所示。
图5-4新闻资讯界面图
用户进入消费详情页面可以填写标题、食物消费、购物消费、交通消费、学习消费、其他消费、总消费、用户账号、角色、登记时间、封面等信息,进行提交操作,如图5-5-所示。
图5-5消费详情界面图
用户进入收入详情页面可以填写标题、工资收入、奖金收入、其他、总收入、用户账号、角色、登记时间、封面等信息,进行提交操作,如图5-6-所示。
图5-6收入详情界面图
用户进入我的页面可以填写消费详情、收入详情等信息,进行提交操作,如图5-7-所示。
图5-7我的界面图
2、后台 管理员通过家庭记账本小程序进行确认,管理员进入到家庭记账本小程序主界面,管理员进入到操作界面,通过登录窗口进行在线填写自己的用户名和密码、角色进行登录,登录成功后进入到系统操作界面进行相应信息的获取,如图5-8所示。
图5-8管理员登录主界面图
管理员进入到界面,通过界面的任务大厅,登录成功后进入到系统可以进行查看首页、个人中心、用户管理,消费详情管理、收入详情管理、系统管理等功能模块,进行相对应操作,如图5-9所示。
图5-9管理员功能界面图
管理员点击个人信息进入页面可以填写用户名等信息,进行详情、修改、删除操作,如图5-10示。
图5-10个人信息界面图
管理员进入用户管理界面,通过界面的任务大厅,登录成功后进入到系统可以进行查看用户账号、密码、性别、年龄、联系电话、电子邮箱等信息,进行相对应操作,如图5-11所示。
图5-12用户管理界面图
管理员进入到消费详情管理界面,通过界面的任务大厅,登录成功后进入到系统可以查看标题、食物消费、购物消费、交通消费、学习消费、其他消费、总消费、用户账号、角色、登记时间、封面等信息,进行相对应操作,如图5-13所示。
图5-13消费详情管理界面图
管理员进入到收入详情管理界面,通过界面的任务大厅,登录成功后进入到系统可以查看标题、工资收入、奖金收入、其他、总收入、用户账号、角色、登记时间、封面等信息,进行相对应操作,如图5-14所示。
图5-14收入详情管理界面图
轮播图;该页面为轮播图管理界面。管理员可以在此页面进行首页轮播图的管理,通过新建操作可在轮播图中加入新的图片,还可以对以上传的图片进行修改操作,以及图片的删除操作,如图5-15所示。
图5-15轮播图管理界面图
管理员进入系统公告界面,通过界面的任务大厅,登录成功后进入到系统可以查看标题、图片等信息,进行相对应操作,如图5-16所示。
图5-16系统公告界面图
四、数据库设计 (1) 用户管理属性图如下所示:
(2) 收入管理实体性图如下所示:
数据库表的设计,如下表:
表4-1:token表
字段名称
类型
长度
字段说明
主键
作者:STANCH
1.概述 WebGL 1.0自推出以来,已成为广泛支持的Web标准,既能跨平台,还免版税。它通过插件为Web浏览器带来高质量的3D图形,这是迄今为止市场上使用最广泛的Web图形,并得到Apple,Google,Microsoft以及Mozilla等所有主流浏览器供应商的普遍支持。
随着OpenGL ES版本由2.0发展到3.0,WebGL的版本也由原先的WebGL 1.0升级为WebGL 2.0。WebGL 2.0是一种3D绘图标准,这种绘图技术标准允许把JavaScript和OpenGL ES 3.0结合在一起。通过增加OpenGL ES 3.0的一个JavaScript绑定,WebGL 2.0可以为HTML5 Canvas提供硬件3D加速渲染,这样Web开发人员就可以借助系统显卡在浏览器里更流畅地展示3D场景和模型,还能创建复杂的导航和数据视觉化。
作为HTML5官方的Web3D解决方案,WebGL受到无数开发人员的追捧。由于其以网页形式进行展示,所以可以不受平台的限制,这也省去了在各种平台上移植的步骤。随着微信平台兼容性的快速发展,进一步降低WebGL的推广成本。微信平台中,只需要单击项目所在链接即可运行,操作步骤十分简便,同时保证了项目代码不被泄露。
2.WebGL介绍 (1)WebGL 是什么?
WebGL是基于嵌入式系统开放图形库(OpenGL ES)的图形JavaScript API,是一项用来在网页上绘制和渲染三维图形以及允许用户与之进行交互的技术。之所以基于OpenGL ES,是因为它是计算机图形学的著名开放标准,更重要的是,它被设计为在嵌入式设备(例如手机和平板电脑)上具有优越的性能。
(2)WebGL 的发展
在2009年初,非营利技术联盟Khronos Group启动了WebGL的工作组,2011年3月发布WebGL 1.0规范。WebGL 2.0规范的发展始于2013年,并于2017年1月完成,该规范基于OpenGL ES 3.0。
WebGL 发展历史,来源:WebGL1 到WebGL2 - 掘金
(3)WebGL 是如何工作的?
WebGL 程序包含用 OpenGL 着色语言 (GLSL)、JavaScript 和 HTML5 编写的代码。 GLSL 用于编写着色器以及在图形硬件上执行的特殊程序,这些程序在渲染对象或场景期间计算顶点、纹理、颜色、光照等属性。 GLSL 为开发人员提供了对图形管道的重要控制。 JavaScript 和 HTML 主要用作绑定语言并提供呈现上下文。
WebGL 程序通常是通过图形处理单元 (GPU) 经过渲染管线的处理在画布 HTML 元素上进行多次绘制来生成的。
(4)浏览器对WebGL的支持
WebGL在桌面和移动设备上的所有主流浏览器中得到广泛支持,包括 Apple (Safari)、Google (Chrome)、Microsoft (Edge)、Opera (Opera Web 浏览器) 和 Mozilla (Firefox)。然而,由于WebGL是在显卡上运行的,其可用性还需要具有OpenGL功能支持的硬件。我们可以通过这个网站:WebGL Report 查看当前浏览器对WebGL1.
1 circle 元素的基本属性和用法 SVG 的 <circle> 元素用于在SVG文档中绘制圆形。它具有几个基本属性,允许定义圆形的大小、位置、填充颜色和边框样式。以下是 <circle> 元素的基本属性及其详细解释:
1.1 cx 和 cy 描述:这两个属性定义了圆形的中心点。cx 是圆形中心的 x 坐标,cy 是圆形中心的 y 坐标。示例: <svg width="100" height="100"> <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" /> </svg> 在这个例子中,圆形的中心位于(50, 50)的位置。
1.2 r 描述:r 属性定义了圆形的半径。示例: <svg width="100" height="100"> <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" /> </svg> 在这个例子中,圆形的半径为 40。
1.3 fill 描述:fill 属性定义了圆形的填充颜色。示例: <svg width="100" height="100"> <circle cx="50" cy="50" r="40" stroke="black" stroke-width="3" fill="red" /> </svg> 在这个例子中,圆形的填充颜色为红色。
1、Kafka 介绍 在使用 Kafka 之前,通常需要先安装和配置 ZooKeeper。ZooKeeper 是 Kafka 的依赖项之一,它用于协调和管理 Kafka 集群的状态。
ZooKeeper 是一个开源的分布式协调服务,它提供了可靠的数据存储和协调机制,用于协调分布式系统中的各个节点。Kafka 使用 ZooKeeper 来存储和管理集群的元数据、配置信息和状态。
2、Kafka 环境搭建 环境:
Windows11Java 1.8 及以上AnacondaPython10Kafka 2.0.2 (kafka-python) 2.1、安装 Python 版本 Kafka pip install kafka-python -i https://pypi.tuna.tsinghua.edu.cn/simple 至此,Windows 环境下还不能运行 Kafka,一般情况下,程序会提示超时(60ms)等报错。原因是,还需要启动 Kafka 服务。
2.2、启动 Kafka 服务 从 Kafka 官网下下载对应的文件:Apache Kafka 官网下载地址
下载红色箭头所指向的文件到本地并解压。
注意:
从 Kafka 官网上下载的 kafka_2.12-3.2.1 文件需要放置在路径较浅文件夹下解压,一旦放置的路径较深,会报错:
输入行太长。 命令语法不正确。 本案例放在 E 盘下。
2.2.1、启动 Zookeeper 服务 在上图路径下打开 cmd 命令窗口,执行如下命令:
.\bin\windows\zookeeper-server-start.bat .\config\zookeeper.properties 出现如下信息,表示 Zookeeper 服务启动成功:
问题描述
近期在工作过程中,业务涉及各种导入导出,且包含单选、多选问题,针对于easyExcel的一些枚举转换数据,有了一点其他想法,按照官方文档中:读Excel | Easy Excel (alibaba.com),提供了自定义转换器的实现接口,但是我在网上搜索发现都比较单一,也就是一个枚举类需要写一个单独的转换器,这样的话会增加无意义工作量,所以想到了通过自定义注解+重新easyExcel转换器实现通用的easyExcle转换器。
话不多说,直接上代码:
1.重写EasyExcel转换器接口,对excel读和写方法都进行自定义
package com.example.test.excel; import com.alibaba.excel.converters.Converter; import com.alibaba.excel.enums.CellDataTypeEnum; import com.alibaba.excel.metadata.GlobalConfiguration; import com.alibaba.excel.metadata.data.ReadCellData; import com.alibaba.excel.metadata.data.WriteCellData; import com.alibaba.excel.metadata.property.ExcelContentProperty; import org.springframework.util.StringUtils; import java.lang.reflect.Field; import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; /** * excel导入导出针对枚举类型的转换器 * * @Author 996 * @Date 2024/3/13 */ public class EasyExcelConvert implements Converter<Object> { /** * 枚举列表 */ private Map<String, String> enumMap = new HashMap<>(); /** * excel转化后的类型 * * @return */ @Override public Class<?
本篇Codelab主要介绍如何使用DevEco Studio创建一个Native C++应用。应用采用Native C++模板,实现使用NAPI调用C标准库的功能。使用C标准库hypot接口计算两个给定数平方和的平方根。在输入框中输入两个数字,点击计算结果按钮显示计算后的数值。
相关概念 Native API:NAPI提供的接口名与三方Node.js一致,目前支持部分接口。Native API中支持的标准库:目前支持标准C库、C++库、OpenSL ES、zlib。 环境搭建 软件要求 DevEco Studio版本:DevEco Studio 3.1 Release。OpenHarmony SDK版本:API version 9。 硬件要求 开发板类型:润和RK3568开发板。OpenHarmony系统:3.2 Release。 环境搭建 完成本篇Codelab我们首先要完成开发环境的搭建,本示例以RK3568开发板为例,参照以下步骤进行:
获取OpenHarmony系统版本:标准系统解决方案(二进制)。以3.2 Release版本为例:
搭建烧录环境。
完成DevEco Device Tool的安装完成RK3568开发板的烧录 搭建开发环境。
开始前请参考工具准备,完成DevEco Studio的安装和开发环境配置。开发环境配置完成后,请参考使用工程向导创建工程(模板选择“Empty Ability”)。工程创建完成后,选择使用真机进行调测。 代码结构解读 本篇Codelab只对核心代码进行讲解,对于完整代码,我们会在gitee中提供。
使用Native C++模板创建项目会自动生成cpp文件夹、types文件夹、CMakeList.txt文件,开发者可以根据实际情况自行添加修改其他文件及文件夹。
├──entry/src/main │ ├──common │ │ └──CommonContants.ets // 常量定义文件 │ ├──cpp // C++代码区 │ │ ├──CMakeLists.txt // CMake编译配置文件 │ │ ├──hello.cpp // C++源代码 │ │ └──types // 接口存放文件夹 │ │ └──libhello │ │ ├──index.
第一个数据集:正常基线数据
Motor Load (HP) 的中文意思是电机负载(马力)。它表示施加在电动机上的功率或负载,通常以马力(HP)为单位进行衡量。它代表电机所执行的工作量或所生成的功率。在0、1、2和3马力的电机负载工况工作条件下记录振动加速度信号数据。
Motor Speed (rpm):近似电机转速(rpm)
在不同负载和转速下一共有四组正常的数据,数据文件为Matlab格式。用Python读取第一个数据集结果如下:
data = loadmat('97_0.mat') data {'__header__': b'MATLAB 5.0 MAT-file, Platform: PCWIN, Created on: Mon Jan 31 15:28:20 2000', '__version__': '1.0', '__globals__': [], 'X097_DE_time': array([[ 0.05319692], [ 0.08866154], [ 0.09971815], ..., [-0.03463015], [ 0.01668923], [ 0.04693846]]), 'X097_FE_time': array([[0.14566727], [0.09779636], [0.05485636], ..., [0.14053091], [0.09553636], [0.09019455]]), 'X097RPM': array([[1796]], dtype=uint16)} 数据为字典格式,包括了创建版本信息、驱动端、风扇端、
RPM转速信息等
第二个数据集:12k 驱动端轴承故障数据
采样频率为12 kHz,数据收集在12,000次/秒。
故障直径(Fault Diameter):指轴承或其他机械部件上出现的故障或损伤的直径尺寸。故障直径通常用来描述故障的大小和程度,对于故障诊断和预测维护非常重要。单位为英寸,1英寸=25.4mm
0.007英寸=7 mils =0.177 8 mm0.014英寸=14 mils =0.355 6 mm0.
一、准备 系统:MacOS 14.3.1
ElasticSearch:8.13.2
Kibana:8.13.2
BGE是一个常见的文本转向量的模型,在很多大模型RAG应用中常常能见到,但是ElasticSearch中默认没有。BGE模型有很多版本,本次采用的是bge-large-zh-v1.5。下载地址:
HuggingFace:https://huggingface.co/BAAI/bge-large-zh-v1.5
Modelscope:魔搭社区
将bge-large-zh-v1.5导入ElasticSearch详见:Eland上传bge-large-zh-v1.5向量化模型到ElasticSearch中-CSDN博客
二、向量化简单测试 启动ES和Kibana
在Kibana的【机器学习】->【已训练模型】找到模型bge-large-zh-v1.5:
打开【开发工具】,简单测试:
POST _ml/trained_models/bge-large-zh-v1.5/_infer { "docs": [ { "text_field": "我的第一个向量化模型" } ] } 结果:
拉到最下面,显示向量的维数是1024,符合预期。
三、向量索引构建 我们直接基于ElasticSearch以及bge-large-zh-v1.5模型即时生成向量,因此核心主要分三步:
1. 创建原始文本索引
2. 创建原始文本索引对应的向量索引
3. 创建向量化的Pipeline并应用
创建原始文本索引 首先创建一个用于示例的原始文本类型索引article:
PUT /article { "mappings": { "properties": { "title": { "type": "text" }, "brief": { "type": "text" }, "author": { "type": "keyword" }, "content": { "type": "text" }, "readNumber": { "type": "integer" } } } } 写入3条测试数据
今天想分享一下 Qwen 1.5 官方用例的二次封装( huggingface 说明页也有提供源码),其实没有太多的技术含量。主要是想记录一下如何从零开始在不使用第三方工具的前提下,以纯代码的方式本地部署一套大模型,相信这对于技术人员来说还是非常有用的。
虽然现在人人都可以用像 ollama 这种工具一键部署本地大模型,但想通过这种方式将大模型深度接入现有系统可就有点麻烦。 因此我觉得还是有必要各位分享一下这种纯代码的模式,希望能够帮助到更多的人。
1. 模型下载 通过之前的文章可以知道,现在国内可以通过 https://hf-mirror.com/ 下载 huggingface 大模型。在配置好环境变量后,可以通过以下命令下载 Qwen:
yuanzhenhui@MacBook-Pro ~ % cd /Users/yuanzhenhui/Documents/code_space/git/processing/python/tcm_assistant/transformer/model/qwen yuanzhenhui@MacBook-Pro qwen % huggingface-cli download --resume-download Qwen/Qwen1.5-7B-Chat --local-dir . Consider using `hf_transfer` for faster downloads. This solution comes with some limitations. See https://huggingface.co/docs/huggingface_hub/hf_transfer for more details. Fetching 14 files: 7%|█▊ | 1/14 [00:00<00:06, 1.87it/s]downloading https://hf-mirror.com/Qwen/Qwen1.5-7B-Chat/resolve/294483ad23713036574b30587b186713373f4271/README.md to /Users/yuanzhenhui/.cache/huggingface/hub/models--Qwen--Qwen1.5-7B-Chat/blobs/0963c198257a0607c4d2def66a84aec172240afd.incomplete README.md: 4.26kB [00:00, 6.40MB/s] Fetching 14 files: 100%|████████████████████████| 14/14 [00:01<00:00, 12.
主业写代码,副业做 AI
大家好,我是程序员晓晓
采样器详解及对比 在图像生成领域,采样器是一种关键的算法组件,用于从模型学习到的概率分布中生成图像。简单来说,采样器的作用是根据模型的预测,决定如何步步细化最终图像的每一个像素,从而确保生成的图像既符合用户的输入指令,又保持了视觉上的连贯性和高质量。
采样器对图像的风格、清晰度以及细节的呈现有着直接的影响。选择不同的采样器,即便在相同的模型和输入条件下,也能产生风格迥异的图像。这是因为每种采样器都有其独特的算法逻辑,影响着图像生成的路径和细节的呈现方式。因此,了解和选择合适的采样器,对于实现特定的视觉效果,优化图像质量,有着至关重要的作用。
本文将介绍常用采样器(Sampling method)特点及区别,并借助 x/y/z 脚本对比不同采样器的出图效果。
SD WebUI 采样器 在 Stable Diffusion WebUI 界面的参数调整区域,可通过下拉菜单快速切换采样器:
采样器
采样器是图像生成过程中用于从模型的概率分布中选择像素值的算法,直接影响生成图像的质量和风格。
WebUI 中支持多种采样器,每种采样器都有其独特的算法和适用场景,影响图像的生成速度、质量和风格。以下是各采样器及其特点:
• DPM++ 2M Karras: 结合了 DPM++ 技术和 Karras 提出的改进,旨在提高图像生成的质量和效率,特别是在保持细节的同时加速生成过程。
• DPM++ SDE Karras: 应用了 Karras 的方法在随机微分方程(SDE)框架下的 DPM++ 采样器,专注于提高图像的质量和生成的一致性。
• DPM++ 2M SDE Exponential: 利用指数映射的方法在 SDE 框架下进行图像生成,旨在增强图像的清晰度和细节表现,适合对图像质量要求较高的场景。
• DPM++ 2M SDE Karras: 结合了 Karras 的改进和 SDE 框架,该采样器旨在提升图像生成的速度和质量,平衡了效率与输出的精细度。
• Euler a: 是 Euler 采样器的一个变种,通过调整算法参数来优化生成过程的稳定性和图像的细节保留,适合需要更精细控制生成结果的场景。
• Euler: 基于 Euler 数值方法的采样器,提供了一个稳健的框架来逼近图像生成的连续过程,适用于各种图像生成任务,特别是在需要稳定输出的情况下。
最近安装navicat(16.3.7)时,安装后无法保存密码,保存密码会报错如下:
因为用的破解版,一开始是打不开的,用自带的修复软件修复后就可以打开了,但是保存密码就会报错,按照网上的一些操作
1、卸载
2、执行命令
sudo rm -Rf /Applications/Navicat\ Premium.app sudo rm -Rf /private/var/db/BootCaches/CB6F12B3-2C14-461E-B5A7-A8621B7FF130/app.com.prect.NavicatPremium.playlist sudo rm -Rf ~/Library/Caches/com.apple.helpd/SDMHelpData/Other/English/HelpSDMIndexFile/com.prect.NavicatPremium.help sudo rm -Rf ~/Library/Caches/com.apple.helpd/SDMHelpData/Other/zh_CN/HelpSDMIndexFile/com.prect.NavicatPremium.help sudo rm -Rf ~/Library/Preferences/com.prect.NavicatPremium.plist sudo rm -Rf ~/Library/Application\ Support/CrashReporter/Navicat\ Premium_54EDA2E9-528D-5778-A528-BBF9A4CE8BDC.plist sudo rm -Rf ~/Library/Application\ Support/PremiumSoft\ CyberTech 3、重新安装
也是没有用的,因为我这边安装后必须得用自带的修复软件修复一下(shit),修复完就报错
最终解决方案是:把macos的sip关掉,然后卸载、重新安装
1、重新启动、启动时按住电源键不松直到出现类似正在进入恢复模式字样
2、选择设置、下一步、输入密码
3、左上角实用工具、终端
4、输入csrutil disable、y确认、输入用户名和密码、等一小会会提示成功
输入csrutil disable后可能会报错:
cstutil: The OS environment does not allow changing security configuration options.
Ensure that the system was booted into Recovery OS via the standard user action.