粉丝2850获赞1.1万

大家好,我是 ai 大 妖卢玉伟,现在进入小白 ai 编程入门的第四节大模型 api key 的 获取啊。首先解释一下什么是 api key, api key 的 话就是你调用第三方平台接口时的一个身份凭证,或者说叫访问的钥匙,简单说就是我们作为第三方,然后我们要去调取大厂 的某些的 ai 的 能力啊,那你相应来说的话,你是需要提供这个账号密码啊,类似这样的一个东西过去,然后用于来做身份验证,以及让大傻知道是谁在调用它啊,所以呢,这个的话你可以理解为就是我们的 密钥啊,那由于我们要去创建 ai 相关的一个应用,那么绝大多数的情况之下的话,我们都需要调用到大厂开放出来的这样的 ai 的 能力,所以说呢,第一步我们在开发具体的 ai 用应用之前,我们是需要先去大厂申请这样的一个 api key 的, 我这边的话以火山引擎为势利,来来简单介绍一下整个的一个申请的流程,那么火山引擎的话是字节下面的一个大模型的品牌。 那么首先的话,我们进入到火山引擎,进入火山引擎以后呢,你可以通过手机号啊或者账号密码的方式来进行注册,然后第二步的话呢,就是你需要登录啊,注册完毕以后呢,你就可以进入到我们的火山引擎,进入到火山引擎的话,它也会有各种的一些模型的一个代码 啊,那么我们自己登录进去以后呢,我们可以在我的控制台里面有一个 api 的 访问密钥啊,访问密钥当你没有去创建过的,那么你点进去以后呢,这里面是没有的啊,那么这里面的话呢,它除了这个啊, 主界面这一个 api key access key 以外,然后我们还有一个方舟大模型的专用 api key, 那么这两者有什么不一样呢?就方舟大冒险专用 api key 呢,它主要是针对大模型这块的啊,也就是说如果说大家去啊进行 ai 应用的开发,要做 api 的 一个对接啊,你可以在外面按照用 access key id 的 这种方式啊去进行,这 这个健全,也就是说进行身份的验证,那你也可以通过方舟大模型的专用 api 来做身份的验证啊,那按照实际的一个情况吧,然后直接用方舟大模型的专用 api key, 它的整个的一个身份验证的过程会更简单,然后代码也会更简洁。 对我们小白来说的话,我们推荐直接到方舟大模型的专用 api key 里面来去做相关的一个申请。比如说当我们点击那个以后,我们就会进入到这个 火山方舟的这个里面的 a p a p i k 的 这样一个管理啊,这里面的话会展示出你目前已经生效中的是否有了这样的 a p i k, 你 可以点击左上角的这个创建 a p i k 来进入到 a p i k 的 这样一个创建页面,如果说你创建完毕以后,你有一些 a p i k, 你 觉得你不需要了,你也可以随 时的去把它删除啊。当然当你申请完了 a p i k 以后呢,不是说你的这个整个平台里面的所有的模型 你就全部都可以调用了啊,他还会有一步动作叫做添加资源,也就是说在火山方舟的左下角,他会有一个开通管理,你需要选择你要开通的模型,比如说你点开他选择了以后呢,然后你直接到这个地方来点击立即使用,那么你这个模型就能够开通成功了,当你开通完毕以后, 模型就能够正常的调用,否则的话呢,如果说你没有去开通任何的模型,那即便你已经有了 a p i t, 那 你代码也已经写好了,你会发现你无法联通啊,你的 a p i 根本就不能使用。当然的话,如果是简洁起见,然后 比如我就希望我一次性的开通所有的这个大模型的权限啊,就避免以后一个个来找,那你可以在这个位置来点击 一键开通所有的模型啊,那么这个呢,就是我们的这个 apikey 的 申请的环节啊,其他的一些大厂,比如说千万啊,然后呢包括文熙妍啊等等啊,然后呢他们大厂里面的整个流程也差不多啊,就是每一个的话,你也是进去注册,然后再去申请这样的一个 apikey。 目前的话呢,这个火山引擎这里面它会有蛮多的一些免费资源包啊,就你还没有付钱,它也可能一次性的话,先给你很多模型,都给你提供了几十万的 token, 那对你来说的话呢,对于我们来体验这样的一个产品,其实非常的方便的啊。最后的话呢,重点来做一个说明,就说这个 apikey 是 一个非常重要的一个东西,它就像你的银行卡的密码啊,非常的重要。然后如果说你申请完了以后,你是 绝对不能够外泄的,因为如果你一旦外泄的话呢,别人可能用你的 apikey 在 调用打火机,那么产生的费用的话呢,这种就会由你来支付啊,所以说 apikey 是 需要这个 严格的保密的啊。当然的话,如果说你发现你之前申请的某个人的 k i k 有 可能会有泄露的风险,你也可以直接把它删除,然后重新生成新的,这样子的话呢,就会安全很多啊。那么这一节就到这里。

