利用第三方 Deepseek API 实现 AI 辅助应用

最近一段时间,AI 圈最热的话题莫过于 Deepseek。它作为国内团队“弯道超车”的典型案例,同时受到两种不同立场群体的吹捧与批评。不过,抛开政治和技术上的争论,单从普通人使用 AI 的成本与门槛来看,Deepseek 确实做到了“AI 的普惠性”。与 OpenAI 等国外大模型运营商相比,Deepseek 的价格极为低廉,对想要学习 AI 应用,而经济条件又非常有限的用户来说,确实是最好的选择。 然而,受自身承载能力和大规模黑客攻击的限制,Deepseek 的官方服务器在最近一段时间经常会出现连接不稳定的问题,这给用户带来了不便。所幸,Deepseek 大模型的开源属性使其能够被部署在任何第三方服务器上。硅基流动便是众多第三方 AI 大模型供应商之一,它与华为云合作,以低廉的价格,向用户提供Deepseek r1大模型的API接口应用。用户可以通过这一接口顺利使用 Deepseek 的模型功能。 获取第三方 Deepseek API 首先,我们需要在硅基流动的官网注册一个账号。你可以使用我的邀请码1MwHUt0X注册,这样,你和我都会得到 14 CNY 的免费额度,可以用来免费体验各个大模型的功能。如果免费额度用完,想要付费充值的话,就必须完成实名认证,这也是中国特色的监管要求。 登录硅基流动的后台,我们就能看到它所支持的一系列大模型,其中就包含当下最热门的 Deepseek R1。 想要调用这些大模型为我们服务,首先要生成我们自己的 API Key。点击硅基流动后台左侧的API 密钥,再点击右上角的新建 API 密钥按钮,来新建一个 API Key。 结合 Chatbox 使用 Deepseek R1 大模型 Chatbox 是一款开源的AI聊天机器人客户端,支持包括个人电脑和移动端几乎所有平台(包括网页端),能够调用多种AI模型,以实现文字对话、文生图、程序编写、文案创作等诸多用途。 出于数据安全与隐私保护的考虑,Chatbox 的所有运行数据都只存储在本地。也就是说,Chatbox 本身只是一个向AI大模型传递数据的工具,它本身并不记录用户的数据。因此,即使我们在不同设备上同时使用 Chatbox,也无法做到配置设置和历史记录的多设备共享。 硅基流动的官方文档中提供了将其API接入 Chatbox 的指引。这里简单讲一下配置的重点。软件安装好以后,第一次打开会自动弹出设置界面。选择"添加自定义提供方",API 域名填写https://api.siliconflow.cn即可。更新版本的 Chatbox 已经原生支持了硅基流动的 API 接口,只要在模型提供方处选择SILICONFLOW API,再填写自己的 API Key,并选择想要调用的模型即可。 值得注意的是,硅基流动同时提供了Pro/deepseek-ai/DeepSeek-R1和deepseek-ai/DeepSeek-R1两个R1模型,只有不带Pro的那个模型支持消耗平台赠送的免费额度,带Pro的必须付费充值后才能使用,选的时候不要选错了。 配置好后点击保存,就可以开始和我们的AI大模型聊天了。Chatbox 软件内预置了很多好用的 Prompt 场景,可以都尝试一下。 ...

2025-02-07 · Mason

Hugo & PaperMod 建站技术记录

早在4年前刚开始搭建本博客时,我曾写过一篇简短的文章,介绍了我建站时使用的一些工具。如今,那篇文章中提到的很多工具都已过时。加之本次博客整体迁移,又使用了全新的 PaperMod 主题,很多功能的配置方式都发生了变化。于是我决定重新写一篇文章,记录一下我在折腾这个新主题过程中的一些技术细节。 配置文件语法 Hugo 同时支持3钟配置文件语法,分别为 YAML、TOML和JSON。它们都是常用的数据序列化和配置文件格式,且各有特点和适用场景。 YAML (YAML Ain’t Markup Language) YAML是一种人类可读的数据序列化格式,常用于配置文件和数据交换,它的语法格式为: name: John Doe age: 30 city: New York hobbies: - reading - traveling 它的特点为: 语法简洁,易于阅读和编写 支持注释、多行字符串和复杂的数据结构 使用缩进表示层级关系 TOML (Tom’s Obvious, Minimal Language) TOML是一种旨在成为最小配置文件格式的语言,设计目标是易于阅读和编写,它的语法格式为: [person] name = "John Doe" age = 30 city = "New York" [person.hobbies] favorite = "reading" others = ["traveling", "photography"] 它的特点为: 语法直观,易于理解 支持注释 支持多种数据类型,包括日期时间 允许创建嵌套的数据结构 JSON (JavaScript Object Notation) JSON是一种轻量级的数据交换格式,最初源于JavaScript,但现在已广泛应用于各种编程语言,它的语法格式为: { "name": "John Doe", "age": 30, "city": "New York" } 它的特点为: 简洁易读 解析速度快 与JavaScript高度兼容 支持基本数据类型:字符串、数字、布尔值、null、对象和数组 综合考虑易读性及与当前主题的兼容性,我选择的配置文件语法为YAML,以下所有配置命令,都将以YAML格式呈现。值得注意的是,YAML对缩进非常敏感,在利用 Hugo 进行渲染时,哪怕某一行少了一个空格,都会渲染失败,所以要特别注意。 ...

