Spring Boot后端调用文心一言响应式问答

Spring Boot后端调用文心一言响应式问答 1.获取文心服务 要在我们的后端服务中接入文心一言,就要获取文心的服务,首先我们要进入百度智能云中注册一个账号: https://console.bce.baidu.com/qianfan/ais/console/applicationConsole/application 然后点击应用接入,再创建一个应用: 这里的API Key和Sercet Key都是比较重要的,需要把他们保存下来,不过比较好的是,这里的Key都可以多次访问。 紧接着再点击左侧的在线服务选择其中一个开通,这里我使用ERNIE-3.5K: 2.配置相关信息 我们要携带API Key和Sercet Key访问获取获取access_token的接口,再携带access_token和提问访问文心服务器获取回答,大致流程如下: 所以我们要在application.yml配置类中配置一些信息: 这里要替换成自己的,第一步中开通的服务不同,access_token的接口也不同 gaomengsuanjia: wenxin: #client_id api-key: 3Q4deLxxxxxxxxxxHOUWmP #client_secret secret-key: mefNTexxxxxxxxxxxxxxxnnN097Tn #access_token接口 token-url: https://aip.baidubce.com/oauth/2.0/token #文心服务器接口 chat_url: https://aip.baidubce.com/rpc/2.0/ai_custom/v1/wenxinworkshop/chat/completions 再创建Properties配置类:WenXinProperties @Component @ConfigurationProperties(prefix = "gaomengsuanjia.wenxin") @Data public class WenXinProperties { private String apiKey; private String secretKey; private String tokenUrl; private String chatUrl; } 3.编写Http请求工具类 本次示例我们需要使用HttpClient向两个接口发送http请求,在我们的完整项目中,可能需要多次发送不同的http请求,因此编写一个工具类HttpClientUtil十分有必要: /** * Http工具类 */ public class HttpClientUtil { static final int TIMEOUT_MSEC = 20 * 1000; /** * 发送GET方式请求 * @param url * @param paramMap * @return */ public static String doGet(String url,Map<String,String> paramMap){ // 创建Httpclient对象 CloseableHttpClient httpClient = HttpClients.

Mac搭建Java环境【环境搭建】

Mac搭建Java环境【环境搭建】 1 安装Java SDK 官网地址:https://www.oracle.com/java/technologies/downloads/archive/ 下载dmg,双击之后无脑安装即可。 # 进入 JDK 安装目录 cd /Library/Java/JavaVirtualMachines # 查看文件 ls # 输入 cd ~ # 打开环境变量配置文件 vim .bash_profile # 复制如下内容,JAVA_HOME 替换为自己目录 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH:. export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:. # 配置文件立即生效 source .bash_profile # 查看 JAVA_HOME 目录 echo $JAVA_HOME # 查看 JDK 版本信息 java -version 2 安装Maven 官网地址:https://maven.apache.org/download.cgi 选择对应版本,下载bin.tar.gz # 修改环境变量 vim .bash_profile # 复制如下内容,MAVEN_HOME 替换为自己目录 export MAVEN_HOME=/Users/ziyi2/maven/apache-maven-3.9.0 export PATH=$MAVEN_HOME/bin:$PATH:. # 配置文件立即生效 source .bash_profile # 查看 MAVEN_HOME 目录 echo $MAVEN_HOME # 创建maven仓库目录 mkdir -p $MAVEN_HOME/maven_repository/ # 查看 maven 版本信息 mvn -v 配置maven阿里云镜像加速:

stable-diffusion-webui报OSError: Can‘t load tokenizer for ‘openai/clip-vit-large-patch14‘的正确解决方法

这个是个普遍问题,例如:Windows平台安装stable-diffusion-webui-1.7.0解决少工具包clip-vit-large-patch14 - 知乎 Stable Diffusion WebUI linux部署问题_oserror: can't load tokenizer for 'openai/clip-vit-CSDN博客 但是我发现很多朋友是改代码中的绝对路径的,这非常不科学,为啥要用硬编码绝对路径呢? 具体的报错信息如下: OSError: Can't load tokenizer for 'openai/clip-vit-large-patch14'. If you were trying to load it from 'https://huggingface.co/models', make sure you don't have a local directory with the same name. Otherwise, make sure 'openai/clip-vit-large-patch14' is the correct path to a directory containing all relevant files for a CLIPTokenizer tokenizer. Stable diffusion model failed to load 解决方法实际很简单,在 stable-diffusion-webui根目录下的stable-diffusion-webui文件夹下创建openai文件夹,然后在一些镜像repo,如:clip-vit-large-patch14: Mirror of https://huggingface.

Ubuntu22.04安装微信以及桌面美化MacOS主题

安装微信 # 第一步 wget http://archive.ubuntukylin.com/software/pool/partner/ukylin-wine_70.6.3.25_amd64.deb # 第二步 wget http://archive.ubuntukylin.com/software/pool/partner/ukylin-wechat_3.0.0_amd64.deb # 第三步 sudo apt-get install -f -y ./ukylin-wine_70.6.3.25_amd64.deb # 第四步 sudo apt-get install -f -y ./ukylin-wechat_3.0.0_amd64.deb 1 安装gnome美化插件 sudo apt-get install gnome-tweaks 2 配置Themes,Icons和Wallpaper 2.1 根据个人喜好安装主题和图标以及壁纸,我选择如下暗色主题 Themes icons MacOS壁纸请自行搜索,推荐如下: WhiteSur Wallpaper - pling.com https://github.com/vinceliuice/WhiteSur-wallpapers 2.2 在用户目录下创建.themes和.icons目录 2.3 将主题和图标解压到各自的目录中,输入gnome-tweaks进行设置 2.4 在gnome-tweaks中选择对应的主题,图标和壁纸 3 安装plank sudo apt-get install plank plank无法启动问题 解决办法: 将/etc/gdm3中的文件custom.conf取消WaylandEnable=false的注释后重启即可 4 设置Plank开机启动 4.1 方法一 打开gnome-tweaks在开机启动程序内添加Plank 4.2 方法二 # 文本编辑器打开 sudo vim ~/.

12款最常使用的网络爬虫工具推荐

