王福强的个人博客:一个架构士的思考与沉淀

王福强的个人博客:一个架构士的思考与沉淀

claude code proxy方案调研

claude code proxy方案调研 -王福强的个人博客:一个架构士的思考与沉淀 pre > code{ white-space: pre-wrap; font-family: monospace; font-size: 14px; /* border-left: blueviolet; border-left-width: thick; border-left-style: double; padding-left: 1rem !important; */ } .x-indicator{ display:none; } .htmx-request .x-indicator{ display:inline; } .htmx-request.x-indicator{ display:inline; } { "@context": "https://schema.org", "@type": "NewsArticle", "headline": "claude code proxy方案调研", "image": [ "https://afoo.me/images/fb_subscribe.jpg" ], "datePublished": "2026-01-07", "author": [{ "@type": "Person", "name": "王福强", "url": "https://afoo.me" }] } 福强私学 福强AI学堂 架构百科 博客文章 创作出版 产品与服务 登录信息 更多链接 (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); claude code proxy方案调研 王福强 2026-01-07 (adsbygoogle = window.adsbygoogle || []).push({}); 偏命令行方案: ccr (claude code router) claude-code-proxy claude-code-proxy-enhance claude2openai-proxy claude_proxy cliproxyapi (有对应的GUI, easycli) litellm 最后还是选了litellm,一个是命令行启动参数的设计符合直觉, 另一个社区比较成熟,最重要的是,测试后,确实可用。 至于其它几个GUI类型的产品,太复杂,我这种老登已经看不懂了,但感谢推荐的同学,这几个产品是: Antigravity Tools (注意,不是google的Antigravity) ProxyCast cc switch (这个个人开始在用,后来发现启动的频次也不高) ProxyPal 反正这个破事儿浪费了我昨天半天和今天半天 😂 (adsbygoogle = window.adsbygoogle || []).push({}); >>>>>> 更多阅读 <<<<<< 为啥大清后期那么多人去日本留学? 今年值得期待的几个技术发布 生成艺术二维码的三种套路 「福强私学」来一个? 「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。 福强老师的 AI 通识课 开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。 Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with Pandoc and Markdown, little Scala also included.) // Set "light" theme as default if (!localStorage.theme) { localStorage.theme = "light"; } if ( localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) ) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } function attachEvent(selector, event, fn) { const matches = document.querySelectorAll(selector); if (matches && matches.length) { matches.forEach((elem) => { elem.addEventListener(event, () => fn(elem), false); }); } } window.onload = function () { attachEvent('[data-toggle-menu]', 'click', function (elem) { elem.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('header')?.classList.toggle('h-screen'); document.querySelector('#header nav')?.classList.toggle('hidden'); }); attachEvent("[data-toggle-color-scheme]", "click", function () { document.documentElement.classList.toggle("light"); localStorage.theme = "light"; }); }; window.onpageshow = function () { const elem = document.querySelector('[data-toggle-menu]'); if (elem) { elem.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.querySelector('#header nav')?.classList.add('hidden'); }; var gitalk = new Gitalk({ clientID: '518a605d711883414ac0', clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff', repo: 'afoo.me.comments', owner: 'fujohnwang', admin: ['fujohnwang'], id: location.pathname.substring(0, 49), // Ensure uniqueness and length less than 50 distractionFreeMode: false // Facebook-like distraction free mode }) gitalk.render('comments') /* paste this line in verbatim */ window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)}; /* customize formbutton below*/ formbutton("create", { action: "https://formspree.io/f/xknlpkkd", title: "有什么可以帮到您?💕💕💕 How can I help you?", buttonImg: "", fields: [ { type: "email", label: "您的电子邮箱(方便与您联系):", name: "email", required: true, placeholder: "your@email.com" }, { type: "textarea", label: "您想提交的反馈和询问信息:", name: "message", placeholder: "What's on your mind?", }, { type: "submit" } ], styles: { title: { backgroundColor: "blue" }, button: { backgroundColor: "blue" } } }); // tooltips tippy('#aiedu', { content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗" });

2026/1/7
articleCard.readMore

三个有关 AI 的预测

三个有关 AI 的预测 -王福强的个人博客:一个架构士的思考与沉淀 pre > code{ white-space: pre-wrap; font-family: monospace; font-size: 14px; /* border-left: blueviolet; border-left-width: thick; border-left-style: double; padding-left: 1rem !important; */ } .x-indicator{ display:none; } .htmx-request .x-indicator{ display:inline; } .htmx-request.x-indicator{ display:inline; } { "@context": "https://schema.org", "@type": "NewsArticle", "headline": "三个有关 AI 的预测", "image": [ "https://afoo.me/images/fb_subscribe.jpg" ], "datePublished": "2026-01-05", "author": [{ "@type": "Person", "name": "王福强", "url": "https://afoo.me" }] } 福强私学 福强AI学堂 架构百科 博客文章 创作出版 产品与服务 登录信息 更多链接 (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); 三个有关 AI 的预测 王福强 2026-01-05 (adsbygoogle = window.adsbygoogle || []).push({}); Token费将是新的电费 今天有小伙伴在我们群里说,花了15美金,发现啥也没做出来。 其实你想开点就好了。 现在可能还有一些免费token让你试用, 因为现在是AI初级阶段,还在推广产品, 将来这个token的费用相当于新时代的电力费用,也就是电费, 现在生活你电费离不了,对不对? 将来Token的费用也离不了,就是将会持续的缴费🤣 业务研发和技术研发已死,但永存 过去技术团队会分业务研发和技术研发 AI时代或许不会这么叫了 他们会升级 业务研发会叫Vibe Coder 技术研发会叫基础设施Coder 一个复杂概率性系统,一个负责确定性系统 就像微软 CEO 萨提亚 2024 年说的那样 将来, ERP/MIS/CRM这些系统将被Agents + 数据库取代 而Agents,就是Vibe Coder将要面对的 数据库,就是基础设施Coder将会面对的 浮沙可以漂 但建不成高塔 概率性系统依然会建立在确定性系统之上 将来二者依然会共存。 AI时代,不升级的研发将被抛弃 但凡你已经Vibe了一段时间 你就会有感受 丫的谁还关心怎么实现的啊 什么原理不原理的 快速拿到结果交活儿了事 这时候就带来两个趋势 交活儿的人中,用AI的与不用AI的,将会拉大距离,最终差距可能会天壤之别 验收的人中,用AI的雨不用AI的,也是两种感受,这两种感受也是天壤之别,不用AI的估计会被验收工作给淹没还拿不到满意的结果,而善用AI的,却可以从从容容游刃有余,最后拼的是思维升级与观念的改变,以及随之而来的能力变化。 (adsbygoogle = window.adsbygoogle || []).push({}); >>>>>> 更多阅读 <<<<<< ICO之我见 为什么说技术创业更难? 开源啦~ 开源啦~ 有自己出版电子书需求的同学欢迎自取~ 「福强私学」来一个? 「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。 福强老师的 AI 通识课 开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。 Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with Pandoc and Markdown, little Scala also included.) // Set "light" theme as default if (!localStorage.theme) { localStorage.theme = "light"; } if ( localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) ) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } function attachEvent(selector, event, fn) { const matches = document.querySelectorAll(selector); if (matches && matches.length) { matches.forEach((elem) => { elem.addEventListener(event, () => fn(elem), false); }); } } window.onload = function () { attachEvent('[data-toggle-menu]', 'click', function (elem) { elem.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('header')?.classList.toggle('h-screen'); document.querySelector('#header nav')?.classList.toggle('hidden'); }); attachEvent("[data-toggle-color-scheme]", "click", function () { document.documentElement.classList.toggle("light"); localStorage.theme = "light"; }); }; window.onpageshow = function () { const elem = document.querySelector('[data-toggle-menu]'); if (elem) { elem.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.querySelector('#header nav')?.classList.add('hidden'); }; var gitalk = new Gitalk({ clientID: '518a605d711883414ac0', clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff', repo: 'afoo.me.comments', owner: 'fujohnwang', admin: ['fujohnwang'], id: location.pathname.substring(0, 49), // Ensure uniqueness and length less than 50 distractionFreeMode: false // Facebook-like distraction free mode }) gitalk.render('comments') /* paste this line in verbatim */ window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)}; /* customize formbutton below*/ formbutton("create", { action: "https://formspree.io/f/xknlpkkd", title: "有什么可以帮到您?💕💕💕 How can I help you?", buttonImg: "", fields: [ { type: "email", label: "您的电子邮箱(方便与您联系):", name: "email", required: true, placeholder: "your@email.com" }, { type: "textarea", label: "您想提交的反馈和询问信息:", name: "message", placeholder: "What's on your mind?", }, { type: "submit" } ], styles: { title: { backgroundColor: "blue" }, button: { backgroundColor: "blue" } } }); // tooltips tippy('#aiedu', { content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗" });

2026/1/5
articleCard.readMore

Keenotes 2025 年度报告出炉了 …

Keenotes 2025 年度报告出炉了 … -王福强的个人博客:一个架构士的思考与沉淀 pre > code{ white-space: pre-wrap; font-family: monospace; font-size: 14px; /* border-left: blueviolet; border-left-width: thick; border-left-style: double; padding-left: 1rem !important; */ } .x-indicator{ display:none; } .htmx-request .x-indicator{ display:inline; } .htmx-request.x-indicator{ display:inline; } { "@context": "https://schema.org", "@type": "NewsArticle", "headline": "Keenotes 2025 年度报告出炉了 …", "image": [ "https://afoo.me/images/fb_subscribe.jpg" ], "datePublished": "2025-12-31", "author": [{ "@type": "Person", "name": "王福强", "url": "https://afoo.me" }] } 福强私学 福强AI学堂 架构百科 博客文章 创作出版 产品与服务 登录信息 更多链接 (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); Keenotes 2025 年度报告出炉了 … 王福强 2025-12-31 (adsbygoogle = window.adsbygoogle || []).push({}); 原始数据: LuckyJohn💫 ➜ keevol.cn git:(master) sqlite3 $HOME/keebox.sqlite3 "select strftime('%Y', updated) as y, count(*) from keenotes group by y;" -- Loading resources from /Users/fq/.sqliterc y = 2017 count(*) = 636 y = 2018 count(*) = 1634 y = 2019 count(*) = 2215 y = 2020 count(*) = 4002 y = 2021 count(*) = 3867 y = 2022 count(*) = 2696 y = 2023 count(*) = 1399 y = 2024 count(*) = 1127 y = 2025 count(*) = 886 可视化页面(https://afoo.me/note-stat.html): 然后,我数了下… 卧槽, keenotes记录了9年了,我tmd还以为就7、8年😂 想来,这所谓的创业也是9年,但我感觉我一直趴在地上,不算啥创业😂 Anyway, keenotes 2025年度汇总出炉了, 这个数据趋势充分说明了, 做事儿的时候,明显会降低胡思乱想的强度, 被圈的时候,就只能胡思乱想🫠 另外,明年打算重新打造一版keenotes,全平台+安全私密,感兴趣的同学可以先关注起来了🤪 https://afoo.me/knotes.html 所有客户端免费,但服务器端收费,哈哈哈 (adsbygoogle = window.adsbygoogle || []).push({}); >>>>>> 更多阅读 <<<<<< 我曾经跟阿里内部人说过的话 我们”有薪人”上线啦~ 疫情管控之下的上海困局 「福强私学」来一个? 「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。 福强老师的 AI 通识课 开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。 Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with Pandoc and Markdown, little Scala also included.) // Set "light" theme as default if (!localStorage.theme) { localStorage.theme = "light"; } if ( localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) ) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } function attachEvent(selector, event, fn) { const matches = document.querySelectorAll(selector); if (matches && matches.length) { matches.forEach((elem) => { elem.addEventListener(event, () => fn(elem), false); }); } } window.onload = function () { attachEvent('[data-toggle-menu]', 'click', function (elem) { elem.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('header')?.classList.toggle('h-screen'); document.querySelector('#header nav')?.classList.toggle('hidden'); }); attachEvent("[data-toggle-color-scheme]", "click", function () { document.documentElement.classList.toggle("light"); localStorage.theme = "light"; }); }; window.onpageshow = function () { const elem = document.querySelector('[data-toggle-menu]'); if (elem) { elem.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.querySelector('#header nav')?.classList.add('hidden'); }; var gitalk = new Gitalk({ clientID: '518a605d711883414ac0', clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff', repo: 'afoo.me.comments', owner: 'fujohnwang', admin: ['fujohnwang'], id: location.pathname.substring(0, 49), // Ensure uniqueness and length less than 50 distractionFreeMode: false // Facebook-like distraction free mode }) gitalk.render('comments') /* paste this line in verbatim */ window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)}; /* customize formbutton below*/ formbutton("create", { action: "https://formspree.io/f/xknlpkkd", title: "有什么可以帮到您?💕💕💕 How can I help you?", buttonImg: "", fields: [ { type: "email", label: "您的电子邮箱(方便与您联系):", name: "email", required: true, placeholder: "your@email.com" }, { type: "textarea", label: "您想提交的反馈和询问信息:", name: "message", placeholder: "What's on your mind?", }, { type: "submit" } ], styles: { title: { backgroundColor: "blue" }, button: { backgroundColor: "blue" } } }); // tooltips tippy('#aiedu', { content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗" });

2025/12/31
articleCard.readMore

“斩杀线”只反映了单侧单向…

“斩杀线”只反映了单侧单向… -王福强的个人博客:一个架构士的思考与沉淀 pre > code{ white-space: pre-wrap; font-family: monospace; font-size: 14px; /* border-left: blueviolet; border-left-width: thick; border-left-style: double; padding-left: 1rem !important; */ } .x-indicator{ display:none; } .htmx-request .x-indicator{ display:inline; } .htmx-request.x-indicator{ display:inline; } { "@context": "https://schema.org", "@type": "NewsArticle", "headline": "“斩杀线”只反映了单侧单向…", "image": [ "https://afoo.me/images/fb_subscribe.jpg" ], "datePublished": "2025-12-24", "author": [{ "@type": "Person", "name": "王福强", "url": "https://afoo.me" }] } 福强私学 福强AI学堂 架构百科 博客文章 创作出版 产品与服务 登录信息 更多链接 (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); “斩杀线”只反映了单侧单向… 王福强 2025-12-24 (adsbygoogle = window.adsbygoogle || []).push({}); 这几天频繁看到一个词儿叫“斩杀线” 我还纳闷为啥呀? 这词儿啥意思呢? 我就随手问了下Grok, 它给我的回复是这样的: “斩杀线”是一个源于游戏的网络术语,主要有两种常见用法: 游戏原意(最常见的来源): 在各种游戏(如《魔兽世界》、《炉石传说》、《英雄联盟》(LOL)、《王者荣耀》、《DNF》等)中,指敌方单位(英雄、怪物、BOSS)的血量降到一个特定临界值时,可以被玩家的一套技能组合或特定大招瞬间击杀(秒杀)的血量阈值。 例如: 《英雄联盟》里,盖伦、诺手、派克等英雄的大招有百分比斩杀效果,当敌人血量低于一定比例时,就能直接处决。 《王者荣耀》里,召唤师技能“终结”(以前叫“斩杀”)造成已损失生命值14%的真实伤害,当敌人血量剩约12-13%时,就能用它收割。 玩家常说“进入斩杀线”意思是血量危险了,一不小心就被秒;高手会精确计算伤害,预判是否能一套带走对手。 这个词强调“一旦跨过这条线,就没悬念了,直接死”。 近期网络热梗延伸(尤其是2025年底在中国社交平台流行): 借用游戏概念,比喻现实生活(特别是美国社会)中,一个人的财务或生活状态到达某个临界点后,会触发连锁反应(如失业+大病+债务+失去住房),迅速从普通中产滑落到底层(破产、无家可归),几乎无法翻身。 常称为“美国斩杀线”或“中产斩杀线”,用来调侃或批评美国的社会保障薄弱、医疗昂贵、容错率低等问题。一旦“掉血”到这条线,就被“系统一套连招秒杀”。 原来就是下坠方向上不可逆的那个点(或者说线)啊… 但大家为啥只关注这个点和线呢? 其实全貌应该是“雪锦霜花”线啊,只有雪上加霜这个方向上到了那个点,才不可逆的,但大多数时候你还是可以在“雪锦霜花”之间颠倒颠啊! Never give up,bro~ (adsbygoogle = window.adsbygoogle || []).push({}); >>>>>> 更多阅读 <<<<<< “管理”这个东西… 行车记录 “Linkedin Search 「福强私学」来一个? 「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。 福强老师的 AI 通识课 开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。 Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with Pandoc and Markdown, little Scala also included.) // Set "light" theme as default if (!localStorage.theme) { localStorage.theme = "light"; } if ( localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) ) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } function attachEvent(selector, event, fn) { const matches = document.querySelectorAll(selector); if (matches && matches.length) { matches.forEach((elem) => { elem.addEventListener(event, () => fn(elem), false); }); } } window.onload = function () { attachEvent('[data-toggle-menu]', 'click', function (elem) { elem.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('header')?.classList.toggle('h-screen'); document.querySelector('#header nav')?.classList.toggle('hidden'); }); attachEvent("[data-toggle-color-scheme]", "click", function () { document.documentElement.classList.toggle("light"); localStorage.theme = "light"; }); }; window.onpageshow = function () { const elem = document.querySelector('[data-toggle-menu]'); if (elem) { elem.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.querySelector('#header nav')?.classList.add('hidden'); }; var gitalk = new Gitalk({ clientID: '518a605d711883414ac0', clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff', repo: 'afoo.me.comments', owner: 'fujohnwang', admin: ['fujohnwang'], id: location.pathname.substring(0, 49), // Ensure uniqueness and length less than 50 distractionFreeMode: false // Facebook-like distraction free mode }) gitalk.render('comments') /* paste this line in verbatim */ window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)}; /* customize formbutton below*/ formbutton("create", { action: "https://formspree.io/f/xknlpkkd", title: "有什么可以帮到您?💕💕💕 How can I help you?", buttonImg: "", fields: [ { type: "email", label: "您的电子邮箱(方便与您联系):", name: "email", required: true, placeholder: "your@email.com" }, { type: "textarea", label: "您想提交的反馈和询问信息:", name: "message", placeholder: "What's on your mind?", }, { type: "submit" } ], styles: { title: { backgroundColor: "blue" }, button: { backgroundColor: "blue" } } }); // tooltips tippy('#aiedu', { content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗" });

2025/12/24
articleCard.readMore

2025 年 AI 小结 与 2026 年 AI 展望

2025 年 AI 小结 与 2026 年 AI 展望 -王福强的个人博客:一个架构士的思考与沉淀 pre > code{ white-space: pre-wrap; font-family: monospace; font-size: 14px; /* border-left: blueviolet; border-left-width: thick; border-left-style: double; padding-left: 1rem !important; */ } .x-indicator{ display:none; } .htmx-request .x-indicator{ display:inline; } .htmx-request.x-indicator{ display:inline; } { "@context": "https://schema.org", "@type": "NewsArticle", "headline": "2025 年 AI 小结 与 2026 年 AI 展望", "image": [ "https://afoo.me/images/fb_subscribe.jpg" ], "datePublished": "2025-12-24", "author": [{ "@type": "Person", "name": "王福强", "url": "https://afoo.me" }] } 福强私学 福强AI学堂 架构百科 博客文章 创作出版 产品与服务 登录信息 更多链接 (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); 2025 年 AI 小结 与 2026 年 AI 展望 王福强 2025-12-24 (adsbygoogle = window.adsbygoogle || []).push({}); 以下所有内容均福强老师个人观点,有失偏颇也好,胡说八道也罢,总之概不负责真假对错,各位看官自行甄别。 2025 年度重要 AI 概念 MCP 这个年度给某运营商全国CIO培训的时候提到过,我标注成非正常颜色只是因为我觉得这个是常识了。 Agent 嗯,都在喊Agent 元年,所以,Agent 肯定算是2025 年度概念。 从 Claude Skills 到 Agent Skills Skills这个概念之所以重要在于,它以 AI Agent 友好的方式提供了能力的“模块化”支持。这东西的重要性就算是传统软件研发也能理解,因为模块化、复用/重用、服务化、单元化…, 所有这些概念的本质,其实就是模块化。 开始只是 Claude 一家在自己的Agent里用并分享出来,后来各家企业纷纷采纳,所以,到今天,直接升级成了Agent Skills规范,这样,AI产业界就都可以从中受益了,互联互动,总是可以避免不必要的重复建设,让用户受益的。 相对于Agent,我更喜欢Skills这个年度概念,因为它更工程务实。 Context Engineering 这个概念也是2025年里一个重要的AI概念,相对于Prompting Engineering, Context Engineering已经从一个点扩展为去关注系统性的大模型curate策略和方案了。 而之所以前面说Skill是个好东西就在于,它其实就是Context Engineering这个大概念下的一个最佳实践。 Context Engineering如果算概念和口号,那Skill算最佳实践和落地举措。 当然,这个大概念下,也同样覆盖了 Memory 管理这些相关概念和举措。 生成式UI 咋说呢? 就是顺带一提吧,我觉得没(自)媒体吹的那么玄乎,响应的, 我也没觉得像A2UI这些概念有多好,用肯定会有人用,就跟菜系一样,不同人不同口味而已,我不感冒。 A2A和Multi Agent也属于我不感冒的一类, 它俩的出现也早于A2UI。 Vibe Everything 这个就有意思了, Vibe Everything 是我总结的 从Vibe Coding这个概念开始, 什么Vibe Workflow啦, Vibe Dashboard啦, Vibe UI啦(包含了Vibe Dashboard这类更具体的场景), 总之就是动动嘴,剩下的活儿交给AI干就行了。 尤其是下面会提到,巨头们在2025年争抢AI语音输入法这块阵地,也是为Vibe Everything争抢入口。 大模型 大模型继续酣战 海外亮眼的有: Claude家的Sonnet4.5/Opus4.5等 Open AI的GPT 5.2 Google家的Gemini3和Nana banana pro xAI的Grok4.1 还有一些周边厂家,比如Mistral还在继续参与游戏 国内亮眼的有: 阿里的Qwen3 字节的 GLM4.7, 主打一个对标claude家的代码模型第一名 Minimax的M2/M2.1 Kimi K2 小米也刚发布了Mimo flash, 我用它折腾了一天半的keenotes开发,怎么说呢,效果上跟claude家的代码模型还是有不少差距 AI Agent框架 这个其实没啥太大新意了,自己习惯什么、熟悉什么计算机语言就选相关的框架就好了。 比如你熟悉python,那老牌儿的langchain这些肯定ok 假如你熟悉java,那从Spring AI 到 langchain4j,甚至是Spring框架之父新搞的Embabel也值得一试(个人不喜欢,因为对annotation没啥好感,哈哈哈) AI Agent 平台 开源的: 老牌n8n值得信赖(新出了个致命的安全漏洞,记得升级哟) dify coze(从闭源到开源) 还有很多不同公司AI Agent平台,像google的gems, lovable, v0这些,都算。 其它 AI Agent 规范与实践 除了前面提到的Agent Skills,再提一个durable streams,大家可以看看 AI商业 反正各行各业都在拥抱AI,我也不是啥行业都熟悉,就简单罗列了些,大家随便看看吧: 里面投入精力最多是向量数据库,因为如果你关注我时间比较长,应该知道我写了个KVectors向量数据库,所以,过程中肯定不少精力耗费在向量数据库这个细分领域。 2026的 AI 会怎么样 说实话, 真不知道, 反正方向是没问题的。 且行且看吧~ (adsbygoogle = window.adsbygoogle || []).push({}); >>>>>> 更多阅读 <<<<<< Stable Diffusion系列第三部「ComfyUI从入门到精通」炽热上线啦~ When people meet something they don’t know at first time 原来章鱼才是最孤独的存在… 「福强私学」来一个? 「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。 福强老师的 AI 通识课 开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。 Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with Pandoc and Markdown, little Scala also included.) // Set "light" theme as default if (!localStorage.theme) { localStorage.theme = "light"; } if ( localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) ) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } function attachEvent(selector, event, fn) { const matches = document.querySelectorAll(selector); if (matches && matches.length) { matches.forEach((elem) => { elem.addEventListener(event, () => fn(elem), false); }); } } window.onload = function () { attachEvent('[data-toggle-menu]', 'click', function (elem) { elem.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('header')?.classList.toggle('h-screen'); document.querySelector('#header nav')?.classList.toggle('hidden'); }); attachEvent("[data-toggle-color-scheme]", "click", function () { document.documentElement.classList.toggle("light"); localStorage.theme = "light"; }); }; window.onpageshow = function () { const elem = document.querySelector('[data-toggle-menu]'); if (elem) { elem.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.querySelector('#header nav')?.classList.add('hidden'); }; var gitalk = new Gitalk({ clientID: '518a605d711883414ac0', clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff', repo: 'afoo.me.comments', owner: 'fujohnwang', admin: ['fujohnwang'], id: location.pathname.substring(0, 49), // Ensure uniqueness and length less than 50 distractionFreeMode: false // Facebook-like distraction free mode }) gitalk.render('comments') /* paste this line in verbatim */ window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)}; /* customize formbutton below*/ formbutton("create", { action: "https://formspree.io/f/xknlpkkd", title: "有什么可以帮到您?💕💕💕 How can I help you?", buttonImg: "", fields: [ { type: "email", label: "您的电子邮箱(方便与您联系):", name: "email", required: true, placeholder: "your@email.com" }, { type: "textarea", label: "您想提交的反馈和询问信息:", name: "message", placeholder: "What's on your mind?", }, { type: "submit" } ], styles: { title: { backgroundColor: "blue" }, button: { backgroundColor: "blue" } } }); // tooltips tippy('#aiedu', { content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗" });

2025/12/24
articleCard.readMore

M4芯片上跑了下KVectors向量数据库的性能测试,没想到…

M4芯片上跑了下KVectors向量数据库的性能测试,没想到… -王福强的个人博客:一个架构士的思考与沉淀 pre > code{ white-space: pre-wrap; font-family: monospace; font-size: 14px; /* border-left: blueviolet; border-left-width: thick; border-left-style: double; padding-left: 1rem !important; */ } .x-indicator{ display:none; } .htmx-request .x-indicator{ display:inline; } .htmx-request.x-indicator{ display:inline; } pre > code.sourceCode { white-space: pre; position: relative; } pre > code.sourceCode > span { line-height: 1.25; } pre > code.sourceCode > span:empty { height: 1.2em; } .sourceCode { overflow: visible; } code.sourceCode > span { color: inherit; text-decoration: inherit; } div.sourceCode { margin: 1em 0; } pre.sourceCode { margin: 0; } @media screen { div.sourceCode { overflow: auto; } } @media print { pre > code.sourceCode { white-space: pre-wrap; } pre > code.sourceCode > span { display: inline-block; text-indent: -5em; padding-left: 5em; } } pre.numberSource code { counter-reset: source-line 0; } pre.numberSource code > span { position: relative; left: -4em; counter-increment: source-line; } pre.numberSource code > span > a:first-child::before { content: counter(source-line); position: relative; left: -1em; text-align: right; vertical-align: baseline; border: none; display: inline-block; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; padding: 0 4px; width: 4em; color: #aaaaaa; } pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } div.sourceCode { } @media screen { pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } } code span.al { color: #ff0000; font-weight: bold; } /* Alert */ code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ code span.at { color: #7d9029; } /* Attribute */ code span.bn { color: #40a070; } /* BaseN */ code span.bu { color: #008000; } /* BuiltIn */ code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ code span.ch { color: #4070a0; } /* Char */ code span.cn { color: #880000; } /* Constant */ code span.co { color: #60a0b0; font-style: italic; } /* Comment */ code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ code span.do { color: #ba2121; font-style: italic; } /* Documentation */ code span.dt { color: #902000; } /* DataType */ code span.dv { color: #40a070; } /* DecVal */ code span.er { color: #ff0000; font-weight: bold; } /* Error */ code span.ex { } /* Extension */ code span.fl { color: #40a070; } /* Float */ code span.fu { color: #06287e; } /* Function */ code span.im { color: #008000; font-weight: bold; } /* Import */ code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ code span.kw { color: #007020; font-weight: bold; } /* Keyword */ code span.op { color: #666666; } /* Operator */ code span.ot { color: #007020; } /* Other */ code span.pp { color: #bc7a00; } /* Preprocessor */ code span.sc { color: #4070a0; } /* SpecialChar */ code span.ss { color: #bb6688; } /* SpecialString */ code span.st { color: #4070a0; } /* String */ code span.va { color: #19177c; } /* Variable */ code span.vs { color: #4070a0; } /* VerbatimString */ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ { "@context": "https://schema.org", "@type": "NewsArticle", "headline": "M4芯片上跑了下KVectors向量数据库的性能测试,没想到…", "image": [ "https://afoo.me/images/fb_subscribe.jpg" ], "datePublished": "2025-12-02", "author": [{ "@type": "Person", "name": "王福强", "url": "https://afoo.me" }] } 福强私学 福强AI学堂 架构百科 博客文章 创作出版 产品与服务 登录信息 更多链接 (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); M4芯片上跑了下KVectors向量数据库的性能测试,没想到… 王福强 2025-12-02 (adsbygoogle = window.adsbygoogle || []).push({}); 正好前阵子有哥们儿给了我台M4,就用它来跑下KVectors向量数据库的性能测试,预期肯定比我这老Intel款MBP强,但强到我看到这个结果还是好好数了下数字的个数🤣 search 10000 vectors in 4399 milli press any key to exit... 平均0.4毫秒 😆 (依然是基于100万向量的sift small数据集,从中查询10000条向量的相似向量) 不过这个性能结果还算符合预期啦,毕竟之前在老款Intel芯片的MBP上跑IVF_FLAT索引测试,结果也是1.1毫秒 ~ 1.3毫秒这个区间, M4再怎么样硬件性能上要好的多得多。 不过M4在IVF_RABITQ索引的向量集合测试上折戟了,我还不确定是为啥: => M4 上kvectors IVF_RABITQ性能测试 search 10000 vectors in 381487 milli // without indexing press any key to start to build index ... search 10000 vectors in 206182 milli press any key to exit... 为啥感觉性能还不如intel款的老MBP测试的性能?! 我记得之前是13毫秒左右,这个直接干到了20毫秒左右。 向量压缩后做ANNS反而慢了?! 可能百万级别不值得搞向量压缩和ANNS? 又或者我的RABITQ压缩算法还有很大的改进空间? Anyway,埋头拉磨的模式该休一休了,后面得多想想怎么让KVectors这款产品给客户创造价值,让客户愿意埋单 🤣 (adsbygoogle = window.adsbygoogle || []).push({}); >>>>>> 更多阅读 <<<<<< ChatGPT的宿命 你想成为什么样的人,是由这件事决定的… 初识Graal 「福强私学」来一个? 「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。 福强老师的 AI 通识课 开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。 Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with Pandoc and Markdown, little Scala also included.) // Set "light" theme as default if (!localStorage.theme) { localStorage.theme = "light"; } if ( localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) ) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } function attachEvent(selector, event, fn) { const matches = document.querySelectorAll(selector); if (matches && matches.length) { matches.forEach((elem) => { elem.addEventListener(event, () => fn(elem), false); }); } } window.onload = function () { attachEvent('[data-toggle-menu]', 'click', function (elem) { elem.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('header')?.classList.toggle('h-screen'); document.querySelector('#header nav')?.classList.toggle('hidden'); }); attachEvent("[data-toggle-color-scheme]", "click", function () { document.documentElement.classList.toggle("light"); localStorage.theme = "light"; }); }; window.onpageshow = function () { const elem = document.querySelector('[data-toggle-menu]'); if (elem) { elem.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.querySelector('#header nav')?.classList.add('hidden'); }; var gitalk = new Gitalk({ clientID: '518a605d711883414ac0', clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff', repo: 'afoo.me.comments', owner: 'fujohnwang', admin: ['fujohnwang'], id: location.pathname.substring(0, 49), // Ensure uniqueness and length less than 50 distractionFreeMode: false // Facebook-like distraction free mode }) gitalk.render('comments') /* paste this line in verbatim */ window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)}; /* customize formbutton below*/ formbutton("create", { action: "https://formspree.io/f/xknlpkkd", title: "有什么可以帮到您?💕💕💕 How can I help you?", buttonImg: "", fields: [ { type: "email", label: "您的电子邮箱(方便与您联系):", name: "email", required: true, placeholder: "your@email.com" }, { type: "textarea", label: "您想提交的反馈和询问信息:", name: "message", placeholder: "What's on your mind?", }, { type: "submit" } ], styles: { title: { backgroundColor: "blue" }, button: { backgroundColor: "blue" } } }); // tooltips tippy('#aiedu', { content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗" });

2025/12/2
articleCard.readMore

KVectors向量数据库准备开源啦~

KVectors向量数据库准备开源啦~ -王福强的个人博客:一个架构士的思考与沉淀 pre > code{ white-space: pre-wrap; font-family: monospace; font-size: 14px; /* border-left: blueviolet; border-left-width: thick; border-left-style: double; padding-left: 1rem !important; */ } .x-indicator{ display:none; } .htmx-request .x-indicator{ display:inline; } .htmx-request.x-indicator{ display:inline; } { "@context": "https://schema.org", "@type": "NewsArticle", "headline": "KVectors向量数据库准备开源啦~", "image": [ "https://afoo.me/images/fb_subscribe.jpg" ], "datePublished": "2025-11-16", "author": [{ "@type": "Person", "name": "王福强", "url": "https://afoo.me" }] } 福强私学 福强AI学堂 架构百科 博客文章 创作出版 产品与服务 登录信息 更多链接 (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); KVectors向量数据库准备开源啦~ 王福强 2025-11-16 (adsbygoogle = window.adsbygoogle || []).push({}); 前阵子老王说, KVectors可以搞开源+商业服务的模式 虽然这个产品从一开始构思、设计到实现就没考虑过开源 但“听人劝吃饱饭”嘛 这几天简单思考了下 决定这样… 开源版 KVectors 向量数据库(kvectors-oss) 开源版KVectors向量数据库是最初版设计和实现,当时的设计前提是: 模型更新迭代太快,向量数据库中的向量可能因模型变更原因需要全量重新处理和存储; 数据衍生系统,所以,数据变更可以通过从原始数据源重新加载; 阶段性重新构建索引以提高性能与数据的新鲜度; 在这些前提下, 最初版的KVectors向量数据库的存储是APPEND_ONLY的,也就是只追加,不提供更新与删除等操作。(这也是前阵子金总说要基于这版打造商业方案,我心里没底儿的原因,因为还没经过实际场景检验。) 当然,除了APPEND_ONLY向量存储,还支持TRANSIENT类型的向量存储,这更多是便于测试或者用完即弃的场景。 向量索引方面,最初版支持如下索引类型: FLAT索引 HNSW索引 看起来很少,对吧? 但其实这两个索引 + APPEND_ONLY 向量存储 已经可以满足大部分场景的需求,要知道头部向量数据库产品weaviate,其实也就是支持这两种索引,虽然它声称可以支持三种,但其实就是FLAT和HNSW再根据数据的生命周期再组合一下。 如果配合应用架构设计,这一版的KVectors向量数据库基本可以满足8成以上 AI 场景需求。 企业版 KVectors 向量数据库(kvectors-enterprise) 企业版 KVectors 向量数据库会在开源版基础上在如下方面进行增强: 更多的向量索引类型。除了支持开源版支持所有向量索引类型,企业版KVectors向量数据库还支持如下向量索引(Scala 版 IVF 索引和 IVF_RABITQ 索引,完全自主设计与实现!): IVF(IVF_FLAT) IVF_RABITQ LSH 更多… 更强劲的向量存储引擎 支持全面CRUD操作的向量存储引擎与向量集合, 既允许用户极速向KVectors向量数据库注入高维向量,又支持根据业务场景对向量的数据与元信息进行更改。 更全面的商业服务与支持 除了提供开箱即用的极速向量数据库产品,还为用户提供AI智能体与技术体系内的架构咨询与商业支持。 总之,力求客户的钱花得值! 后续工作 codebase 整理 相关文档整理 社区反馈与持续迭代 (adsbygoogle = window.adsbygoogle || []).push({}); >>>>>> 更多阅读 <<<<<< 2022还是2020? 打造“抄”的系统 Why I choose to leave (and start a new journey) today 「福强私学」来一个? 「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。 福强老师的 AI 通识课 开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。 Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with Pandoc and Markdown, little Scala also included.) // Set "light" theme as default if (!localStorage.theme) { localStorage.theme = "light"; } if ( localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) ) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } function attachEvent(selector, event, fn) { const matches = document.querySelectorAll(selector); if (matches && matches.length) { matches.forEach((elem) => { elem.addEventListener(event, () => fn(elem), false); }); } } window.onload = function () { attachEvent('[data-toggle-menu]', 'click', function (elem) { elem.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('header')?.classList.toggle('h-screen'); document.querySelector('#header nav')?.classList.toggle('hidden'); }); attachEvent("[data-toggle-color-scheme]", "click", function () { document.documentElement.classList.toggle("light"); localStorage.theme = "light"; }); }; window.onpageshow = function () { const elem = document.querySelector('[data-toggle-menu]'); if (elem) { elem.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.querySelector('#header nav')?.classList.add('hidden'); }; var gitalk = new Gitalk({ clientID: '518a605d711883414ac0', clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff', repo: 'afoo.me.comments', owner: 'fujohnwang', admin: ['fujohnwang'], id: location.pathname.substring(0, 49), // Ensure uniqueness and length less than 50 distractionFreeMode: false // Facebook-like distraction free mode }) gitalk.render('comments') /* paste this line in verbatim */ window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)}; /* customize formbutton below*/ formbutton("create", { action: "https://formspree.io/f/xknlpkkd", title: "有什么可以帮到您?💕💕💕 How can I help you?", buttonImg: "", fields: [ { type: "email", label: "您的电子邮箱(方便与您联系):", name: "email", required: true, placeholder: "your@email.com" }, { type: "textarea", label: "您想提交的反馈和询问信息:", name: "message", placeholder: "What's on your mind?", }, { type: "submit" } ], styles: { title: { backgroundColor: "blue" }, button: { backgroundColor: "blue" } } }); // tooltips tippy('#aiedu', { content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗" });

2025/11/16
articleCard.readMore

看了方三文对话段永平完整视频,谈几点给我的启发和感想

看了方三文对话段永平完整视频,谈几点给我的启发和感想 -王福强的个人博客:一个架构士的思考与沉淀 pre > code{ white-space: pre-wrap; font-family: monospace; font-size: 14px; /* border-left: blueviolet; border-left-width: thick; border-left-style: double; padding-left: 1rem !important; */ } .x-indicator{ display:none; } .htmx-request .x-indicator{ display:inline; } .htmx-request.x-indicator{ display:inline; } { "@context": "https://schema.org", "@type": "NewsArticle", "headline": "看了方三文对话段永平完整视频,谈几点给我的启发和感想", "image": [ "https://afoo.me/images/fb_subscribe.jpg" ], "datePublished": "2025-11-12", "author": [{ "@type": "Person", "name": "王福强", "url": "https://afoo.me" }] } 福强私学 福强AI学堂 架构百科 博客文章 创作出版 产品与服务 登录信息 更多链接 (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); 看了方三文对话段永平完整视频,谈几点给我的启发和感想 王福强 2025-11-12 (adsbygoogle = window.adsbygoogle || []).push({}); 经营企业与投资企业 你不懂企业,搞投资其实也投不明白(就算赚钱了,也只是撞大运)。 智者迟疑 你看段的观点很多时候不会很确定的讲,绝对不会很绝对的非黑即白,看不懂的就是看不懂,不会用自己的hindsight(事后诸葛亮)来渲染最初决策的迟疑和忐忑。 没有差异化,就没有超额利润 但差异化又很难维持,没有差异化就是卷,卷完剩下的,才能开始赚钱。 关于AI和泡沫 跟我前几天的观点类似 https://mp.weixin.qq.com/s/LLPIc5A0fP5uGtxbYdwWlA?scene=1 https://x.com/afoo_me/status/1986621585919529032 阿朱说明年可能AI泡沫,我倒是比较乐观。就算是泡沫,也会是回调。AI的趋势是不可逆的,只要电力和算力成本将来下落,AI的普及会是everywhere现在能源和算力标品对于AI的普及,还是太“贵”了。 关于效率 效率的观点我是认同的,我一直觉得可口可乐其实就是靠效率构建了自己最稳定的护城河。 了解自己在竞争态势中的位置 段说:“不要觉得自己就是天选之子”,哈哈哈,但年轻人都是“我命由我不由天”,所以…🤪 (adsbygoogle = window.adsbygoogle || []).push({}); >>>>>> 更多阅读 <<<<<< 闲话spring在系统实现中的应用 从街边店看经营 新技术从业者应该知道的五件事儿 「福强私学」来一个? 「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。 福强老师的 AI 通识课 开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。 Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with Pandoc and Markdown, little Scala also included.) // Set "light" theme as default if (!localStorage.theme) { localStorage.theme = "light"; } if ( localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) ) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } function attachEvent(selector, event, fn) { const matches = document.querySelectorAll(selector); if (matches && matches.length) { matches.forEach((elem) => { elem.addEventListener(event, () => fn(elem), false); }); } } window.onload = function () { attachEvent('[data-toggle-menu]', 'click', function (elem) { elem.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('header')?.classList.toggle('h-screen'); document.querySelector('#header nav')?.classList.toggle('hidden'); }); attachEvent("[data-toggle-color-scheme]", "click", function () { document.documentElement.classList.toggle("light"); localStorage.theme = "light"; }); }; window.onpageshow = function () { const elem = document.querySelector('[data-toggle-menu]'); if (elem) { elem.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.querySelector('#header nav')?.classList.add('hidden'); }; var gitalk = new Gitalk({ clientID: '518a605d711883414ac0', clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff', repo: 'afoo.me.comments', owner: 'fujohnwang', admin: ['fujohnwang'], id: location.pathname.substring(0, 49), // Ensure uniqueness and length less than 50 distractionFreeMode: false // Facebook-like distraction free mode }) gitalk.render('comments') /* paste this line in verbatim */ window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)}; /* customize formbutton below*/ formbutton("create", { action: "https://formspree.io/f/xknlpkkd", title: "有什么可以帮到您?💕💕💕 How can I help you?", buttonImg: "", fields: [ { type: "email", label: "您的电子邮箱(方便与您联系):", name: "email", required: true, placeholder: "your@email.com" }, { type: "textarea", label: "您想提交的反馈和询问信息:", name: "message", placeholder: "What's on your mind?", }, { type: "submit" } ], styles: { title: { backgroundColor: "blue" }, button: { backgroundColor: "blue" } } }); // tooltips tippy('#aiedu', { content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗" });

2025/11/12
articleCard.readMore

AI、开源与微服务:老王两个观点,谈谈个人想法

AI、开源与微服务:老王两个观点,谈谈个人想法 -王福强的个人博客:一个架构士的思考与沉淀 pre > code{ white-space: pre-wrap; font-family: monospace; font-size: 14px; /* border-left: blueviolet; border-left-width: thick; border-left-style: double; padding-left: 1rem !important; */ } .x-indicator{ display:none; } .htmx-request .x-indicator{ display:inline; } .htmx-request.x-indicator{ display:inline; } { "@context": "https://schema.org", "@type": "NewsArticle", "headline": "AI、开源与微服务:老王两个观点,谈谈个人想法", "image": [ "https://afoo.me/images/fb_subscribe.jpg" ], "datePublished": "2025-11-12", "author": [{ "@type": "Person", "name": "王福强", "url": "https://afoo.me" }] } 福强私学 福强AI学堂 架构百科 博客文章 创作出版 产品与服务 登录信息 更多链接 (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); AI、开源与微服务:老王两个观点,谈谈个人想法 王福强 2025-11-12 (adsbygoogle = window.adsbygoogle || []).push({}); 在我还混过一段时间大中华区运维圈的时候, 有“南王北萧”的江湖称号 这里的老王就是当时的“南王” 现在是优维的老总 “感觉有用,但用处不大” 背景是成哥的SRE群里有人讨论AI到底有没有用 老王说:“感觉有用,但用处不大” 蚂蚁的一位同学说:“非常非常有用, 一天都少不了” 这里我觉得有意思的点是, 老板可能吃老王观点的比较多, 职场人士则是后面的观点比较多, 至于为啥, 自己想🤭 “开源+企业版和企业服务” 背景是群里聊到kvectors向量数据库, 我说还没想好怎么卖, 老王说: “开源+企业版和企业服务” 咋说呢 这确实过去的经典打法, 但我从一开始就没想走这条路, 为什么呢? 一个是时代变了 一个是成本结构不一样 再一个,前面有杭州智总的前车之鉴, 我也得清楚什么是自己的优势、什么又是自己的劣势, 如果劣势补不上, 起码别把自己的优势也扔了… 微服务 发现到了AI时代, 很多同学依然喜欢用微服务来打比方, 其实, 微服务没啥问题 中台也没啥问题 但小马想拉大车, 通常成了问题。 (adsbygoogle = window.adsbygoogle || []).push({}); >>>>>> 更多阅读 <<<<<< 继续《奋斗》 中文内容的质量、分布与创作激励 Scala开发者的SpringBoot快速入门指南 「福强私学」来一个? 「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。 福强老师的 AI 通识课 开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。 Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with Pandoc and Markdown, little Scala also included.) // Set "light" theme as default if (!localStorage.theme) { localStorage.theme = "light"; } if ( localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) ) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } function attachEvent(selector, event, fn) { const matches = document.querySelectorAll(selector); if (matches && matches.length) { matches.forEach((elem) => { elem.addEventListener(event, () => fn(elem), false); }); } } window.onload = function () { attachEvent('[data-toggle-menu]', 'click', function (elem) { elem.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('header')?.classList.toggle('h-screen'); document.querySelector('#header nav')?.classList.toggle('hidden'); }); attachEvent("[data-toggle-color-scheme]", "click", function () { document.documentElement.classList.toggle("light"); localStorage.theme = "light"; }); }; window.onpageshow = function () { const elem = document.querySelector('[data-toggle-menu]'); if (elem) { elem.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.querySelector('#header nav')?.classList.add('hidden'); }; var gitalk = new Gitalk({ clientID: '518a605d711883414ac0', clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff', repo: 'afoo.me.comments', owner: 'fujohnwang', admin: ['fujohnwang'], id: location.pathname.substring(0, 49), // Ensure uniqueness and length less than 50 distractionFreeMode: false // Facebook-like distraction free mode }) gitalk.render('comments') /* paste this line in verbatim */ window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)}; /* customize formbutton below*/ formbutton("create", { action: "https://formspree.io/f/xknlpkkd", title: "有什么可以帮到您?💕💕💕 How can I help you?", buttonImg: "", fields: [ { type: "email", label: "您的电子邮箱(方便与您联系):", name: "email", required: true, placeholder: "your@email.com" }, { type: "textarea", label: "您想提交的反馈和询问信息:", name: "message", placeholder: "What's on your mind?", }, { type: "submit" } ], styles: { title: { backgroundColor: "blue" }, button: { backgroundColor: "blue" } } }); // tooltips tippy('#aiedu', { content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗" });

2025/11/12
articleCard.readMore

KVectors向量数据库完成IVF_RABITQ索引的支持啦~

KVectors向量数据库完成IVF_RABITQ索引的支持啦~ -王福强的个人博客:一个架构士的思考与沉淀 pre > code{ white-space: pre-wrap; font-family: monospace; font-size: 14px; /* border-left: blueviolet; border-left-width: thick; border-left-style: double; padding-left: 1rem !important; */ } .x-indicator{ display:none; } .htmx-request .x-indicator{ display:inline; } .htmx-request.x-indicator{ display:inline; } { "@context": "https://schema.org", "@type": "NewsArticle", "headline": "KVectors向量数据库完成IVF_RABITQ索引的支持啦~", "image": [ "https://afoo.me/images/fb_subscribe.jpg" ], "datePublished": "2025-11-11", "author": [{ "@type": "Person", "name": "王福强", "url": "https://afoo.me" }] } 福强私学 福强AI学堂 架构百科 博客文章 创作出版 产品与服务 登录信息 更多链接 (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); KVectors向量数据库完成IVF_RABITQ索引的支持啦~ 王福强 2025-11-11 (adsbygoogle = window.adsbygoogle || []).push({}); 有点儿意想不到 写完代码直接跑测试 居然直接过了 没有任何运行期异常 🤪 测试结果跟个人的预期算是相符合吧 将SiftSmall一百万条向量数据灌入KVectors向量数据库之后 在没有构建索引之前先跑了一遍检索 作为对比指标 结果是这样的: search 10000 vectors in 2280907 milli 然后花了7、8分钟构建索引: 完成 向量集合:ivf-rabitq-test-collection 总共 999999 向量的全量索引构建, 耗时: 0 天 0 小时 7 分钟 25 秒,索引名称:1762832256798 索引构建完成之后 重新跑一遍检索 结果是这样的: search 10000 vectors in 342093 milli 跟之前纯粹的IVF_FLAT(或者叫IVF_LITE)索引相比 性能劣化了,从个位数毫秒到现在三十几毫秒 但也是合理的 因为IVF_RABITQ索引面向的是1亿~10亿这个规模的向量数据集 百万向量可能很多时候一个是clusters数量不多,另外一个就是很多计算都耗费在计算上了(跑的时候忘了加--add-modules jdk.incubator.vector虚拟机参数了) 但也只是猜测哈 因为后半段基于IVF_RABITQ索引的检索在跑的时候 金总跑过来要看看我新搬的办公室 就陪他溜达了会儿 也就没看到JConsole里CPU的消耗 在没有构建索引之前,纯粹full-scan的时候,CPU消耗其实不大: Anyway 至此, 2025年双十一之际 KVectors向量数据库已经正式支持了如下几种业界主流的向量索引: FLAT HNSW HNSW+PQ IVF IVF_RABITQ LSH 软著申请提交后处于待审查状态 等再打磨打磨就可以开卖了🤪 当然,有对产品背后机理感兴趣的企业 也有系列企业培训哟(橙子科技已经连续采买了3期) 更多关于KVectors向量数据库的信息,欢迎访问福强科技官网了解「https://keevol.cn/#kvectors」 (adsbygoogle = window.adsbygoogle || []).push({}); >>>>>> 更多阅读 <<<<<< 聊聊狗狗 他们为什么就是不明白? 生意可不是你想咋选就咋选! 「福强私学」来一个? 「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。 福强老师的 AI 通识课 开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。 Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with Pandoc and Markdown, little Scala also included.) // Set "light" theme as default if (!localStorage.theme) { localStorage.theme = "light"; } if ( localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) ) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } function attachEvent(selector, event, fn) { const matches = document.querySelectorAll(selector); if (matches && matches.length) { matches.forEach((elem) => { elem.addEventListener(event, () => fn(elem), false); }); } } window.onload = function () { attachEvent('[data-toggle-menu]', 'click', function (elem) { elem.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('header')?.classList.toggle('h-screen'); document.querySelector('#header nav')?.classList.toggle('hidden'); }); attachEvent("[data-toggle-color-scheme]", "click", function () { document.documentElement.classList.toggle("light"); localStorage.theme = "light"; }); }; window.onpageshow = function () { const elem = document.querySelector('[data-toggle-menu]'); if (elem) { elem.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.querySelector('#header nav')?.classList.add('hidden'); }; var gitalk = new Gitalk({ clientID: '518a605d711883414ac0', clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff', repo: 'afoo.me.comments', owner: 'fujohnwang', admin: ['fujohnwang'], id: location.pathname.substring(0, 49), // Ensure uniqueness and length less than 50 distractionFreeMode: false // Facebook-like distraction free mode }) gitalk.render('comments') /* paste this line in verbatim */ window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)}; /* customize formbutton below*/ formbutton("create", { action: "https://formspree.io/f/xknlpkkd", title: "有什么可以帮到您?💕💕💕 How can I help you?", buttonImg: "", fields: [ { type: "email", label: "您的电子邮箱(方便与您联系):", name: "email", required: true, placeholder: "your@email.com" }, { type: "textarea", label: "您想提交的反馈和询问信息:", name: "message", placeholder: "What's on your mind?", }, { type: "submit" } ], styles: { title: { backgroundColor: "blue" }, button: { backgroundColor: "blue" } } }); // tooltips tippy('#aiedu', { content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗" });

2025/11/11
articleCard.readMore

Claude Code后端模型服务切换三式

