1作者: Adir2 个月前原帖
嗨, 我想要一种简单的方法,将我的 Fastify 服务器 API 通过模型上下文协议(MCP)暴露给 AI 助手,而不需要自定义包装等,但找不到现成的自动化解决方案。 于是我构建了 `@mcp-it/fastify`——一个 Fastify 插件,它可以自动发现 API 路由并将其作为 MCP 工具暴露,使得像 Cursor、Claude Desktop 等客户端可以调用。 它支持: * 自动路由发现。 * SSE 和可流式传输的 HTTP 传输。 * 每个路由的配置(例如,隐藏内部路由、自定义工具名称)。 该项目是开源的,可以在 [https://github.com/AdirAmsalem/mcp-it](https://github.com/AdirAmsalem/mcp-it) 上找到。 我很想听听你的反馈!这个工具有用吗?你希望看到支持其他哪些框架(NestJS、Express 等)? 谢谢!
1作者: kuberwastaken2 个月前原帖
第1天的图片:<a href="https://i.imgur.com/bQ3Oxc5.png" rel="nofollow">https://i.imgur.com/bQ3Oxc5.png</a> <p>在上次尝试将《毁灭战士》放入二维码后(<a href="https://news.ycombinator.com/item?id=43729683">https://news.ycombinator.com/item?id=43729683</a>),我想继续这个“系列”,将一个真正不错的聊天机器人放入二维码中。</p> <p>当然,这并不像前者那么简单。我可以选择作弊,制作一个基于规则的ELIZA风格的聊天机器人(我之前确实尝试过),但我想做一些真正有用的东西。我对大型语言模型(LLMs)和变换器(Transformers)的基本原理知之甚少,因此这也将让我学到很多关于人工智能的知识(而且,当它真正变得有趣时,将会是公开和开源的)。</p> <p>以下是我们的限制条件:</p> <p>最大的标准二维码(版本40)可以容纳2953字节(约2.9 KB)。这个容量非常小——一个15分之一秒的Windows声音文件就有11 KB!而且,我们不能直接将HTML/JS放入二维码中,我们需要将其压缩为BASE64(或BigInt),这也占用0.1-0.15 KB,因此我们大约只有2.7 KB的空间,真是令人担忧!</p> <p>这是我在第1天所做的:</p> <p>第一个版本(v0)非常基础——一个简单的模式匹配聊天机器人,带有预定义的响应:</p> ``` const V = "you,I,is,are,do,what,how,why,,...e".split(","); const P = [ [5,2,0,8], // 你喜欢什么 [5,4,0,8], // 你喜欢做什么.... [0,8,15,9] // 你喜欢我认为 ]; ``` <p>(v1)增加了更好的CSS(仍然是浅色主题)、主题记忆、情感分析和过渡模式,但所有这些使文件大小略微超过了4 KB。</p> <p>(v2)是v1的版本,进行了更多压缩,虽然失去了一些功能,但缩小到了2.8 KB。</p> <p>(v3)增加了复古UI,因为这似乎很合适,ASCII艺术和简化的文本格式化(带换行),但它仍然非常简单。(v4)和(v5)进行了更多的删减,勉强将其压缩到限制以下(2.85 KB)。</p> <p>因此,我在(v6)中改变了方法,使用了前缀树数据结构进行响应查找:</p> ``` const t={h:{e:{l:{l:{o:["Hello! How can I help you today?","Hi! What's on your mind?"]}}}}}; ``` <p>这使得在我们的限制条件下可以进行前缀匹配,并且不再需要模式匹配。</p> <p>(v7)尝试对其进行优化,但最终仍然约为3.3 KB,比之前好,但仍然不够“智能”。</p> <p>对于(v8),我花了很多时间,切换到一个非常基础的两层神经网络实现:</p> ``` const network = { embeddings: new Float32Array(c.vSize * c.eDim), hidden: new Float32Array(c.eDim * c.hSize), output: new Float32Array(c.hSize * c.oSize), hiddenBias: new Float32Array(c.hSize), outputBias: new Float32Array(c.oSize) }; ``` <p>这给我们提供了一个582字符的神经网络,经过8位量化,但正如你所预料的那样,这个体积很大,大约11 KB。</p> <p>(v9)和(v10)基本上是进一步压缩,降到约3.2 KB,还不错!</p> <p>我今天工作的最后一个版本是(v10.5)。我使用了基于单词的处理,而不是基于字符的处理,采用了4D向量,模板响应具有上下文意识,更好的状态跟踪和8个输出维度。还增加了一个重复惩罚(目前有点问题),但实际上效果还不错……5.3 KB还不错。</p> <p>对于第2天,我在考虑:</p> 1. 实现更好的上下文处理 2. 进一步优化神经网络架构(也许是一个小型变换器?) 3. 也许找到一种方法进一步压缩?</p> <p>资源:</p> <a href="https://www.youtube.com/watch?v=aircAruvnKk" rel="nofollow">https://www.youtube.com/watch?v=aircAruvnKk</a> <a href="https://www.youtube.com/watch?v=zhxNI7V2IxM&t=275s" rel="nofollow">https://www.youtube.com/watch?v=zhxNI7V2IxM&t=275s</a> <a href="https://github.com/rasbt/LLMs-from-scratch">https://github.com/rasbt/LLMs-from-scratch</a> <a href="https://github.com/lionelmessi6410/Neural-Networks-from-Scratch">https://github.com/lionelmessi6410/Neural-Networks-from-Scratch</a>
1作者: mmdhrumil2 个月前原帖
在构建副项目时,我常常遇到一个问题:头脑风暴出一个好名字 -> 检查域名的可用性(理想情况下是 .com / .ai / .io) -> 发现已经被注册 -> 重复这个过程。这个循环令人沮丧,拖慢了项目的启动速度。 我正在考虑开发一个工具来简化这个过程,并且我想评估一下外界对此类工具的兴趣。 这里的其他人是否也有类似的痛点?你们目前的项目命名和域名可用性检查的工作流程是怎样的,这个问题对你们的影响有多大?