网络爬虫在当今的许多领域得到广泛应用。它的作用是从任何网站获取特定的或更新的数据并存储下来。网络爬虫工具越来越为人所熟知,因为网络爬虫简化并自动化了整个爬取过程,使每个人都可以轻松访问网站数据资源。使用网络爬虫工具可以让人们免于重复打字或复制粘贴,我们可以很轻松的去采集网页上的数据。此外,这些网络爬虫工具可以使用户能够以有条不紊和快速的抓取网页,而无需编程并将数据转换为符合其需求的各种格式。 在这篇文章中,我将介绍目前比较流行的20款网络爬虫工具供你参考。希望你能找到最适合你需求的工具。 【最新Python全套从入门到精通学习资源,文末免费领取!】 1、八爪鱼 八爪鱼是一款免费且功能强大的网站爬虫,用于从网站上提取你需要的几乎所有类型的数据。你可以使用八爪鱼来采集市面上几乎所有的网站。八爪鱼提供两种采集模式 - 简易模式和自定义采集模式,非程序员可以快速习惯使用八爪鱼。下载免费软件后,其可视化界面允许你从网站上获取所有文本,因此你可以下载几乎所有网站内容并将其保存为结构化格式,如EXCEL,TXT,HTML或你的数据库。 你可以使用其内置的正则表达式工具从复杂的网站布局中提取许多棘手网站的数据,并使用XPath配置工具精确定位Web元素。另外八爪鱼提供自动识别验证码以及代理IP切换功能,可以有效的避免网站防采集。 总之,八爪鱼可以满足用户最基本或高级的采集需求,而无需任何编程技能。 2、HTTrack 作为免费的网站爬虫软件,HTTrack提供的功能非常适合从互联网下载整个网站到你的PC。它提供了适用于Windows,Linux,Sun Solaris和其他Unix系统的版本。它可以将一个站点或多个站点镜像在一起(使用共享链接)。你可以在“设置选项”下下载网页时决定要同时打开的连接数。你可以从整个目录中获取照片,文件,HTML代码,更新当前镜像的网站并恢复中断的下载。 此外,HTTTrack还提供代理支持,以通过可选身份验证最大限度地提高速度。 HTTrack用作命令行程序,或通过shell用于私有(捕获)或专业(在线Web镜像)使用。 有了这样的说法,HTTrack应该是首选,并且具有高级编程技能的人更多地使用它。 3、 Scraper Scraper是Chrome扩展程序,具有有限的数据提取功能,但它有助于进行在线研究并将数据导出到Google sheets。此工具适用于初学者以及可以使用OAuth轻松将数据复制到剪贴板或存储到电子表格的专家。Scraper是一个免费的网络爬虫工具,可以在你的浏览器中正常工作,并自动生成较小的XPath来定义要抓取的URL。 4、OutWit Hub Outwit Hub是一个Firefox添加件,它有两个目的:搜集信息和管理信息。它可以分别用在网站上不同的部分提供不同的窗口条。还提供用户一个快速进入信息的方法,虚拟移除网站上别的部分。 OutWit Hub提供单一界面,可根据需要抓取微小或大量数据。OutWit Hub允许你从浏览器本身抓取任何网页,甚至可以创建自动代理来提取数据并根据设置对其进行格式化。 OutWit Hub大多功能都是免费的,能够深入分析网站,自动收集整理组织互联网中的各项数据,并将网站信息分割开来,然后提取有效信息,形成可用的集合。但是要自动提取精确数据就需要付费版本了,同时免费版一次提取的数据量也是有限制的,如果需要大批量的操作,可以选择购买专业版。 5、ParseHub Parsehub是一个很棒的网络爬虫,支持从使用AJAX技术,JavaScript,cookie等的网站收集数据。它的机器学习技术可以读取,分析然后将Web文档转换为相关数据。 Parsehub的桌面应用程序支持Windows,Mac OS X和Linux等系统,或者你可以使用浏览器中内置的Web应用程序。 作为免费软件,你可以在Parsehub中设置不超过五个publice项目。付费版本允许你创建至少20private项目来抓取网站。 6、Scrapinghub Scrapinghub是一种基于云的数据提取工具,可帮助数千名开发人员获取有价值的数据。它的开源视觉抓取工具,允许用户在没有任何编程知识的情况下抓取网站。 Scrapinghub使用Crawlera,一家代理IP第三方平台,支持绕过防采集对策。它使用户能够从多个IP和位置进行网页抓取,而无需通过简单的HTTP API进行代理管理。 Scrapinghub将整个网页转换为有组织的内容。如果其爬虫工具无法满足你的要求,其专家团队可以提供帮助。。 7、Dexi 作为基于浏览器的网络爬虫,允许你从任何网站基于浏览器抓取数据,并提供三种类型的爬虫来创建采集任务。免费软件为你的网络抓取提供匿名Web代理服务器,你提取的数据将在存档数据之前在的服务器上托管两周,或者你可以直接将提取的数据导出到JSON或CSV文件。它提供付费服务,以满足你获取实时数据的需求。 8、Webhose 使用户能够将来自世界各地的在线资源抓取的实时数据转换为各种标准的格式。通过此Web爬网程序,你可以使用涵盖各种来源的多个过滤器来抓取数据并进一步提取多种语言的关键字。 你可以将删除的数据保存为XML,JSON和RSS格式。并且允许用户从其存档访问历史数据。此外,支持最多80种语言及其爬行数据结果。用户可以轻松索引和搜索抓取的结构化数据。 总的来说,可以满足用户的基本爬行要求。 9、Import 用户只需从特定网页导入数据并将数据导出到CSV即可形成自己的数据集。 你可以在几分钟内轻松抓取数千个网页,而无需编写任何代码,并根据你的要求构建1000多个API。公共API提供了强大而灵活的功能来以编程方式控制并获得对数据的自动访问,通过将Web数据集成到你自己的应用程序或网站中,只需点击几下就可以轻松实现爬网。 为了更好地满足用户的爬行需求,它还提供适用于Windows,Mac OS X和Linux的免费应用程序,以构建数据提取器和抓取工具,下载数据并与在线帐户同步。此外,用户还可以每周,每天或每小时安排抓取任务。 10、80legs 80legs是一个功能强大的网络抓取工具,可以根据自定义要求进行配置。它支持获取大量数据以及立即下载提取数据的选项。80legs提供高性能的Web爬行,可以快速工作并在几秒钟内获取所需的数据 11、Content Graber Content Graber是一款面向企业的网络爬行软件。它允许你创建独立的Web爬网代理。它可以从几乎任何网站中提取内容,并以你选择的格式将其保存为结构化数据,包括Excel报告,XML,CSV和大多数数据库。 它更适合具有高级编程技能的人,因为它为有需要的人提供了许多强大的脚本编辑和调试界面。允许用户使用C#或 .NET 调试或编写脚本来编程控制爬网过程。例如,Content Grabber可以与Visual Studio 2013集成,以便根据用户的特定需求为高级且机智的自定义爬虫提供最强大的脚本编辑,调试和单元测试。 12、UiPath UiPath是一款用于免费网络抓取的机器人过程自动化软件。它可以自动从大多数第三方应用程序中抓取Web和桌面数据。如果运行Windows系统,则可以安装机械手过程自动化软件。Uipath能够跨多个网页提取表格和基于模式的数据。 Uipath提供了用于进一步爬行的内置工具。处理复杂的UI时,此方法非常有效。Screen Scraping Tool可以处理单个文本元素,文本组和文本块,例如表格格式的数据提取。 此外,创建智能Web代理不需要编程,但你内部的.NET黑客可以完全控制数据。

