-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathindex.html
More file actions
270 lines (245 loc) · 34.4 KB
/
Copy pathindex.html
File metadata and controls
270 lines (245 loc) · 34.4 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
<!DOCTYPE html><html lang="zh-CN/en" data-theme="dark"><head><meta charset="UTF-8"><meta http-equiv="X-UA-Compatible" content="IE=edge"><meta name="viewport" content="width=device-width, initial-scale=1.0,viewport-fit=cover"><title>养精蓄锐 - Reinventing the wheel…</title><meta name="author" content="NecroSZN"><meta name="copyright" content="NecroSZN"><meta name="format-detection" content="telephone=no"><meta name="theme-color" content="#0d0d0d"><meta name="description" content="厚积薄发">
<meta property="og:type" content="website">
<meta property="og:title" content="养精蓄锐">
<meta property="og:url" content="https://shadowbanuser.github.io/index.html">
<meta property="og:site_name" content="养精蓄锐">
<meta property="og:description" content="厚积薄发">
<meta property="og:locale">
<meta property="og:image" content="https://shadowbanuser.github.io/images/iroha.jpg">
<meta property="article:author" content="NecroSZN">
<meta name="twitter:card" content="summary">
<meta name="twitter:image" content="https://shadowbanuser.github.io/images/iroha.jpg"><script type="application/ld+json">{
"@context": "https://schema.org",
"@type": "WebSite",
"name": "养精蓄锐",
"alternateName": [
"Reinventing the wheel…",
"shadowbanuser.github.io"
],
"url": "https://shadowbanuser.github.io/"
}</script><link rel="shortcut icon" href="/images/iroha.jpg"><link rel="canonical" href="https://shadowbanuser.github.io/index.html"><link rel="preconnect" href="//cdn.jsdelivr.net"/><link rel="preconnect" href="//busuanzi.ibruce.info"/><link rel="stylesheet" href="/css/index.css?v=5.5.4"><link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@7.1.0/css/all.min.css"><script>
(() => {
const saveToLocal = {
set: (key, value, ttl) => {
if (!ttl) return
const expiry = Date.now() + ttl * 86400000
localStorage.setItem(key, JSON.stringify({ value, expiry }))
},
get: key => {
const itemStr = localStorage.getItem(key)
if (!itemStr) return undefined
const { value, expiry } = JSON.parse(itemStr)
if (Date.now() > expiry) {
localStorage.removeItem(key)
return undefined
}
return value
}
}
window.btf = {
saveToLocal,
getScript: (url, attr = {}) => new Promise((resolve, reject) => {
const script = document.createElement('script')
script.src = url
script.async = true
Object.entries(attr).forEach(([key, val]) => script.setAttribute(key, val))
script.onload = script.onreadystatechange = () => {
if (!script.readyState || /loaded|complete/.test(script.readyState)) resolve()
}
script.onerror = reject
document.head.appendChild(script)
}),
getCSS: (url, id) => new Promise((resolve, reject) => {
const link = document.createElement('link')
link.rel = 'stylesheet'
link.href = url
if (id) link.id = id
link.onload = link.onreadystatechange = () => {
if (!link.readyState || /loaded|complete/.test(link.readyState)) resolve()
}
link.onerror = reject
document.head.appendChild(link)
}),
addGlobalFn: (key, fn, name = false, parent = window) => {
if (!false && key.startsWith('pjax')) return
const globalFn = parent.globalFn || {}
globalFn[key] = globalFn[key] || {}
globalFn[key][name || Object.keys(globalFn[key]).length] = fn
parent.globalFn = globalFn
}
}
const activateDarkMode = () => {
document.documentElement.setAttribute('data-theme', 'dark')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#0d0d0d')
}
}
const activateLightMode = () => {
document.documentElement.setAttribute('data-theme', 'light')
if (document.querySelector('meta[name="theme-color"]') !== null) {
document.querySelector('meta[name="theme-color"]').setAttribute('content', '#ffffff')
}
}
btf.activateDarkMode = activateDarkMode
btf.activateLightMode = activateLightMode
const theme = saveToLocal.get('theme')
theme === 'dark' ? activateDarkMode() : theme === 'light' ? activateLightMode() : null
const asideStatus = saveToLocal.get('aside-status')
if (asideStatus !== undefined) {
document.documentElement.classList.toggle('hide-aside', asideStatus === 'hide')
}
const detectApple = () => {
if (/iPad|iPhone|iPod|Macintosh/.test(navigator.userAgent)) {
document.documentElement.classList.add('apple')
}
}
detectApple()
})()
</script><script>const GLOBAL_CONFIG = {
root: '/',
algolia: undefined,
localSearch: {"path":"/search.xml","preload":false,"top_n_per_article":1,"unescape":false,"pagination":{"enable":false,"hitsPerPage":8},"languages":{"hits_empty":"No results found for: ${query}","hits_stats":"${hits} articles found"}},
translate: undefined,
highlight: {"plugin":"highlight.js","highlightCopy":true,"highlightLang":true,"highlightHeightLimit":false,"highlightFullpage":false,"highlightMacStyle":false},
copy: {
success: 'Copy Successful',
error: 'Copy Failed',
noSupport: 'Browser Not Supported'
},
relativeDate: {
homepage: false,
post: false
},
runtime: 'days',
dateSuffix: {
just: 'Just now',
min: 'minutes ago',
hour: 'hours ago',
day: 'days ago',
month: 'months ago'
},
copyright: undefined,
lightbox: 'null',
Snackbar: undefined,
infinitegrid: {
js: 'https://cdn.jsdelivr.net/npm/@egjs/infinitegrid@4.13.0/dist/infinitegrid.min.js',
buttonText: 'Load More'
},
isPhotoFigcaption: true,
islazyloadPlugin: false,
isAnchor: false,
percent: {
toc: true,
rightside: false,
},
autoDarkmode: false
}</script><script id="config-diff">var GLOBAL_CONFIG_SITE = {
title: '养精蓄锐',
isHighlightShrink: false,
isToc: false,
pageType: 'home'
}</script><link rel="stylesheet" href="/css/custom.css"><meta name="generator" content="Hexo 8.1.1"></head><body><div id="sidebar"><div id="menu-mask"></div><div id="sidebar-menus"><div class="avatar-img text-center"><img src="/images/iroha.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="site-data text-center"><a href="/archives/"><div class="headline">Articles</div><div class="length-num">9</div></a><a href="/tags/"><div class="headline">Tags</div><div class="length-num">14</div></a><a href="/categories/"><div class="headline">Categories</div><div class="length-num">2</div></a></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/bangumis/"><i class="fa-fw fas fa-video"></i><span> Bangumis</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archives</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Categories</span></a></div></div></div></div><div class="page" id="body-wrap"><header class="full_page" id="page-header" style="background-image: url(/images/wallpaper.png);"><nav id="nav"><span id="blog-info"><a class="nav-site-title" href="/"><span class="site-name">养精蓄锐</span></a></span><div id="menus"><div id="search-button"><span class="site-page social-icon search"><i class="fas fa-search fa-fw"></i><span> Search</span></span></div><div class="menus_items"><div class="menus_item"><a class="site-page" href="/"><i class="fa-fw fas fa-home"></i><span> Home</span></a></div><div class="menus_item"><a class="site-page" href="/bangumis/"><i class="fa-fw fas fa-video"></i><span> Bangumis</span></a></div><div class="menus_item"><a class="site-page" href="/archives/"><i class="fa-fw fas fa-archive"></i><span> Archives</span></a></div><div class="menus_item"><a class="site-page" href="/tags/"><i class="fa-fw fas fa-tags"></i><span> Tags</span></a></div><div class="menus_item"><a class="site-page" href="/categories/"><i class="fa-fw fas fa-folder-open"></i><span> Categories</span></a></div></div><div id="toggle-menu"><span class="site-page"><i class="fas fa-bars fa-fw"></i></span></div></div></nav><div id="site-info"><h1 id="site-title">养精蓄锐</h1><div id="site-subtitle"><span id="subtitle"></span></div></div><div id="scroll-down"><i class="fas fa-angle-down scroll-down-effects"></i></div></header><main class="layout" id="content-inner"><div class="recent-posts nc" id="recent-posts"><div class="recent-post-items"><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/09/05/%E5%85%B3%E4%BA%8E%E7%94%9F%E6%84%8F%EF%BC%8C%E4%BB%A5%E5%8F%8A%E6%88%91%E6%83%B3%E5%81%9A%E7%9A%84%E4%B8%9C%E8%A5%BF/" title="关于生意,以及我想做的东西">关于生意,以及我想做的东西</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-09-05T04:41:50.000Z" title="Created 2026-09-05 12:41:50">2026-09-05</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9A%8F%E7%AC%94/">随笔</a></span></div><div class="content">关于生意,以及我想做的东西前些时候,和一位做建材的企业经营者聊了很久。 谈话涉及的东西不少,从贸易、研发和生产,一直讲到教育与人生选择。我把谈话整理了下来,但整理完之后,还是觉得有必要再写一点自己的想法。能把他讲的话复述出来,和真正理解其中的意思,毕竟还有一段距离。 其中最让我在意的,反而是两件听上去很具体的事:为什么一家有实力的企业愿意替小品牌生产,以及一家建材企业为什么要去做农业。 这两件事后来又让我想到,自己之前停下来的一个项目,和现在想做的另一个工具。 文中的人名与企业信息已作模糊处理。经营情况依据受访者的讲述,后面的理解则是我自己的。 有自己的品牌,为什么还要替别人贴牌?上午谈到代工时,我确实有些没转过弯来。 在我原来的认知里,代工大概是这样一幅图景:没什么名气的小厂负责生产,知名品牌负责把东西卖出去。产品贴上大牌的商标,价格和销量也就有了另一种可能。总之,品牌方似乎总是更有实力、也更占主动的一方。 但眼前这家企业并不符合这个印象。它在当地建材行业已经有一定知名度,有原料、配方、技术人员,也有自己的生产设备。一些比它小得多的品牌找过来,只要提出产品要求,它就可以把东西生...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/04/20/prompt/" title="应当避免的人工智能写作套路">应当避免的人工智能写作套路</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-04-20T08:48:05.000Z" title="Created 2026-04-20 16:48:05">2026-04-20</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/">技术</a></span></div><div class="content">应当避免的人工智能写作套路将此文件添加到您的人工智能助手的系统提示词或上下文中,以帮助其避免常见的人工智能写作模式。来源:tropes.fyi 作者:ossama.is 用词选择“悄悄地”及其他神奇副词过度使用“悄悄地”及类似副词来传达微妙的重要性或低调的力量。人工智能喜欢用这些副词让平淡无奇的描述显得意义重大。还包括:“深深地”、“根本上”、“显著地”、“可以说”。 避免以下模式: “悄然协调着工作流、决策和交互” “那个悄无声息地让其他一切窒息的事物” “其背后一种静谧的智慧” “深入探讨”及其同类词这曾是最臭名昭著的人工智能痕迹。“深入探讨”从一个不常用的词汇,变成了在人工智能生成文本中出现比例高得惊人的词汇。它属于被滥用的人工智能词汇家族的一部分,该家族还包括“当然”、“利用”、“借力”(作为动词)、“稳健”、“精简”以及“驾驭”。 避免以下模式: “让我们深入探讨这些细节……” “在更深入探讨这个话题时……” “我们当然需要利用这些稳健的框架……” “交织的画卷”与“格局”在用简单词汇即可表达的地方,过度使用华丽或宏大的名词。“交织的画卷”被用来描述任何相互关...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/03/30/AI-Standard-3/" title="转载&存档丨AI 标准协议及调用(3)">转载&存档丨AI 标准协议及调用(3)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-03-30T12:03:43.000Z" title="Created 2026-03-30 20:03:43">2026-03-30</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/">技术</a></span></div><div class="content">实战示例:使用 OpenAI 协议调用 DeepSeek示例 1:使用 Go安装依赖12go get [github.com/sashabaranov/go-openai](https://github.com/sashabaranov/go-openai)go get [github.com/joho/godotenv](https://github.com/joho/godotenv) 代码实现12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364package mainimport ( "context" "fmt" "log" "os" "[github.com/joho/godotenv](https://github.com/joho/godotenv)" ...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/03/29/AI-Standard-2/" title="转载&存档丨AI 标准协议及调用(2)">转载&存档丨AI 标准协议及调用(2)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-03-29T10:17:44.000Z" title="Created 2026-03-29 18:17:44">2026-03-29</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/">技术</a></span></div><div class="content">Tool Call(函数调用)详解什么是 Tool Call? Tool Call(也称 Function Calling)是 AI 模型的一项核心能力,它允许模型在对话过程中主动调用外部函数或 API。 核心概念 想象一下这个场景: 用户问:“北京今天天气怎么样?” AI 模型本身不知道实时天气信息(它只是一个语言模型) 但如果我们给 AI 提供一个”查询天气”的工具,它就能: 识别用户需要天气信息 决定调用 get_weather 函数 提取参数:city="北京" 返回函数调用请求给开发者 开发者执行实际的天气查询 将结果返回给 AI AI 基于结果生成自然语言回复 关键点:AI 模型本身不会执行函数,它只是”决定”需要调用哪个函数,并生成调用参数。实际的函数执行由开发者完成。 Tool Call 的工作流程12345678910111213用户提问 ↓AI 分析问题 ↓AI 决定需要调用工具 ← 这里 AI 只是"决策" ↓返回工具调用请求(函数名 + 参数) ↓开发者执行实际函数 ← 这里才是真正的执行...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/03/28/AI-Standard-1/" title="转载&存档丨AI 标准协议及调用(1)">转载&存档丨AI 标准协议及调用(1)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-03-28T08:41:55.000Z" title="Created 2026-03-28 16:41:55">2026-03-28</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/">技术</a></span></div><div class="content">AI 标准协议及调用前言AI近期来发展迅速,这段时间刷视频和朋友圈总是看到大家又在说什么前端已死、后端已死,还有什么你们搞大模型的都是码奸之类的话,这些也都是AI迅速发展的表现。在这种环境下,学习开发的人很难不焦虑,有些时候甚至会想还有必要学基础的编程吗,直接全部vibe coding不就好了吗,但其实不是这样的,编程能力从来不是跳跃式获得的,所有的学习都是一条平滑上升的曲线,要学好计算机,先从最基本的coding学起,学习前端、后端,再到全栈、agent,逐渐再转向研发大模型,这样才算是健全的学习道路,而非是从一开始就跑去学习大模型。本质上,AI 不是起点,而是建立在扎实工程能力之上的。接下来就会讲解在学习AI的过程中最基础的AI标准协议及调用。 现在的 API 协议已经相当标准化和通用化参考 HTTP 协议在讲 AI API 协议之前,我们先复习一下 HTTP 协议,这在之前也有讲过。HTTP(超文本传输协议)是互联网通信的基础,也是现在AI应用中最常用的传输层协议,它定义了客户端和服务器之间如何交换数据的规则: 统一的请求格式:包含 GET、POST、PUT、DELETE...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/03/15/%E8%B0%B7%E6%AD%8CGemini%E7%B2%97%E4%BD%93bug%E4%BF%AE%E5%A4%8D%E6%8F%92%E4%BB%B6/" title="谷歌Gemini粗体bug修复插件">谷歌Gemini粗体bug修复插件</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-03-15T09:13:05.000Z" title="Created 2026-03-15 17:13:05">2026-03-15</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E6%8A%80%E6%9C%AF/">技术</a></span></div><div class="content">新手的第一个 GitHub 仓库,把谷歌gemini网页版字体加粗遇到特殊标点符号时失效的bug覆盖了,还是有必要记录一下的。 最初只是强迫症的一点偏执,结果跟大厂的 Virtual DOM 防篡改机制和 CSP 拦截斗智斗勇了8h,最后靠gemini自己帮我用纯 DOM 节点重写绕过了安全墙。 虽然是vibe coding出来的,但亲手把第五版代码 commit 上去最终成功时的成就感还是溢于言表的。 也希望大家可以给我的GitHub项目一个star,感谢各位支持! 项目地址:Gemini Markdown Bold Fixer </div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2026/02/25/Kaguya/" title="全网角度最奇怪的辉夜姬杂谈…">全网角度最奇怪的辉夜姬杂谈…</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2026-02-25T06:00:00.000Z" title="Created 2026-02-25 14:00:00">2026-02-25</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9A%8F%E7%AC%94/">随笔</a></span></div><div class="content">全网角度最奇怪的辉夜姬杂谈…我对这部作品的喜爱,来自一个颇为独特的切入点:我在里面看到一种时代感。 但那并非“复古”,而是独属于我们 Z 世代的精神共鸣。 现实与虚拟的交织从前讨论互联网、虚拟主播以及人工智能的那些作品,几乎都是寓言式的,致力于探讨抽象的哲学命题。相比之下,《超时空辉夜姬》更像是一种回应。 当时间来到 2026 年,人们早已对虚拟主播、VR 世界习以为常,甚至产生审美疲劳之时,这部作品重新回溯了一段由“我们对人与人之间连接的渴望”所推动的技术发展史。 “梦是现实的延续,现实是梦的终结。” ——《EVA》 二十年后的今天,这句话已经不再是一句神谕。人们真的在认真思考:现实要通过怎样的方式投射进虚拟?虚拟世界又怎样反过来干预现实?这部作品,一定会在五年或者十年后被人们重新提起。 错位的浪漫By the way,我一直非常喜欢复古未来主义美学 (Retrofuturism),在音乐上则偏爱合成器浪潮 (Synthwave)。 什么是复古未来主义?回望 80~90 年代计算机与互联网刚刚民用化时,那时的人们对未来互联网有着怎样的幻想?一定和今天真实的互联网相去甚远。当...</div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2025/12/24/%E6%B8%B8%E8%AE%B0%E7%BB%AD%EF%BC%88%E9%99%84%E5%BD%95%EF%BC%89/" title="游记续(附录)">游记续(附录)</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2025-12-24T13:15:51.000Z" title="Created 2025-12-24 21:15:51">2025-12-24</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9A%8F%E7%AC%94/">随笔</a></span></div></div></div><div class="recent-post-item"><div class="recent-post-info no-cover"><a class="article-title" href="/2025/11/26/%E9%AB%98%E4%B8%89%E7%9A%84%E4%B8%80%E4%BA%9B%E7%89%87%E6%AE%B5-2025%E9%AB%98%E8%80%83%E6%B8%B8%E8%AE%B0/" title="高三的一些片段 & 2025高考游记">高三的一些片段 & 2025高考游记</a><div class="article-meta-wrap"><span class="post-meta-date"><i class="far fa-calendar-alt"></i><span class="article-meta-label">Created</span><time datetime="2025-11-26T08:08:33.000Z" title="Created 2025-11-26 16:08:33">2025-11-26</time></span><span class="article-meta"><span class="article-meta-separator">|</span><i class="fas fa-inbox"></i><a class="article-meta__categories" href="/categories/%E9%9A%8F%E7%AC%94/">随笔</a></span></div></div></div></div></div><div class="aside-content" id="aside-content"><div class="card-widget card-info text-center"><div class="avatar-img"><img src="/images/iroha.jpg" onerror="this.onerror=null;this.src='/img/friend_404.gif'" alt="avatar"/></div><div class="author-info-name">NecroSZN</div><div class="author-info-description">厚积薄发</div><div class="site-data"><a href="/archives/"><div class="headline">Articles</div><div class="length-num">9</div></a><a href="/tags/"><div class="headline">Tags</div><div class="length-num">14</div></a><a href="/categories/"><div class="headline">Categories</div><div class="length-num">2</div></a></div><a id="card-info-btn" target="_blank" rel="noopener" href="https://github.com/ShadowbanUser"><i class="fab fa-github"></i><span>Follow Me</span></a></div><div class="card-widget card-announcement"><div class="item-headline"><i class="fas fa-bullhorn fa-shake"></i><span>Announcement</span></div><div class="announcement_content">本站用于记录学习历程、技术总结和个人思考。内容持续更新。</div></div><div class="sticky_layout"><div class="card-widget card-recent-post"><div class="item-headline"><i class="fas fa-history"></i><span>Recent Posts</span></div><div class="aside-list"><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2026/09/05/%E5%85%B3%E4%BA%8E%E7%94%9F%E6%84%8F%EF%BC%8C%E4%BB%A5%E5%8F%8A%E6%88%91%E6%83%B3%E5%81%9A%E7%9A%84%E4%B8%9C%E8%A5%BF/" title="关于生意,以及我想做的东西">关于生意,以及我想做的东西</a><time datetime="2026-09-05T04:41:50.000Z" title="Created 2026-09-05 12:41:50">2026-09-05</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2026/04/20/prompt/" title="应当避免的人工智能写作套路">应当避免的人工智能写作套路</a><time datetime="2026-04-20T08:48:05.000Z" title="Created 2026-04-20 16:48:05">2026-04-20</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2026/03/30/AI-Standard-3/" title="转载&存档丨AI 标准协议及调用(3)">转载&存档丨AI 标准协议及调用(3)</a><time datetime="2026-03-30T12:03:43.000Z" title="Created 2026-03-30 20:03:43">2026-03-30</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2026/03/29/AI-Standard-2/" title="转载&存档丨AI 标准协议及调用(2)">转载&存档丨AI 标准协议及调用(2)</a><time datetime="2026-03-29T10:17:44.000Z" title="Created 2026-03-29 18:17:44">2026-03-29</time></div></div><div class="aside-list-item no-cover"><div class="content"><a class="title" href="/2026/03/28/AI-Standard-1/" title="转载&存档丨AI 标准协议及调用(1)">转载&存档丨AI 标准协议及调用(1)</a><time datetime="2026-03-28T08:41:55.000Z" title="Created 2026-03-28 16:41:55">2026-03-28</time></div></div></div></div><div class="card-widget card-categories"><div class="item-headline">
<i class="fas fa-folder-open"></i>
<span>Categories</span>
</div>
<ul class="card-category-list" id="aside-cat-list">
<li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E6%8A%80%E6%9C%AF/"><span class="card-category-list-name">技术</span><span class="card-category-list-count">5</span></a></li><li class="card-category-list-item "><a class="card-category-list-link" href="/categories/%E9%9A%8F%E7%AC%94/"><span class="card-category-list-name">随笔</span><span class="card-category-list-count">4</span></a></li>
</ul></div><div class="card-widget card-tags"><div class="item-headline"><i class="fas fa-tags"></i><span>Tags</span></div><div class="card-tag-cloud"><a href="/tags/%E4%BA%A7%E5%93%81%E8%AE%BE%E8%AE%A1/" style="font-size: 1.1em; color: #999">产品设计</a> <a href="/tags/%E5%BD%B1%E8%AF%84/" style="font-size: 1.1em; color: #999">影评</a> <a href="/tags/%E5%88%9B%E4%B8%9A%E6%80%9D%E8%80%83/" style="font-size: 1.1em; color: #999">创业思考</a> <a href="/tags/%E8%BD%AC%E8%BD%BD/" style="font-size: 1.5em; color: #99a9bf">转载</a> <a href="/tags/AI%E6%8F%90%E7%A4%BA%E8%AF%8D/" style="font-size: 1.1em; color: #999">AI提示词</a> <a href="/tags/llm%E8%B0%83%E7%94%A8/" style="font-size: 1.5em; color: #99a9bf">llm调用</a> <a href="/tags/%E5%9B%9E%E5%BF%86%E5%BD%95/" style="font-size: 1.3em; color: #99a1ac">回忆录</a> <a href="/tags/%E6%84%9F%E6%82%9F/" style="font-size: 1.3em; color: #99a1ac">感悟</a> <a href="/tags/%E8%B0%B7%E6%AD%8CGemini/" style="font-size: 1.1em; color: #999">谷歌Gemini</a> <a href="/tags/GitHub%E9%A1%B9%E7%9B%AE/" style="font-size: 1.1em; color: #999">GitHub项目</a> <a href="/tags/%E8%A7%82%E5%90%8E%E6%84%9F/" style="font-size: 1.1em; color: #999">观后感</a> <a href="/tags/%E6%8F%92%E4%BB%B6/" style="font-size: 1.1em; color: #999">插件</a> <a href="/tags/Prompt/" style="font-size: 1.1em; color: #999">Prompt</a> <a href="/tags/ACGN%E6%9D%82%E8%B0%88/" style="font-size: 1.1em; color: #999">ACGN杂谈</a></div></div><div class="card-widget card-archives">
<div class="item-headline">
<i class="fas fa-archive"></i>
<span>Archives</span>
</div>
<ul class="card-archive-list">
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2026/09/">
<span class="card-archive-list-date">
September 2026
</span>
<span class="card-archive-list-count">1</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2026/04/">
<span class="card-archive-list-date">
April 2026
</span>
<span class="card-archive-list-count">1</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2026/03/">
<span class="card-archive-list-date">
March 2026
</span>
<span class="card-archive-list-count">4</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2026/02/">
<span class="card-archive-list-date">
February 2026
</span>
<span class="card-archive-list-count">1</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2025/12/">
<span class="card-archive-list-date">
December 2025
</span>
<span class="card-archive-list-count">1</span>
</a>
</li>
<li class="card-archive-list-item">
<a class="card-archive-list-link" href="/archives/2025/11/">
<span class="card-archive-list-date">
November 2025
</span>
<span class="card-archive-list-count">1</span>
</a>
</li>
</ul>
</div><div class="card-widget card-webinfo"><div class="item-headline"><i class="fas fa-chart-line"></i><span>Website Info</span></div><div class="webinfo"><div class="webinfo-item"><div class="item-name">Article Count :</div><div class="item-count">9</div></div><div class="webinfo-item"><div class="item-name">Runtime :</div><div class="item-count" id="runtimeshow" data-publishDate="2025-08-31T16:00:00.000Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">Total Word Count :</div><div class="item-count">30.6k</div></div><div class="webinfo-item"><div class="item-name">Unique Visitors :</div><div class="item-count" id="busuanzi_value_site_uv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">Page Views :</div><div class="item-count" id="busuanzi_value_site_pv"><i class="fa-solid fa-spinner fa-spin"></i></div></div><div class="webinfo-item"><div class="item-name">Last Update :</div><div class="item-count" id="last-push-date" data-lastPushDate="2026-09-05T15:08:39.632Z"><i class="fa-solid fa-spinner fa-spin"></i></div></div></div></div></div></div></main><footer id="footer"><div class="footer-other"><div class="footer-copyright"><span class="copyright">© 2025 - 2026 By NecroSZN</span><span class="framework-info"><span>Framework </span><a target="_blank" rel="noopener" href="https://hexo.io">Hexo 8.1.1</a><span class="footer-separator">|</span><span>Theme </span><a target="_blank" rel="noopener" href="https://github.com/jerryc127/hexo-theme-butterfly">Butterfly 5.5.4</a></span></div></div></footer></div><div id="rightside"><div id="rightside-config-hide"><button id="darkmode" type="button" title="Toggle Between Light and Dark Mode"><i class="fas fa-adjust"></i></button><button id="hide-aside-btn" type="button" title="Toggle Between Single-column and Double-column"><i class="fas fa-arrows-alt-h"></i></button></div><div id="rightside-config-show"><button id="rightside-config" type="button" title="Settings"><i class="fas fa-cog fa-spin"></i></button><button id="go-up" type="button" title="Back to Top"><span class="scroll-percent"></span><i class="fas fa-arrow-up"></i></button></div></div><div><script src="/js/utils.js?v=5.5.4"></script><script src="/js/main.js?v=5.5.4"></script><div class="js-pjax"><script>window.typedJSFn = {
init: str => {
window.typed = new Typed('#subtitle', Object.assign({
strings: str,
startDelay: 300,
typeSpeed: 150,
loop: true,
backSpeed: 50,
}, null))
},
run: subtitleType => {
if (true) {
if (typeof Typed === 'function') {
subtitleType()
} else {
btf.getScript('https://cdn.jsdelivr.net/npm/typed.js@3.0.0/dist/typed.umd.min.js').then(subtitleType)
}
} else {
subtitleType()
}
},
processSubtitle: (content, extraContents = []) => {
if (true) {
const sub = ["Reinventing the wheel.."].slice()
if (extraContents.length > 0) {
sub.unshift(...extraContents)
}
if (typeof content === 'string') {
sub.unshift(content)
} else if (Array.isArray(content)) {
sub.unshift(...content)
}
sub.length > 0 && typedJSFn.init(sub)
} else {
document.getElementById('subtitle').textContent = typeof content === 'string' ? content :
(Array.isArray(content) && content.length > 0 ? content[0] : '')
}
}
}
btf.addGlobalFn('pjaxSendOnce', () => { typed.destroy() }, 'typedDestroy')
</script><script>function subtitleType () {
typedJSFn.processSubtitle(["Reinventing the wheel.."])
}
typedJSFn.run(subtitleType)</script></div><script async data-pjax src="//busuanzi.ibruce.info/busuanzi/2.3/busuanzi.pure.mini.js"></script><div id="local-search"><div class="search-dialog"><nav class="search-nav"><span class="search-dialog-title">Search</span><i class="fas fa-spinner fa-pulse" id="loading-status" hidden="hidden"></i><button class="search-close-button"><i class="fas fa-times"></i></button></nav><div class="text-center" id="loading-database"><i class="fas fa-spinner fa-pulse"></i><span> Loading Database</span></div><div class="local-search-input"><input placeholder="搜索文章..." type="text"/></div><hr/><div id="local-search-results"></div><div class="ais-Pagination" id="local-search-pagination" style="display:none;"><ul class="ais-Pagination-list"></ul></div><div id="local-search-stats"></div></div><div id="search-mask"></div><script src="/js/search/local-search.js?v=5.5.4"></script></div></div></body></html>