要点 Ollama一个功能强大的本地大语言模型LLM运行工具,支持很多模型,并且操作极其简单快速回忆步骤: 下载ollama工具:https://ollama.com/download 下载模型:ollama pull llama3 #根据libs列表直接指定名字 运行模型:ollama run llama3 测试:直接问他问题(可以关闭网络) 步骤 Step1. 下载ollama(根据平台选择) https://ollama.com/download
下载后将软件安装,解压后拷贝到应用程序:
安装用户态命令:(点击install)
Step2:下载模型文件 支持的模型列表:https://ollama.com/library
比如llama3:
安装步骤:命令行直接安装
ollama pull llama3 实操:
这里需要耗费一些时间,具体根据网络和模型大小确定,模型大小参考:
ModelParametersSizeDownloadLlama 38B4.7GBollama run llama3Llama 370B40GBollama run llama3:70bMistral7B4.1GBollama run mistralDolphin Phi2.7B1.6GBollama run dolphin-phiPhi-22.7B1.7GBollama run phiNeural Chat7B4.1GBollama run neural-chatStarling7B4.1GBollama run starling-lmCode Llama7B3.8GBollama run codellamaLlama 2 Uncensored7B3.8GBollama run llama2-uncensoredLlama 2 13B13B7.3GBollama run llama2:13bLlama 2 70B70B39GBollama run llama2:70bOrca Mini3B1.9GBollama run orca-miniLLaVA7B4.5GBollama run llavaGemma2B1.4GBollama run gemma:2bGemma7B4.8GBollama run gemma:7bSolar10.7B6.1GBollama run solar 官方的参考资源:
项目升级AGP到8.0+ 同步项目,遇到以下错误:
Namespace not specified. Specify a namespace in the module’s build file. See https://d.android.com/r/tools/upgrade-assistant/set-namespace for information about setting the namespace.
解决方案:
在每一个模块中,都有一个build.gradle文件和AndroidManifest.xml,现在需要做的就是把AndroidManifest.xml中package="com.aaa.bbb"包名添加到模块对应的build.gradle中。每一个模块都是这样,包括主App模块。
假设AndroidManifest.xml -> package=“com.aaa.bbb”
android { namespace "com.aaa.bbb" } 如果不解决namespace问题,用到的R文件也是无法生成,跨模块使用R文件各种错误。
BuildConfig无法生成,报红 AGP8+默认不生成模块的BuildConfig.java,导致之前使用该类的功能失效。开启方案是:
在模块的build.gradle中增加配置。
android { buildFeatures { buildConfig true } }
文章目录 前言一、Weblogic安装包下载二、安装JDK三、Weblogic安装1.创建Linux用户2.创建weblogic的安装目录3.上传weblogic的安装包4.解压缩5.修改 /opt/weblogic 目录的所有权6.创建 oraInst.loc 文件7.创建 wls.rsp 响应文件8.切换用户9.静默安装weblogic10.切换到root用户11.切换目录12.创建域13.切换目录14.启动Weblogic15.添加防火墙端口(便于其他电脑访问)16.访问Weblogic管理控制台(需要等一会,等页面加载)17.输入用户名和密码进行登录 前言 WebLogic是一个Java应用服务器软件,WebLogic是美国Oracle公司出品的一个application server,确切的说是一个基于JAVAEE架构的中间件,WebLogic是用于开发、集成、部署和管理大型分布式Web应用、网络应用和数据库应用的Java应用服务器。将Java的动态功能和Java Enterprise标准的安全性引入大型网络应用的开发、集成、部署和管理之中。
一、Weblogic安装包下载 Weblogic下载地址:https://www.oracle.com/middleware/technologies/weblogic-server-installers-downloads.html
二、安装JDK Weblogic需要依赖于JDK
JDK安装教程:https://blog.csdn.net/weixin_44904239/article/details/137240064 三、Weblogic安装 1.创建Linux用户 root用户安装weblogic是无法安装的,会报错,需要创建一个用户进行安装weblogic
创建一个名为weblogic的用户,并给weblogic用户设置密码,我这里设置的密码为:1234(可以使用别的用户名)
useradd weblogic passwd weblogic 2.创建weblogic的安装目录 在 /opt/ 目录下创建一个名为weblogic的目录
mkdir /opt/weblogic 切换到 /opt/weblogic 目录
cd /opt/weblogic/ 3.上传weblogic的安装包 4.解压缩 接压缩以后会得到一个 .jar 结尾的jar包
unzip fmw_14.1.1.0.0_wls_lite_Disk1_1of1.zip 5.修改 /opt/weblogic 目录的所有权 -R:递归地修改指定目录及其子目录中的文件或目录的所有权
chown -R weblogic:weblogic /opt/weblogic 6.创建 oraInst.loc 文件 创建 oraInst.loc 文件
在WebLogic中,oraInst.loc文件是一个安装位置配置文件,用于指示Oracle软件安装的位置。
touch oraInst.loc 添加如下两行内容
Inventory_loc=/opt/weblogic/oraInventory 产品目录清单Inst_group=weblogic 用户组名称 vim oraInst.loc Inventory_loc=/opt/weblogic/oraInventory Inst_group=weblogic 7.创建 wls.
1. 场景还原 我们从网上下载的教程文件名中可能会带有视频来源等不相干的信息,使得文件名冗长不便于查看,例如下面的文件,包含一些无用的后缀:
由于这些文件可能分布在很多个文件夹或子文件夹中,一个个手动改肯定不现实,我们需要一个命令快速批量地修改所有文件名。
2. 操作步骤 我们可以使用rename命令批量修改文件名,rename是Linux系统自带的一个命令行工具,用于批量重命名文件。在 macOS 中,默认情况下是没有 rename 命令的,因为 macOS 使用的是 BSD(Berkeley Software Distribution, 伯克利软件发行版, 一个类 Unix 的操作系统) 的变种,而不是 Linux。
我们可以通过安装 Homebrew 这样的软件包管理器来获取 rename 命令,如果已安装请跳过此步骤。
1. 安装Homebrew和rename 安装Homebrew
打开终端或者iterm输入以下命令,按照提示输入密码:
/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)" 安装rename
brew install rename 2. 使用find命令筛选出需要修改的文件 find 是一个强大的命令行工具,用于在文件系统中搜索文件和目录。Mac和Linux系统自带find命令,无需安装。find命令很灵活,如果你对find命令不太熟悉,请参考拓展知识根据实际需求筛选出需要修改的文件,下面是一些例子:
例1. 查找当前目录及其子目录下所有mp4文件:
find . -type f -name "*.mp4" 例2. 只查找当前目录所有mp4文件,不查找找子目录中的文件,使用-depth参数:
find . -type f -name "*.mp4" -depth 1 例3. 查找指定目录下及其子目录下所有文件名包含“数字-数字”的文件,使用-regex参数,后面跟正则表达式
find /path/to/search -type f -regex '.
BETWEEN 操作符用于选取介于两个值之间的数据范围内的值。
BETWEEN 操作符选取介于两个值之间的数据范围内的值。这些值可以是数值、文本或者日期。
SQL BETWEEN 语法
SELECT column_name(s) FROM table_name WHERE column_name BETWEEN value1 AND value2; 演示数据库 在本教程中,我们将使用众所周知的 Northwind 样本数据库。
下面是选自 "Products" 表的数据:
ProductIDProductNameSupplierIDCategoryIDUnitPrice1Chais1110 boxes x 20 bags182Chang1124 - 12 oz bottles193Aniseed Syrup1212 - 550 ml bottles104Chef Anton's Cajun Seasoning1248 - 6 oz jars225Chef Anton's Gumbo Mix1236 boxes21.35 BETWEEN 操作符实例 下面的 SQL 语句选取价格介于 10 和 20 之间的所有产品:
SELECT * FROM Products WHERE Price BETWEEN 10 AND 20; NOT BETWEEN 操作符实例 如需显示不在上面实例范围内的产品,请使用 NOT BETWEEN:
官方链接直达! 产品介绍 能力介绍 AiPPT 是一款智能生成演示幻灯片的在线工具。专业设计团队打造海量模板资源,输入标题即可轻松生成完整的PPT。同时 AiPPT 支持导入多格式文档一键生成 PPT,让 PPT 创作更加高效。聚焦于内容,确保每张幻灯片都以清晰的主题和关键信息为核心,简洁明了地表达您的观点。提供丰富多样的模板和布局样式,以灵活适应不同内容的需要。支持一键切换模板和配色方案,让您的 PPT 瞬间焕然一新。开放AiPPT底层能力,提供多种接入版本,可满足多种业务使用形式;专属客户服务,快速对接使用,产品能力同步迭代;一次接入,长效无忧。 一键生成
输入标题即可直接生成 PPT
文档导入
支持 docx、xmind、freemind、markdown 文件导入直接生成 PPT
思维导图
支持思维导图在线预览、编辑、下载为文本或图片格式
在线编辑
丰富的在线编辑能力,支持文本、图片、表格、图表、大纲等编辑调整;海量模板支持一键替换
在线演示
支持 PPT 作品的在线演示
PPT下载
支持将在线作品保存到本地, 可选格式包含: PPT、PDF、PNG、JPEG
版本介绍 API版本接入
将AiPPT产品能力以API接口形式进行提供接入,可最大化匹配您的产品业务流程与交互,可根据产品需要实现自主功能界面
UI版本接入
将AiPPT产品能力以iframe嵌入形式集成到您的产品中,最大化保留AIPPT产品功能与交互设计,实现更加快速低成本的产品上线
JS版本接入(不再维护)
该版本后续不再升级迭代,建议使用API版本接入
接入指引 1. 提交申请 在开放平台首页点击【立即申请】后,填写接入申请信息
信息提交后,工作人员将在2个工作日内与您取得联系
2.开通开放平台账号 由工作人员为您开启企业账号后,可登录开放平台进行企业认证
提交认证后,工作人员会尽快为您开放权限
3.获取接入的APP Key和Secret Key 企业认证成功后,可在开放平台的工作台 查看到接入所需的App Key和Secret Key
4.技术接入,能力集成 完成以上步骤,您就可以根据文档进行能力对应集成的接入
集成过程中请确保准确配置 App ID
获取鉴权 说明 采用 AK(api key)/SK(api secret) 签名认证, 开通 AP I账号得到 AK、SK
很多Mac用户都有遇到过安装器安装失败的情况,无法打开或者软件损坏等问题!这些就是系统没有关闭完整性保护导致的!
一、怎么检查Mac上是否启用了Sip系统完整性保护? 方法一:使用终端(如果不知道终端,请看第二种方法) 打开终端,输入csrutil status命令并回车。
方法二: 使用系统信息工具 1.单击 -> 关于本机。
2.点击【系统报告…】。
3.左侧列表选择「软件」即可查看!
二、如何关闭sip? 1.Mac关机状态下长按开机键,直到出现设置后松开,就会进入恢复模式。
此方法适用于m芯片的苹果系统OS在10.11以后的版本。
2.点击【继续】。
3.点击实用工具>点击终端。
4.终端内输入命令:csrutil disable 然后回车执行,注意:命令中间有个空格。
5.输入【y】,然后按下回车也就是 【return】回车键。
6.输入电脑密码,然后按下回车也就是【return】键(密码在输入的时候看不见)。
7.等待执行结果……
8.出现 【System Integrity Protection is off.】 证明 Sip 已成功关闭。
如果是 M1 芯片的电脑,还需要再执行一条命令:
csrutil authenticated-root disable
这条命令是关闭 【root底层防修改功能】的命令。
9.然后输reboot并按下回车键重启电脑即可。
三、如何开启Sip? 如果后期想再开启 Sip,只需要将上面第 4 步的【csrutil disable】换成【csrutil enable】即可。
四、可能出现的错误 若是关闭Sip出现【csrutil: Failed to update security configuration for “Macintosh HD”: Failed to create local policy】错误提示,请按照以下教程解决!
1.在终端内输入【csrutil clear】命令,然后按回车。
2.再输入【Restart and return to the recovery terminal】按回车。
一、什么是PLSQL PL/SQL(Procedural Language/Structured Query Language)是 Oracle 数据库系统中的一种过程式编程语言,用于编写存储过程、函数、触发器、包等数据库程序单元。PL/SQL 继承了 SQL 的数据操作能力,并添加了过程性编程语言的功能,可以实现更复杂的逻辑和数据处理。
PL/SQL 具有以下特点:
结构化编程: PL/SQL 支持顺序、条件、循环等结构化编程控制流程,使得程序逻辑更清晰、易于理解和维护。
数据类型: PL/SQL 支持多种数据类型,包括数值、字符、日期、布尔、游标等,同时还支持用户自定义的复合数据类型。
异常处理: PL/SQL 具有强大的异常处理机制,可以捕获并处理运行时错误,保证程序的稳定性和可靠性。
模块化编程: PL/SQL 支持将代码组织为模块(存储过程、函数、触发器、包等),可以提高代码的重用性和可维护性。
数据库交互: PL/SQL 可以直接与 Oracle 数据库进行交互,可以执行 SQL 查询、DML 操作,以及调用存储过程和函数。
安全性: PL/SQL 代码通常在数据库服务器端执行,可以在数据库内部实现安全访问控制,保护数据的安全性。
PL/SQL 的语法和语义与传统的过程式编程语言(如 Ada、Pascal)相似,但也包含了一些特有的 Oracle 数据库相关的语法和功能。通过 PL/SQL,开发人员可以编写高效、灵活和可维护的数据库应用程序,实现复杂的业务逻辑和数据处理需求。
二、PLSQL入门语法 1、变量入门 -- 题目: 小王在超市购买 -- 苹果 5斤 6元/斤 -- 香蕉 2斤 10元/斤 -- 请以plsql完成 完整显示如下 -- 苹果-5斤-6元/斤 -- 香蕉-2斤-10元/斤 -- 总金额: 50元 declare name1 varchar2(30); name2 varchar2(30); weight1 number; weight2 number; price1 number; price2 number; money number; begin name1 := '苹果'; name2 := '香蕉'; weight1 := 5; weight2 := 2; price1 := 6; price2 := 10; money := weight1*price1 + weight2*price2; DBMS_OUTPUT.
原始撰稿 从大的趋势上来看,肯定是所有的企业都要拥抱大模型或者是拥抱AI的。但是目前从我们对于很多大模型的测评结果与第三方视角来看,大部分企业的核心业务、生产流程还是不太能够依赖大模型的,现在还是属于在相对边缘的业务上做一些尝试,可能成本的下降不是直接等同于可以落地的。
因为真正落地影响企业的核心业务的话,不仅要降成本,更重要的还是在能力侧上达到一定的准确性,包括推理性达到一定可用。但目前的阶段,我个人觉的差的还是有点远。以一个场景举例,就是大模型现在的知识是比较滞后的,所以说很多的企业在应用大模型的时候,都会外挂知识库。比较常用的就是【RAG】检索增强,通过【RAG】的方法去做信息检索。相对于【长文本】,可能成本会比较低,另一个就是现在比较火的【长文本】,几个大厂现在也都在跟进。所以说,也是目前的一个方案,但是我个人的观点目前这两个方案也都是存在非常严重的问题的。
在很多企业的内部,还无法直接用作核心业务流程的,比如说像【RAG】是通过切片去做检索,虽然优点上是节约【Token】,但有个非常严重的问题。就是因为切片的原因,对于整体的上下文关系会有大量的损失,像是一些局部定位和文本摘要,表现的还是非常可以的,但如果是需要有厂以来关系的长文的能力,就会差劲很多。像是【longtext】的问题其实也是很明显,一个就是它很消耗资源,更大的问题是就是它会出现幻觉。因为它本身所有的长文本通过 Prompt 去输入到大模型,目前的阶段肯定是有一些幻觉产生的,如果完全依赖于这个长文本,它的精确性就会变差。这是一个非常典型的常用场景,大模型依然是没有非常高效和准确地去解决这个问题,不是一个特别可行的方案。
所以,更复杂的问题和场景还有很多,比如说一些高阶的推理,深度的智能体工作流,包括复杂的运算,再到稍微难一点的代码的问题。关于这些问题,目前大模型在具体的业务场景上的表现,还是相对的有很大优化空间的。目前很多企业虽然拥抱AIGC的呼声很高,但是还是有很长的路要走。
某国产大模型根据原始撰稿,撰写文本如下,也许这就是原因吧~
第一章:AIGC的趋势与挑战 在当今数字化时代,人工智能的发展已成为不可逆转的趋势。特别是大模型和生成式人工智能(AIGC)的崛起,为各行各业带来了前所未有的机遇。大模型通过深度学习和海量数据的训练,具备了强大的生成和推理能力,为企业提供了更加智能和高效的解决方案。
然而,尽管大趋势指向了AI的广泛应用,但并不意味着所有企业都应盲目拥抱AIGC。从当前的实际应用与评估结果来看,大部分企业的核心业务和生产流程仍难以完全依赖大模型。
首先,大模型的应用需要一定的技术实力和人才储备。企业需要具备相应的数据处理、模型训练和部署能力,以及一支专业的AI团队来支持日常运营和维护。这对于许多中小企业来说是一个巨大的挑战,他们可能缺乏足够的资源和经验来应对这些技术难题。
其次,大模型的准确性和稳定性仍需进一步提高。尽管大模型在某些任务上表现出了惊人的性能,但在某些复杂和特定的场景中,其准确性和可靠性仍有待加强。例如,在处理自然语言理解、图像识别和语音识别等任务时,大模型可能会受到数据偏差、噪声和歧义等因素的影响,导致错误的结果。
此外,大模型的应用还需要考虑到数据隐私和安全的问题。在训练和使用大模型的过程中,企业需要处理大量的敏感数据,如用户个人信息、商业机密等。如何确保这些数据的安全性和隐私性,防止数据泄露和滥用,是企业必须面对的重要问题。
综上所述,尽管AIGC具有巨大的潜力和发展前景,但企业在决定是否拥抱这一技术时,需要充分考虑自身的技术实力、业务需求和数据安全等因素。只有在充分评估了技术的适用性和潜在风险后,才能做出明智的决策。
第二章:大模型在企业业务中的应用现状 目前,大部分企业对于大模型的应用还处于相对边缘的业务尝试阶段。许多企业试图通过引入AIGC技术来优化某些业务流程或提升产品体验,但真正将大模型应用于核心业务的企业还相对较少。
这主要是因为大模型在核心业务中的应用面临着诸多挑战。首先,核心业务的复杂性和特殊性使得大模型难以直接适应。核心业务往往涉及到多个环节和多个系统的协同工作,需要处理大量的数据和复杂的逻辑关系。而大模型目前还难以完全理解和处理这种复杂性,容易出现错误和不稳定的情况。
其次,大模型在成本效益方面仍存在一定的问题。尽管大模型在某些任务上可以实现自动化和智能化,但在某些场景下,其成本可能仍然高于传统的人工处理方式。此外,大模型的训练和维护也需要投入大量的时间和资源,这对于一些资源有限的企业来说可能是一个沉重的负担。
此外,大模型的应用还需要考虑到与现有系统的集成问题。许多企业的核心业务系统已经运行多年,并积累了大量的数据和业务流程。将大模型引入这些系统需要进行复杂的数据迁移和系统改造工作,这不仅需要投入大量的时间和资源,还可能带来潜在的风险和不确定性。
因此,尽管大模型在某些边缘业务上的应用取得了一定的成效,但在核心业务中的应用仍然需要谨慎考虑。企业在决定是否引入大模型时,需要全面评估技术的适用性、成本效益和系统集成等因素,确保技术能够真正为企业带来价值。
第三章:未来展望与策略建议 尽管目前大模型在企业业务中的应用还存在一定的挑战和限制,但随着技术的不断进步和应用的不断深入,相信未来会有更多的企业能够成功拥抱AIGC。
首先,随着算法和计算能力的提升,大模型的准确性和稳定性将得到进一步提高。这将使得大模型能够更好地适应各种复杂和特定的场景,为企业提供更加精准和可靠的解决方案。
其次,随着数据资源的不断丰富和共享,大模型的应用将更加广泛和深入。企业可以通过共享数据和模型来共同推动AIGC技术的发展和应用,实现资源的优化配置和效益最大化。
此外,随着人才培养和行业合作的加强,企业将有更多机会获得专业的AI人才和技术支持。这将有助于企业更好地理解和应用AIGC技术,推动业务创新和转型。
然而,在拥抱AIGC的过程中,企业也需要制定明确的策略和建议。首先,企业需要明确自身的业务需求和目标,选择适合的大模型和技术方案。不同的业务场景和需求可能需要不同类型和规模的大模型,企业需要根据实际情况进行选择。
其次,企业需要加强技术储备和人才培养。通过引进和培养专业的AI人才,建立自己的技术团队和研发能力,企业可以更好地掌握和应用AIGC技术,推动业务的创新和发展。
最后,企业需要关注数据安全和隐私保护问题。在使用大模型的过程中,企业需要建立完善的数据管理和安全机制,确保数据的安全性和隐私性。同时,企业也需要遵守相关法律法规和行业规范,避免数据泄露和滥用等风险。
综上所述,尽管并非所有的企业都适合立即拥抱AIGC,但随着技术的不断进步和应用的不断深入,相信未来会有更多的企业能够成功利用这一技术推动业务创新和发展。企业需要根据自身情况制定明确的策略和建议,谨慎而积极地拥抱AIGC技术。
小结 通过对AIGC趋势与挑战、大模型在企业业务中的应用现状以及未来展望与策略建议的探讨,我们可以得出以下结论:
首先,AIGC技术的发展确实为各行各业带来了巨大的机遇,但并非所有企业都适合立即拥抱这一技术。企业在决定是否引入大模型时,需要充分考虑自身的技术实力、业务需求、数据安全以及成本效益等因素,进行综合评估。只有确保技术能够真正为企业带来价值,才值得投入资源和精力。
其次,大模型在企业业务中的应用仍处于初级阶段,面临着诸多挑战。尽管一些企业在边缘业务上进行了尝试,但大模型在核心业务中的应用仍然需要谨慎考虑。企业需要关注大模型的准确性和稳定性,确保其能够适应复杂和特定的场景。同时,还需要考虑成本效益和系统集成等问题,确保技术的顺利引入和应用。
展望未来,随着技术的不断进步和应用的不断深入,相信大模型在企业业务中的应用将更加广泛和深入。企业需要加强技术储备和人才培养,紧跟技术的发展趋势,把握机遇,推动业务的创新和发展。同时,也需要关注数据安全和隐私保护等问题,确保技术的可持续发展和企业的长期利益。
总之,拥抱AIGC技术是一个复杂而长期的过程,需要企业根据自身情况进行决策和规划。只有在全面评估技术的适用性、克服挑战并制定相应的策略和建议的基础上,企业才能成功利用AIGC技术推动业务创新和发展。
一、Ollama 大模型部署 Ollama 简介: Ollama 是一个开源的大型语言模型服务工具,它帮助用户快速在本地运行大模型。通过简单的安装指令,用户可以执行一条命令就在本地运行开源大型语言模型。极大地简化了在 Docker 容器内部署和管理 LLM 的过程,使得用户能够快速地在本地运行大型语言模型。
Ollama 安装部署: 官方网站:https://ollama.com/
下载地址:https://ollama.com/download,以 Mac OS 为例,下载后解压即用,支持多平台一键安装。
官方模型:https://ollama.com/library,我们以 70 亿参数的大模型部署到本地来进行演示。
模型启动:下载完成后打开终端,即可操作 Ollama 相关的命令
查看当前模型列表 # 查看当前模型列表 ollama list 拉取模型: # 拉取模型 ollama pull 启动模型: # 启动模型 ollama run llama3:70b 其它命令: Available Commands: serve Start ollama create Create a model from a Modelfile show Show information for a model run Run a model pull Pull a model from a registry push Push a model to a registry list List models cp Copy a model rm Remove a model help Help about any command 大模型交互演示: ⚠️ 注意:大模型的运行对 GPU 的要求比较高,请根据自己的电脑配置选择合适的模型,以我目前这台 Macbook 30核 GPU 为例,在模型运行期间的 GPU 使用情况如图所示,存在轻微卡顿现象:
个人视频简单讲解链接(不喜勿喷,狗头保命🤭):
copilot的免费使用简单讲解_哔哩哔哩_bilibili
情况说明: 一.查到这篇文章的朋友可能都已经会魔法啦(如果有问题可以私聊解决);
二.在使用bing自带的copilot的时候遇到的问题
①.提示重复登录;
②.出现地区限制等等。
如下图:
问题本质:微软账号为qq邮箱或者其他邮箱的地区可能设置为中国地区了。
解决方案: ①. 登录gmail官网注册一个非中国地区的账号: Gmail: Private and secure email at no cost | Google Workspace
注意:电话可以是中国地区电话验证,但是前面注册填写的地区一定要与节点位置相同!
年龄我建议也要设置为大于18岁可以减少一些不必要的麻烦和限制。
需要注意的是你的节点地区与你的注册地区一致!(本人操作是这个情况,未测试不一致的情况)
举例:→,注册地区也要是霉国。 ②.gmail账号注册完毕后你就可以在edge上面登录测试了
③.然后就成功啦!祝大家ai使用愉快。(不懂可以私信我)
要解决 "welcome to nginx!" 错误,需要检查虚拟主机配置,启用虚拟主机,重新加载 nginx,如果无法找到虚拟主机配置文件,则创建默认页面并重新加载 nginx,这样错误消息将消失,网站将正常显示。
如何解决 "Welcome to nginx!" 错误
当访问网站时收到 "Welcome to nginx!" 错误消息时,表示网站使用了 Nginx 网络服务器,但尚未配置虚拟主机或页面。解决此错误的步骤如下:
步骤 1:检查虚拟主机配置
虚拟主机是将域名映射到特定网站文件夹的配置。在 Nginx 中,虚拟主机通常存储在 /etc/nginx/sites-available 目录中。检查是否有与您的域名相匹配的虚拟主机配置文件。
步骤 2:启用虚拟主机
如果存在虚拟主机配置文件,请确保已启用。为此,请使用以下命令:
1
<code>sudo ln -s /etc/nginx/sites-available/<your_domain_name> /etc/nginx/sites-enabled/</your_domain_name></code>
将 <your_domain_name></your_domain_name> 替换为您的域名。
步骤 3:重新加载 Nginx
在进行更改后,需要重新加载 Nginx 以应用更改。为此,请使用以下命令:
1
<code>sudo nginx -t && sudo systemctl reload nginx</code>
步骤 4:创建默认页面
如果没有虚拟主机配置,则需要创建一个默认页面。将以下内容保存到 /var/www/html/index.html 文件中:
1
2
3
4
<code class="html">
<title>Welcome to My Website</title>
<h1>欢迎来到我的网站</h1>
代码训练(15)LeetCode之买卖股票 Author: Once Day Date: 2024年4月22日
漫漫长路,才刚刚开始…
全系列文章可参考专栏: 十年代码训练_Once-Day的博客-CSDN博客
参考文章:
122. 买卖股票的最佳时机 II - 力扣(LeetCode)力扣 (LeetCode) 全球极客挚爱的技术成长平台 文章目录 代码训练(15)LeetCode之买卖股票1. 原题2. 分析3. 代码实现4. 总结 1. 原题 给你一个整数数组 prices ,其中 prices[i] 表示某支股票第 i 天的价格。
在每一天,你可以决定是否购买和/或出售股票。你在任何时候最多只能持有 一股 股票。你也可以先购买,然后在同一天出售。
返回你能获得的最大利润 。
例如对于prices = [7,1,5,3,6,4],最大利润为7,即:
在第 2 天(股票价格 = 1)的时候买入,在第 3 天(股票价格 = 5)的时候卖出, 这笔交易所能获得利润 = 5 - 1 = 4 。随后,在第 4 天(股票价格 = 3)的时候买入,在第 5 天(股票价格 = 6)的时候卖出, 这笔交易所能获得利润 = 6 - 3 = 3 。总利润为 4 + 3 = 7 。 2.
Stable Diffusion可以根据文本描述生成相关的图像,是当前最热门的文生图模型。
在Ubuntu下,可以选择快速安装,或者手动一步步安装。
快速安装 使用文档中的方法,先下载一个sh文件,然后执行这个文件,就自动安装依赖,自动启动服务了。
首先安装好需要的库 # Debian-based: sudo apt install wget git python3 python3-venv libgl1 libglib2.0-0 # Red Hat-based: sudo dnf install wget git python3 gperftools-libs libglvnd-glx # openSUSE-based: sudo zypper install wget git python3 libtcmalloc4 libglvnd # Arch-based: sudo pacman -S wget git python3 下载sh并执行: wget -q https://raw.githubusercontent.com/AUTOMATIC1111/stable-diffusion-webui/master/webui.sh sh webui.sh 如果github抽风导致git clone失败,可以进入webui.sh文件,修改其中的"${GIT}" clone https://github.com/AUTOMATIC1111/stable-diffusion-webui.git "${clone_dir}"
到 "${GIT}" clone --depth 2 https://github.com/AUTOMATIC1111/stable-diffusion-webui.git "${clone_dir}" ,可以提高成功率。
也可以手动去进行git clone指令。
后面按部就班一路安装成功即可。
也可以手动安装,手动安装可以较自由的选择torch版本等。
下载安装 下载注册discord在探索可发现的服务器中第一个就是midjourney,添加,然后创建一个只有你自己的服务器后添加mj机器人到自己的服务器。具体可以参考购买midjourney https://www.bilibili.com/video/BV1R84y1f7tW/?spm_id_from=333.337.search-card.all.click&vd_source=416abd3fe30c00c5d242a51f81fa8a0a
以下是步骤二的图片
以下是步骤三的图片
花完钱之后你就可以开始你的绘画之旅了~~~
命令解析 在聊天框中打入/就可以看到MJ提供的命令,下面我们来看一下常用的命令有哪些:
/imagine:最主要命令,生成图片
/describe:上传图片生成4个文本描述
/ask:可以向机器人提问
/blend:图像混合模式,2-5张图片溶图合成新图,尽量保持宽高比一致
/fast:快速出图模式
/help:帮助项,引导式帮助使用
/info:查看基本信息,如订阅状况工作模式,出图时间等等
/prefer remix:切换到混合模式,每次点V都可以输入提示词
/private:切换到隐私模式,每月60美元会员才有效
/public:切换到公开模式,生成的图片都是公开的可以看到提示词
/relax:切换到慢速出图模式,如果快速模式耗尽就选择慢速
/settings:查看和调整出图的模式设置
/show:查看指定job_id的出图,一般是需要重新小细节修改的步骤
/shorten: 可以精简关键词,让系统给你分析你的描述词哪些是无效关键词,可以去掉。
出图写法 在聊天窗口输入/imagine命令后就可以在prompt的输入框内填写自己的提示词,imagine提示词基本格式为
参考图片+文本提示词+参数
参考图片: 可以将你要给的参考图片直接拖入聊天框,然后回车上传,然后可以在上传的图片上右击复制链接,将链接放入/imagine的prompt中就可以了。当然参考图片不是必填选项。
文本提示词组成部分: 主体描述:告诉Midjourney要画的主体是什么,是画人、动物还是风景,例如:一个站在操场上的小女孩环境背景:所处的背景描述,例如:一个开满鲜花的后花园风格参考:是写实风格、写真,卡通,赛博朋克、山水画还是水墨画等镜头构图:超广角、俯瞰图、正视图、半身像、微距等光线灯光:自然光、电影光、丁达尔效应、侧光、逆光等主色调:绿色、红色、蓝色、温暖等质量:高细节、高品质、高分辨率、32k、电影画质等渲染:Unreal Engine、Unity、Octane render、C4D等 常用参数 --v 6:v代表version版本,当前最新版本是6,个人觉得已经很强大了,在后面会给出几张强大的v6图片。
--stylize: 可调节风格化的程度,低stylize生成的图片与提示会非常匹配,但艺术性不高。高stylize值创建的图片非常具有艺术性,但与提示词的关联较少。
--aspect:画面大小格局,简写--ar,使用方法 --ar 9:16
常用比例有:
1:1:常用于头像、产品、广告等展示16:9:宽屏幕,是高清电视和视频的标准宽高比9:16或3:4:竖屏幕,是智能手机上垂直方向的标准宽高比,通常用于社交媒体应用程序中的视频4:3:曾经是电视和计算机显示器的标准宽高比,现在不太常用21:9:电影宽屏幕,是一些电影院和电视制作公司使用的宽高比 注意:比例必须是整数,不能使用小数。
--quality: 图片质量,简写--q,使用方法--q 1
--sameseed:随机种子,简写--seed,使用方法--seed 123456
使用相同的种子号和提示将产生类似的结果图像。但是一旦改变提示词,即使相同的seed值也不能保证生成统一的图像。
--stop 80:绘画到中途就停止,可以有更不确定的一个图案,实际存在中途的图比最终的图更令你满意。
--iw 2:垫图权重,权重越高,表示和你给的参考图越相似,默认值是1,取值范围是0.5-2。一般作用在控制任务或者商品的用途中。
提示词权重分割: 提示词a::提示词b,例如火腿,不切分的时候是火腿(食物),切分之后是火和腿,着火的腿
那么目前关于MJ的基础学习就到这里了,感谢大家的观看!!!
目录 1. 链表的概念及结构2. 实现单链表3. 链表的分类 1. 链表的概念及结构 概念:链表是一种物理存储结构上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表的指针链接次序实现的。
链表的结构跟火车车厢相似,淡季时车次的车厢会相应减少,旺季时车次的车厢会额外增加几节。只需要将火车里的某节车厢去掉/加上,不会影响其他车厢,每节厢车都是独立存在的。
车厢是独立存在的,且每节车厢都有车门。想象一下这样的场景,假设每节车厢的车门都是锁上的状态,需要不同的钥匙才能解锁,每次只能携带一把钥匙的情况下如何从车头走到车尾?
最简单的做法:每节车厢⾥都放一把下一节车厢的钥匙。
在链表里,每节“车厢”是什么样的呢?
与顺序表不同的是,链表里的每节“⻋厢”都是独立申请下来的空间,我们称之为“结点/节点”。
节点的组成主要有两个部分:当前节点要保存的数据和保存下一个节点的地址(指针变量)。
图中指针变量plist保存的是第⼀个节点的地址,我们称plist此时指向第⼀个节点,如果我们希望plist指向第⼆个节点时,只需要修改plist保存的内容为0x0012FFA0。
为什么还需要指针变量来保存下一个节点的位置?
链表中每个节点都是独立申请的(即需要插入数据时才去申请一块节点的空间),我们需要通过指针变量来保存下一个节点位置才能从当前节点找到下一个节点。
结合前⾯学到的结构体知识,我们可以给出每个节点对应的结构体代码:
假设当前保存的节点为整型:
struct SListNode { int data; //节点数据 struct SListNode* next; //指针变量⽤保存下⼀个节点的地址 }; 当我们想要保存一个整型数据时,实际是向操作系统申请了一块内存,这个内存不仅要保存整型数据,也需要保存下一个节点的地址(当下一个节点为空时保存的地址为空)。
当我们想要从第一个节点走到最后一个节点时,只需要在前一个节点拿上下一个节点的地址(下一个节点的钥匙)就可以了。
给定的链表结构中,如何实现节点从头到尾的打印?
思考:当我们想保存的数据类型为字符型、浮点型或者其他自定义的类型时,该如何修改?
链式结构在逻辑上是连续的,在物理结构上不一定连续节点一般是从堆上申请的从堆上申请来的空间,是按照一定策略分配出来的,每次申请的空间可能连续,可能不连续 我们可以这样来改善一下代码:
typedef int SLdatatype;//类型重定义 struct SListNode { SLdatatype data; //节点数据 struct SListNode* next; //指针变量⽤保存下⼀个节点的地址 }; 这样一来,如果后续涉及到要存储其他的类型的时候,代码量又比较多的时候,就不需要一个一个的去修改存储的类型了,只需要将typedef后面的类型一键替换就可以了。嘿嘿,是不是很巧妙呀😎
2. 实现单链表 SList.h
#include <stdio.h> #include <stdlib.h> #include <assert.h> //定义节点结构 typedef int sldatatype; typedef struct SListnode { sldatatype data;//数据 struct SList* next;//指向下一个节点的指针 }Sltnode; //尾插 void Sltpushback(Sltnode** phead, sldatatype x); //打印节点 void Sltprint(Sltnode* phead); //头插 void SltpushFront(Sltnode** pphead, sldatatype x); //尾删 void SltPopBack(Sltnode** pphead); //头删 void SltPopFront(Sltnode** pphead); //查找节点 Sltnode* SltFind(Sltnode* phead, sldatatype x); //指定位置前插入 void SltInsert(Sltnode** pphead, Sltnode* find, sldatatype x); //指定位置后插入 void SltInsertafter(Sltnode* pos, sldatatype x); //删除pos节点 void SltErase(Sltnode** pphead, Sltnode* pos); //删除pos之后的节点 void SltEraseAfer(Sltnode* pos); //销毁链表 void ListDestroy(Sltnode** pphead); SList.
文章目录 前言2 核心功能2.3 Service接口2.3.3 Lambda2.3.3.1 lambdaQuery2.3.3.2 lambdaUpdate 2.3.4 批量新增 3 扩展功能3.1 代码生成3.2 静态工具3.2.1 基本用法3.2.2 代码实例 3.3 逻辑删除 前言 MyBatisPlus详解系列文章:
MyBatisPlus详解(一)项目搭建、@TableName、@TableId、@TableField注解与常见配置
MyBatisPlus详解(二)条件构造器Wrapper、自定义SQL、Service接口
2 核心功能 2.3 Service接口 2.3.3 Lambda IService接口中还提供了Lambda功能来简化复杂查询及更新功能。
2.3.3.1 lambdaQuery 例如,要实现一个根据复杂条件查询用户信息的接口,接口文档如下:
接口请求方式请求路径请求参数返回值根据条件查询用户列表GET/user/listUserQueryList<User> 查询条件UserQuery的字段如下:
username:用户名关键字,可以为空status:用户状态,可以为空minBalance:最小余额,可以为空maxBalance:最大余额,可以为空 上述条件有可能为空,因此在查询时需要做判断。
首先定义一个查询实体类UserQuery:
// com.star.learning.pojo.UserQuery @Data public class UserQuery { private String username; private Integer status; private Integer minBalance; private Integer maxBalance; } 接着在UserController类中编写一个list()方法:
// com.star.learning.controller.UserController @GetMapping("/list") public List<User> list(UserQuery userQuery) { // 1.组织条件 String username = userQuery.
注:一些实体类数据自行修改 1,api文件 import request from '@/router/axiosInfo'; export const uploadChunk = (data) => { return request({ url: '/api/blade-sample/sample/covid19/uploadChunk', method: 'post', data }) } export const uploadMerge = (data) => { return request({ url: '/api/blade-sample/sample/covid19/uploadMerge', method: 'post', data }) } 2, axios文件 /** * 全站http配置 * * axios参数说明 * isSerialize是否开启form表单提交 * isToken是否需要token */ import axios from 'axios'; import store from '@/store/'; import router from '@/router/router'; import { serialize } from '@/util/util'; import { getToken } from '@/util/auth'; import { Message } from 'element-ui'; import { isURL } from "
文章目录 一、错误记录二、错误分析三、解决方案 该问题之前遇到过类似的 , 但是通过如下更新 Android SDK Platform-Tools 工具版本 的方案解决 ; 参考博客 【错误记录】adb 调试 android 设备报错 ( adb server version (32) doesn‘t match this client (41); killing… )
手机上的 adb server 是新的 , 电脑上的 adb client 很长时间没有更新 , 进入 SDK Manager 中更新 Android SDK Platform-Tools 工具版本即可 ;
本次错误 , 无法通过上述方案解决 ;
重启电脑即可解决本次问题 , 猜测大概率是 电脑开机 插着手机 , adb 初始化错误导致 ;
一、错误记录 使用 adb 命令 , 查看 设备 , 报如下错误 ;
流式对话 在快速入门那节中,演示了阻塞式的聊天调用,一般来说,由于网络请求或AI生成的文本过长等因素,会导致阻塞式的聊天调用对用户的体验非常不好。而目前对于对话式的应用场景,主流的调用方式基本采用的是流式对话。什么是流式对话?流失对话的核心就是流式传输,AI的响应数据是一点一点传过来的,不用等AI将文本全部生成出来了才传过来。一定程度上能够提高使用上的响应速度,给用户一个非常好的体验。
目前流式对话的实现手段主要有两种:SSE和WebSocket协议。SSE是基于Http实现的一种服务端向客户端推送消息的技术,WebSocket则是基于TCP协议实现的全双工通信技术。SSE的实现较为简单,而WebSocket较为复杂,且后者对资源的占用率很高。OpenAI官网采用的是SSE实现的。
Spring AI中流式对话接口采用的是Spring WebFlux异步网络框架实现的,WebFlux底层默认采用Netty,因此,如果需要了解Spring AI流式对话底层的实现,则需要对异步网络编程有一定的了解。当然,这些并不妨碍我们进行简单的调用。
package com.ningning0111.controller; import org.springframework.ai.chat.ChatClient; import org.springframework.ai.chat.StreamingChatClient; import org.springframework.http.MediaType; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import reactor.core.publisher.Flux; @RestController public class ChatController { private final ChatClient chatClient; private final StreamingChatClient streamingChatClient; public ChatController(ChatClient chatClient, StreamingChatClient streamingChatClient) { this.chatClient = chatClient; this.streamingChatClient = streamingChatClient; } @GetMapping("/demo") public String demo(String prompt){ String response = chatClient.call(prompt); return response; } // 流式调用 将produces声明为文本事件流 @GetMapping(value = "/stream",produces = MediaType.TEXT_EVENT_STREAM_VALUE) public Flux<String> stream(String prompt){ // 将流中的内容按顺序返回 return streamingChatClient.