Python中json.load()和json.loads()方法有什么区别?傻傻分不清。

🔥 交流讨论:欢迎加入我们一起学习! 🔥 资源分享:耗时200+小时精选的「软件测试」资料包 🔥 教程推荐:火遍全网的《软件测试》教程 📢欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正! 目录 1.从代码层面说,程序为什么会崩溃 1)读取未赋值的变量 2)函数栈溢出 3)数组访问越界 4)指针的目标对象不可用 5)参数错误 6)ClassNotFoundException异常 7)未捕获的异常 8)内存泄漏 9)服务器宕机了 2.while死循环和for死循环的区别 3.集合的特点是什么 4.Python中json.load()和json.loads()方法有什么区别 5.用Python找出列表中出现次数最多的数据 1.从代码层面说,程序为什么会崩溃? 1)读取未赋值的变量 没有给变量初始化和赋值,导致该变量的值为脏值。 2)函数栈溢出 函数栈溢出一般是两种情况引起的: 1.定义了一个体积太大的局部变量或者参数,参数和局部变量一般都是存储在栈中的,但是栈所占的内存空间很小,在32位下只占有8M的空间,因此如果没有使用malloc和new来在堆上创建内存空间的话,栈溢出就会很容易发生。 2.函数的嵌套调用的层次太深了,就像无穷递归和无穷的循环调用一样。 3)数组访问越界 4)指针的目标对象不可用 指针所指向的对象要正常使用,它就必须是一个合法的、有效的,可以访问的对象,像当指针为空指针或野指针时,你再使用它,程序就会立马崩溃。 而出现空指针或者野指针,一般都是下面几种操作导致的: 1.指针未赋值 2.free/delete释放了该对象 3.不恰当的指针强制类型转换 5)参数错误 一般为了保证参数合法,都会设置断言来保证只有参数合法的情况下,程序才可以正常运行。因此此类错误一般都是触发了断言导致的。 6)ClassNotFoundException异常 是因为在指定的存放class文件夹下未找到相关的class文件导致。 1.有可能是编译问题,有可能是运行时的硬件环境导致的。相同的代码,在本地运行没问题,在服务器上就找不到类。后来改了下扫描的路径就可以了。 2.全类名没写对,或者没导入这个类。 3.纯粹的代码或者依赖管理问题。 补充: 首先,Java的错误在程序角度分为exception和error。 error:是代码错误,编译不通过,运行不起来。比如变量命名不规范,public类名和文件名不一致等。 exception:分为runtime exception和非runtime exception。 runtime exception:运行时异常,是程序内部的异常,如数组下标越界,空指针,类转换异常等。 非runtime exception:非运行时异常,一般是外界导致的异常,如IO e,class not found e等。 7)未捕获的异常 8)内存泄漏 9)服务器宕机了 可以凡尔赛一点回答,肯定就是代码写得不符合规范或者机器撑不住了。 机器很少硬件故障。而系统是程序,所以机器有问题,大概率是程序问题,导致各种异常。 以上仅仅是应付面试而已,遇到真实情况,正确做法是: 应该截图报错的具体提示,解决具体问题。因为报错的问题可能是千奇百怪的,知道bug是什么,什么原因导致的,最终要回归到解决问题上的。

SQL2000在win10上安装的方法

首相找到C盘下window文件中的sysWOW64文件 鼠标右键,点击属性、安全、高级 点击更改 点击高级 点击一下立即查找 找到Administrators用户双击选中 点击确定 之后看你的是下面两个图片的哪一个按照下面图片的步骤来设置 这里没有勾选也不用怕 解决方法: 1、先用上面的方法将此文件的所有者替换成随意的一个用户。 2、再此用上面的方法走到这步时勾选上就可以了。 点击确定后会出现一个弹框,点击弹框的确定就好了 再点击编辑 找到Administrators用户选中,再把下面的全部勾选上后点击确定 这里的弹框点击是 之后一路确定就可以了 打开sql2000文件按照:sql2000\X86\SYSTEM文件目录下找到SQLUNIRL.DLL文件,选中鼠标右键复制 在复制到C\Windows\SysWOW64目录里,替换里面的文件 弹出此弹框就点击继续 如果点击继续后,出现弹框显示“你没有此权限”的话就从第一步开始将Administrators用户换成Everyone用户或Guests用户就好了 在sql2000\x86\SETIP目录下找到SETUPSQL文件,运行此文件 如果弹出此弹框点击运行程序而不获得帮助,没用照样能用 运行成功后屏幕右下角会出现加载进度 此页面为开始页面,点击下一步 选择本地计算机 下面的都选择第一个 就是起名字,想起啥就起啥,记住就行了 点击是 sql服务的名字以前电脑有sql的话就新起一个没有的话就选择默认就可以了 此步可以更改程序安装的位置和所安装程序的大小,这个是看你自己如何安装的 此步选择使用本地系统用户 使用混合模式,如果你输入了密码,那么每次连接sql的时候就需要输入密码 下面的都是点击下一步或完成 安装完成后用企业管理器来图像化控制sql 安装sql补丁双击运行SQL2KSP4此程序是解压程序 此目录是解压后文件所在目录 之后找到解压目录下x86\setup文件夹下的setupsql程序,双击启动按装程序(安装补丁前一定要先启动sql) 之后一直点击下一步或者是直到出现下面页面,此页面选择第二个 之后选择第二个升级 这一步直接点击确定不用勾选 然后一直点击下一步最后重启计算机就ok了。