Claude Code后端模型服务切换三式 -王福强的个人博客:一个架构士的思考与沉淀 pre > code{ white-space: pre-wrap; font-family: monospace; font-size: 14px; /* border-left: blueviolet; border-left-width: thick; border-left-style: double; padding-left: 1rem !important; */ } .x-indicator{ display:none; } .htmx-request .x-indicator{ display:inline; } .htmx-request.x-indicator{ display:inline; } pre > code.sourceCode { white-space: pre; position: relative; } pre > code.sourceCode > span { line-height: 1.25; } pre > code.sourceCode > span:empty { height: 1.2em; } .sourceCode { overflow: visible; } code.sourceCode > span { color: inherit; text-decoration: inherit; } div.sourceCode { margin: 1em 0; } pre.sourceCode { margin: 0; } @media screen { div.sourceCode { overflow: auto; } } @media print { pre > code.sourceCode { white-space: pre-wrap; } pre > code.sourceCode > span { display: inline-block; text-indent: -5em; padding-left: 5em; } } pre.numberSource code { counter-reset: source-line 0; } pre.numberSource code > span { position: relative; left: -4em; counter-increment: source-line; } pre.numberSource code > span > a:first-child::before { content: counter(source-line); position: relative; left: -1em; text-align: right; vertical-align: baseline; border: none; display: inline-block; -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-select: none; padding: 0 4px; width: 4em; color: #aaaaaa; } pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; } div.sourceCode { } @media screen { pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; } } code span.al { color: #ff0000; font-weight: bold; } /* Alert */ code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */ code span.at { color: #7d9029; } /* Attribute */ code span.bn { color: #40a070; } /* BaseN */ code span.bu { color: #008000; } /* BuiltIn */ code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */ code span.ch { color: #4070a0; } /* Char */ code span.cn { color: #880000; } /* Constant */ code span.co { color: #60a0b0; font-style: italic; } /* Comment */ code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */ code span.do { color: #ba2121; font-style: italic; } /* Documentation */ code span.dt { color: #902000; } /* DataType */ code span.dv { color: #40a070; } /* DecVal */ code span.er { color: #ff0000; font-weight: bold; } /* Error */ code span.ex { } /* Extension */ code span.fl { color: #40a070; } /* Float */ code span.fu { color: #06287e; } /* Function */ code span.im { color: #008000; font-weight: bold; } /* Import */ code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */ code span.kw { color: #007020; font-weight: bold; } /* Keyword */ code span.op { color: #666666; } /* Operator */ code span.ot { color: #007020; } /* Other */ code span.pp { color: #bc7a00; } /* Preprocessor */ code span.sc { color: #4070a0; } /* SpecialChar */ code span.ss { color: #bb6688; } /* SpecialString */ code span.st { color: #4070a0; } /* String */ code span.va { color: #19177c; } /* Variable */ code span.vs { color: #4070a0; } /* VerbatimString */ code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */ { "@context": "https://schema.org", "@type": "NewsArticle", "headline": "Claude Code后端模型服务切换三式", "image": [ "https://afoo.me/images/fb_subscribe.jpg" ], "datePublished": "2025-11-06", "author": [{ "@type": "Person", "name": "王福强", "url": "https://afoo.me" }] } 福强私学 福强AI学堂 架构百科 博客文章 创作出版 产品与服务 登录信息 更多链接 (adsbygoogle = window.adsbygoogle || []).push({}); (adsbygoogle = window.adsbygoogle || []).push({}); Claude Code后端模型服务切换三式 王福强 2025-11-06 (adsbygoogle = window.adsbygoogle || []).push({}); 今天TVP群里有同学分享了自己使用claude code在各大模型服务之间辗转腾挪的实践方法, 恰好这几天看到点儿相关的信息和实践, 简单整理下分享给大家。 前情铺垫 大家都知道claude code是anthropic公司开发的命令行AI开发工具 它默认后端大模型接的是anthropic自己家的模型, 从最早就比较惊艳的 Claude sonnet3.5 到 现在的 Claude sonnet 4.5 后来各大模型厂商以及MaaS服务厂商为了兼容Claude系模型 对外提供的大模型服务API就跟Claude系模型的API兼容了 而兼容带来的好处就是 claude code这个工具可以无缝切换到这些模型 尤其是anthropic这家公司对大中华区一贯严格封堵的情况下 要想原汁原味 门槛还是挺高的 好在有了这些兼容的大模型API 大中华区起码可以享受到claude code的优质服务 配合后端其它大模型服务 也能媲美“特斯拉”了 使用脚本切换 claude code 后端模型服务 TVP群里有同学分享了他的最佳实践: 总结下来就是, 针对不同模型服务, 独立针对其创建claude code启动脚本: 截图内容版权归 TVP Leoobai 所有 使用脚本函数切换 claude code 后端模型服务 这个算是上一个方法的另一种实现思路,都归属于本地无中间服务器方案。 在.bashrc或者.bash_profile(甚至.profile)里针对不同的大模型服务商,定义不同的claude code启动函数,类似于(作者举例哈,没测试过,领悟思想就可以了🤣): function glm() { export ANTHROPIC_AUTH_TOKEN=... # GLM的API key export ANTHROIC_BASE_URL=... # GLM的服务地址 ... claude --dangerously-skip-permissions } function kimi(){ ANTHROPIC_AUTH_TOKEN="xxx" ANTHROIC_BASE_URL="xxx" claude --dangerously-skip-permissions } function deepseek(){ ... } 这样,你每次只要在命令行敲 glm 或者 kimi 或者 deepseek 或者 … 就能启动使用不同大模型服务的claude code了。 使用独立的集中切换大模型服务中继与路由 比如你可以本地启动一个localhost上的claude code兼容的大模型服务, 然后claude code只连这个localhost上的大模型服务地址就可以了, 然后这个本地跑的大模型服务允许配置多个远程的claude code兼容的大模型服务, 想用哪个作为当前要用的大模型服务,就配置哪个是current就可以,甚至根据路由算法进行分发。 这种代理服务,你可以配合大模型自己vibe一个出来, 比如TVP群有同学也分享了他的类似工具: 你也可以用github上开源的项目, 既然这种需求那么强烈, 肯定已经有人搞了 比如: https://github.com/BenedictKing/claude-proxy 最后 happy vibe coding 🤪 我虽然知道这些路子,但其实我还是古早手工写代码多些,哈哈哈 (adsbygoogle = window.adsbygoogle || []).push({}); >>>>>> 更多阅读 <<<<<< 关于老友CEO任上经历二次挫折的若干意见 写给你的话 游戏与业务系统的底层逻辑对比 「福强私学」来一个? 「福强私学」, 一部沉淀了个人成长、技术与架构、组织与管理以及商业上的方法与心法的百科全书。 福强老师的 AI 通识课 开天窗,拉认知,订阅「福报」,即刻拥有自己的全模态人工智能。 Copyright © 王福强个人版权所有 - Since 2004 (Everything is homebrewed with Pandoc and Markdown, little Scala also included.) // Set "light" theme as default if (!localStorage.theme) { localStorage.theme = "light"; } if ( localStorage.theme === 'dark' || (!('theme' in localStorage) && window.matchMedia('(prefers-color-scheme: dark)').matches) ) { document.documentElement.classList.add('dark'); } else { document.documentElement.classList.remove('dark'); } function attachEvent(selector, event, fn) { const matches = document.querySelectorAll(selector); if (matches && matches.length) { matches.forEach((elem) => { elem.addEventListener(event, () => fn(elem), false); }); } } window.onload = function () { attachEvent('[data-toggle-menu]', 'click', function (elem) { elem.classList.toggle('expanded'); document.body.classList.toggle('overflow-hidden'); document.getElementById('header')?.classList.toggle('h-screen'); document.querySelector('#header nav')?.classList.toggle('hidden'); }); attachEvent("[data-toggle-color-scheme]", "click", function () { document.documentElement.classList.toggle("light"); localStorage.theme = "light"; }); }; window.onpageshow = function () { const elem = document.querySelector('[data-toggle-menu]'); if (elem) { elem.classList.remove('expanded'); } document.body.classList.remove('overflow-hidden'); document.getElementById('header')?.classList.remove('h-screen'); document.querySelector('#header nav')?.classList.add('hidden'); }; var gitalk = new Gitalk({ clientID: '518a605d711883414ac0', clientSecret: '69fb8ccc0616c5bcbc64d24ece0d06d279da91ff', repo: 'afoo.me.comments', owner: 'fujohnwang', admin: ['fujohnwang'], id: location.pathname.substring(0, 49), // Ensure uniqueness and length less than 50 distractionFreeMode: false // Facebook-like distraction free mode }) gitalk.render('comments') /* paste this line in verbatim */ window.formbutton=window.formbutton||function(){(formbutton.q=formbutton.q||[]).push(arguments)}; /* customize formbutton below*/ formbutton("create", { action: "https://formspree.io/f/xknlpkkd", title: "有什么可以帮到您?💕💕💕 How can I help you?", buttonImg: "", fields: [ { type: "email", label: "您的电子邮箱(方便与您联系):", name: "email", required: true, placeholder: "your@email.com" }, { type: "textarea", label: "您想提交的反馈和询问信息:", name: "message", placeholder: "What's on your mind?", }, { type: "submit" } ], styles: { title: { backgroundColor: "blue" }, button: { backgroundColor: "blue" } } }); // tooltips tippy('#aiedu', { content: "As to AI nowadays, LLM and Stable Diffusion are hot even hottest among them, If your want to both know-why and know-how with them, instead of only know-how which can't repeat itself, you should get you to https://ai.afoo.me right now ❗" });

2025/11/6
articleCard.readMore