我们看一下构原理 map 的 使用,首先呢,我们需要声明一个变量,它是 map 魔方来进行声明。 map 中框里面是 b 的 类型,比方说用 string value, 比方说使用 int 整形,那么呢,任何类型都可以作为 mac 的 value, 而想当 mac 的 k 的 话,一般类型都可以,但是个别类型不能,比方说像切片,像函数啊,它们就不能作为 mac 的 k。 好,上面之后呢,我们可以来给大家一个初步化,就是申请内存 m 等于跟芯片一样,通过 make 函数来进行内存的申请。初步化 类型儿,后面是容量,就是你先估计一下将来这个 app 里面会容纳多少个 k 幺六,比方说你估计会容纳大几十个,那么呢,你可以设为一百, 然后避免扩容,因为 mac 的 扩容它比 shift 的 扩容成本要大得多,会影响你的性能。 好,那也可以呢,在抽象的同时,直接往里面添加些值,比方说 m 等于 mac, 这些值呢,直接放在大括号里面,跟那个数值切片的初十二负值很像,只不过呢,因为它外号含有 k value 嘛,那么 k 冒号 value, 再来一个 k 冒号 value。 好, 这样的话我们第九行就可以不要了,有第十行就够了, 虽然已经给它赋了两个值,但是难免你后面还想往继续往里面添加新的值。也可以直接 map, 然后中括号加个 key 等于 value, 这样也可以。好,那假如说你想修改 a, 本来是等于三的,你想修改 a 变成值的话,直接 再写一行就可以了, a 这个地方 a 等于四啊,因为 map 里面 k 是 不允许重复的,那这样的话,你 a 就 重复了嘛。那实际上说后面的 a 呢,它的值会覆盖前面的这个值, 那我们可以把 a 对 应的 value 打印出来看一看。 取得 key 对 应的 value 的 话,怎么取呢?你就直接 mac 中括号,然后把 key 放这儿就可以了,这样我们就可以把 a 对 应的 value 给读出来,我们打印出来看一看, 它等于四,是吧?已经把之前的三给覆盖了。好,那我们也可以从 map 里面呢,删除某一个 key, 通过 delete 函数 delete, 然后把 map 传进来,再把对应的 key 传进来。 好,这样的话呢, map 里面就没有 a 这个 key 了,我们可以来试一下啊,我们再把 再把 a 对 应的 value 再打印一遍,看一看会发生什么事情, 再 run 一 次。哎,我们发现这个时候呢,它输出 a 对 应的 value 是 零,那这个时候就比较麻烦了。为什么呢?因为 a 啊,这个 key 明明被删掉了,对于不复的 key 呢,你还去读它对应的 value 够远呢,会返回 value 这种数据类型的零值,那对因特而言,它的零值就是数字零, 麻烦在什么地方呢?对于这种情况,我们实际上并不知道,这个零到底是我们人为故意往里面写的 a 定的是零,还是说 a 不 存在,导致它返回了个零,那怎么办呢?为了区分这种情况啊,为了探听真相,我们可以这样做。 excel 是 否存在 excel? 哎,这样的话呢,我们采取输出这个 v, 采取输出这个 v。 好,第十七行代码,这个什么意思啊?那么呢,我们试图去取得 a 对 应的 value, 它返回的是两个值,如果成功取到,那么就赋给了这个 v value。 但是呢,第二个会先判断这个 key 是 否存在 啊?如果存在的话,就说一幅通过分号,后面跟的是两部分吧,第二部分才是你要判断的那个条件,而第一部分呢,是完成一些局部变的。说实话,如果说存在的话,我们才会去使用这个微,如果说不存在的话,那说明 map 里不存在 a 这个 key, 我 说 map 中不存在 a 这个 key。 好, 我们再转一下,是不是 map 中不存在 a 这个 key all right? 最后我们演示一个关于 map 的 便利啊, map 里面有很多 k 变量吧,还是通过 for range 来进行便利,只不过呢,这个时候 range 它直接返回的就是 key 和 value range 啊, for range 来便利一个 map 好。 map 里面本来是有 a, b, c 三个 key, 后来呢,删除了 a, 只剩下 b 跟 c 这两个 key 了。我们来运行一下, 其中它只剩下 b 和 c 这两个 k, 以及它们对应的 y 是 六和九,这里面会输出 k 和 v。