让AI听话的一种办法(Stable Diffusion进阶篇:SVD 3)

动态内容在上一篇笔记里学会了参数以及文生图生视频的操作,可能还是会有小伙伴觉得进行一些参数的改动或者就目前的产出结果还不到自己的预期。 例如像是动作幅度太小,眼睛不够有神等,而也是SVD的一个缺点,它所产出的动态内容某种程度上是不可控的。 就现阶段而言,要控制SVD去动某个部分或者那个部位不要动都是比较难控制的,而目前想要AI画出符合自己预期的结果则又需要反复的“抽卡”。 当然ComfyUI的开发者们早就想到了这些,于是就有了一些节点可以动态控制画面的一部分区域,从而提高视频的可塑性。 所以今天的内容就是要让AI学会怎么“听话” **蒙版 ** 蒙版这个东西之前学习Stable Diffusion的小伙伴们应该就很熟悉了,为了防止有小伙伴忘记了: 正是因为有了蒙版的存在,在用AI绘制时可以用蒙版来控制AI只重绘画面里的一小部分,而这样的方法也可以运用在视频生成部分。 可能有些小伙伴知道Runway有一个运动笔刷功能可以做到这样的效果,ComfyUI也可以做到只让画面的一小部分动起来。在ComfyUI中有一个工作流:运动笔刷(下载链接在文末),直接将其拖拽进ComfyUI界面。 在工作流的最左边导入初始图片: 然后鼠标右键点击图像,选择在**遮罩编辑器(MaskEditor)**中打开 然后就可以在编辑器里面对想要更改的部分进行涂鸦画黑: 记得完成之后点击最右下角的Save to Node 然后就进行一些常规的参数设置后(也可以直接先默认试试)就可以点击添加提示词队列进行生成啦! 这个工作流里面还有其他的辅助功能选项: 这里的两个选项:蒙版反转和蒙版边缘羽化。 蒙版反转是会把蒙版控制的绘制区域倒转过来,像是我们刚刚涂鸦的是非人物的部分,反转就会变成涂鸦人物的部分。这个选项默认是关闭的,如果开启了那么所涂鸦的区域就会变成“固定不变的区域”。 蒙版边缘羽化是默认开启的选项,目的是为了让固定区域和动态区域之间的过渡变得更加自然,如果感觉涂鸦部分和非涂鸦部分的边缘比较生硬,那么可以增大一些边缘羽化的数值。 上述两个操作可以帮助我们出图的效果更符合预期,但是这种用手涂鸦蒙版的方式显然还是会有点瑕疵,毕竟没法完美贴合自己想要绘制的范围。 所以需要用到智能抠图工具:Segment Anything组件(忽略红色部分) 这个组件里面有两个功能强大的节点可以帮助我们只能识别并选定图像中的区域: 这里面的Grounding DINO是一个强大的零样本检测器,能够根据文本描述来检测图像中的任意物体并且生成一个大致的范围。 另一个SAM(Segment Anything Model)节点可以在这个已经生成的区域中再去进行更仔细地切割。这个东西也是WebUI里面的Segment Anything扩展,用的是同样的技术。 这个节点的用法也很简单,在导入图片之后在右侧的Prompt里面输入想要画面动起来的元素的提示词。 然后其他的参数也可以维持不动或者看了上一篇文章的小伙伴自行进行调节,之后点击添加提示词队列进行生成即可。 当然,如果这个元素在画面中占据的比例太小的话是不会有动态效果的,而生成区域太过固定的情况下可能会造成出框的违和感,这样的情况下需要降低几个控制动态水平的参数会比较好。 **放大补帧 ** 之前所生成的视频只有个位数帧以及1024*576,但是现在的视频往往都是1024*1024以及30帧的视频,而接下来的这个工作流可以帮生成的视频补帧。 可以在最左边导入SVD生成的视频,然后在这里设置放大宽度、帧数等的信息,这样一来就可以调用R-ESRGAN模型进行放大以及FILM模型进行补帧。 不过最终生成的格式可能是webp,不太适合一些剪辑软件的导入,这个时候需要安装一个Video Helper Suite. **https://github.com/Kosinkadink/ComfyUI-VideoHelperSuite ** 下载完后使用这里面的Video Combione节点替换为默认的Webp保存节点,然后在下方的输出格式改为mp4等常见的视频格式即可。 问题汇总: 这里不说废话,我这篇文花费最多时间的就是解决那些无法正常下载插件的问题。 可能有小伙伴在导入上述工作流的时候会遇到一些情况: 例如这样的红色节点或者提示报错出现问题,接下来我就来提供一下我自己尝试有用以及可能可以帮助到其他小伙伴的方法。 第一个管理界面进行丢失节点安装: 在遇到丢失节点的时候,可以先去右侧工具栏的Manager管理界面进行丢失节点下载: 在最右侧有个Install进行下载,需要等待一段时间因为是链接GitHub的,在下载完毕之后关闭ComfyUI以及后台命令行,然后重启ComfyUI。 第二种方法:下载到本地 如果第一种方式提示下载失败了则可以点击页面中的链接 然后网页会跳转到该插件的官方GitHub页面,点击最右侧的绿色Code,选择DownloadZIP 在下载完后解压到ComfyUI的这个位置: 然后重启ComfyUI和后台命令行。 第三种:通过更改环境进行下载 这个比较简单但是得一步一步跟着学,万不得已走到这一步的小伙伴可以看下这个视频进行参考(我就不占用太多篇幅了) https://www.youtube.com/watch?v=yjCa9WALzAs **第四种:确认一下自己的ComfyUI以及插件版本是否是最新版本 ** 这一点我为什么不放在最上面说呢?这里因为有些情况是ComfyUI比较老但是插件版本太新了不兼容,如果上述方法都不好用的话可以检查更新一下ComfyUI的版本和插件的版本。 当然还可能有其他情况,例如一些命令行里面的问题,如果遇到这类问题可以去这个网址进行询问,直接复制粘贴问GPT就行,这是一个B站up做出来专门回答ComfyUI问题的bot。 **https://www.coze.com/store/bot/7332400218706690056?bid=MDQEECxYhmZ78fEPKTe4HJ69ZZwEHgi1ufmaBNV46fM1nkSRCzBTu6WcQmHyAPsY5c1ijwQA&from=bots_card&panel=1 ** 今天的内容就到这里啦! 希望大伙都不要遇到我踩到的坑,也希望我的解决方案可以帮助到大家。

