This commit is contained in:
2025-12-31 16:00:29 +00:00
commit 3688f93d5d
310 changed files with 93400 additions and 0 deletions

327
2025/02/22/llm.html Normal file
View File

@@ -0,0 +1,327 @@
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<!-- Begin Jekyll SEO tag v2.8.0 -->
<title>近期LLM的部署与应用经历 | Mayx的博客</title>
<meta name="generator" content="Jekyll v3.9.5" />
<meta property="og:title" content="近期LLM的部署与应用经历" />
<meta name="author" content="mayx" />
<meta property="og:locale" content="zh_CN" />
<meta name="description" content="玩AI开始变的有些烧钱了啊……" />
<meta property="og:description" content="玩AI开始变的有些烧钱了啊……" />
<meta property="og:site_name" content="Mayx的博客" />
<meta property="og:type" content="article" />
<meta property="article:published_time" content="2025-02-22T00:00:00+08:00" />
<meta name="twitter:card" content="summary" />
<meta property="twitter:title" content="近期LLM的部署与应用经历" />
<meta name="google-site-verification" content="huTYdEesm8NaFymixMNqflyCp6Jfvd615j5Wq1i2PHc" />
<meta name="msvalidate.01" content="0ADFCE64B3557DC4DC5F2DC224C5FDDD" />
<meta name="yandex-verification" content="fc0e535abed800be" />
<script type="application/ld+json">
{"@context":"https://schema.org","@type":"BlogPosting","author":{"@type":"Person","name":"mayx"},"dateModified":"2025-02-22T00:00:00+08:00","datePublished":"2025-02-22T00:00:00+08:00","description":"玩AI开始变的有些烧钱了啊……","headline":"近期LLM的部署与应用经历","mainEntityOfPage":{"@type":"WebPage","@id":"/2025/02/22/llm.html"},"publisher":{"@type":"Organization","logo":{"@type":"ImageObject","url":"https://avatars0.githubusercontent.com/u/17966333"},"name":"mayx"},"url":"/2025/02/22/llm.html"}</script>
<!-- End Jekyll SEO tag -->
<link rel="canonical" href="https://mabbs.github.io/2025/02/22/llm.html" />
<link type="application/atom+xml" rel="alternate" href="/atom.xml" title="Mayx的博客" />
<link rel="alternate" type="application/rss+xml" title="Mayx的博客(RSS)" href="/rss.xml" />
<link rel="alternate" type="application/json" title="Mayx的博客(JSON Feed)" href="/feed.json" />
<link rel="stylesheet" href="/assets/css/style.css?v=1767196818" />
<!--[if !IE]> -->
<link rel="stylesheet" href="/Live2dHistoire/live2d/css/live2d.css" />
<!-- <![endif]-->
<link rel="search" type="application/opensearchdescription+xml" href="/opensearch.xml" title="Mayx的博客" />
<link rel="webmention" href="https://webmention.io/mabbs.github.io/webmention" />
<link rel="pingback" href="https://webmention.io/mabbs.github.io/xmlrpc" />
<link rel="preconnect" href="https://summary.mayx.eu.org" crossorigin="anonymous" />
<link rel="prefetch" href="https://www.blogsclub.org/badge/mabbs.github.io" as="image" />
<link rel="blogroll" type="text/xml" href="/blogroll.opml" />
<link rel="me" href="https://github.com/Mabbs" />
<script src="/assets/js/jquery.min.js"></script>
<!--[if lt IE 9]>
<script src="//cdnjs.cloudflare.com/ajax/libs/html5shiv/3.7.3/html5shiv.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery-ajaxtransport-xdomainrequest/1.0.3/jquery.xdomainrequest.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/respond.js/1.4.2/respond.min.js"></script>
<![endif]-->
<script>
var lastUpdated = new Date("Thu, 01 Jan 2026 00:00:18 +0800");
var BlogAPI = "https://summary.mayx.eu.org";
</script>
<script src="/assets/js/main.js"></script>
<!--[if !IE]> -->
<!-- Global site tag (gtag.js) - Google Analytics -->
<script async="async" src="https://www.googletagmanager.com/gtag/js?id=UA-137710294-1"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
gtag('config', 'UA-137710294-1');
</script>
<script src="/assets/js/instant.page.js" type="module"></script>
<!-- <![endif]-->
</head>
<body>
<!--[if !IE]> --><noscript><marquee style="top: -15px; position: relative;"><small>发现当前浏览器没有启用JavaScript这不影响你的浏览但可能会有一些功能无法使用……</small></marquee></noscript><!-- <![endif]-->
<!--[if IE]><marquee style="top: -15px; position: relative;"><small>发现当前浏览器为Internet Explorer这不影响你的浏览但可能会有一些功能无法使用……</small></marquee><![endif]-->
<div class="wrapper">
<header class="h-card">
<h1><a class="u-url u-uid p-name" rel="me" href="/">Mayx的博客</a></h1>
<img src="https://avatars0.githubusercontent.com/u/17966333" fetchpriority="high" class="u-photo" alt="Logo" style="width: 90%; max-width: 300px; max-height: 300px;" />
<p class="p-note">Mayx's Home Page</p>
<form action="/search.html">
<input type="text" name="keyword" id="search-input-all" placeholder="Search blog posts.." />&#160;<input type="submit" value="搜索" />
</form>
<br />
<p class="view"><a class="u-url" href="/Mabbs/">About me</a></p>
<ul class="downloads">
<li style="width: 270px; border-right: none;"><a href="/MayxBlog.tgz">Download <strong>TGZ File</strong></a></li>
</ul>
</header>
<section class="h-entry">
<small><time class="date dt-published" datetime="2025-02-22T00:00:00+08:00">22 February 2025</time> - 字数统计3048 - 阅读大约需要9分钟 - Hits: <span id="/2025/02/22/llm.html" class="visitors">Loading...</span></small>
<h1 class="p-name">近期LLM的部署与应用经历</h1>
<p class="view">by <a class="p-author h-card" href="//github.com/Mabbs">mayx</a></p>
<div id="outdate" style="display:none;">
<hr /><p>
这是一篇创建于 <span id="outime"></span> 天前的文章,其中的信息可能已经有所发展或是发生改变。
</p>
</div>
<script>
daysold = Math.floor((new Date().getTime() - new Date("Sat, 22 Feb 2025 00:00:00 +0800").getTime()) / (24 * 60 * 60 * 1000));
if (daysold > 90) {
document.getElementById("outdate").style.display = "block";
document.getElementById("outime").innerHTML = daysold;
}
</script>
<hr />
<b>AI摘要</b>
<p id="ai-output">这篇文章主要讲述了作者近期在探索和应用大型语言模型LLMDeepSeek的过程中遇到的挑战和体验。首先虽然DeepSeek在国内流行但作者发现其国内服务不稳定且自行搭建使用时虽然百度版本在可用性和速度上优于其他公司但作者受限于自身需求无法接入其他公司的接口。作者为了满足需要升级了硬件特别是购买了RTX4090显卡进行模型部署但发现蒸馏模型效果不佳。其次作者提到清华大学团队的KTransformers框架可能提供更好的性能但需要相应的硬件支持。作者还提到考虑使用Mac Studio M4 Ultra因其性价比更高。在应用方面作者计划建立知识库并使用MaxKB工具但发现其有数量限制且部分开源代码有限制作者通过修改代码解决了这个问题。最后作者认为虽然DeepSeek的普及带来了一些竞争压力但对于个人而言这是一个购买并尝试高端硬件的有趣经历。</p>
<hr />
<ul><li><a href="#起因">起因</a></li><li><a href="#部署经历">部署经历</a></li><li><a href="#应用经历">应用经历</a></li><li><a href="#感想">感想</a></li></ul>
<hr />
<main class="post-content e-content" role="main"><p>玩AI开始变的有些烧钱了啊……<!--more--></p>
<h1 id="起因">
<a href="#起因"><svg class='octicon' viewBox='0 0 16 16' version='1.1' width='16' height='32' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg></a> 起因
</h1>
<p>在几年前我就已经<a href="/2023/04/05/ai.html">探索并玩过很多LLM了</a>不过近些日子在这方面的发展似乎影响到了我的生活……由于近期某公司开发的DeepSeek在国内非常火导致我也不得不跟上这个热潮去考虑怎么应用它。当然对于普通人来说使用它并没有什么难度即使DeepSeek的官方网站和APP现在基本不能用现在各家大公司也都自行搭建了目前我感觉使用DeepSeek体验最好的是百度其他家使用无论是可用性还是速度都比不过百度而且目前百度也没有限制使用量之类还是挺不错的。 </p><p>
但是对我来说却不能直接使用其他公司的产品,其实要从成本来说接入其他公司的接口显然是要便宜的多,但是我需要应用的地方可能连不上那些接口😅,所以需要考虑自己搭建。</p>
<h1 id="部署经历">
<a href="#部署经历"><svg class='octicon' viewBox='0 0 16 16' version='1.1' width='16' height='32' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg></a> 部署经历
</h1>
<p>为了能自己搭建DeepSeek首先就得买硬件了……虽然前段时间<a href="/2025/02/09/server.html">整了台新服务器</a>但是让CPU来跑还是太吃力了速度太慢了……所以为了能轻松的跑起来最近整了张RTX4090 48GiB显存魔改版但是手头没有空闲的机器了只能插在一台用着<a href="https://www.intel.cn/content/www/cn/zh/products/sku/126687/intel-core-i58400-processor-9m-cache-up-to-4-00-ghz/specifications.html">i5-8400</a>处理器的主机这下成狗骑吕布了🤣。有了这张显卡跑DeepSeek-R1的蒸馏模型从1.5B到70B的Q4_K_M量化版倒是轻轻松松用Ollama跑70B的模型也能到20Tps的速度。但是根据测试来看这些蒸馏模型的效果很差基本上没法用这些模型经常会发生不遵守指令内容随机掺杂英文而且也经常发生逻辑错误和671B的完整版完全不能比用起来还不如Qwen2.5各规模的模型。 </p><p>
那怎么办呢?前几天清华大学的某个团队更新了一款叫做<a href="https://github.com/kvcache-ai/ktransformers">KTransformers</a>的框架据说它可以利用Intel的AMX指令集然后配一张RTX4090可以让DeepSeek-R1 671B Q4_K_M量化版跑到13Tps能跑到这个速度那至少是可用级别了调其他公司的接口基本上也就是这个速度之前买的新服务器不就有这个指令集嘛之前还感觉这个指令集有点鸡肋呢看来还是开发度不够啊😆如果再配一个CPU然后把内存插满也许就可以了可惜R760xs插不了全高的显卡要想插全高的估计就只能买R760了或者用PCI-E延长线不过那样感觉不太可靠……不过之后肯定还是会想办法上完整版的模型毕竟它的效果确实是不错最关键的是它的市场认可度高上了就能提高产品竞争力所以之后应该会想办法搞到满足KTransformers的硬件然后跑起来或者等<a href="https://github.com/ggml-org/llama.cpp">llama.cpp</a>合并它的算法然后用llama.cpp会更好一些。 </p><p>
不过我更倾向于等Mac Studio M4 Ultra出来应该过几个月就能出按照目前发展趋势来看新款Mac Studio应该会有更大的内存理论上可以跑的动一些效果更好的<a href="https://unsloth.ai/blog/deepseekr1-dynamic">动态量化版</a>现在能在M2 Ultra上跑的那个1.58位的效果还是不太行相比于价格十几万的服务器Mac Studio估计不到十万可以说是非常有性价比了。当然如果等不及的话应该还是会选择花十几万买个有双路第四代至强可扩展处理器加512GiB内存的服务器吧……</p>
<h1 id="应用经历">
<a href="#应用经历"><svg class='octicon' viewBox='0 0 16 16' version='1.1' width='16' height='32' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg></a> 应用经历
</h1>
<p>有了模型之后如果只是聊天那就没必要费这么大劲了,费劲搭当然是为了能让它参与到实际的工作当中。不过该如何应用它呢?首先要让它知道工作的内容,所以第一步要搞出知识库。知识库的原理倒是很简单,我之前就给我博客的<a href="/2024/09/27/rag.html">聊天机器人加了RAG功能</a>核心就是嵌入模型和向量数据库。不过我写的那个全都是为了能使用Cloudflare的功能脱离了Cloudflare就没用了。那如果要在本地搞应该怎么办呢我之前用过的<a href="/2024/02/03/1panel.html">1Panel</a>开发它的公司旗下有个叫<a href="https://github.com/1Panel-dev/MaxKB">MaxKB</a>的产品看起来很不错它使用了PGSQL和<a href="https://github.com/pgvector/pgvector">pgvector</a>作为向量数据库来搭建知识库而且它是用Python写的还能用Python来写自定义功能的函数库另外它还能用可视化的方式来设计工作流可以轻松构建需要的逻辑从功能上来说我还是挺满意的。 </p><p>
使用也挺简单在设置里可以添加使用其他公司API的模型也可以使用Ollama不过这一步有个坑Ollama并不支持设置API Key但是它添加模型却要求配置一个API Key文档说可以输入任意内容我输了一个空格可以保存但是使用的时候会报网络错误所以它文档里怎么不说明一下是除了空格之外的任意内容😅浪费了我不少时间。 </p><p>
在添加知识库的时候可以除了<a href="https://github.com/shibing624/text2vec">内置的嵌入模型</a>好像是腾讯的员工搞的模型也可以用Ollama的嵌入模型。它自带的嵌入模型用的是CPU文档规模大的情况速度比较慢因为在Cloudflare上我用的是BAAI的BGE模型效果还可以所以这次我还是选了它但是选的是中文模型这样就不需要再翻译了🤣。 </p><p>
开始我对MaxKB印象还是挺不错的但是用着用着……在建第六个应用的时候它显示社区版只能创建五个应用😅对于开源软件这样做限制我也是大开眼界了要是说有些专业版功能不开源是DLC的形式付钱来获取更多的功能代码我还能理解在开源代码上做数量上的限制这垃圾公司多少有点看不起人了😅。 </p><p>
那对于这种挑衅行为该怎么反制呢?它的代码倒是没有混淆之类的,还算不错,比我以前用过的<a href="https://github.com/kalcaddle/KodExplorer">KodExplorer</a>要好,它还整个“部分开源”,有个<a href="https://github.com/kalcaddle/KodExplorer/blob/master/app/controller/utils.php">关键文件</a>直接是混淆过的想改都改不了😅至少MaxKB还能随便改。 </p><p>
我大概看了眼代码只需要改两个文件就行一个是“apps/common/util/common.py”把其中“valid_license”函数进行判断的部分全部注释另外一个文件是“apps/setting/serializers/valid_serializers.py”把“ValidSerializer”方法中的“valid”方法里进行判断的部分全部注释就可以了开源还做限制我是真的无法理解…… </p><p>
如果是用1Panel部署的可以把那两个文件放到“/opt/1panel/apps/maxkb/maxkb”目录下然后在docker-compose.yml文件的volumes段添加</p>
<div class="language-yml highlighter-rouge"><div class="highlight"><pre class="highlight"><code><span class="pi">-</span> <span class="s">./common.py:/opt/maxkb/app/apps/common/util/common.py</span>
<span class="pi">-</span> <span class="s">./valid_serializers.py:/opt/maxkb/app/apps/setting/serializers/valid_serializers.py</span>
</code></pre></div></div>
<p>就可以了。 </p><p>
不过总体来说从功能上我还算比较满意,就原谅它搞出这种奇葩的行为吧😆。 </p><p>
MaxKB主要是为了能给更多人使用所以是网页版部署也略显麻烦如果是自己用呢我之前看到过一个桌面软件叫做<a href="https://github.com/CherryHQ/cherry-studio">Cherry Studio</a>。它更适合开箱即用一些功能上可能不如MaxKB强大但是比较方便一些。比如上传文档MaxKB需要在流程图中自行处理这个软件会帮你处理好添加知识库可以直接添加本地的文件夹不用上传到服务器上另外安装比较方便不像MaxKB搭环境比较麻烦些所以个人用的话可以用Cherry Studio。</p>
<h1 id="感想">
<a href="#感想"><svg class='octicon' viewBox='0 0 16 16' version='1.1' width='16' height='32' aria-hidden='true'><path fill-rule='evenodd' d='M7.775 3.275a.75.75 0 001.06 1.06l1.25-1.25a2 2 0 112.83 2.83l-2.5 2.5a2 2 0 01-2.83 0 .75.75 0 00-1.06 1.06 3.5 3.5 0 004.95 0l2.5-2.5a3.5 3.5 0 00-4.95-4.95l-1.25 1.25zm-4.69 9.64a2 2 0 010-2.83l2.5-2.5a2 2 0 012.83 0 .75.75 0 001.06-1.06 3.5 3.5 0 00-4.95 0l-2.5 2.5a3.5 3.5 0 004.95 4.95l1.25-1.25a.75.75 0 00-1.06-1.06l-1.25 1.25a2 2 0 01-2.83 0z'></path></svg></a> 感想
</h1>
<p>总的来看DeepSeek的出现还算可以虽然它受到的关注和它的能力也许并不匹配但是毕竟现在的它已经是人人都能蹭的东西了谁都能挂它的名头我们来蹭一蹭也能分点它的好处。当然这样的结果倒也不差开发DeepSeek的公司只能获得他们应得的部分其他的关注度就应该被各家公司瓜分😆。我在这期间虽然很难获得什么实质性的收获但是能在这期间能搞点很贵的硬件之类的玩玩也是不错的体验啊🤣。</p></main>
<small style="display: block">tags: <a rel="category tag" class="p-category" href="/search.html?keyword=LLM"><em>LLM</em></a> - <a rel="category tag" class="p-category" href="/search.html?keyword=AI"><em>AI</em></a> - <a rel="category tag" class="p-category" href="/search.html?keyword=%E4%BA%BA%E5%B7%A5%E6%99%BA%E8%83%BD"><em>人工智能</em></a> <span style="float: right;"><a href="https://gitlab.com/mayx/mayx.gitlab.io/tree/master/_posts/2025-02-22-llm.md">查看原始文件</a></span></small>
<h4 style="border-bottom: 1px solid #e5e5e5;margin: 2em 0 5px;">推荐文章</h4>
<p id="suggest-container">Loading...</p>
<script>
var suggest = $("#suggest-container");
$.get(BlogAPI + "/suggest?id=/2025/02/22/llm.html&update=" + lastUpdated.valueOf(), function (data) {
if (data.length) {
getSearchJSON(function (search) {
suggest.empty();
var searchMap = {};
for (var i = 0; i < search.length; i++) {
searchMap[search[i].url] = search[i];
}
var tooltip = $('<div class="content-tooltip"></div>').appendTo('body').hide();
for (var j = 0; j < data.length; j++) {
var item = searchMap[data[j].id];
if (item) {
var link = $('<a href="' + item.url + '">' + item.title + '</a>');
var contentPreview = item.content.substring(0, 100);
if (item.content.length > 100) {
contentPreview += "……";
}
link.hover(
function(e) {
tooltip.text($(this).data('content'))
.css({
top: e.pageY + 10,
left: e.pageX + 10
})
.show();
},
function() {
tooltip.hide();
}
).mousemove(function(e) {
tooltip.css({
top: e.pageY + 10,
left: e.pageX + 10
});
}).data('content', contentPreview);
suggest.append(link);
suggest.append(' - ' + item.date + '<br />');
}
}
});
} else {
suggest.html("暂无推荐文章……");
}
});
</script>
<br />
<div class="pagination">
<span class="prev">
<a href="/2025/02/09/server.html">
上一篇:新旧服务器的使用体验与对比
</a>
</span>
<br />
<span class="next">
<a href="/2025/03/08/llm2.html">
下一篇近期LLM的部署与应用经历(2)
</a>
</span>
</div>
<!--[if !IE]> -->
<link rel="stylesheet" href="/assets/css/gitalk.css">
<script src="/assets/js/gitalk.min.js"></script>
<div id="gitalk-container"></div>
<script>
var gitalk = new Gitalk({
clientID: '36557aec4c3cb04f7ac6',
clientSecret: 'ac32993299751cb5a9ba81cf2b171cca65879cdb',
repo: 'mabbs.github.io',
owner: 'Mabbs',
admin: ['Mabbs'],
id: '/2025/02/22/llm', // Ensure uniqueness and length less than 50
distractionFreeMode: false, // Facebook-like distraction free mode
proxy: "https://cors-anywhere.mayx.eu.org/?https://github.com/login/oauth/access_token"
})
gitalk.render('gitalk-container')
</script>
<!-- <![endif]-->
</section>
<!--[if !IE]> -->
<div id="landlord" style="left:5px;bottom:0px;">
<div class="message" style="opacity:0"></div>
<canvas id="live2d" width="500" height="560" class="live2d"></canvas>
<div class="live_talk_input_body">
<form id="live_talk_input_form">
<div class="live_talk_input_name_body" >
<input type="checkbox" id="load_this" />
<input type="hidden" id="post_id" value="/2025/02/22/llm.html" />
<label for="load_this">
<span style="font-size: 11px; color: #fff;">&#160;想问这篇文章</span>
</label>
</div>
<div class="live_talk_input_text_body">
<input name="talk" type="text" class="live_talk_talk white_input" id="AIuserText" autocomplete="off" placeholder="要和我聊什么呀?" />
<button type="submit" class="live_talk_send_btn" id="talk_send">发送</button>
</div>
</form>
</div>
<input name="live_talk" id="live_talk" value="1" type="hidden" />
<div class="live_ico_box" style="display:none;">
<div class="live_ico_item type_info" id="showInfoBtn"></div>
<div class="live_ico_item type_talk" id="showTalkBtn"></div>
<div class="live_ico_item type_music" id="musicButton"></div>
<div class="live_ico_item type_youdu" id="youduButton"></div>
<div class="live_ico_item type_quit" id="hideButton"></div>
<input name="live_statu_val" id="live_statu_val" value="0" type="hidden" />
<audio src="" style="display:none;" id="live2d_bgm" data-bgm="0" preload="none"></audio>
<input id="duType" value="douqilai" type="hidden" />
</div>
</div>
<div id="open_live2d">召唤伊斯特瓦尔</div>
<!-- <![endif]-->
<footer>
<p>
<small>Made with ❤ by Mayx<br />Last updated at 2026-01-01 00:00:18<br /> 总字数614622 - 文章数178 - <a href="/atom.xml" >Atom</a> - <a href="/README.html" >About</a></small>
</p>
</footer>
</div>
<script src="/assets/js/scale.fix.js"></script>
<!--[if !IE]> -->
<script src="/assets/js/main_new.js"></script>
<script src="/Live2dHistoire/live2d/js/live2d.js"></script>
<script src="/Live2dHistoire/live2d/js/message.js"></script>
<!-- <![endif]-->
</body>
</html>