2024-12-30 · Mason

HomeAssistant 米家官方集成的安装与使用

背景 我在2022年4月的一篇文章中介绍了 Home Assistant 的安装与配置方法。彼时,要将小米的众多智能家居接入 HA,我们必须安装一个第三方 HA 集成,即 Hass-Xiaomi-Miot。它由个人开发者 al-one 在 Github 上发布,一直以来都是我们将米家接入 HA 的唯一选择。直到最近,小米在 Github 上发布了官方的 HA 集成:HA_Xiaomi_Home,填补了米家接入 HA 的空白。 虽然这又是一个“官方逼死同人”的故事,但小米的开源精神仍然值得称赞。与第三方集成相比,小米官方的集成对自家产品支持更好, 能够帮助我们更加轻松地将米家接入 HA,进而实现米家与 Homekit 生态的互联互通。今天,我们将跟随 HA_Xiaomi_Home 的官方文档,详细介绍一下这个集成的安装及使用方法。 通过 HASC 安装米家官方集成 米家官方集成有多种安装方式,其中最简单,也是最新手友好的方式,就是通过 HACS 进行安装。HASC 的安装方法详见我的这篇文章,此处不再赘述。由于米家官方集成暂未加入 HASC 的官方库,我们需要通过添加自定义库链接的方式,将米家官方集成的库链接添加到 HASC 目录。登入 HA 后台,点击左侧的HASC,再点右上角的三个点,选择Custom Repositories,新建一个自定义库链接,如下图所示。 库类型(Catagory)选择Integration;库链接填写下面的链接: https://github.com/XiaoMi/ha_xiaomi_home.git 最后点击ADD按钮,如果网络没有问题的话,米家官方集成的安装链接就会被添加到 HASC 的自定目录中。再依次点击设置—设备与集成—添加集成,在搜索框中输入Xiaomi,在弹出的结果中选择XIaomi Home。接下来,按照提示登录米家账号即可。 注意⚠️:如果你和我一样,使用 Docker 作为 HA 的安装环境,那么大概率会在米家账号验证时遇到无法跳转的问题。无法跳转的核心原因在于,米家官方集成默认使用 homeassistant.local:8123这个本地域名来跳转回 HA 页面,而 Docker 容器中的 HA 无法在本地局域网中广播.local本地域名。因此,在验证米家账号并跳转回 HA 页面时,我们需要手动将浏览器地址栏中的homeassistant.local:8123改为IP:8123。这样就能完成米家账号的验证工作。以上方法参考自米家集成仓库的 Issue#8。 停用多余的米家实体 当我们安装好米家官方集成并完成账号验证后,HA 就会自动搜索并添加米家的各种设备。同时,我们的家庭中会出现一堆乱七八糟的实体。所谓实体(Unit)是 HA 用来定义设备最小子功能单元的概念。通常一个设备会对应多个实体。例如,一台『热水器』设备,可以同时拥有『当前水温』、『目标水温』、『预热开关』、『增压开关』等多个实体。 然而在日常使用过程中,我们并不需要将每一个设备都拆分成诸多零碎的子功能单元,这样不仅使人迷惑,还会让我们的家庭界面变得极其繁琐。因此,在将 HA 链接到 Homekit 之前,我们需要对米家集成添加进来的众多实体进行筛选,仅保留我们日常使用过程中最需要的开关和数值即可。 ...

2024-12-27 · Mason

如何配置路由器的 DHCP ?