大数据快速搭建环境 CDH QuickStart VM虚拟机版本安装

虚拟机镜像安装 下载 https://downloads.cloudera.com/demo_vm/vmware/cloudera-quickstart-vm-5.8.0-0-vmware.zip https://downloads.cloudera.com/demo_vm/vmware/cloudera-quickstart-vm-5.12.0-0-vmware.zip https://downloads.cloudera.com/demo_vm/vmware/cloudera-quickstart-vm-5.13.0-0-vmware.zip 将虚拟机镜像文件压缩包解压得到cloudera-quickstart-vm-5.8.0-0-vmware文件夹打开VMware,File -> Open,选择刚才解压的文件夹,选择cloudera-quickstart-vm-5.8.0-0-vmware.vmx设置虚拟机内存为2cores、8G内存以上启动虚拟机 cloudera-quickstart-vm的使用 1.1 用户说明 Ø 该镜像的OS用户包括root/cloudera和cloudera/cloudera。 Ø Hue UI的用户名和密码是cloudera/cloudera。 Ø 如果还有其它用户,那么用户名和密码都应该是cloudera/cloudera,比如Cloudera Manager。 1.2 运行环境 启动后的VM截图如下所示: 点击Launch Cloudera Express,开始启动。 启动完成后,控制台会打印访问地址和账号密码 CDH manager地址 quickstart.cloudera:7180/cmf/login 账号和密码均为:cloudera 进来后即可看到服务页面。 默认各个组件都是未启动的,需要选择需要的组件启动。 Hive相关使用 启动 Zookeeper、HDFS、YARN、Hive 如下图所示 hive jdbc连接: url:jdbc:hive2://192.168.110.132:10000/default 用户:hdfs POM依赖 <dependency> <groupId>org.apache.hive</groupId> <artifactId>hive-jdbc</artifactId> <version>1.1.0</version> <!--<version>1.1.0</version>--> <exclusions> <exclusion> <groupId>org.eclipse.jetty.aggregate</groupId> <artifactId>*</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> </exclusion> <exclusion> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </exclusion> <exclusion> <groupId>log4j</groupId> <artifactId>log4j</artifactId> </exclusion> <exclusion> <artifactId>hadoop-hdfs</artifactId> <groupId>org.apache.hadoop</groupId> </exclusion> <exclusion> <artifactId>*</artifactId> <groupId>org.

midjourney国内版上手体验,终于找到免费版!

Midjourney作为AI绘画界的扛把子被很多用户青睐,但是国内用起来实在不方便,目前市面上出现了很多款Midjourney国内版,今天我就带大伙做个评测,看看到底是真香工具还是智商税。 一、Midjourney国际版使用三个不便之处 要创建Discord账号:因为Midjourney国际版架设在Discord 上,国内用户首先需要创建Discord 帐户; 需要梯子:因为Midjourney国际版没有对国内开放,因此需要梯子才能正常访问,梯子不仅要收费,而且稳定性还堪忧...... 费用高:Midjourney国际版最低门槛是10美元/月,以当下汇率也就是人民币72元/月,而且每月只能生成200张图。贵我可以忍,但就连免费体验都不给.............. 二、Midjourney国内版筛选 在我对多款Midjourney国内版的深度体验后,发现了不少问题,就从功能、价格、服务这三方面说说, 在功能上,明明Midjourney国际版更新了新功能,而部分国内版过了一个月还没有同步更新,实在令人无语;再说说价格方面。既然同样要消费算力,Midjourney国内版收费无可厚非,但竟然没有免费体验;最后说说服务,在我体验过的几个Midjourney国内版中,有几个充值后出图慢得令人无语,而且还经常系统故障无法操作,但压根找不到客服,感觉就是被割韭菜了! 作为一个被多款山寨Midjourney割过韭菜的大冤种,经过我层层筛选,终于找到一款靠谱的国内Midjourney。 Midjourney国内版http://dy.midjourney9.com//?channel=101545 手机端可复制链接在浏览器打开 三、选择理由 3.1、免费、免费、还是免费! 与其它款Midjourney国内版一上来就割韭菜不同,这款Midjourney是有免费体验的,只要注册了就能免费绘图,虽然后面还是需要付费,但可以通过邀请好友注册获得积分,积分又能继续免费绘图,简直不要太爽,! 3.2全中文界面 简单易上手 操作界面全中文语言,提示词输入框、版本选择、出图参数设简单明了,非常符合国内用户的使用习惯。 ​ 3.3案例很多,可以一键话筒款 对于很多AI绘画小白而言,初期绘画时可能没有灵感,midjourney国内版在灵感广场内与很多绘画案例供参考,也可以以简化同款。3.4多端通用 这点简直太人性化了,这款国内版midjourney有个非常棒的地方,那就是支持PC、移动端网站、小程序同时使用,比如我在PC端的绘画任务,在小程序上能同步看到,也能同步绘画。 ​ Midjourney国内版http://dy.midjourney9.com//?channel=101545手机端可复制链接在浏览器打开

ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer)kafka.c

Kafka启动报错: ERROR Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer) kafka.common.InconsistentClusterIdException: The Cluster ID wJiptZWrTIuLNHyEOa0mSA doesn't match stored clusterId Some(hrHwEwFSRzCsHjuj4pjMXg) in meta.properties. The broker is trying to join the wrong cluster. Configured zookeeper.connect may be wrong. 问题描述: 某次Kafka启动之后迅速挂掉,查看 kafka目录下logs日志,发现以上报错。表明Kafka配置文件中的broker.id与meta.properties文件中的broker.id不一致。 解决方案 方案一 直接删除meta.properties文件,meta.properties文件地址一般在 kafka/logs目录下,也有的在其他位置,具体 可以查看 kafka/config/server.properties 配置文件中 配置项 log.dirs= *** 方案二 查看Kafka配置文件 kafka/config/server.properties 中broker.id信息,将meta.properties文件中的broker.id改为一致。 完成以上步骤后,重启Kafka,解决问题,如果不行可以将zookeeper和Kafka都重启。注意要先启动zookeeper,后启动Kafka,关闭顺序相反。