release 的热 k 和 w 如果处理不好呢,造成的线上问题呢,足够让你的经销垫底,那么在面试的时候呢,热 k 跟 w 也同样是比较高频的问题 哦,正常情况下呢,像 release 进行中啊,数据都是比较均匀的分布在每一个节点上啊,请求呢,也会均匀的分布到每一个分片上, 但是呢,一些特殊的场景中,比如说外部的爬虫啊,攻击啊,热点商品等等啊,最典型的就是明星啊,在网上宣布了离婚, 那么吃瓜群众呢,纷纷的去留言,那么就会导致这个评论的功能崩溃,那么这种短时间内啊,某些 k 访问量过大,然后请求到统一台数据封面上, 呃,最终呢会导致该分片不堪重负啊,成为瓶颈,最终呢将会导致缓存血崩。那么怎么监测热 k 呢?常规呢,就是根据业务以往的数据啊, 做一个判定,比如说我们的促销活动对吧啊,商品啊,秒杀啊,还有这个热门的话题啊,节假日啊,还有纪念日活动等等,或者在调用啊, release 的时候呢,写一个方法来判定啊,如果见证到某一个 k 的 qbs, 如果达到了这个一千啊,你就要小心了,可能就是一个热 k, 那么怎么解决肉体问题呢?呃,常规呢,有几个方案啊,硬件上我们都知道啊,可以扩容对吧,增加分片副本多了呢,自然压力就分担了一些,防止当个机器打挂啊。还有一种呢,就是使用这个二级缓存啊,把热点数据呢放到 jbm 的本地缓存中, 本地缓存呢,我们可以使用这个咖啡啊,对吧, eh catch 还有这个挂瓦这样呢,就直接读到了本地缓存了,还不需要再去请求 release, 就省去了一次这个远程的 i o 调用啊。我们呢,同样也可以使用一些配件啊,比如说像这个接地 一个 hello key, 对吧,会自动的去监测你的 real key, 并且转为 j v m 本地缓存啊。当然了, real key 的解决方案啊,还有很多啊,如果大家知道有其他的一些解决方案,欢迎在评论区给我留言,谢谢!

获取微信聊天年度报告教程来了,教程需要用到电脑,不需要电脑的都是骗人的。首先我们需要用到这两个软件,这两个软件可以前往我的粉丝群获取。首先我们打开这个位 获取微信的密钥,点击提取密钥,这里需要登录一下微信, 点击进入微信,然后需要手机确认一下已经成功提取密钥,点击复制, 然后打开第二个软件,找到一开头的软件, 第一次使用的话,我们需要配置一下,点击设置, 这里把刚才提取的密要填进去数据库地址,我们直接点击自动检测就可以,如果它检测不到的话,你们手动选择一下 账号 id, 这里如果没有显示的话,点击扫描就好了。然后就可以点这个数据分析查看年度报告,我们点击一下就可以看到了,选择范围我们选择二零二五年的好,等待生成完成就可以看到了, 这里可以看到我们的二零二五年的微信聊天年度,剩下的你们可以自己看就可以了。工具的获取的话可以前往我的粉丝群,感谢大家观看,再见!