开场 经常折腾家里网络的你,一定经常遇到这些问题: 为什么明明插上了网线,却打不开路由器的后台? 为什么 NAS 的 IP 地址经常变化? 为什么用上了高价的软路由,打开网页的速度反而变慢? 为什么跟着大佬的视频一通配置,却还是玩不转旁路由? 以上这些问题其实都和 DHCP 有关。 什么是 DHCP? DHCP 是 Dynamic Host Configuration Protocol 的缩写,意思是动态主机配置协议。它的作用,是为每一个接入局域网的设备自动分配一个 IP 地址,并为这些设备自动配置默认网关和 DNS 服务器。 名词解释 如果你不理解网关和 DNS 是什么意思,也不要紧。你可以把网关理解成一个中转站,局域网内的所有设备都要通过这个中转站来与外界联系,而家用网络的网关通常只有一个,那就是路由器。DNS 则要更加复杂一点,我后面会单独制作一期视频来讲解。这里你只要把它理解成一个“电话簿”就可以了。 DHCP 的工作原理 DHCP 协议由一个服务端,和多个客户端组成。服务端一般就是你的路由器,而客户端就是你用来上网的设备。 Discoer 每当一个新设备初次连入局域网,它就会向整个网络广播自己的 MAC 地址。所谓的 MAC 地址,是每个设备的硬件地址,它被写在设备的网卡上,一般情况下无法更改,相当于设备的“身份证号码”。当新设备初次连入,它会向局域网广播自己的 MAC 地址,相当于新员工的自我介绍。这段自我介绍有一个很洋气的名字,叫做 Discover。 Offer 当路由器接收到新设备的广播,就会在现有的 IP 地址中,挑选一个还没有被其他设备占用的空缺地址,并将这个地址和其他配置信息(比如默认网关和 DNS)打包发给这个设备,相当于领导给新员工安排工位。这段安排也有一个非常洋气的名字,叫做 Offer。 Request 接下来的事情就非常简单了,当设备收到路由器发出的配置信息,并且决定套用这些配置,会再次答复路由器,相当于接受领导的安排。这段答复同样有一个很洋气的名字,叫做 Request。 这里要注意一点,如果局域网内有两个以上路由器,并且这些路由都开启了 DHCP 服务,那么它们在收到新设备的广播后,会同时给这个设备发送配置信息。当设备同时收到多个配置信息,会优先回复最先收到的那个。因此,为了避免网络混乱,即使你家里有多个路由器,也最好只开启一个 DHCP 服务。 ACK 回到正题,当路由器收到设备的肯定答复后,就会再给设备回个话,表示占位成功。这时,设备会根据路由器下发的 IP 地址、默认网关和 DNS 服务器,自动配置自己的网络,实现成功联网。路由器的这个回话,叫做 ACK。 解答问题一 说到这里,我们就解决了视频开头提到的第一个问题: 为什么明明插上了网线,却打不开路由器的后台? 这里有两种可能: 1. 你的路由器没有开启 DHCP 服务,你的电脑没有收到路由器下发的 IP 地址。 2. 你的路由器开启了 DHCP 服务,但你的电脑之前设置了静态 IP 地址,而这个静态地址和路由器的地址,不在同一个网段。 ...

2022-05-18 · Mason

利用 Home Assistant 搭建智能家居中枢

背景 随着智能家居的日益普及,各大互联网巨头纷纷进场,导致智能家居的平台和品牌越来越多,且各个平台和品牌间的产品无法互通。例如,你无法用米家的智能开关来控制 homekit 的智能灯,除非你的产品支持双平台,但目前同时支持两个以上平台的智能家居少之又少。 Home Assistant(以下简称 HA)很好地解决了智能家居平台不互通的问题,它是一个开源的智能家居集成平台,可将各个常见平台的产品接入,并通过网页、手机app等多种客户端统一操控,实现真正的「万物互联」。并且最重要的是,这么好用的工具不仅支持 Windows、MacOS、Linux 等多种操作系统,其本身也是开源免费的,并且其极高的扩展性也为爱折腾的数码爱好者提供了全新的研究对象。 通过 Docker 部署 HA 容器 正如前文所述,HA 支持多种操作系统,但如果我们打算将其作为 7x24 小时待机的智能家庭中枢,那么最好的选择就是 Linux 系统,因为它可以运行在诸如树莓派这类低功耗的设备上,随时准备着为我们提供服务。 提到 Linux,我们就不得不提 Docker,它是一种兼容性极高的容器系统,可以适应几乎所有 Linux 环境,做到即装即用。今天,我们将着重介绍通过 Docker 容器部署 HA 的方法。 我的这篇文章详细介绍了 Portainer 这个非常好用的 Docker 管理容器,由于每位读者的系统环境不尽相同,因此本博客往后介绍的所有 Docker 容器安装,不再拘泥于群晖、威联通或者 Unraid,而是统一通过 Portainer 进行。 Portainer 本身的安装可以参考上面提到的文章,本文不再赘述。要安装 HA,我们首先需要登录 Portainer 后台,然后进入本地终端界面,也就是 Local,接着点击左侧的 Containers,进入本地容器管理界面。 点击 Add container,创建一个新容器,Name 随便填,Image 写 HA 官方提供的映像索引 homeassistant/home-assistant:latest,Always pull the image 可以打开,这样以后每次修改容器配置,都会从服务器重新拉取最新的映像。 接着点击下方 Advanced container settings 中的 Volumes,进入目录映射选项卡,点击 map additional volume 按钮新增一个目录映射,右侧的映射方式选 bind,container 里的目录只能写 /config,这是 HA 配置文件的所在目录,host 上的目录可以根据自己需要填写。 ...

2022-04-09 · Mason