jmeter接口关联:JSON提取和正则表达式提取

jmeter接口关联:JSON提取和正则表达式提取(仅供参考) 前言一、JSON提取1.1 JSON 语句:1.2 JSON提取器1.3 JSON提取表达式写法&JSON提取器中的写法1.3.1 场景一:json提取器 提取某个变量值1.3.2 场景二:json提取器一次性提取多个变量名1.3.3 场景三:json提取器,提取返回值 数组中多个实例的 templateID信息 二、正则表达式2.1. 正则表达式2.2. 正则表达式提取器2.3 正则表达式提取的几种场景2.3.1 场景一:正则表达式提取某个特定值2.3.2 场景二:一个正则表达式提取到多个结果 前言 在 JMeter 中,正则表达式和 JSON 提取器都用于从响应数据中提取所需内容,但它们的使用场景略有不同。 正则表达式提取器: 正则表达式提取器是 JMeter 的内置功能,用于从响应数据中提取特定模式的文本。 适用于响应数据的内容没有明确定义结构的情况。当响应数据是自由格式的文本、HTML、XML 或其他非结构化数据时,可以使用正则表达式提取器来捕获信息,编写适当的正则表达式来匹配并提取所需的内容。 JSON 提取器: JSON 提取器是 JMeter 的插件,专门用于从 JSON 格式的响应数据中提取数据。适用于处理结构化的 JSON 响应数据。 一、JSON提取 1.1 JSON 语句: 1.2 JSON提取器 Jmeter中将json提取的值作为变量便于后期引用 JSON提取器参数释意: Names of created varriables:设置获取到值的变量名称,用于后期引用;多个变量时用分号分隔; JSON Path expressions:用于查找对应值的JSON语句; Match No.(0 for Random):0表示随机;n表示取第几个匹配值;-1表示匹配所有,后续引用时采用 变量名_N 取指定的第N个值; Default Values:缺省值,当JSON 语句未匹配到值时取该值。 如果前面设置提取多个变量名且需要有缺省值时,这里的缺省值必须设置对应个数的默认值,值与值之间用分号分隔; 不需要缺省值时,这里也可以为空。 1.3 JSON提取表达式写法&JSON提取器中的写法 如图所示给定一个接口响应的示例,按要求提取对应值的几种场景:

主流MQ [Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ]

文章目录 主流MQ [Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ]一,MQ对比图二,介绍三,优缺点三,推荐使用 主流MQ [Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ] 一,MQ对比图 下面是 Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ 的更详细和专业的对比: 特性/功能KafkaRabbitMQZeroMQRocketMQActiveMQ语言JavaErlangCJavaJava协议自有协议AMQP自有协议自有协议JMS可靠性Kafka 使用分布式日志存储,具有高可靠性和持久性RabbitMQ 提供多种消息确认模式,具有高可靠性和持久性ZeroMQ 不提供内置的消息持久化和确认机制,可靠性取决于使用模式RocketMQ 提供分布式部署、消息持久化和消息复制等特性,具有高可靠性和持久性ActiveMQ 提供持久化、事务支持和消息确认机制,具有高可靠性和持久性吞吐量Kafka 是为高吞吐量设计的分布式流处理平台,具有非常高的吞吐量能力RabbitMQ 适用于中等吞吐量的场景,具有较高的性能ZeroMQ 具有高性能和低延迟,适用于高吞吐量的异步通信场景RocketMQ 专注于高吞吐量和低延迟的大规模消息通信场景ActiveMQ 适用于中等吞吐量的场景,具有较高的性能扩展性Kafka 提供水平扩展能力,可以轻松增加节点以应对负载增长RabbitMQ 提供基于集群的扩展能力,可以通过添加节点来增加容量和吞吐量ZeroMQ 可以通过多线程和多进程实现扩展,但需要手动管理和编写逻辑RocketMQ 提供分布式部署和水平扩展能力,可以轻松增加节点以应对负载增长ActiveMQ 提供基于集群的扩展能力,可以通过添加节点来增加容量和吞吐量持久化Kafka 使用分布式日志存储,消息持久化在磁盘上RabbitMQ 支持消息持久化,可以将消息保存在磁盘上ZeroMQ 不提供内置的消息持久化机制,需要自行处理RocketMQ 提供消息持久化和复制机制,可以确保消息不丢失ActiveMQ 支持消息持久化,可以将消息保存在磁盘上消息模式Kafka 使用发布-订阅模型,支持批量消费和流处理RabbitMQ 支持多种消息模式,包括点对点、发布-订阅和请求-响应模式ZeroMQ 提供多种消息传递模式,如请求-应答、发布-订阅和推送-拉取模式RocketMQ 使用发布-订阅和点对点模型,支持顺序消息和事务消息等特性ActiveMQ 支持多种消息模式,包括点对点、发布-订阅和请求-响应模式社区支持Kafka 社区非常活跃,有大量的文档、教程和社区贡献RabbitMQ 社区活跃,有大量的文档、教程和社区贡献ZeroMQ 社区活跃,有大量的文档、教程和社区贡献RocketMQ 社区活跃,有大量的文档、教程和社区贡献ActiveMQ 社区活跃,有大量的文档、教程和社区贡献适用场景Kafka 适用于构建实时数据管道、流处理和大规模数据处理应用RabbitMQ 适用于中等吞吐量的消息通信、任务队列和发布-订阅场景ZeroMQ 适用于高吞吐量的异步通信、分布式系统和并发应用RocketMQ 适用于大规模消息通信、日志收集、实时计算和流式处理等场景ActiveMQ 适用于中等吞吐量的消息通信、任务队列和发布-订阅场景 二,介绍 下面是关于主流的 Kafka、RabbitMQ、ZeroMQ、RocketMQ 和 ActiveMQ 的一些介绍: Apache Kafka: Kafka 是一个分布式流处理平台,设计用于处理高吞吐量的实时数据流。它具有高可靠性、可扩展性和持久性,适用于构建实时数据管道和流式处理应用程序。Kafka 使用发布-订阅模型,消息以主题(topic)的形式进行发布和订阅。 RabbitMQ: RabbitMQ 是一个功能丰富且易于使用的开源消息队列系统,实现了高级消息队列协议(AMQP)。它支持多种消息传递模式,如点对点、发布-订阅和请求-响应模式。RabbitMQ 提供了灵活的路由、消息持久化、消息确认和可靠性等特性。 ZeroMQ: ZeroMQ(简称ZMQ)是一个快速、异步的消息库,提供了简单的套接字接口,支持多种通信模式。它具有低延迟、高性能和可扩展性,适用于构建分布式和并发应用程序。ZMQ 提供了多种消息传递模式,如请求-应答、发布-订阅和推送-拉取模式。 RocketMQ:

【Python】【三分钟】熟练使用 os.path.join()

【Python】【三分钟】熟练使用 os.path.join() 🌵文章目录🌵 📂 一、初识 os.path.join():文件路径拼接利器💡 二、深入理解 os.path.join():多个路径组件的拼接🔍 三、os.path.join()的实战应用:处理相对和绝对路径💾 四、os.path.join()与文件操作的关系🌐 五、os.path.join()的扩展应用:跨平台脚本编写📋 六、os.path.join()的最佳实践:注意事项🎓 七、总结 📂 一、初识 os.path.join():文件路径拼接利器 在Python中,文件路径的处理是一项常见而重要的任务。而在不同操作系统中,文件路径的表示方式往往存在差异。为了解决这个问题,Python提供了os.path.join()函数,它可以根据操作系统的不同,自动使用正确的路径分隔符来拼接文件路径。 代码示例 import os # 假设我们有一个目录和一个文件名 directory = 'folder' filename = 'example.txt' # 使用 os.path.join() 来拼接路径 path = os.path.join(directory, filename) print(path) # 输出: folder/example.txt (在Unix-like系统上) # 或 folder\example.txt (在Windows系统上) 在这个例子中,os.path.join()函数根据运行代码的操作系统,自动选择了正确的路径分隔符(在Unix-like系统中是/,在Windows中是\),并拼接了目录和文件名。 💡 二、深入理解 os.path.join():多个路径组件的拼接 os.path.join()函数不仅可以拼接两个路径组件,还可以拼接任意数量的组件,只需将它们作为参数依次传入即可。 # 拼接多个路径组件 multi_path = os.path.join('home', 'user', 'documents', 'project', 'data.csv') print(multi_path) # 输出: home/user/documents/project/data.csv (在Unix-like系统上) # 或 home\user\documents\project\data.csv (在Windows系统上) 这样的灵活性使得os.path.join()在处理复杂的文件路径时变得非常简单和方便。

【SpringBoot】项目—TLIAS智能学习辅助系统

TLIAS智能学习辅助系统 一、Spring1、Service层DeptServiceImpl接口DeptServiceImpl实现类EmpService接口EmpService实现类 2、IOC3、DI4、AOPLog自定义注解LogAspect切面类 5、事务管理 二、Spring MVC1、Controller层DeptControllerEmptController 2、拦截器 (interceptor)LoginCheckInterceptorWebConfig 3、全局异常处理 三、Mybatis1、Mapper层DeptMapperEmpMapperEmpMapper.xml (动态SQL配置)OperateLogMapper 四、JavaWeb1、过滤器LoginCheckFilter 2、Cookie、SessionSessionController 五、解决方案工具1、JWT令牌LoginControllerJwtUtils 工具类 2、阿里云OSS存储UploadControllerAliOSSUtils (工具类)AliOSSProperties (实体类配置) 六、pojo实体类1、Dept2、Emp3、OperateLog4、PageBean5、Result 七、配置文件1、application.yml2、pom.xml 该项目是使用了SpringBoot框架,整合了SSM框架的内容,基于注解开发的一个小项目。目的在于复习SpringBoot的相关知识。 一、Spring 1、Service层 DeptServiceImpl接口 public interface DeptService { // 查询部门所有信息(不需要分页) List<Dept> queryDept(); // 根据ID删除部门信息 void deleteDeptById(Integer id); // 添加部门信息 void insertDept(Dept dept); // 根据ID查询部门信息 Dept queryDeptById(Integer id); // 修改部门信息 void modifyDept(Dept dept); } DeptServiceImpl实现类 @Service public class DeptServiceImpl implements DeptService { // 依赖注入 @Autowired private DeptMapper deptMapper; @Autowired private EmpMapper empMapper; // 查询部门所有信息(不需要分页) @Override public List<Dept> queryDept() { return deptMapper.

详细剖析MySQL临键锁

💗推荐阅读文章💗 🌸JavaSE系列🌸👉1️⃣《JavaSE系列教程》🌺MySQL系列🌺👉2️⃣《MySQL系列教程》🍀JavaWeb系列🍀👉3️⃣《JavaWeb系列教程》🌻SSM框架系列🌻👉4️⃣《SSM框架系列教程》 🎉本博客知识点收录于🎉👉🚀《MySQL系列教程》🚀—>✈️03【锁、事务原理、MVCC】✈️ 文章目录 2.4 临键锁2.4.1 临键锁的区间测试2.4.2 临键锁-普通列1)间隙锁2)记录锁 2.4.3 临键锁-普通索引1)非临界值2)临界值3)范围值 2.4.4 临键锁-主键和唯一索引1)非临界值2)临界值3)范围值 2.4.5 临键锁总结 2.4 临键锁 2.4.1 临键锁的区间测试 临键锁(Next-Key Lock):临键锁是查询时InnoDB根据查询的条件而锁定的一个范围,这个范围中包含有间隙锁和记录锁;临键锁=间隙锁+记录锁。 其设计的目的是为了解决Phantom Problem(幻读);主要是阻塞insert,但由于临键锁中包含有记录锁,因此临键锁所锁定的范围内如果包含有记录,那么也会给这些记录添加记录锁,从而造成阻塞除insert之外的操作; Tips:临键锁的主要目的,也是为了避免幻读(Phantom Read)。如果把事务的隔离级别降级为RC,临键锁则也会失效。 临键锁锁住的区间为:记录+区间(左开右闭) 左开右闭:不锁住左边,锁右边 测试表: drop table if exists t2; CREATE TABLE `t2` ( `id` int(11) NOT NULL AUTO_INCREMENT, `num` int(11) , PRIMARY KEY (`id`) USING BTREE ) ENGINE = InnoDB ; INSERT INTO `t2`(`id`, `num`) VALUES (5, 5); INSERT INTO `t2`(`id`, `num`) VALUES (10, 10); INSERT INTO `t2`(`id`, `num`) VALUES (15, 15); INSERT INTO `t2`(`id`, `num`) VALUES (20, 20); -- 创建普通索引 create index idx_num on t2(num); -- 创建唯一索引 create unique index idx_num on t2(num); -- 删除索引 drop index idx_num on t2; 区间示意图: Tips:间隙锁只会阻塞insert,记录锁会阻塞任意的锁(单要注意排他锁和共享锁的关系);

