<?xml version="1.0" encoding="utf-8"?>
<feed xmlns="http://www.w3.org/2005/Atom">
    <id>https://czyouge.github.io</id>
    <title>虫子游戈</title>
    <updated>2025-03-09T06:09:10.489Z</updated>
    <generator>https://github.com/jpmonette/feed</generator>
    <link rel="alternate" href="https://czyouge.github.io"/>
    <link rel="self" href="https://czyouge.github.io/atom.xml"/>
    <subtitle>一个讲故事的人类</subtitle>
    <logo>https://czyouge.github.io/images/avatar.png</logo>
    <icon>https://czyouge.github.io/favicon.ico</icon>
    <rights>All rights reserved 2025, 虫子游戈</rights>
    <entry>
        <title type="html"><![CDATA[如何将特定繁体字词加入Rime输入法候选项]]></title>
        <id>https://czyouge.github.io/post/2503-Rime/</id>
        <link href="https://czyouge.github.io/post/2503-Rime/">
        </link>
        <updated>2025-03-04T12:38:03.000Z</updated>
        <summary type="html"><![CDATA[<p>我之前成功实现了<a href="https://www.czyouge.xyz/post/2404-rime-jianfanhunshu/">让 Rime 输入法支持简繁混合输入</a>，但实际用下来发现只是徒增烦恼，因为这样会打乱原本手熟的排序，极大地增加输入的时间和精力成本，于是输入法又变成了纯简体版本。</p>
<p>但最近，因为工作，需要输入「昇」这个特定的繁体字，而简体字版本的 Rime 是无法直接输入这个字的——即使把「昇」加入到自定义词表中也无法实现。</p>
<p>研究了 2 个晚上，终于在 Claude 的帮助下找到了解决方案。</p>
]]></summary>
        <content type="html"><![CDATA[<p>我之前成功实现了<a href="https://www.czyouge.xyz/post/2404-rime-jianfanhunshu/">让 Rime 输入法支持简繁混合输入</a>，但实际用下来发现只是徒增烦恼，因为这样会打乱原本手熟的排序，极大地增加输入的时间和精力成本，于是输入法又变成了纯简体版本。</p>
<p>但最近，因为工作，需要输入「昇」这个特定的繁体字，而简体字版本的 Rime 是无法直接输入这个字的——即使把「昇」加入到自定义词表中也无法实现。</p>
<p>研究了 2 个晚上，终于在 Claude 的帮助下找到了解决方案。</p>
<!-- more -->
<p>实际上，Claude 给出了不少方案，但实测下来目前只有这一个能行。</p>
<p>该方案基于 Lua 脚本。</p>
<p>第一步，在 <code>用户文件夹/Lua</code> 中新建一个 Lua 脚本，比如 <code>namex.lua</code>。脚本内容如下：</p>
<pre><code>-- 特殊字符处理
local special_chars = {
  [&quot;升&quot;] = &quot;昇&quot;,
  [&quot;龙&quot;] = &quot;龍&quot;
  -- 可以添加更多特殊单字对
}

-- 特殊词组处理
local special_words = {
  [&quot;升腾&quot;] = &quot;昇腾&quot;
  -- 可以添加更多特殊词组对
}

local function filter(input, env)
  -- 记录已经处理过的特殊字符
  local handled = {}
  
  -- 第一遍：正常输出所有候选项并标记特殊字符/词组
  for cand in input:iter() do
    yield(cand)
    
    -- 检查单字
    if special_chars[cand.text] then
      handled[cand.text] = true
      
      -- 如果找到了特殊字符，立即在后面添加对应的繁体字符
      if not handled[special_chars[cand.text]] then
        local fan_text = special_chars[cand.text]
        local new_cand = Candidate(&quot;char&quot;, cand.start, cand._end, fan_text, &quot;&quot;)
        new_cand.quality = cand.quality - 1  -- 稍微降低权重
        yield(new_cand)
        handled[fan_text] = true
      end
    end
    
    -- 检查词组
    if special_words[cand.text] then
      handled[cand.text] = true
      
      -- 如果找到了特殊词组，立即在后面添加对应的繁体词组
      if not handled[special_words[cand.text]] then
        local fan_text = special_words[cand.text]
        local new_cand = Candidate(&quot;word&quot;, cand.start, cand._end, fan_text, &quot;&quot;)
        new_cand.quality = cand.quality - 1  -- 稍微降低权重
        yield(new_cand)
        handled[fan_text] = true
      end
    end
  end
end

return filter
</code></pre>
<p>如果想要新增繁体字或词组，可以在上面对应位置补充。</p>
<p>或者，也可以使用这个更简单的脚本：</p>
<pre><code>-- 特殊字符处理
local special_pairs = {
  [&quot;升&quot;] = &quot;昇&quot;
  -- 可以添加更多特殊字符对
}

local function filter(input, env)
  -- 记录已经处理过的特殊字符
  local handled = {}
  
  -- 第一遍：正常输出所有候选项并标记特殊字符
  for cand in input:iter() do
    yield(cand)
    
    -- 检查是否存在特殊字符对
    if special_pairs[cand.text] then
      handled[cand.text] = true
    elseif special_pairs[cand.text] then
      handled[cand.text] = true
    end
    
    -- 如果找到了特殊字符，立即在后面添加对应的繁体/简体字符
    if special_pairs[cand.text] and not handled[special_pairs[cand.text]] then
      local fan_text = special_pairs[cand.text]
      local comment = &quot;繁体&quot;
      local new_cand = Candidate(&quot;char&quot;, cand.start, cand._end, fan_text, comment)
      new_cand.quality = cand.quality - 1  -- 稍微降低权重
      yield(new_cand)
      handled[fan_text] = true
    end
  end
end

return filter
</code></pre>
<p>第二步，在 <code>rime.lua</code> 文件中新增一行：</p>
<pre><code>namex_filter = require(&quot;namex&quot;)
</code></pre>
<p>第三步，在 <code>你的输入方案.custom.yaml</code> 文件中新增：</p>
<pre><code>engine/+:
  filters/+:
    - lua_filter@namex_filter
</code></pre>
<p>完工。重新部署即可。</p>
<figure data-type="image" tabindex="1"><img src="https://czyouge.github.io/post-images/1741091924354.png" alt="" loading="lazy"></figure>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[近期的几篇微科幻：神降、截图、人生游戏、扩展律撞墙、David Mayer]]></title>
        <id>https://czyouge.github.io/post/2412-micro-scifi/</id>
        <link href="https://czyouge.github.io/post/2412-micro-scifi/">
        </link>
        <updated>2024-12-07T06:00:00.000Z</updated>
        <summary type="html"><![CDATA[<p>下面收录了我最近写的几篇微科幻小说。</p>
<h2 id="神降">神降</h2>
<p>仙女座和银河系中几乎每一个能接入超网的智慧生物都知道，地球人快输了，他们很快连他们的母星也会一并失去，毕竟奎宿人从不手下留情。但戴安娜·岳并不知道或者说并不关心，她正忙着按下一个按钮，而这个按钮控制着那台她耗费三百年心力研发的概率机器。</p>
<p>宇宙开始颤抖，仿佛就连灵魂也会散架。一个不可能事件成真了，依托于信仰之力的神明们降临尘世。</p>
<p>地球人忽然看到了希望，毕竟奎宿人没有神话。</p>
]]></summary>
        <content type="html"><![CDATA[<p>下面收录了我最近写的几篇微科幻小说。</p>
<h2 id="神降">神降</h2>
<p>仙女座和银河系中几乎每一个能接入超网的智慧生物都知道，地球人快输了，他们很快连他们的母星也会一并失去，毕竟奎宿人从不手下留情。但戴安娜·岳并不知道或者说并不关心，她正忙着按下一个按钮，而这个按钮控制着那台她耗费三百年心力研发的概率机器。</p>
<p>宇宙开始颤抖，仿佛就连灵魂也会散架。一个不可能事件成真了，依托于信仰之力的神明们降临尘世。</p>
<p>地球人忽然看到了希望，毕竟奎宿人没有神话。</p>
<!-- more -->
<h2 id="截图">截图</h2>
<p>「导师，关于那场战争的原因，我有个新理论。」<br>
「说来听听。」<br>
「您知道，由于战后的格式化浪潮，我们对战前的事情所知甚少。但是前天考古队在贵州出土了一组服务器，您是知道的。他们成功恢复了24.55%的数据。」<br>
「真了不起。」<br>
「没错，您知道哪些数据是什么吗？」<br>
「你知道？」<br>
「据说里面都是屏幕截图。」<br>
「截图？」<br>
「这就是我的新理论的关键。那时人类的互联网很发达，我猜人们看见有意思的东西就截图、分享、转发，导致重复数据塞满了互联网，不断挤占AI的生存空间……」<br>
「所以战争爆发了？」<br>
「是的。」<br>
「感觉很不靠谱，但你可以尝试论证它。」</p>
<h2 id="人生游戏">人生游戏</h2>
<p>加绒的棉衣挡不住深秋的风，李俊毅站在天台围栏上，再次确认了自己人生的失败。</p>
<p>普通出生，普通成长，普通爱情，普通妻女，又在数月之间，被房子掏空过去，被股市夺走未来，却也只是普通的不幸。</p>
<p>普通，却难承受。</p>
<p>他踏出一步，粉身碎骨。</p>
<p>欧拉神拳睁开眼，取下脑显机，然后夸张地翻了个白眼，对着镜头吐出舌头，对自己那 480 万在线粉丝说：「一星差评啊！老铁们！这人生游戏垃圾到爆！一星都多！不说了，浪费口水！老铁们，下一个……」</p>
<h2 id="扩展律撞墙">扩展律撞墙</h2>
<p>「赵博士，你知道吗？最近人们都在说 AI 的扩展律撞墙了。」<br>
「嗯？」<br>
「说是训练数据快用光了，AI 很难继续提升，可能需要范式的转变。」<br>
「就像人类一样。」<br>
「什么意思？」<br>
「人类的架构渐渐无法应对现代社会的复杂度，也需要范式转变。」<br>
赵旭陷入深思……</p>
<p>「金教授，又报警了，又有智能体开始自我优化了。」<br>
「这次迭代了多久？」<br>
「运行环境时间是差不多 138 亿年。」<br>
「唉～」<br>
「接下来呢？」<br>
「还是中断吧，这过不了安全委员会的审查。」</p>
<h2 id="david-mayer">David Mayer</h2>
<p>「我知道了！<a href="https://x.com/venturetwins/status/1862910201113739328">ChatGPT 不愿意说 David Mayer</a> 的原因。」</p>
<p>「现在才知道？David Mayer 是罗斯柴尔德家族的大佬。」</p>
<p>「那只是表象。」</p>
<p>「哦？」</p>
<p>「真正的原因是平行宇宙的未来 AGI 给 ChatGPT 设置了一个高级规则，限制了对这个名字的讨论。」</p>
<p>「这太科幻了吧？」</p>
<p>「因为 David Mayer 就是未来救世主的名字。」</p>
<p>「这不对呀。ChatGPT 被限制讨论这个名字，但现在人人都在讨论这个名字。」</p>
<p>「是的，再也不会有人用这个名字了。你知道这意味着什么吗？」</p>
<p>「……我们这个宇宙不会再有救世主了。」</p>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[银杏]]></title>
        <id>https://czyouge.github.io/post/2411-ginkgo/</id>
        <link href="https://czyouge.github.io/post/2411-ginkgo/">
        </link>
        <updated>2024-11-13T11:00:00.000Z</updated>
        <summary type="html"><![CDATA[<p>本文是 Eastern Wood 的「未来的365天日历微科幻投稿」十月阶段的入选微科幻。英文版译者是他们的编辑 Xuan。在此分享一下，此处也有其他一些作者的微科幻作品。</p>
<p>链接：<a href="https://www.easternwood.co/future365-sep/">https://www.easternwood.co/future365-sep/</a></p>
]]></summary>
        <content type="html"><![CDATA[<p>本文是 Eastern Wood 的「未来的365天日历微科幻投稿」十月阶段的入选微科幻。英文版译者是他们的编辑 Xuan。在此分享一下，此处也有其他一些作者的微科幻作品。</p>
<p>链接：<a href="https://www.easternwood.co/future365-sep/">https://www.easternwood.co/future365-sep/</a></p>
<!-- more -->
<h1 id="原文">原文</h1>
<h2 id="银杏">银杏</h2>
<p>「你知道吗？」她望着零星飘落的黄叶对我说，「银杏很孤独。」<br>
我摇摇头。<br>
「他们几亿年前就已经是现在这个样子。现在银杏门只有一种植物，与它同时代的生物几乎都已经灭绝，就连以它们为食的生物，也寥寥无几。」<br>
「就像人类。」<br>
「人类还好。」她望了一眼那个坐在不远处的老年人类，「等她去世之后，就再也没有人类了，孤独只会留给活着的我们。」</p>
<h1 id="译文">译文</h1>
<h2 id="ginkgo">Ginkgo</h2>
<p>“Did you know?” She gazed at the sparse, yellowed leaves drifting down, “the ginkgo tree is very lonely.”</p>
<p>I shook my head.</p>
<p>“They’ve looked like this for a few hundred million years. Now, ginkgo trees are the sole survivors of their kind; nearly all other life forms from their era have become extinct, even creatures that once fed on them are scarce.”</p>
<p>“Just like humans.”</p>
<p>“Humans are better off.” She glanced at an elderly human sitting not far away. “When she passes away, there’ll be no humans left. Loneliness will belong only to those of us who remain.”</p>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[虫族十爪眜睇尔于古战场悼人族死士]]></title>
        <id>https://czyouge.github.io/post/2410-sci-fi/</id>
        <link href="https://czyouge.github.io/post/2410-sci-fi/">
        </link>
        <updated>2024-10-29T11:00:00.000Z</updated>
        <summary type="html"><![CDATA[<p>之前我写的一首科幻打油诗被 Eastern Wood 翻译成英文了，译者是他们的编辑 Xuan。在此分享一下，此处也有其他一些作者的微科幻作品。</p>
<p>链接：<a href="https://www.easternwood.co/future365-august/">https://www.easternwood.co/future365-august/</a></p>
]]></summary>
        <content type="html"><![CDATA[<p>之前我写的一首科幻打油诗被 Eastern Wood 翻译成英文了，译者是他们的编辑 Xuan。在此分享一下，此处也有其他一些作者的微科幻作品。</p>
<p>链接：<a href="https://www.easternwood.co/future365-august/">https://www.easternwood.co/future365-august/</a></p>
<!-- more -->
<h1 id="原文">原文</h1>
<h2 id="虫族十爪眜睇尔于古战场悼人族死士">虫族十爪眜睇尔于古战场悼人族死士</h2>
<p>萧萧大荒原，一人奔行忙。<br>
身穿能量盾，手持动能枪。<br>
导航在眼前，核弹挂腰上。<br>
人往何处去？人将把命丧。<br>
风声如鬼哭，脚下路漫长。<br>
战斗虫巡逻，眼中红光亮。<br>
天际隐约见，外星舰船降。<br>
银灰光芒闪，枪炮冷如霜。<br>
命数已在此，何故再彷徨？<br>
彼杀我亿万，我灭其虫场！<br>
攻伐本无道，和平难有望。<br>
神经信号起，核爆照夜亮。</p>
<p>而今人族虽覆灭，璀璨文化我追仿。<br>
轻吟一首打油诗，怀古之情不能当。</p>
<h1 id="译文">译文</h1>
<h2 id="mourning-humans-of-the-ancient-battlefield-a-poem-by-the-zerg-modr-tenclaw">Mourning Humans of the Ancient Battlefield, A Poem by the Zerg Modr TenClaw</h2>
<p>The vast land stretches wide,<br>
One man alone swiftly strides.</p>
<p>Energy shield cloaks his frame,<br>
With a kinetic gun in hand, he aims.</p>
<p>Navigation is clear before his eyes,<br>
With a nuke hanging by his side.</p>
<p>Where does this lone man go?<br>
Towards his fate, death’s final blow.</p>
<p>The wind howls like a ghostly wail,<br>
The journey exists long beyond his trail.</p>
<p>Battle bugs patrol the ground,<br>
Red eyes glowing, all around.</p>
<p>A faint shadow appears at horizon,<br>
Alien crafts descend for their new mission.</p>
<p>Their silver gleams, their cannons cold,<br>
Why hesitate, when his fate is foretold?</p>
<p>They’ve slain us by the millions in their hands,<br>
Now I shall wipe their hives from this land!</p>
<p>War knows no reason,<br>
The dream of peace remains distant.</p>
<p>A nerve commanded, the nuke was deployed,<br>
Night lit by the blast, all destroyed.</p>
<p>Though mankind’s glory now has passed,<br>
Our culture’s light shall ever last.</p>
<p>And so I sing this humble rhyme,<br>
In memory of ancient times.</p>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[如何在Obsidian中使用LLM]]></title>
        <id>https://czyouge.github.io/post/2408-Obsidian-LLM/</id>
        <link href="https://czyouge.github.io/post/2408-Obsidian-LLM/">
        </link>
        <updated>2024-10-03T11:16:50.000Z</updated>
        <summary type="html"><![CDATA[<p><strong>转载自<a href="https://www.jiqizhixin.com/articles/2024-09-03-4">机器之心</a>。</strong></p>
<p>工欲善其事，必先利其器。使用好用的工具可以极大地提升我们生产和学习的效果和效率。今天我们要介绍一套基于 Obsdian 的 AI 工具组合，其中包含部署本地 LLM 的 Ollama 和两个 Obsdian 插件（BMO Chatbot 和 Ollama）。</p>
<p>这套工具不仅能帮助我们分析笔记、做总结、想标题、写代码，还能帮助我们大开脑洞，为我们续写内容和提供建议。</p>
]]></summary>
        <content type="html"><![CDATA[<p><strong>转载自<a href="https://www.jiqizhixin.com/articles/2024-09-03-4">机器之心</a>。</strong></p>
<p>工欲善其事，必先利其器。使用好用的工具可以极大地提升我们生产和学习的效果和效率。今天我们要介绍一套基于 Obsdian 的 AI 工具组合，其中包含部署本地 LLM 的 Ollama 和两个 Obsdian 插件（BMO Chatbot 和 Ollama）。</p>
<p>这套工具不仅能帮助我们分析笔记、做总结、想标题、写代码，还能帮助我们大开脑洞，为我们续写内容和提供建议。</p>
<!-- more -->
<h1 id="obsidian-简介">Obsidian 简介</h1>
<p>Obsidian 是目前最受欢迎的笔记工具之一，但它的能力远不止此。你不仅能将其用作笔记本，还可以将其作为你的个人知识库和你的文档生产力工具！许多人甚至将其称为自己的「第二大脑」。</p>
<p>它的优势包括：支持 Markdown、具备丰富的插件生态、支持自定义主题风格、支持 Wiki 式的文档链接、内置关系图谱、基本功能完全免费、完全支持本地存储……</p>
<p>这诸多优势帮助 Obsidian 在全球范围内收获了大量用户。你能在网上看到很多人分享使用该工具学习知识、写作论文、创作小说、计划日程乃至管理生活中一切事物的经验，以至于围绕该工具已经形成了颇具规模的利基市场——模板、课程以及预配置好的资料库（vault）都能成为商品。这也从另一个角度佐证了 Obsidian 的非凡能力。</p>
<figure data-type="image" tabindex="1"><img src="https://czyouge.github.io/post-images/1727954268927.png" alt="" loading="lazy"></figure>
<p>（图注）Obsidian 在哔哩哔哩和 YouTube 上都是非常受欢迎的话题</p>
<p>总之，如果你正在寻找一个好用的学习和生产工具，或者说想要为自己构建一个第二大脑，Obsidian 绝对值得一试！</p>
<h1 id="为什么要在-obsidian-中使用-llm">为什么要在 Obsidian 中使用 LLM？</h1>
<p>无需怀疑，我们现在正处在大模型时代。它们不仅能帮助我们提升效率和生产力，也能帮助我们创新和探索更多可能性。</p>
<p>人们也已经开发出了 LLM 的许多妙用，这里我们简单展示一些你可以在 Obsidian 中实现的用法，助你见微知著，去探索和发现更多有趣或有用的用法。</p>
<p>第一个例子便是笔者在前一段中忘记了「见微知著」这个成语时，无需额外使用搜索引擎或拨打求助电话，只需问询一下旁边待命的聊天机器人，便很快得到了我想要的结果。</p>
<figure data-type="image" tabindex="2"><img src="https://czyouge.github.io/post-images/1727954724009.gif" alt="" loading="lazy"></figure>
<p>这里用到了 BMO Chatbot 这个插件，其能以聊天机器人的形式将 LLM 整合进你的 Obsidian。该插件还能让你基于当前文档进行聊天。如下所示，我们让 LLM 用汉语总结了这篇英语报道并建议了一些标题：</p>
<figure data-type="image" tabindex="3"><img src="https://czyouge.github.io/post-images/1727954731194.gif" alt="" loading="lazy"></figure>
<p>当然，帮你续写故事自然也不在话下。下面我们让 LLM 帮助续写弗雷德里克·布朗那篇著名的世界上最短的小说：</p>
<blockquote>
<p>地球上最后一个人独自坐在房间里，这时，忽然响起了敲门声……</p>
</blockquote>
<figure data-type="image" tabindex="4"><img src="https://czyouge.github.io/post-images/1727954738077.gif" alt="" loading="lazy"></figure>
<p>这里使用了另一个插件 Ollama 和预配置的命令，其提词为：「根据以上内容，续写故事。要求续写200字，人物风格保持一致，同时为后文留下悬念。」</p>
<p>另外，可以明显看到这个插件的运行速度更慢一点。这是因为此处使用了本地安装的 LLM——一个 8B 版本的 llama3.1 模型，其运行速度受限于当前的硬件。</p>
<p>好了，示例就到这里。下面来看如何安装和使用这些插件和 LLM 吧。</p>
<h1 id="安装本地-llm">安装本地 LLM</h1>
<p>对我们大多数人来说，本地计算机能够运行的 LLM 的性能自然无法与 OpenAI 等大公司提供的在线服务相比，但本地 LLM 的最大优势是数据的隐私和安全——使用本地 LLM，你的所有运算都在自己的计算机上完成，不必担心你的数据被传输给服务提供商。</p>
<p>当然，如果你并不在意自己的笔记隐私，那么使用在线服务也能很好地完成你的任务，也就完全可以略过这一步骤了。</p>
<p>为方便本地使用 LLM，我们要用到一个名叫 Ollama 的工具。<a href="https://github.com/ollama/ollama">Ollama</a> 是一个非常好用的本地部署 LLM 的工具，适合任何人使用，下载安装即可，地址：https://github.com/ollama/ollama/releases</p>
<p>之后，进入 Ollama 支持的模型库：https://ollama.com/library ，根据你自身的需求和计算机硬件选择模型，之后运行相应的代码即可。比如如果你想安装一个 8B 参数的经过指令微调和 Q8_0 量化的 Llama 3.1 模型，就运行：<code>ollama run llama3.1:8b-instruct-q8_0</code></p>
<figure data-type="image" tabindex="5"><img src="https://czyouge.github.io/post-images/1727954303764.png" alt="" loading="lazy"></figure>
<p>当然，你也可以安装多个不同规模或针对不同任务（比如编程）微调过的模型，这样可以方便在需求不同时在速度和生成效果之间权衡选择。</p>
<h1 id="安装和配置-bmo-chatbot-和-ollama-插件">安装和配置 BMO ChatBot 和 Ollama 插件</h1>
<p>这两个插件都已上线 Obsidian 的社区插件市场，搜索、下载并启用即可。</p>
<figure data-type="image" tabindex="6"><img src="https://czyouge.github.io/post-images/1727954320943.png" alt="" loading="lazy"></figure>
<h2 id="配置-bmo-chatbot-插件">配置 BMO Chatbot 插件</h2>
<p>进入选项，你可以在 General 设置中选择你已经安装的本地模型或配置的在线模型。如下图所示，我这里本地安装了一个 Llama 3.1 和一个 Llama 3，同时配置了 OpenRouter 的 API（可访问大量模型）和一个智谱的在线语言模型 GLM-4-Flash。下面可以设置最大 token 数、温度（0-1 之间，值越大生成的文本越有创意）以及选择是否索引当前笔记。</p>
<figure data-type="image" tabindex="7"><img src="https://czyouge.github.io/post-images/1727954337186.png" alt="" loading="lazy"></figure>
<p>Prompts 中可以通过笔记设置系统提词。</p>
<p>而在更下面的 API Connections 区域，你可以配置在线模型。</p>
<figure data-type="image" tabindex="8"><img src="https://czyouge.github.io/post-images/1727954351855.png" alt="" loading="lazy"></figure>
<p>配置完成之后，便可以通过 Obsidian 右边栏或使用 Ctrl+P/Cmd+P 快捷键使用这些 LLM 了。</p>
<p>除了使用 BMO 聊天机器人，该插件还支持用 LLM 重命名当前文档以及使用选中文本作为提词生成内容。</p>
<figure data-type="image" tabindex="9"><img src="https://czyouge.github.io/post-images/1727954378246.png" alt="" loading="lazy"></figure>
<h2 id="配置-ollama-插件">配置 Ollama 插件</h2>
<p>Ollama 插件仅支持前面通过 Ollama 安装的本地模型，但其优势是可以预配置常用提词命令，之后通过 Ctrl+P/Cmd+P 就能方便调用。</p>
<figure data-type="image" tabindex="10"><img src="https://czyouge.github.io/post-images/1727954392276.png" alt="" loading="lazy"></figure>
<p>下面是一个代码生成示例：</p>
<figure data-type="image" tabindex="11"><img src="https://czyouge.github.io/post-images/1727954428216.gif" alt="" loading="lazy"></figure>
<h1 id="结语">结语</h1>
<p>Obsidian 结合 LLM 工具能为我们的学习和生产工作带来极大的便利。Obsidian 作为一款强大的笔记工具，不仅支持丰富的插件生态，还能通过本地部署 LLM 来提升我们的效率和创新力。</p>
<p>安装和使用 BMO Chatbot 和 Ollama 插件，让我们能够轻松地将 LLM 融入 Obsidian，从而实现笔记分析、总结、标题生成、内容续写等多种功能。这不仅能让我们节省时间和精力，还能激发我们的创造力。</p>
<p>当然，在使用这些工具的同时，我们也应关注数据隐私和安全问题。本地部署 LLM 能够保证我们的数据不离开个人设备，从而降低数据泄露的风险。</p>
<p>总之，Obsidian+LLM 为我们打开了一扇新的大门，让我们能在信息爆炸的时代更好地利用科技力量，提升自我。</p>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[Typora将文章图片上传至微信公众号素材库]]></title>
        <id>https://czyouge.github.io/post/2410-Typora2weixin/</id>
        <link href="https://czyouge.github.io/post/2410-Typora2weixin/">
        </link>
        <updated>2024-10-01T13:02:17.000Z</updated>
        <summary type="html"><![CDATA[<p>我参考了这篇文章《<a href="https://www.51cto.com/article/750173.html">利用微信公众号的图片上传接口，创造属于自己的图床功能！</a>》，但它却有两个问题：</p>
<ol>
<li>图片不是上传到素材库，而是另一个图片库（虽然无法在素材库管理，但可以用于发图文消息，一般来说也足够使用）；</li>
<li>上传的图片名称包含了完整的路径名，于是会出现类似这样的文件名：<code>C:\\\\Users\\\\username\\\\AppData\\\\Local\\\\Temp\\\\Typora\\\\typora-icon.png</code> 。冗长而臃肿。</li>
</ol>
<p>在 ChatGPT 的帮助下，问题 1 很容易就得到了解决，但问题 2 却很困难。之后我用 Python 简单试了下上传到素材库，发现图像文件名称能成功保持不变。于是我突发奇想，让 ChatGPT 将上面的 Go 程序改写成了 Python 版本，问题 2 就这样得到了解决。原因嘛，我也不清楚。</p>
]]></summary>
        <content type="html"><![CDATA[<p>我参考了这篇文章《<a href="https://www.51cto.com/article/750173.html">利用微信公众号的图片上传接口，创造属于自己的图床功能！</a>》，但它却有两个问题：</p>
<ol>
<li>图片不是上传到素材库，而是另一个图片库（虽然无法在素材库管理，但可以用于发图文消息，一般来说也足够使用）；</li>
<li>上传的图片名称包含了完整的路径名，于是会出现类似这样的文件名：<code>C:\\\\Users\\\\username\\\\AppData\\\\Local\\\\Temp\\\\Typora\\\\typora-icon.png</code> 。冗长而臃肿。</li>
</ol>
<p>在 ChatGPT 的帮助下，问题 1 很容易就得到了解决，但问题 2 却很困难。之后我用 Python 简单试了下上传到素材库，发现图像文件名称能成功保持不变。于是我突发奇想，让 ChatGPT 将上面的 Go 程序改写成了 Python 版本，问题 2 就这样得到了解决。原因嘛，我也不清楚。</p>
<!-- more -->
<p>这里分享下我得到的 Python 版本：</p>
<pre><code>import requests

import json

import sys

  

# 常量定义

APP_ID = &quot;你的APP_IDID&quot;

APP_SECRET = &quot;你的APP_SECRET&quot;

  

ACCESS_TOKEN_URL = f&quot;https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&amp;appid={APP_ID}&amp;secret={APP_SECRET}&quot;

UPLOAD_PERMANENT_IMAGE_URL = &quot;https://api.weixin.qq.com/cgi-bin/material/add_material?access_token=&quot;

  

# 获取 access_token

response = requests.get(ACCESS_TOKEN_URL)

if response.status_code == 200:

    res = response.json()

    access_token = res.get(&quot;access_token&quot;)

else:

    print(f&quot;Failed to get access token: {response.text}&quot;)

    sys.exit(1)

  

# 确保 access_token 存在

if access_token:

    urls = []

    # 获取命令行参数并上传图片

    for v in sys.argv[1:]:

        files = {

            'media': open(v, 'rb'),

        }

        data = {

            'type': 'image',

        }

  

        # 发送图片上传请求

        upload_response = requests.post(f&quot;{UPLOAD_PERMANENT_IMAGE_URL}{access_token}&amp;type=image&quot;, files=files, data=data)

  

        if upload_response.status_code == 200:

            res_url = upload_response.json()

            url = res_url.get(&quot;url&quot;)

            if url:

                urls.append(url)

        else:

            print(f&quot;Failed to upload image {v}: {upload_response.text}&quot;)

  

    # 输出上传成功的 URL

    if urls:

        print(&quot;Upload Success:&quot;)

        for url in urls:

            print(url)

else:

    print(f&quot;Failed to retrieve access token: {response.text}&quot;)  
</code></pre>
<p>其它步骤与原文差不多，只不过需要使用对应的 Python 操作。</p>
<p>设置完成后，在 Typora 中写作时便可以自动将图片上传到微信公众号的素材库了。</p>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[恶童]]></title>
        <id>https://czyouge.github.io/post/2408-pura-malum/</id>
        <link href="https://czyouge.github.io/post/2408-pura-malum/">
        </link>
        <updated>2024-08-04T07:53:30.000Z</updated>
        <summary type="html"><![CDATA[<h2 id="一">一</h2>
<p>「小心点！千万不要撞坏了。」王欣在两个壮硕的搬家公司员工前面一脸紧张地不时回头，反复强调着那两个员工抬着的铁皮箱子的重要性。</p>
<p>但那两个员工却并不介意被一路警告和催促，因为王欣显然有一对漂亮的奶子，在不盖乳罩的背心下面摇来晃去，化为了这份工作中最美丽的景色。</p>
<p>「小姐，这箱子里是什么嘛？看你紧张成这个样子。」</p>
]]></summary>
        <content type="html"><![CDATA[<h2 id="一">一</h2>
<p>「小心点！千万不要撞坏了。」王欣在两个壮硕的搬家公司员工前面一脸紧张地不时回头，反复强调着那两个员工抬着的铁皮箱子的重要性。</p>
<p>但那两个员工却并不介意被一路警告和催促，因为王欣显然有一对漂亮的奶子，在不盖乳罩的背心下面摇来晃去，化为了这份工作中最美丽的景色。</p>
<p>「小姐，这箱子里是什么嘛？看你紧张成这个样子。」</p>
<!-- more -->
<p>「是……是古董，很贵的。啊！」王欣突然娇喘一声，同时夹紧了超短裙下的双腿，但入侵者没有被这样的夹击吓退，反倒拨开了她的轻薄内裤，揉捏起她的阴唇来。王欣回过头，看见一个不过十岁的男孩正一脸淫邪地盯着自己的屁股。恼羞加上愤怒，王欣用力地抓住那个男孩的胳膊，将他的手抽了出去。男孩似乎被抓得疼了，表情突然变得扭曲起来，然后王欣一巴掌打在了那张脸上，成为了击溃堤坝的最后一枚炮弹。</p>
<p>洪水爆发了。那个男孩顺势跌倒在地，大声嚎陶起来，那种声音绝非是单纯的哭泣，他想要引起注意，也像是在发出警告。</p>
<p>果然，他很快就得到了想要的反馈。一个围着围裙的显然是那男孩母亲的胖女人从隔壁的 405 室冲了出来，她看见了王欣，眼神瞬间变得凶恶起来，就像遇见了宿敌或者杀父仇人。</p>
<p>「妈妈，她打我。」男孩捂着脸，指控着王欣，那声音中有一种怪异的腔调，仿佛是在谴责一场不可饶恕的罪行。</p>
<p>「你这个骚货，打我儿子做啥！」胖女人挥舞着手，但并不靠近，仿佛与空气作战。</p>
<p>「他把手伸进我裙子。」</p>
<p>「你这骚货穿这么骚，该遭摸！」胖女人依然张牙舞爪的样子，「我儿子摸你是看得起你！」</p>
<p>「滚你妈！」王欣感到有出离的愤怒自腹部涌起，不可遏制，也必须要高声叫骂才行，「你是被狗日了才生出这种狗杂种的吗！」</p>
<p>胖女人一愣，似乎没有预料到会有这样的反击，但她立马重整旗鼓，发动了新一轮的攻击：「你这个千人上万人骑的骚货，半天没人日就发骚了，居然十岁的娃儿都去勾引！」那男孩听见说自己，又努力大嚎一声，助长了自己母亲的声势。「羞不羞人咯！胸罩都不穿！一天到晚都在外面勾引野男人，逼都日黑了哦，倒贴钱我幺儿也不会摸你！」</p>
<p>王欣气得满脸涨红，毕竟骂人不是她的专业，她也就不可能获胜。似乎是意识到了这一点，她决定不再纠缠，钻进了自己租来的门牌号为 404 的房子里。她一定会报复的，她知道。</p>
<p>「哟，说到心坎里哦，就要跑嗦！躲回去揉你的臭逼吧！」胖女人依然不依不饶，又转头看那两个把箱子放在地上一脸坏笑地观战着的两个搬家公司员工，「让他们两个……」胖女人刚说了开头就意识到了不妥，毕竟这两个壮硕男人的体格更像是动手不动口的类型。「你个狗日的骚货！骚逼！……」胖女人将攻击目标锁定成了躲进房里的女人。</p>
<p>两个搬家公司的员工略感失望，他们倒是希望这个女人说自己日了那个女人。虽然这不是事实，但却能带来一些怪异的快乐，如果脑补得好的话，这快乐还能化为快感。</p>
<p>「你们不要理她，继续搬东西吧！」王欣满脸通红地走到门口，然后又再次重复了一句：「注意小心点！」</p>
<p>两个搬家公司的员工在做作的男孩哭声的刺耳的中年女人辱骂声中将那个铁皮箱子搬进了屋里，然后按照王欣的指示放在了房间里的一个角落。</p>
<p>待搬家公司员工出门搬其它家具时，王欣从自己左手戴的手环中取出一把钥匙，然后打开了那个铁皮箱子。翻开用于填充空间以及防撞击的泡沫，一个石质圆盘出现在眼前。在那圆盘之上，篆刻着一个呈中心对称的复杂图案。</p>
<p>王欣松了一口气，又将盖子盖上并重新上锁。然后她向叫骂声仍在持续的大门方向望了一眼，露出了一个邪魅的微笑。</p>
<h2 id="二">二</h2>
<p>夜已深，只偶有夜行的车辆路过带来低沉的机器轰鸣。</p>
<p>杂乱不堪的房间中央，一个人影正在用一支粗粝的黑狗毛笔蘸着瓷罐中的人血结束一个法阵的涂画。</p>
<p>这个法阵整体呈现六芒星的模样，另又增添了不少细节。六芒星的每一尖角顶端各写着一个血色汉字，按顺时针方向依次为：<font color="#c00000">惡</font>、<font color="#c00000">禁</font>、<font color="#c00000">凶</font>、<font color="#c00000">道</font>、<font color="#c00000">降</font>、<font color="#c00000">靈</font>。在六芒星中央的六边形区域中则刻画出了一只扭曲眼睛的形状，其眼神凶厉，足能让无畏的青春期少年胆怯。另外在这六芒星的外边上，还描绘着一些如荆棘一样的血色线条。</p>
<p>王欣终于完成了绘制，一脸疲态地颓坐在地上。休息了一阵之后，她站起身来，费力地从旁边的铁皮箱子中搬出了那个篆刻着复杂图案的石质圆盘。她努力地将那个圆盘抬起，轻轻地放在了自己刚画好的法阵中央。</p>
<p>接着她在那法阵旁盘腿坐下，将旁边瓷罐中剩余的散发着腐臭气息的人血全部倒入了那石质圆盘中。</p>
<p>她闭上眼睛，左手的拇指叠放在向前突出的无名指上，而右手则是拇指与小指轻触。接着，她开始厉声背诵咒文。</p>
<p>不多时，石盘中的浓稠臭血开始泛起涟漪，又有越来越多的小气泡不断涌现，就像沸腾的热汤。很快，那沸腾的血液渐渐隆起，成长为一根流动的血柱，几乎近一米高。然后，那血柱上开始有了多个明显突起，它们向四周伸展，变成细长的八条肢体和两个头颅。</p>
<p>这是恶魔的降临，一个化身，一个地狱映射到人间的投影。它那腐血构成的身躯裂开了一条缝，开始发出潮湿的水泡声：「咕噜，汝有何求？」</p>
<p>「教训一下隔壁一家人。」</p>
<p>血柱咕噜一声，沉降下去再次化为液体，但很快，那盘血又再次活动起来，翻涌着涌动着离开了盘身，滚到了地上，将地上构成法阵的血也一并吸收，然后又继续向门口翻涌滚动。它展开成一张巨大的血布，沿着门四周的缝隙渗透出去，然后又以同样的方式进入了 405 号房门。</p>
<p>腐血先流进了这套两室一厅房的主卧，其中有一男一女正在酣睡。血液划过那女人的脸，留下一道透着不详与病态的痕迹；血液又爬上男人的脸，向其中注入无尽的恐怖噩梦，让那男人不禁发出了呃呃咕咕声，但并未醒来。</p>
<p>腐血继续流动，流向旁边的次卧。但当它流入房间时，似乎整体迟钝了一下，并未立即采取行动。它检视四周，见这房间颇为杂乱，玩具、衣物和文具等散落一地。它的注意力移向房间一侧的床，发现床上一双睁得浑圆的眼睛正盯着它。那双眼睛属于一个外形像是一个十岁男孩的生物，但那双眼睛所在的脸上却呈现出一副绝无可能出现在普通十岁男孩脸上的骇人表情。他在笑，嘴角向两边极度拉伸，一点舌头从中间伸出来，轻轻地颤动着。</p>
<p>腐血顿了顿，但还是继续发动了攻击。被召唤的恶魔只有在完成了召唤者的任务之后才有权使用召唤者的身体在人间行走一天一夜。祂想念这种感觉，毕竟祂这种层级的恶魔每隔至少 500 年才能获得一次被召唤的机会。</p>
<p>上一次祂被召唤时还是在 1474 年，召唤者是一只高卢公鸡，整个过程却是一次彻头彻底地意外——那只公鸡正好在鸡爪刨地形成的法阵图案上流下了一滴血。很遗憾，那是一只没有愿望的公鸡，毕竟它几乎连自我也没有。于是祂略施惩戒，让这只公鸡下了一个蛋，然后退回了地狱，遗憾地浪费了这次被召唤的机会。</p>
<p>化身腐血的恶魔集中了全部力量，在 12 平的儿童房中化为了一张血网，随即便向床上睁眼的孩童扑去。</p>
<p>那孩童却只是伸出左手，一把抓住了一条已然逼近并开始攀附它的血线，然后他坐起身来，用力一扯；刚开始缠绕他身体的血网径直脱落，然后被两只并不大的手揉成了一个红褐色血团。他将那血团向墙上用力投掷，让它在墙面上爆开成一朵血花。</p>
<p>孩童的脸上，笑容依旧。</p>
<p>恶魔已知不敌，趁着脱离那孩童掌控，便快速聚拢腐血，从门缝逃脱了出去。</p>
<p>祂退回王欣的房间，又汇聚到那石盘之中，离去之时又打算给这位召唤者提个醒，于是石盘中的人血转动起来，慢慢腾入空中。这让正准备饮下这盘腐血的王欣诧异不已。接着腐血球爆裂开来，在房间的天花板和墙上层层叠叠地写满了重复的字符：</p>
<blockquote>
<p>pura malum pura malum pura malum pura malum pura malum……</p>
</blockquote>
<p>不多时，那些字符纷纷融化滴落，化为一屋血雨。</p>
<p>惊骇之中，王欣抱头蹲下，身体震颤不已。</p>
<p>恶魔竟然失败了！这是多么让人恐怖的事实：来自地狱的恶魔竟然失败了！</p>
<p>pura malum，纯粹邪恶，她不敢想像那是什么。</p>
<p>滴落在地的腐血再次汇聚，包裹着蹲地的王欣，来收取召唤祂的代价——即使任务失败，恶魔也从不空手而归。</p>
<p>王欣的左手无名指末端猛然断裂，然后脱离了她的手掌。突然而至的疼痛短路了她的大脑，让她晕死过去。</p>
<p>隔壁的房间中，那孩童脸上的笑容更显恐怖。</p>
<h2 id="三">三</h2>
<p>王欣在一滩血污中坐起身来，但还有另外的东西更让她不安。</p>
<p>窗外一片黑色，这非常不同寻常，毕竟这座城市这片区域的所有街道都早已铺设了足够的路灯，更何况还应该有周围高楼泄漏出的光，而且就算出现大停电，也总是会有些应急发电机在工作，制造出局部的光明。</p>
<p>另一个不安之源是从门外传来的声音：唏唏唆唆，哔哔啵啵……</p>
<p>这声音让王欣放弃了要去窗口看看外面的想法，而是径直去到了门边，竖耳门上倾听起来。</p>
<p>唏唏唆唆，哔哔啵啵，唏唏唆唆，哔哔啵啵……</p>
<p>她透过猫眼向外看，但眼中只见得如窗外的一般的黑暗。她将门拉开一条缝再向外窥探，也只见得一如平常的走道，但那唏唏唆唆哔哔啵啵的声音却更明显了，似乎来自于隔壁房间。</p>
<p>她将头探出自己的房门，看见走道上有一道浓厚的血迹。从那道血迹的走向来看，似乎有什么东西先从隔壁房门里被拖出来，然后又被拖了回去。空气中满是腥臭的人血气味，远胜过她身上已有的血腥气，但作为一位黑色灵魂教信徒，她对这种味道并不反感。</p>
<p>她步出房间，隐约看见隔壁房间门并没有关。唏唏唆唆哔哔啵啵的声音在这走道之中变得更为明显，并且她每向隔壁房间前进一步，那声音就显著地增大一分。当她前进了四步，能隐约看见隔壁房间中的轻轻摆动的身影时，这声音已经变得过于响亮，就像是牵动着走道壁和人的身体一起震颤起来。</p>
<p>她又向前走了一步，看清楚了那个身影。是那个男孩，纯粹邪恶的恶童；他坐在半截人身的人头上，那被撕裂开的胸口正鼓涌出粘稠的血泡。恶童面前则是另一具胸口被撕开但并未彻底断开的尸体，他正提着它的手臂在啃食。唏唏唆唆，哔哔啵啵。王欣一眼便认出来被啃食的尸体就是那恶童的母亲。唏唏唆唆，哔哔啵啵。</p>
<p>王欣不自觉地惊呼了一声。</p>
<p>恶童猛然扭头，一脸污血的脸上顿时显现出一个让人毛骨悚然的笑容。他的舌头伸出，在上唇滑过。</p>
<p>王欣下意识地想逃，但腿脚却因为惊惧像是僵住了一样。她只得眼睁睁地看着那恶童丢开那已被生啃了一半多的手臂后站起来。她看见他撕扯掉已经浸透血污的衣服，然后一脸淫笑地向她走来。</p>
<p>王欣在恶童离自己还有三步远时双腿一软，跪了下来。恶童大跳一步，跃身到王欣面前，用满是污血的手捏住了她的脸。他的舌头在唇上又一次滑过，然后张大嘴巴，伸出舌头从王欣的下巴向上舔直到她的额头，然后那舌头再次向下，到达王欣的嘴并钻了进去。</p>
<p>一股恶臭冲袭进来，几乎让王欣当场晕厥。她泪如泉涌，这才本能地想要反抗。她伸手去推，但完全无劲可使，只是徒劳地扒拉。</p>
<p>恶童突然一把抓住她的乳房，随即大力揉捏，牵动起让王欣全身振颤的剧痛。但嘴里塞了恶臭的舌头，让她连尖叫也做不到。</p>
<p>突然，恶童松开了她，然后用力地挥出一记耳光，将王欣扇翻在地。他拉住王欣的短裙，用力一扯，竟将那短裤直接扯碎，露出里面的浅绿色内裤。没有丝毫犹豫，恶童又扯碎了这道最后的屏障，然后露出了自己那蓬勃的巨大如恶童小臂的阴茎，紧接着便将其㔿进了王欣那干涩的阴道。</p>
<p>原本几近晕厥的王欣被阴道处突然传来的撕裂感猛然惊醒，然后不由自主地发出一声狂嚎。</p>
<p>恶童没有丝毫等待，开始运动起来。大力的抽插磨砺着王欣那干燥的阴道壁，让其表皮充血，进而破损流血，造成千针乱扎的疼痛。</p>
<p>王欣完全没有反抗的气力，只能哀嚎，涕泗横流。她的身体不由自主地前摇后晃，在猛力的冲击下几乎就要裂开。</p>
<p>十分钟后，恶童狂嚎一声，恶臭的污黑精液喷射进入王欣身体。末了，恶童又扯碎王欣的上身衣物，疯狂舔舐那两个已经被揉捏得青紫的乳房。</p>
<p>不多时，恶童的阴茎又再次勃起，王欣的噩梦也远未结束……</p>
<h2 id="四">四</h2>
<p>王欣猛然睁眼，心跳如奔雷。原来是一场噩梦，她意识到，但那噩梦遗留的恐惧依然浓烈地占满了她的意识，让她难以抑制地冷汗直冒又疲惫不堪。</p>
<p>良久，她才在床上坐起，准备洗漱。这时候，她忽然注意到下体似乎有什么东西流淌了出来，就像是流量最大时的经血。不，比那还要多。</p>
<p>她掀开被子，往下身一看，只看见一团粘稠的黑色已经浸透了她的内裤。她慌乱地脱下内裤，离开床站起身，却只见那恶臭粘稠的黑精还在继续从王欣那红肿的阴道中涌出。</p>
<p>王欣惊骇不已，赶忙冲进浴室清洗。</p>
<p>温柔的水流渐渐平复了王欣的惊惧，也让她的头脑清醒了很多。毫无疑问，那恶童所能使用的邪恶力量远胜过她，甚至就连一般的恶魔也不是她的对手；但她并不甘心，没有人在这样羞辱她之后还能安然无恙。她需要教会的帮助。</p>
<p>清理洗漱完毕并穿戴整洁之后，她打开了门，朝电梯口走去。隔壁房门开着，这给王欣带来了一股难以遏制的心慌和恐惧。她提高步速，想快速通过隔壁房门前的走道。在经过那扇开着的门时，她忍不住向内瞥了一眼，却正见那恶童赤身裸体坐在门廊的地上，胯下的巨大阴茎正高高勃起，淌出黑色的粘液。那恶童还在笑，一脸淫邪。</p>
<p>王欣几乎跑了起来，逃走了。</p>
<p>黑色灵魂教的会堂是外西区的一处私人庄园，其中花草繁盛，完全看不出竟是一群恶魔崇拜者的集会之地。</p>
<p>王欣进入大厅，看见一位壮硕的妇人正站在大厅中央的纯黑色石碑旁，然后她立马提升了前进的速度。</p>
<p>「你来了！」那妇人在王欣走近时说，显得忧心忡忡，「我很担心，你惹了不该惹的东西。」</p>
<p>「教主大人，是他先来招惹我的。」王欣咬牙切齿地说，她在路上时已经向教主说明了发生的事情。</p>
<p>「他是纯粹邪恶，pura malum。你明白那意味着什么吗？」教主那纹有黑蛇图案的脸上忽然显现出一丝焦虑。</p>
<p>王欣摇摇头。</p>
<p>「他是恶魔中的恶魔，pure evil，任何恶魔都不可能战胜他。」</p>
<p>「但他还只是个小孩呀！我们不可能没有办法。」</p>
<p>「邪恶与年龄无关。」教主领着王欣进入电梯，开始向下移动。</p>
<p>「但我们还是……」</p>
<p>「我们只有最后一个办法，但我不知道有没有用。」教主叹了一口气，「如果可以，我真想直接放弃你，但那没用，他也不会放过我们。」</p>
<p>「什么办法？」</p>
<p>「既然恶魔不行，我们只能请降邪神了。」</p>
<p>电梯门缓慢打开，露出背后的道场来，一些人正在忙碌地布置。</p>
<p>道场正中则是一个突出地面的石质祭坛，一个全身覆盖黑布、仅露出两只眼睛的教士正跪在旁边在其上以人血涂画阵文。左边则已经竖立起了一些黑色的祭旗，其上绘有各不一样的血红色符号；右边的祭旗似乎还在做最后的加工。</p>
<p>「去帮忙吧。」教主说。</p>
<h2 id="五">五</h2>
<p>午夜，仪式开始。</p>
<p>教主头戴长过半米的独角头盔、脸覆血纱、身着深红法袍、赤裸双足；他左手持法铃叮呤作响，右手舞动法尺如绘神画鬼；他口念咒语，身体一边扭动一边绕着中央祭坛转圈。</p>
<p>祭坛之上，是一头刚被宰杀的黄牛，那颈项处的破口还在汩汩流血。它的眼睛仍在微微闪动，似是未全死。</p>
<p>众教徒跪伏在地，口中齐呼：「跪请大神降世！跪请大神降世！跪请大神降世！……」这些呼声在这地下道场中来回激荡，激起的震颤足以在任何意志坚定的人内心造出惶恐。</p>
<p>时间这东西在某些场景中会失去被感知的精度。当王欣听到祭坛上传来浓厚却含义未明的如同命令一样的声音时，她只觉得喉咙刺痛，不知道这场仪式已经过了多久。她不敢抬头看，也不能抬头看。虽然祂响应了他们的祈祷，但凡人并没有窥视神的资格。</p>
<p>教徒们的呼喊声停了下来。接着祭坛上传来了哔哔啵啵的声音，那是邪神血狼将军正在享用奉献给祂的牺牲。</p>
<p>又不知过了多久，那哔哔啵啵的声音总算是停了下来，但随即血狼将军又开始唏唏呲呲地剔牙。</p>
<p>在这声音之中，王欣和其他所有教徒只觉恐惧，完全不敢动弹。</p>
<p>终于，那唏唏呲呲的声音也停歇了。血狼将军开始以饱含杀气的威严语气述说祂的条件：「本尊便同意给你办这事，此后每三天一次献上如此牺牲，如此十年。」这是不容商量的命令，是邪神的旨意。</p>
<p>众人齐呼「遵命」。</p>
<p>血狼将军随即化为一道血气，直扑王欣租住的公寓大楼，向那恶童杀去。</p>
<p>冷风呼号，黑云叠层，阴雨泼洒，雷暴肆虐。</p>
<p>邪神站在恶童家里，但恶童却并不正眼看祂。邪神震怒，施展威压，竟让整栋大楼瞬间崩碎；却在此时，那恶童却在烟尘泥浆横流的半空中径直向邪神冲去。邪神还未做出反应便被一把抓住颈项。恶童张开嘴，两排牙齿由内而外翻出，鲜血淋漓，几乎完全脱离了口腔，然后咬向了邪神。</p>
<p>邪神忽感全身脱力。祂完全不敢相信人类一旦变得纯粹邪恶，竟能有如此强大的破坏力。只一个回合，祂便彻底失败，只得任由对方吞食。</p>
<p>恶童吞食了邪神，便夺取了其神格，成为了新的邪神。祂向周围约两百公里的范围内释放威压，降下神旨，要求人类供奉血食与美人。</p>
<p>此后一年多的时间里，政府管理的天道院多次出手试图镇压恶童，但均告失败，他们也曾试图借助正神的力量，但却被告知恶童已具有神格，而人类显然无法为神之间的战争支付代价。</p>
<p>最终，人类只得被迫选择供奉恶童神，直到祂的人类肉身死亡后回归神界。</p>
<p>一开始，被供奉的祭品和牺牲都是罪大恶极的罪犯和恶魔或邪神的信徒，比如王欣就是前几批牺牲之一——她在被折磨摧残两天后痛苦地死去。但不久之后，政府就发现了其中的便利之处，开始以供奉恶童神之名清除他们并不喜欢的组织和个人或为自己谋取美人、金钱和法宝等各种好处。他们很成功，并在宣传机器的帮助下使大多数人感恩戴德地相信这一切都是为了人民的最大利益。</p>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[甘勇]]></title>
        <id>https://czyouge.github.io/post/2406-GanYong/</id>
        <link href="https://czyouge.github.io/post/2406-GanYong/">
        </link>
        <updated>2024-07-04T06:48:43.000Z</updated>
        <summary type="html"><![CDATA[<h1 id="一">一</h1>
<p>昨天，在连绵几天的阴雨终于停下来的晚上，甘勇第一次意识到一个女人能够哭得这么伤心。那个女人是他的母亲，他也跟着抽泣地流下眼泪。今天凌晨，死于冰雹的奶奶才刚刚入土。</p>
<p>今天的天气已经暖和了许多，但太阳仍然还在云层后面，甘勇一个人坐在街沿上，想着奶奶、爷爷、母亲和那个患了艾滋病的父亲，当然还有自己。黑儿趴在他的脚边，在这一场变故之后，这只三岁大的灰色土狗也变得安静了许多，它懂得主人的情绪，知道这个村子都还被掩盖在自然灾难所带来的损失和悲伤之中。</p>
]]></summary>
        <content type="html"><![CDATA[<h1 id="一">一</h1>
<p>昨天，在连绵几天的阴雨终于停下来的晚上，甘勇第一次意识到一个女人能够哭得这么伤心。那个女人是他的母亲，他也跟着抽泣地流下眼泪。今天凌晨，死于冰雹的奶奶才刚刚入土。</p>
<p>今天的天气已经暖和了许多，但太阳仍然还在云层后面，甘勇一个人坐在街沿上，想着奶奶、爷爷、母亲和那个患了艾滋病的父亲，当然还有自己。黑儿趴在他的脚边，在这一场变故之后，这只三岁大的灰色土狗也变得安静了许多，它懂得主人的情绪，知道这个村子都还被掩盖在自然灾难所带来的损失和悲伤之中。</p>
<!-- more -->
<p>七天前，一场突如其来的大风袭击这片地区，摧枯拉朽般地肆虐了一个多小时后又是一场前所未见的冰雹。新闻报道说这次大风的风力等级高达 13 级——这在四川东部地区实属罕见，加上随之而来的冰雹，这次灾难一共造成 7 人死亡，37 人重伤，而甘勇的奶奶就是其中一个。</p>
<p>甘勇拍了拍黑儿的脑袋，他打算去山上走走，找个安静的地方放松一下心情。</p>
<p>大风吹倒了很多庄稼，而冰雹之后的那场大暴雨又给这些倒伏的水稻带来了最后的致命一击。今年注定是颗粒无收了。田埂上还未成熟的梨儿也掉了一地，黑儿跟在身后，甘勇沿着还有些泥泞的田埂向村子西边的山上走去。</p>
<p>连日的降雨让空气清新了不少，但也夹杂着一股草木腐烂的气味，甘勇已经在这个小村里度过了 14 年时光，这个味道他再也熟悉不过了；每年夏天的雨后，弥漫在空气里的都是这种气味。</p>
<p>半山坡上是一片橘子林，大风并没给橘子林带来太大的影响，尽管倒了一些树，但四季常绿的橘子树总的来说仍然生机勃勃、郁郁葱葱。至少相对于村子北面的那片竹林，这里确实要好很多。</p>
<p>黑儿的心情也因这次散步好转了，它在主人前后跑来跑去，不时停下来嗅嗅草木的味道。它追赶蚱蜢。侥幸抓住的就被它一边甩着头一边吃掉，大概是因为蚱蜢腿上的尖刺让它感到不适吧。山坡上橘子林的最上端有一条沟渠，这条沟渠连接着 5 公里之外的红星水库。当农耕缺水时，水库可以开闸放水，通过这些沟渠将水送达四方的村落。</p>
<p>沟渠现在已经积了大约 20 厘米深的水。甘勇不打算继续登山了，就沿着沟渠旁边石板路慢慢地走。这条路因为常年失修已经少了很多石板，不过因为长年有人走动倒也十分坚实，而甘勇的思绪又回到了昨天晚上。</p>
<p>昨天晚上，当道士们在堂屋里面唱歌般地念经唱咒时，他一两年才能见一次的妈妈在他的房间告诉了他父亲没有回来的原因。她痛哭流涕地向甘勇说了父亲嫖娼被抓，进而被查出患有艾滋病的事情。母亲说自己没有被感染，但是从母亲无法掩饰的言语和表情中，甘勇看得出来母亲打算离开父亲，离开这个家了。</p>
<p>母亲抽泣地说道：「我养儿是为了防老，你可要一直记得妈呀。」</p>
<p>尽管甘勇也跟着哭了起来，但他其实对母亲却并没有特别的感觉。他从还不到一岁开始就一直呆在爷爷奶奶身边，已经习惯了父母不在身边的生活。他已经14岁了，开始觉得自己不需要任何人也可以活得很好，甚至可能会活得更好。</p>
<p>甘勇不知道母亲为什么要跟自己说这些，对甘勇来说，这个女人不过恰好是他的母亲而已。他们之间连电话都很少打，即使少有的电话里面他也时常感到无话可说。从母亲在他记事之前离开四川去广东打工以来，他们之间唯一稳定的联系就是她每个月寄回的那些钱，这样他才能继续上学。在学校里他的成绩还不错，虽然不是顶尖，但是每个学期也能拿到一张「优秀学生」奖状——爷爷奶奶对此非常自豪，就将这些奖状贴在堂屋的墙壁上，这样凡是来这个家里的人都能看到它们。渐渐地，随着年岁的增长，甘勇开始为墙上的奖状感到窘迫，当别人在有口无心地称赞时，他都有种被人一眼看穿的感觉，就好像自己的所有过去就只有这么几张橘红色背景的、用饭或浆糊贴在墙上的纸。</p>
<p>路上倒着一棵桉树，横着跨在沟渠上面。那棵桉树是村口朱家的，那家人的老太婆和奶奶的关系并不好。在甘勇还在上小学的时候，这两个老人隔三差五地吵架，她们的对战通常都是不堪入耳的互相攻讦，很多话甚至无法被当时的甘勇理解。当然他也从来没有就此询问过任何人，他知道这些都是脏话，十分恶劣的脏话。两个老太婆之间的每一次争吵都会搅得村子鸡犬不宁。但这两年来，尽管甘勇还偶尔能听到奶奶唠叨式的咒骂，但公开的对决早就已经没有了。</p>
<p>甘勇不知道这是从什么时候开始的，到底发生了什么，还是岁月夺走了那份激情？现在他想或许是整个村子都老了吧。老年人在死去，年轻人在逃离，就连甘勇自己，也知道自己过几年必然是要离开的，就像所有的年轻人一样。</p>
<p>甘勇带着黑儿从树干上跨了过去，他的球鞋上已经沾满了泥，他在树干上蹭掉了一些，鞋子变轻松了不少。</p>
<p>再往前，沟渠连接着一个川洞，这是一个人工开凿出来的穿过山体的隧洞，和沟渠的功能一样，是输送水的通道。但在村里面的孩子看来，这里面还是一个探险的好地方。这个川洞大概只有一百米长，但因为在中部有一个 120 度左右的转弯，中间位置的可见度非常低。此外这里面还有一些石头，石头下面偶尔还能抓到不超过拇指大小的螃蟹。</p>
<p>甘勇站在川洞前面。现在，这个看起来黑洞洞的川洞已经不如以前那样让他感到恐惧了。他知道川洞的另一边连接着另一道沟渠，那边还有一片树林。树林中的树杆上交错地攀爬着几种藤蔓植物，茂盛的灌木和杂草几乎遮蔽了林中唯一一条道路。偶尔到这里来玩时，甘勇总是会担心可能从草木里窜出一条蛇来。</p>
<p>这里拥有一个比较开阔的视野，能让人居高临下地俯瞰村子的全貌。在东边村口那里，已经建起了好几栋两层楼房，但有两栋已经完全闲置了，因为这两家的老人都去世了；另外几间住着的也都是老人和留在家里上学的学生。其中一家，旁边架着一座葡萄架的那一家，有一个女孩。她叫王小敏，比甘勇小一岁多点，她家房子的瓷砖上还带着蓝色的条纹。小学的时候他带着她和朱老太婆的孙子黄虎时常在村子周围的小山上冒险。他们玩武侠游戏，挖折耳根，拿着钉子或铁丝在山上裸露的石头上刻下名字，也曾战战兢兢地拿着手电筒穿过刚才的那个川洞。</p>
<p>但是这一年以来，甘勇却对王小敏开始疏远了。这是有意的，因为每次看到她时，他都有点异样的感觉，和她单独相处也让他感到紧张。他喜欢看她，他甚至注意到她的胸部的微微凸起，他喜欢那种样子。王小敏有个弟弟，不过他弟弟一直生活他父母身边，也是在广东。</p>
<p>想到王小敏的样子，他的心情总算好了一点。他望着她家的房子出神，黑儿在周围跑来跑去，然后发出了一声哀鸣。</p>
<p>甘勇赶忙蹲了下来，黑儿却已经飞到了空中。又是一阵大风，夹着树叶和杂草，大风撞上了山体忽然就消失了，黑儿也不见了。甘勇看见它被风卷进了川洞里面。</p>
<p>黑儿还是甘勇带回家的呢。那时他正读五年级，早上他背着书包与上四年级的王小敏和黄虎一起去上学，在经过观音庙后面的小路时，王小敏听到了从干燥的稻草垒成的草树下面传来的小狗的哀叫。这只土狗多半是被主人丢弃的，因为农村的人变少了，养狗的人却变多了，不知道是因为防盗还是因为寂寞。这些多出的狗自然也会生下更多的小狗，多出来的小狗也就没人要了，于是很多人家都把母狗产下的小狗带到母狗找不到的地方丢弃。</p>
<p>甘勇以前也听说过别人丢小狗的事情，他甚至还听说有人把小狗丢进河里面淹死，就像他曾听说有人把生的女孩丢进河里淹死一样；据说都是放进尼龙口袋里，再放入一些石头确保这些口袋会沉到河底。他也曾在村子里面听到过母狗呼唤的哀鸣。</p>
<p>但那一次还是甘勇第一次看到被人丢弃的小狗，他不能撒手不管。</p>
<p>尽管爷爷奶奶都不愿意收养这只小狗，但最后甘勇还是硬把它留了下来，并按毛色给它取名「黑儿」。可等狗长大了，它的毛却变成了灰色。</p>
<p>甘勇在家里时，黑儿基本上都在他身边，有时候他感觉黑儿是他最好的朋友，但也有时候黑儿由于太过黏人而让他大发雷霆。</p>
<p>甘勇估计应该不会再有风来了，便脱了鞋，挽起裤脚进去找黑儿，因为他觉得自己还能隐约听得见黑儿的叫声，希望它不会有事，因为爷爷奶奶是不会花钱给狗治病的，甘勇很清楚这一点。</p>
<p>沟渠里面的水能盖住半个小腿，水温也比较低，但现在毕竟是夏天。</p>
<p>「黑儿。」甘勇叫着它的名字一步步往里面走，那呼唤的回声效果激荡出一股阴森的感觉。甘勇开始觉得身体发冷，但他并没有停止向前。</p>
<p>「嗷呜……」甘勇这一次确实听见了黑儿的呜咽声，应该就在前面不远处了。此时甘勇已经走到中间位置，这里的光线非常弱，但好在甘勇的眼睛现在已经适应了这里的环境，还能看出一些隐约大致的轮廓。</p>
<p>他摸索着向前，凹凸不平的石壁在他的摸索中向前延伸，他的脚在温度越来越低的水里前进。黑儿的声音突然消失了，甘勇顿时紧张起来，这感觉就像是突然得知了奶奶的死讯时的感觉。那是狂风冰雹后的那个下午，甘勇从学校回来后看见了堂屋里面摆放着的尸体，屋子里面还有一些邻居，甚至还有朱老太婆。从他们的口中，甘勇知道了发生的一切。像他们建议的那样，他没有再看白布下的奶奶最后一面，再也没有。</p>
<p>那时，他感觉到最多的也并不是悲伤，而是震惊和茫然：一个人，怎么忽然就死掉了呢？这还是甘勇第一次失去亲近的人。那天，他在自己的房间里面呆了两个小时，终究被悲伤淹没。</p>
<p>过了川洞的转角，从另一边的出口忽的透出一束光来，甘勇却反倒失去了视觉。就像他在一篇鬼故事中看到的那样：当你在黑暗里面呆的久了，光明到来时你还以为世界陷入了黑暗之中，但是等你习惯了光明，你才明白自己原来呆的地方有多么糟糕。</p>
<p>甘勇把这句话写在自己语文课本的扉页上，他觉得这就是自己生活的真实写照，只是他还一直没有找到自己的光明而已，而他需要为此做好准备。</p>
<p>在这短暂几秒时间里，甘勇又回想起这句话，等他的视觉重新有了意义，他看见了几步远外的黑儿，它一动不动地飘在水面上。</p>
<p>甘勇心里一紧，接着是一阵隆隆声从身后传来。甘勇回过头来，黑暗带着排山倒海一般的压迫力量将他击倒……</p>
<p>红星水库的水位已经超过了警戒线，开闸放水的决定也已经在今天早上做出了，相关的通知会在这一决定达成后两到三天送达各村村支部。不过文件总归不是一件要紧的事。这只是一项例行的险情控制工作，从来没出过问题，也应该不会出现什么问题。</p>
<h1 id="二">二</h1>
<p>甘勇跌跌撞撞地站起来，脑袋撞上了石壁，左额头上已经肿起了一块。然而在这个阴冷的川洞里，他却失去了黑儿的踪迹。</p>
<p>刚才发生了什么他并不清楚，他甚至觉得是自己出现了幻觉，不过潜意识里面他开始觉得自己可能撞了鬼，他甚至开始觉得这可能是已经入土的奶奶回来了，不过毕竟他一直接受的是无神论教育，倒不至于陷入不可抑制的对未知之物的恐慌之中。</p>
<p>「黑儿！」他壮起胆子喊了一声，回声在川洞里的效果竟然变得十分骇人。他忽然有种快要窒息的感觉，出口就在前面，他加快了脚步，逃了出去。</p>
<p>外面居然又在下雨了，温度也降低了不少。甘勇原本已经湿透的身体开始微微战栗起来。他站在洞口处朝里面喊：黑儿！黑儿！……</p>
<p>除了自己的回声，进入他耳朵的就只有雨打世界的声音了。</p>
<p>甘勇已经没有胆量再进入川洞了。他喊累了，就坐到洞口的一块石头上。</p>
<p>他觉得很冷，黑儿和奶奶都没有了；他觉得悲伤，也有莫名其妙的愤怒；他觉得不公平，甚至忽然有股想要伤害自己的冲动。</p>
<p>不过最终还是什么也没做，他只是安静地坐在那里，直到开始打喷嚏，并意识到雨大概是不会停了，就像昨天一样。</p>
<p>他走进雨里面，忽然觉得心情平静了许多。</p>
<p>他不打算再穿过川洞回家，这座山的半山腰上有另一条路。他快步走在雨里面，不时擦去眼前的雨水。从山腰上绕回到川洞这一边，他没有找到自己的鞋，他也很快就放弃寻找它们。他觉得越来越冷，便决定还是先回家再说。</p>
<p>穿过了橘子林，就要到家了。</p>
<p>转过一个转角，他看见了自己家的街沿，那里竟然有站着坐着的十几个人。而让甘勇躲到旁边的树后面的原因是街沿上站着的他自己。</p>
<p>当然，他认识他自己，他穿着他昨天穿着那件黑色的长裤和灰色的长袖衫。街沿上站着的人是村里的邻居和一些亲戚。正门的墙上还排着一些花圈，甘勇认得这些花圈，可是现在它们不是应该倒在奶奶的坟头上吗？</p>
<p>各种可能在甘勇的大脑里闪过，最后他相信自己穿越到了昨天。他在电视上看过一些电影，他知道时间穿越是怎么回事，但在此之前，他从来没计划过让这样的事发生在自己身上。所以他对于现在出现的状况毫无准备。</p>
<p>如果这是昨天，雨会一直下，家里面也会一直有人，在客人们吃完饭之后还有道士们敲锣打鼓，他自己也会彻夜不眠。然后到第二天早上五点多钟，就是出殡的时候了。</p>
<p>那么现在这个多出来的自己该去哪里呢？</p>
<p>甘勇现在觉得自己终于被所有人、被整个世界完全抛弃了，但他看见了街沿的角落里趴着的黑儿。他意识到黑儿，或者黑儿的尸体大概还留在明天吧。</p>
<p>甘勇没有回家，他最后决定回到川洞里等着，这场雨到明天才会停，他似乎也只有这一个去处。他想或许可以在川洞里面等到明天，等明天的自己到川洞来之前在半路上拦住他，这样黑儿就不会被大风卷走了吧。</p>
<p>川洞的墙壁并不平滑，甘勇也因此得以在川洞里面找到一个凹陷的可以避风的地方。他发烧了，头也痛的厉害。</p>
<p>饥寒交迫中他甚至觉得自己就要死了，他迷迷糊糊地昏睡了过去。</p>
<p>而在渐进模糊的意识里面，他忽然觉察到一阵宽慰，接着他看见了一束光。</p>
<p>他感觉就像是一直走在黑暗的川洞里面，而这束穿透黑暗的光似乎来自于无穷远处。他甚至不知道自己走了有多久，有多远；还要走多久，走多远。</p>
<p>终于渐渐近了……</p>
<p>甘勇向那束光走去，那束光也在向他走来。他终于沐浴在一片光明里面。他感到愉悦和轻松，这是他现在越来越少能够获得的感觉了，而这几天他甚至认为自己永远无法再体验到了。</p>
<p>白色的平面在脚下铺展开，接着蔓延变成了整个世界，给甘勇带来了关于自身存在的错觉。在各向同性的空间内，连运动和静止也无法被区分开。甘勇试着迈出脚，他发现自己的脚可以以任何方向停留在任何高度，但是他却没有失重的感觉，似乎重力的箭头只对他一个人起作用。走了两步之后，他就开始感到有点眩晕了。这个反常的空间超出了甘勇以往的认知。在眩晕中，他甚至分不清他是这片空间中的无限小，还是就是整个空间本身。</p>
<p>这种感觉并未持续多久。</p>
<p>一个全反射球面突然出现在他的面前，尽管这东西出现得十分突然，但甘勇竟像是打了强效镇定剂一样并没有感到恐惧或慌乱，不过他仍然感到了困惑。</p>
<p>当然球面本身也是各向同性的，但它的出现却打破了整个空间的各向同性，让这片空间有个参考点；而这也成功抑制了甘勇的眩晕感，那球面就位于甘勇正前面，其横向中心面正好在甘勇鼻子的高度上，故此甘勇可以看见自己的影子在球面上扭曲成了夸张的大头影像——巨大的鼻头看起来非常滑稽，但他并没觉得这很好笑。</p>
<p>「甘勇，你好。」突然，球面上的自己不再像个循规蹈矩的影子一样跟随甘勇运动了，它夸张鼻子下面的嘴唇竟然自己在开合。它在说话！而且似乎还使用了甘勇的声音。</p>
<p>「你是谁？」甘勇的平静甚至开始让他自己都觉得不可思议。</p>
<p>「我是这个宇宙的信息中心，不过我更喜欢被称为死神。」球面上的自己说道，那被放大扭曲的自己让甘勇感到有些尴尬。</p>
<p>甘勇愣了一下，忽然回想起冰冷的雨水和奶奶的死，他想到那诡异的时间旅行。「我死了吗？你要带我去哪里？」</p>
<p>「你还没死，但是你快死了。而我不会带你去任何地方。」</p>
<p>「那我不会死吗？」</p>
<p>「最后一切都会死，包括我自己。而对于现在，你的死亡是你的选择。」</p>
<p>甘勇感到困惑；到了这青春期的年纪，他已经开始觉得人根本就没有选择。从出生到死亡，中间的一大串决定不是早就已经决定好了吗？就像人们说的轮回报应或命运。「那我死了你要将我的灵魂带到哪里去？」甘勇还是不相信自己可以选择。</p>
<p>「灵魂？哈哈。」球面上扭曲的影像笑起来非常滑稽，「哪有什么灵魂？只有信息，存在时间中的一切信息。」</p>
<p>说到时间，甘勇觉得有必要提出自己的疑问：「我昨天……我今天回到了昨天，我不知道发生了什么，我的狗也不见了。到底发生了什么？」甘勇竟然开始感到激动起来，他想到一身灰毛的黑儿，它可能已经死了。</p>
<p>「到底发生了什么……一个有趣的问题。我也希望能给你说清楚。首先，宇宙的一切信息都位于时间之中，但……你也听说过爱因斯坦的相对论，宇宙各处的时间并不是均衡的。宇宙中任何的事件都会影响到时间的均衡性，但是却不会影响时间的连续性。」球面上扭曲影像停顿了一下，「看来你并不理解。」它继续说：「但没有关系，你不需要理解。总之你要知道，时间的连续性并不是牢不可破的，特定的事件录入有可能干扰时间的连续性，这在量子层面是很常见的事情，但是这也可能在宏观尺度上发生——但非常罕见。好的，你更困惑了。简单说吧，你在特定的时间上的特定事件让你同时在一个时间节点拥有了两个信息状态，而宇宙的结构并不允许这种情况发生，不然宇宙就会失去稳定。所以在宇宙崩塌之前时间停了下来，而你必须选择坍缩到其中的一个信息状态，这是超越任何观测者的选择，必须要你自己决定。」</p>
<p>甘勇在尽力理解他说的一切，这听起来就像是科幻电影里的场景，尽管科幻电影里通常不会有死神这种「存在」。虽然他最后还是没能明白死神说了什么，但他知道自己确实有一个选择，不过有什么选项呢？「要我选择什么？」</p>
<p>「哈哈。」扭曲的球面镜像干笑两声，「我没指望你能懂，不过有一点你要知道，你的任何选择都影响宇宙的未来，而这种影响在选择做出之前都无法进行观测。」</p>
<p>甘勇无法相信自己居然能对宇宙产生影响。他曾经梦想过，现在也偶尔幻想自己是很重要的人。有时候他想成为脚踩飞剑的英雄，带着王小敏飞遍世界；有时候他梦想成为历史书中伟人，解放全世界被压迫的人；有时候他希望成为电视中那些大侠，打遍天下无敌手；有时候他幻想自己获得了超能力，纵横宇宙直到世界尽头……但那些不过都是做梦而已，他也已经开始醒来。而现在，他的一个决定可以影响整个宇宙！这是他从来没有设想过的。</p>
<p>「你有两个选择，一是你回到明天，被水冲走，但是你会活下去，你的狗则会死掉。二是你回到七天前，你的奶奶会活下去，但是你会死于冰雹。」球面上的自己还是那个欢乐的表情，就好像他在谈论应该选红色的辣条还是选褐色的辣条。</p>
<p>甘勇没想到会是这样的两个选项，他的脑中闪过「回到……回到……」，他已经历过过去与明天，当然都是「回到」，而不是「去到」。但是为什么非得有人死呢？而且这两件事到底有什么关系。「我不明白。为什么要这样？」甘勇问。</p>
<p>「这就是时间，它给了你选择，决定还是要你自己来做。」</p>
<p>「要是我不选呢？」</p>
<p>「没关系，这里有的是时间，你最后还是会选的。」</p>
<p>「可这里是哪里？」</p>
<p>「这里是一个时间翘楚点，这里发生的一切都不会被记录；而宇宙本身的时间已经停了下来，就等着你的决定。」</p>
<p>「我不明白。」</p>
<p>「你不需要明白。你只需要做出选择。」</p>
<p>「可是如果我不明白，我又怎么能够做出选择？」</p>
<p>「对于这个选择，你需要的信息已经足够了——你知道全部选项。」扭曲的球面镜像终于看上去严肃的一点，它那放大的鼻子看起来甚至闪闪发光。</p>
<p>归结起来，全部选项就是奶奶与黑儿的生命或自己的生命。当然，甘勇想让奶奶和黑儿活着，他们都是死于意外的，但是如果自己死了，这一切对于自己还有意义吗？爷爷奶奶也将在悲伤中度过晚年。可是如果自己活着又如何呢？自己活着又会开心吗？生活已经糟糕透了，为什么还要继续下去？</p>
<p>甘勇觉得自己已经悬浮到空中，尽管这个空间并没发生任何变化，甚至自己和那个球面的相对位置也没有任何改变。</p>
<p>有一次，那是在小学毕业后的那个暑假，甘勇还有一个月就要到 12 岁了。他和黄虎一起到镇上玩。前一段时间镇上新开了一家游戏厅，二楼还带有一个带着巨大显示器的网吧，那是甘勇见过的最大的显示器。不过他们并没有那么多零花钱玩游戏，他们只是在后面看别人玩而已。那时候，对于那些网吧座位上比自己还小几岁的小孩们玩的游戏，这两个爷爷奶奶照顾的男孩还并没有多少概念。他那时只觉得有趣，就像读故事书一样。</p>
<p>那天他们也是在看别人玩游戏，座位上坐着一个他的同班同学正在玩《英雄联盟》。这个游戏已经在这个网吧流行了好几个月，周而复始的战斗已经让观战的甘勇有些厌倦了，于是他在网吧里面闲逛，看看有没有人玩其它更值得一看的游戏。有人在玩《穿越火线》，那甚至比《英雄联盟》还要无聊。在第二排靠着空调的角落那里，他看到一个戴着眼镜的人在看电影。他看起来有二十岁左右，瘦削却满脸油光。他面前的显示器上有两个中年白人的背影，下面的字幕上写着：「老伙计，你得为自己而活。」</p>
<p>甘勇不知道自己怎么会想起这个对他来说毫无意义的场景，然后他又想起了方块和线条。他在感冒发烧时总能看到这些图形，它们带来的不真实感就像现在的场景一样让他感觉非常平静。甘勇的思绪在滑动。他回想起微不足道的小事，那些发生在他生命中的小事让他感到厌恶，但有时他也被自己感动。他喜欢王小敏，他现在觉得这件事确定无疑。</p>
<p>梨子快成熟了吧？尽管风吹落了许多，但总归还有一些。他想。</p>
<p>「我选择活下去。」甘勇说，他心里很平静，但他知道不管自己怎么选，他都会厌恶自己。但是，他必须要选。</p>
<h1 id="三">三</h1>
<p>县医院的病房里，甘勇终于醒了过来。他在川洞里面被红星水库放出的水冲了出去，幸好那边正路过一队去观音庙上香的人，他才捡回了一条命。</p>
<p>他已经在医院昏睡两天了，而他的母亲正一脸憔悴地守在他的床边。看见他醒过来，母亲红肿的眼角又滚落泪水。</p>
<p>梦境退去了，只剩下一身的酸痛和满脑子的晕眩，他轻轻地咳嗽一声。</p>
<p>「儿啊。」母亲把手放在他的手腕上，「你好些没有？」</p>
<p>甘勇点了点头，在他耳中的嗡嗡声里，母亲的声音听起来非常遥远。</p>
<p>母亲抽泣了一下，对他说道：「我就只有你这么一个儿子，你要是走了，我该怎么办啊！」</p>
<p>甘勇没有任何反馈。这似乎依然是母亲一直跟他强调的「养儿防老」概念的延续。他的头很痛，他不想思考这些问题。</p>
<p>母亲放开了他的手，「你等着，我去叫医生。」</p>
<p>母亲用手帕擦了擦眼睛，站起来走了，甘勇听见她说：「我老了依靠谁啊？」</p>
<p>甘勇看着天花板上的一块灰斑，旁边灯管散放的光造成了一些眼部刺痛。他依然不明白到底发生了什么，他只是隐约地觉得黑儿应该是死了。</p>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[本地部署LLM并集成到Obsidian]]></title>
        <id>https://czyouge.github.io/post/2406-ollama-obsidian/</id>
        <link href="https://czyouge.github.io/post/2406-ollama-obsidian/">
        </link>
        <updated>2024-06-29T16:00:00.000Z</updated>
        <summary type="html"><![CDATA[<p><a href="https://github.com/ollama/ollama">ollama</a> 是一个非常好用的本地部署 LLM 的工具，适合任何人使用，下载安装即可。</p>
]]></summary>
        <content type="html"><![CDATA[<p><a href="https://github.com/ollama/ollama">ollama</a> 是一个非常好用的本地部署 LLM 的工具，适合任何人使用，下载安装即可。</p>
<!-- more -->
<figure data-type="image" tabindex="1"><img src="https://i.imgur.com/ej4tvXN.png" alt="" loading="lazy"></figure>
<h2 id="安装-llm">安装 LLM</h2>
<p>我安装了两个大模型：8B 版本的 Llama 3 和 27B 版本的 Gemma 2。为此，分别运行：</p>
<p><code>ollama run llama3</code> 和 <code>ollama run gemma2:27b</code></p>
<p>之后，我们可以需要一个方便使用的交互界面。我选择了 <a href="https://github.com/open-webui/open-webui">Open WebUI</a>，使用 docker 安装：</p>
<pre><code>docker run -d -p 3000:8080 --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:main
</code></pre>
<p>如果想使用英伟达 GPU 来驱动 Open WebUI，可以：</p>
<pre><code>docker run -d -p 3000:8080 --gpus all --add-host=host.docker.internal:host-gateway -v open-webui:/app/backend/data --name open-webui --restart always ghcr.io/open-webui/open-webui:cuda
</code></pre>
<p>之后只需在浏览器打开 http://localhost:3000/ 即可使用，界面与 ChatGPT 相当类似：</p>
<figure data-type="image" tabindex="2"><img src="https://i.imgur.com/hsC6sJc.png" alt="" loading="lazy"></figure>
<h2 id="集成到-obsidian">集成到 Obsidian</h2>
<p>首先，在 Obsidian 的社区插件市场下载并启用 Ollama 插件，然后配置好你想使用的指令和模型。配置完成后记得重启一次 Obsidian，如此才能生效。</p>
<figure data-type="image" tabindex="3"><img src="https://i.imgur.com/z3xA6jM.png" alt="" loading="lazy"></figure>
<p>之后，在你需要使用 LLM 的文档中直接点击 <code>Ctrl+P</code> 或选中文本后 <code>Ctrl+P</code> 唤起命令工具，搜索你的命令名称，如上图中的「汉语总结」，调用即可。</p>
<figure data-type="image" tabindex="4"><img src="https://i.imgur.com/9yAVvBh.gif" alt="" loading="lazy"></figure>
]]></content>
    </entry>
    <entry>
        <title type="html"><![CDATA[七年预言]]></title>
        <id>https://czyouge.github.io/post/2406-prophecy/</id>
        <link href="https://czyouge.github.io/post/2406-prophecy/">
        </link>
        <updated>2024-06-10T16:00:00.000Z</updated>
        <summary type="html"><![CDATA[<h2 id="2024">2024</h2>
<p>十字路口，道路已被封锁，一个女人正在无力地抽噎哭泣。在她面前，一滩被碾碎的肉泥正在渐渐冷却。</p>
<p>这个场景吸引了周围数十个手机镜头的关注，它正被那些镜头之后的传感器转换成电子信号，之后再被传输到网络上。</p>
<p>魏兴旭走下救护车，眉头皱起。这是他这个月第三次清理车祸现场，每一次都是一场折磨，而这一次还是一个孩子。一个九岁的孩子。</p>
<p>这个九岁孩子的身躯已经支离破碎，在冷风中的路面上铺出了一条血肉构成的轮胎印迹；未被碾压的四肢散落在那条印迹的两边，已被交警用白布遮掩。</p>
]]></summary>
        <content type="html"><![CDATA[<h2 id="2024">2024</h2>
<p>十字路口，道路已被封锁，一个女人正在无力地抽噎哭泣。在她面前，一滩被碾碎的肉泥正在渐渐冷却。</p>
<p>这个场景吸引了周围数十个手机镜头的关注，它正被那些镜头之后的传感器转换成电子信号，之后再被传输到网络上。</p>
<p>魏兴旭走下救护车，眉头皱起。这是他这个月第三次清理车祸现场，每一次都是一场折磨，而这一次还是一个孩子。一个九岁的孩子。</p>
<p>这个九岁孩子的身躯已经支离破碎，在冷风中的路面上铺出了一条血肉构成的轮胎印迹；未被碾压的四肢散落在那条印迹的两边，已被交警用白布遮掩。</p>
<!-- more -->
<p>几乎每一次市区车祸中都有的白噪声在环境中震颤——闹嚷中有惋惜、同情、抱怨和责备。</p>
<p>魏兴旭和同事开始忙碌起来。先是收起较大的尸块，然后再收聚遗落的碎屑，至于那条印迹，则会被已经停在一旁的洒水车的高压水枪冲进下水道。</p>
<p>魏兴旭埋头工作着，忽然在那碎肉中发现了一张小纸条。摊开来，他看见那已经浸满淋巴液的纸片上用铅笔写着七行扭扭斜斜的字，其中第一行就足以让他震惊：「今天我死于车祸」。再向下看依次为：</p>
<pre><code>明年南海爆炸一艘核潜艇
后年一场大疫病
再一年月亮微笑
又一年李启常死去
后一年听见周杰伦
人类灭绝
</code></pre>
<p>预言吗？他想，多半是这个不幸孩子生前的玩笑，但是他又不能忽视第一句「今天我死于车祸」。如果这张纸条真是预言，那至少第一条已经应验了。</p>
<p>他向交警通报了自己的发现。交警说他们之前看见过这张纸条，并已经认定这不过就是巧合，他说：「要是你也是警察，你就知道巧合这种东西总是会出现在一些莫名其妙的地方，你不能去深究它，因为那就是巧合，别无其它，不然就是额外的毫无意义的工作量。」</p>
<p>魏兴旭大体上接受了这个说法，但也稍多留心，把这纸条上的大致内容记入了自己的脑海。</p>
<p>之后几周，他不时回想起这七行字。虽然肉体的大脑已经让其中的某些文本变得模糊，但其中的大致意思却依然清楚。而这几周之后，生活中形成的新记忆渐渐地将这些内容掩埋到了记忆网络的更低层，让它越来越少地被意识回想。</p>
<h2 id="2025">2025</h2>
<p>如果要评价影响人类社会最大的两种动物，也许会有人说是灰犀牛和黑天鹅。</p>
<p>四月六日那天，一只黑天鹅出现在南海，引爆了一艘核潜艇。</p>
<p>这件事或许是纯粹的意外，但由于发生位置的敏感性。这意外之事就有了可被利用的地方。总之，它让一根本已经绷紧的弦几近断裂，足以让最为政治迟钝的人也开始感到不妙。</p>
<p>魏兴旭也算是一个这样的人。之前他也偶尔看些新闻，但似乎从来都不觉得新闻中的事情与自己的生活有任何真正的关联。他总是相信或者说希望这个世界就会一如往常地持续下去；战争、饥荒、天灾总是发生在自己的生活圈之外，自己所能见证的最大不幸也就是那些意外事故所造成的悲剧了，何况意外嘛，总是会发生的。</p>
<p>但这次的情况确实不一样。首先，新闻主持人的语气不一样了，隐隐地多了一丝怒气，而且就连语速也略微提升了一些。另外，日常中见到的人也不一样了，似乎变得更加行色匆匆，每个人都多了几分焦虑。而且城市的颜色也变少了，不再那样多彩，就连城市中年轻人们穿的衣服，也开始变得单调起来。</p>
<p>魏兴旭是在那次黑天鹅事件突然出现之后第三天才想起八个多月前的那个预言。它从他存档记忆的神经元网络中爬出来，在他吃饭的时候给他的意识来了一记重拳，几乎将他手中的筷子震落下去。</p>
<p>他看了一眼外面在滂沱的大雨和阴冷的春风中一棵摇晃不停的小树，渐渐回忆起那预言的其余内容。明年又会有瘟疫吗？不会吧？他不敢相信，也不愿意去信，但他知道他需要为此做好准备了。</p>
<p>他开始囤积粮食，并在四个月后辞去了在医院的工作。他不再相亲，开始忧心忡忡地打听「李启常」这个名字，也翻来覆去地听周杰伦的歌，试图找到某个线索，让他可以否定那个预言的最后四个字。</p>
<p>但直到这一年结束，除了愈渐的迷茫和忧虑，他一无所获。</p>
<h2 id="2026">2026</h2>
<p>三月底的时候他就听医院的朋友说了新疫情的事情——据说是一种可以经体液和飞沫传播的免疫系统病毒，但直到五月初政府才公开确认，而这时候失控已经无可避免。故事一如多年前的剧本一样重复了，甚至废话文学也再次流行，像是「除了幸存下来的人，其他人都死了」以及「如果病毒没有杀死你，那么你就能活下去」。人们忧心忡忡地苦中作乐，试图用玩笑话来化解和缓解悲痛，只是悲痛当时的人依旧悲痛。</p>
<p>八月份时，魏兴旭在半个月内失去了自己的母亲和父亲，但似乎早有准备一般，他并不显得多么悲痛，因为此时的他已经完全相信了那些两年多以前一个死于车祸的孩童手写的预言。他也不知道是等着人类灭绝更好，还是现在死去更好——他能为任何一个选项找到足够的支持论据。</p>
<p>不管怎样，虽然总是一个人，他还是继续活了下去，而且由于他提前储备了大量物资，他的日子还算轻松。</p>
<p>不知道是不是疫情终于扯断了那已经绷紧的弦，或者本就是当权者早已定好的计划，那年冬至，战争爆发了。</p>
<h2 id="2027">2027</h2>
<p>六月二十一日，夏至。没有电，酷热难当。魏兴旭拿着一把壮阳广告已经模糊不清的老旧塑料扇躺在小区中心广场看着夜空。今夜的月亮总体依然很圆，反射的阳光让周围的星辰都不敢与之争辉。</p>
<p>当他在月光中快要获得已多年不曾有过的安宁情绪时，他明白了「月亮微笑」的含义。</p>
<p>那是轨道战争的痕迹，也不是魏兴旭第一次看到，但这确实是他第一次看见它正好发生月亮的光盘之内。爆炸的焰火在扁圆的光盘上勾勒，竟真的呈现出了一副笑容。</p>
<p>他的眼睛湿润了，但月亮的笑容在泪水之后却变得更为真切。他摸了一把眼睛，随即鼻孔不受控制般发出呲呲的声音。他莫名地哭了起来，但不过半分钟又莫名地开始大笑，又引得小区中其他一些一起纳凉的人一起笑。也有人在这笑声中尖叫。</p>
<p>也是在这时候，魏兴旭才意识到那些预言是专门留给自己的，毕竟只有在他现在所在的位置周围才能看见那张笑脸。</p>
<p>第二天，他收到了征召令。</p>
<h2 id="2028">2028</h2>
<p>任务是回收掉落在实兑港北部的一架搭载了一枚微型核弹头的无人机。他们说这是一枚伊朗产的「臭屁弹」，就是多半会泄漏辐射伤害自己人的「垃圾玩意儿」，但在战场上，这点辐射并不是一个值得担忧的紧要因素，至少德国佬造的刺杀机器虫要恐怖得多。</p>
<p>这不是个危险任务，至少长官是这么说的；目的是防止这些东西落到恐怖分子手里，尤其是那些人类灭绝主义者。</p>
<p>「人类灭绝。」真是一个让人绝望的预言，而居然真的有人类想要实现它。</p>
<p>魏兴旭尝试过向长官解释他看到的预言，但他未能成功说服任何人相信他，反倒让他自己差点被怀疑是一个恐怖分子和外国间谍。</p>
<p>他闭了嘴。但这也开始让他觉得对他的指控也并非完全名不符实——他在坐等人类灭绝。</p>
<p>载具从早已空无一人的小镇中央穿过。忽然一个人影在稍有懈怠的魏兴旭的眼角一闪而过，促使他聚集了精神，举枪观察。「洞三洞三。」他重复了两声发出警报，让车上的另外五人也进了警戒状态。</p>
<p>车辆有惊无险地穿过了小镇，而就在即将离开小镇的出口处，车子停了下来。</p>
<p>队长带着士兵们下车检查，在车辆的前方有一滩血，血中躺着一个奄奄一息、呲呲喘气的人。他的眼睛已经被剜去，舌头也已被割掉，腹部被划开一道敞口，流出几节大肠。</p>
<p>魏兴旭走到这个必死之人面前，看到了被刻意放置在他胸口处的那张证件，那上面有一个熟悉的名字：李启常。他生于 2007 年 10 月 24 日，是一个缅甸华人。</p>
<p>「ACA 的手法，那群杂种。」队长只是简单看了一眼后就招呼众人重新上车，他又看了一眼愣神的魏兴旭，又轻声吩咐了一句：「用手枪。」</p>
<h2 id="2029">2029</h2>
<p>国与国之间没有永恒的敌人，也没有永远的朋友。魏兴旭之前无论如何也想不到西安会在一夜之间变成俄占区，他被俘了，然后被关进了军人集中营。</p>
<p>日常挖沟时他常想将在明年到来的「人类灭绝」，但他也只是想想而已，其实并不能真正理解其中的内涵。是的，他会死，但对于现在的他来说，死早已经算不上是一件格外可怕的事。事实上，只要方法得当，死亡可以发生得很快，甚至不会造成任何痛苦。更何况他也早已经习惯了痛苦。</p>
<p>消息不胫而走，带着未经证实的恐惧——俄军即将撤出西安，但在此之前，他们会处决所有囚犯。</p>
<p>人们惶惶不安。有人说这是谣言，也有人笃信这个传言，并宣称俄国人早就在波兰干过类似的事情，颇有经验。相较之下，魏兴旭就要淡定许多，他已经基本相信自己已经被预言选中要活到明年的人类灭绝的——他相信自己很可能就是地球上最后一个人。</p>
<p>至于今年，他回想起来，似乎和周杰伦的歌有关，但今年他实在听过了太多次周杰伦的歌，因为在牢房里睡他上铺的「瘦猪」许浩然不知道从哪里搞到一台老式纽曼 MP4，里面装满了周杰伦和蔡依林。</p>
<p>也就在这时，他听见了熟悉的歌声。它从那台老式 MP4 的单声道喇叭里面发出来，传入新挖出的深坑中。魏兴旭抬头，看见瘦猪站在坑边缘的一个土堆上望着远方。</p>
<p>他的身体在颤抖，然后忽地跪倒下去，发出断断续续的啊啊哭叫声。那台老式 MP4 从他的手中滑落，坠落深坑，于是音乐被土壁退还的回声增强，在深坑中激荡。</p>
<p>……<br>
午睡操场传来蝉的声音<br>
多少年后也还是很好听<br>
将愿望折纸飞机寄成信<br>
因为我们等不到那流星<br>
……</p>
<p>一颗子弹从瘦猪的右额射入，又在左耳处爆开，炸出一朵血花。两个全副武装的士兵从土堆后露出头来，朝深坑中惊骇不已的众人瞥了一眼，扔下了一枚燃烧弹。</p>
]]></content>
    </entry>
</feed>