我以为二零二五年我见过最厉害的代码是这段获取 k 长度。直到今天,我在网上刷到一个视频,看到了真正的粪土。那说句实话,这行代码我愿称之为人类软件工程的行为艺术。 这个高危代码来自于 getharp 隐私 rana, 那 getharp 的 官方运维工具?对,就是那个全世界程序员每天都在用的交友社区。那事情是这样的,二零二五年四月,有个老哥提了个一秀,他说自己在 xiv rana 里经常看到一个叫 save sleep 的 进程,卡死。 那看到这个名字我就想笑,安全睡眠不愧是国外的,来,我们看看到底是怎么安全睡的。各位请起立, 让我们一起瞻仰这四行神仙代码。这段脚本的本意是代替标准的 sleep 命令那虽然我也不知道为什么不直接用 sleep, 那 第一个潮点来了,它叫 sleep sleep, 但它压根没 sleep 啊。这是一个纯自选, cpu 一 直在空循环,不停地问自己一句话, second 是 现在等于目标值了吗?等了吗?等了吗?等了吗? 这就好比什么,就好比你上班想睡觉,但怕被领导抓,于是你每一秒睁一次眼,那抬头看看领导在不在, come on, 你 管着要睡觉。但这还不是最离谱的,我们继续分析。这个 seven 是 back 的 内置变量,每秒自动加一, 所以这段代码的逻辑是从零开始数秒,每秒加一,等到等于用户给的时间时,就退出循环。听起来好像没毛病的。举个例子,用户传的参数 seven 四 一二三,那就在等于三的那一瞬间, cpu 时间片被调走了,等这个进程再回来。完了, x 变成四了,而判断条件是不等于三。恭喜你,他这辈子都等不到三了,直接进入无限死循环。但你换个角度想,站在公司立场上,这可能是一段好代码, 因为 get 哈 action runner 是 按时间计费的。那无限死循环是坏事吗?不,那是商业闭环,一个字。 其实修复这个 bug 很 简单,把不等于改成小于就行了。那当然,这只能修复无限循环。那至于用空转代替 sleep 这个神逻辑,那就是哲学问题了。 你以为到这里就结束吗?不,真正的高手在前身。后来大家在一秀里复盘,发现 c 五 sleep 的 最初版本是这样的,有 sleep 就 用 sleep, 没毛病。没 sleep 用 ping, 不是 p 还能当睡眠用。那他的逻辑是,往本地发五个 i c m p 包,每个大概一秒,模拟五秒休眠。 come, 你 是玩真的啊,那如果 p 也没有呢?终极兜底方案来了,一口循环五千次,假设每次一毫秒,那近死五秒。我只能说一句, 喵,这个人太懂降级策略了,最优解,次优解,兜底解,都穿地心的解, 为了兼容性不惜献计。 c p u。 这不是一般的程序员啊,不愧是有大咖思维的程序员。大家今年都遇到过哪些高级代码?欢迎在评论区一起修行。如果你觉得这个视频有意思,点个关注,我们下期见!