【Python】一文详细介绍 OrderedDict 对象

【Python】一文详细介绍 OrderedDict 对象 🌵文章目录🌵 📘 一、初识 OrderedDict 对象🔍 二、如何使用 OrderedDict 对象🚀 三、OrderedDict 的优势🔧 四、定制 OrderedDict 的行为🌐 五、OrderedDict 的应用场景💪 六、举一反三:其他字典相关的数据结构📚 七、结语:持续学习与进步 📘 一、初识 OrderedDict 对象 在Python的collections模块中,OrderedDict是一个特殊的字典子类,它保持了字典中元素被插入时的顺序。这意味着当你遍历一个OrderedDict时,元素会按照它们被插入的顺序出现,而不是按照它们的键的排序顺序。 这与普通的字典有着显著的区别。OrderedDict在需要维护元素插入顺序的场景下非常有用。 🔍 二、如何使用 OrderedDict 对象 要使用OrderedDict,你需要先从collections模块中导入它。然后,你可以像使用普通字典一样使用OrderedDict,但是它会记住元素插入的顺序。 下面是一个简单的例子: from collections import OrderedDict # 创建一个 OrderedDict 对象 od = OrderedDict() # 添加元素 od['a'] = 1 od['b'] = 2 od['c'] = 3 # 遍历 OrderedDict for key, value in od.items(): print(key, value) # 输出将会是:a 1, b 2, c 3,保持了插入顺序 🚀 三、OrderedDict 的优势 OrderedDict的主要优势在于它能够维护元素的插入顺序。这在某些场景中非常有用,比如当你需要按照元素被添加的顺序来处理它们时。

【JavaSE】搞定String类

前言 本篇会细致讲解String类的常见用法,让小伙伴们搞定String类~ 欢迎关注个人主页:逸狼 创造不易,可以点点赞吗~ 如有错误,欢迎指出~ 目录 前言 常用的三种字符串构造 字符串长度length 字符串比较 ==比较 比较字符串的内容equals 忽略大小写比较equalsIgnoreCase 比较字符串大小compareTo 忽略大小写比较compareToIgnoreCase 获取字符串中某一个字符 通过字符获取下标indexOf 从指定位置开始找 从后的指定位置开始找lastIndexOf 转化 数值和字符串转化valueOf 字符串转数值parseInt和parseDouble 大小写转化toLowerCase和toUpperCase 将字符串转数组toCharArray 格式化format 字符串替换replace 替换字符串的第一个replaceFirst和整体替换replaceAll 字符串拆分split 多次拆分 字符串截取substring 去掉字符串左右两边的空格trim 字符串不可变性 字符串拼接 ​编辑 String、StringBuffer、StringBuilder的区别 常用的三种字符串构造 public static void main(String[] args) { //直接赋值的方法, 定义字符串 String str1="abcdef";//简写形式 String str2=new String("hello Word!"); //用字符数组 构造字符串 char[]array={'a','b','c'}; String str3=new String(array); System.out.println(str1); System.out.println(str2); System.out.println(str3); } 结果 String是引用类型,内部并不存储字符串本身 // s1和s2引用的是不同对象 s1和s3引用的是同一对象 String s1 = new String("

Python-FastAPI框架使用介绍

Python-FastAPI框架介绍 1. FastAPI简介 ​ FastAPI 是一个现代、快速(高性能)的 Web 框架,用于构建基于 Python 的 API。它具有简单易用的特性,同时也提供了高度自动化的文档生成功能,使得开发者可以更加高效地构建和部署 API 服务。功能强大、易于使用且高性能的 Web 框架,适用于构建各种规模的 API 服务。它的简洁语法、自动生成文档和异步支持等特性使得开发 API 更加轻松和愉快 中文文档:https://fastapi.tiangolo.com/zh/ GitHub项目地址:https://github.com/tiangolo/fastapi 本篇文章会简单的介绍一下概念,然后通过一个完整的实战项目来展开介绍各个功能模块。 FastAPI 关键特性 快速高效:基于 Starlette 和 Pydantic 构建,具有高性能和低延迟的特点,支持异步处理请求,利用 Python 的协程提高并发性能。简单易用:使用标准的 Python 类型注解来定义 API 的输入和输出参数,无需编写大量的文档和验证代码。自动生成文档:通过访问 /docs 路径可以查看自动生成的交互式 API 文档,包含了每个端点的详细说明、请求和响应的模型结构以及示例请求和响应。数据验证:利用 Pydantic 提供的数据验证功能,可以自动验证请求数据的格式和类型,并进行数据转换。依赖注入:支持依赖注入,可以方便地将依赖项注入到处理函数中,例如数据库连接、配置等。类型检查:利用 Python 类型提示和 Pydantic 的数据模型,可以在开发过程中进行类型检查,减少错误和调试时间。中间件支持:支持使用中间件扩展框架的功能,例如认证、日志记录等。标准化:支持 OpenAPI 规范,可以生成符合规范的 API 文档和客户端代码。 2. FastAPI安装 安装FastAPI模块 pip install fastapi pip install uvicorn uvicorn用于运行 Python 的异步 Web 应用程序,与许多流行的 Python 框架(如 FastAPI、Starlette 等)兼容,可以帮助开发者构建高效的异步 Web 服务