今天给大家介绍两款指标采集工具,第一款就是大名鼎鼎的这个普斯米苏斯,普斯米苏斯的话他出名比较早,那他的技术架构的话,我们来看一下,他技术架构的话就是通过 exporter 把指标暴露,然后呢这个 啊普斯密斯搜我的话进行一个指标采集,然后存储,然后的话另外的话我们在呃这个普斯密搜我的话就是可以通过这个喷雾搜口进行一个啊查询,查询完了之后呢,我们另外一个就是可以通过呃另外一个技术上就是我们 gfa 进行一个可数啊展示。 gfa 的 话是一个 ui 工具,它可以对这个喷雾搜口里面的数据进行可数啊展示。另外的话它也可以通过这个 online manager 进行一个啊告警。 online manager 的 话,它主要是做一个啊告警的收敛的一个组建,然后呢再通过我们的这个 online manager 把这个消息推到我们的这个邮件啊,企微啊,飞书等等,它它都是支持的。 然后这个就是我们啊普吉米斯的技术架构,那另外这个的话就是我们的格式化工具就高翻了,那这个是传统的,或者是说出门比较早的一个指标采集工具,那我们来介绍另外一款 啊,这一款他目前呢是啊跟这个普吉米斯的话啊,有一个非常强悍的一个竞争压力,那这款工具的话,他是 迎合我们的 k 八 s 这种部署架构的,然后呢它是呃支持这种微服务的部署架构,那它的主键分很多,比如就是有啊 v m agent 啊, mail alert 啊, mail x 啊, 以及这个 vr 的 store 等等,它还有给位啊等等,你存储了它都有,那它这款工具的话它分企业版跟社区版,社区版有些主键是不能使用的,像给位的话它社区版就不能使用,但是的话 啊这款工具你使用它呃开源的也能满足呃大部分的业务需求,在一些呃大企业或者小型企业的话也有部署这种开源的技术架构的啊,这个 mit 士 它也是能跟这个嗯啊格发呢进行一个啊绑定的,你只要啊把它的这个格发呢的这个数据源指到我们的这个啊比特姆斯的它就是可以的,因为它它这个数据是兼容 我们的这个啊 prometheus 的, 就说它对 prometheus 的 啊这个 exporter 的 这种数据结构的话也是进行一个兼容性的处理。但是它的 circle 叫做 wittermaker circle, 但是呢它其的 circle 的 话跟啊这个 这个 phone 的 这 pro 四口它基本是一致的啊啊这个我就推荐给大家,大家的话如果在做这种啊监控啊之类的可以使用一下这个比较新的技术架构,就是我们的 winters。

bitlock 密钥,电脑硬盘用 bitlock 加密后忘记密码打不开,硬盘有一把锁,双击点开 右上角提示输入密码,也可以输入恢复密钥,但是忘密码了。官方提供的几个方法找回途径,可惜这几个方法都不行,第一我没有登录微软账户,第二,本地备份的密钥文文本丢失,第三,更没有打印到纸上, 但是之前这个电脑是自动解密能打开的,通过分析,密钥有可能保存在 t p m 里面。 接下来尝试找回密钥,先用工具读取系统内存镜像,打开镜像工具左上角点开文件,选择内存镜像,选择镜像保存到桌面,稍微等等就备份好了。怎么读取这个内存密钥呢? 可以用到我们这个工具,选择磁盘解密, bitlock 选择我有内存镜像,选择打开刚才的加密盘,再选择磁盘分区, 中间选择刚才备份的内存文件,最后点右下角解密。这个找回过程会比较长,直接跳到后面,如果能找到,中间就会出现密钥,对 recovery key 双击复制, 回到我的电脑,重新打开一盘,输入丢失的密钥。这种找回密钥的前提是需要在这个电脑打开过,而且内存里面还有保存密钥,多次关机就有可能找不回来,有问题需要找回密钥的可以留言交流。

简单三步教你安装最近爆火的 lovekey 键盘最新版,它不仅可以基于 ai 智能给出回复建议,还能个性化键盘样式,同时支持手机和平板。下面我快速分享给大家。首先点右下角分享键 分享复制链接,复制成功后我们打开这个蓝色小鸟,没有的话就去安装一个,打开后会弹出一个资源包,如果没有弹出,就在这里搜索三虎资源,然后打开这个文件夹,找到这个软件保存下载安装就可以用啦。

今天我们来刷 l r u 缓存,现在请你设计一个 l r u 缓存。 l r u 是 一种缓存淘汰策略,表示最久未用的那个 key 将被淘汰。它要支持三个方法, 构造方法会指定缓存的容量。 capacity get 方法,通过 key 获取对应的 y 流,复制方法会更新或插入一对 key, y 流 key 存在就更新,不存在就插入。 同时这里要求 get 和 put 的 方法呢,平均时间复杂度为 o 一。 我们再通过视例来看一下如何使用这个 l r u catch。 首先创建一个容量为二的 l r u 缓存,那题目上面给我们的输入呢?第一行表示调用的方法, 第二行呢,表示对应方法的参数。调用两次 put 方法之后呢,我们的缓存就已经满了,调用 get 方法 一在缓存中,所以呢,直接返回一,调用 put 方法,因为我们的缓存已经满了,此时呢,要淘汰一个 key 来腾出空间。具体淘汰哪个呢?我们从下往上来看。 三是我们要插入的值肯定会在缓存中,一呢我们刚刚用过,所以淘汰的呢就是二,再调用 get 二,二刚被淘汰,所以返回负一表示没有找到。调用 put 方法, 又要淘汰一个 key, 我 们还是从下向上看,四肯定会在缓存中,三呢是刚插入的,所以这次淘汰的呢是一,再调用 get 一 是不是就返回负一了,之后的 get 三和 get 四都返回对应的 y 流, 好知道怎么用这个缓存了,那我们自己怎么实现它呢?通过 get 和 put 方法的平均时间复杂度呢?都为 o 一。 这个约束条件可以想到用哈希表, 同时我们还要记录访问或插入的时间顺序,这样才能淘汰最久未被使用的那个 key, 也就是满足 l r u。 所以 可以想到用链表, 那我们的底层数据结构就有了,它是哈希表和链表的组合。接下来我们看一下代码是如何实现的。首先创建链表的节点 node, 这里面有 key 和 value, 还有前驱和后继节点。 创建我们的底层存储结构 map 哈希表和链表的虚拟头节点和虚拟尾节点。 调用 put 和 get 方法时呢,会将对应的节点调整到链表的头部,所以我们需要虚拟头节点,那链表尾部呢,就是最久未被使用的 key, 可能呢会被淘汰,所以呢,我们还需要一个虚拟的尾节点。然后是缓存的容量 capacity 实现构造方法, 抽象化这些变量,实现 get 方法。哈希表可以通过 key 在 o e 的 时间内快速找到 node 节点。如果 node 等于 non, 表示节点不存在,直接返回负一。然后通过先将节点删除再插入的方式将它调到链表的头部,最终返回 node 的 值。删除节点的方法 remove node 只有两行代码,假设要删除 k 二 v 二这个节点,这行代码表示将 k 三的 pro 指征指向 k 一, 这行代码表示将 k 一 的 next 指向 k 三。现在无论是从前向后访问还是从后向前访问,都没有链路可以访问到 k 二了,相当于 k 二从链表中被删除了。在链表头部加入节点的方法, add after first。 假设我们将 k 二加入到链表头部这两行代码将 k 二与 k 一 建立连接,这两行代码将哨兵节点 first 与 k 二建立连接。最后是扑克方法 还是先从哈希表中获取 node? node 不 为空,表示已经存在,直接更新 node 的 值,然后将其从列表中删除,走到这里表示不存在, 执行的是插入操作。先判断是否到达缓存容量上限,如果达到了,就将末尾节点淘汰。末尾节点我们通过 tail 点 per 得到。先从 mac 中删除,再从列表中删除。这两行代码呢,也可以合并成一行, 然后创建 node 节点,将它放在 map 中。这两行呢,也可以合并,最后在列表头部插入节点。好,以上就是今天所学内容。

欢迎来到每天学点编程第五期,今天我们要聊的是拍放中非常强大的数据类型字典。为什么叫字典呢?因为它和我们查字典的逻辑一模一样。 在字典中,信息是成对出现的,我们称之为键值。对,每一个键都对应着一个确定的值。 比如我们可以用 name 作为键来存储名字, alice 用 age 作为键来存储年龄。二十五。注意,字典里的键必须是唯一的,就像身份证号一样,但值是可以重复的。 在 python 中,我们使用花果号来定义字典。键和值之间用冒号隔开,每对信息之间用逗号分割。如果我们念到这键的名字,就能瞬间拿到它的值, 这比在列表里挨个查找要快得多。字典也是可变的,我们可以轻松修改或添加新的内容。看,我们给爱丽增加了一个城市属性。 总结一下,字典由大括号定义由建职队组成,它是处理结构化数据的不二之选。每天学点编程,我们下期见!