1作者: jonnyhere17 天前
我订阅了大量的 AI 服务。ChatGPT、Claude、Perplexity、Gemini。我的工作流程是:先问 Claude,然后把同样的问题复制到 ChatGPT 里进行核对,如果需要参考资料,可能会再问 Perplexity。需要同时打开五个标签页,不停地复制粘贴。<p>Council 的功能就是同时将你的提问发送给多个模型,并将它们的回答并排显示出来,仅此而已。<p>在构建 Council 的过程中,我注意到了一些事情:<p>1. 模型之间的观点差异比我预想的要大得多。问一些稍微主观或者近期发生的事情,你就会得到截然不同的答案。这让我对把任何单一的回答当成“标准答案”这件事,变得更加怀疑。<p>2. 不同的模型有不同的“失败模式”。Claude 倾向于谨慎和保守。GPT 即使错了也很有自信。Perplexity 会提供参考资料,但有时会误读。把它们放在一起看,这些模式就一目了然了。<p>3. 对于代码,我实际上更喜欢得到 2-3 种不同的方法。即使其中一种明显更好,看到备选方案也能帮助我理解其中的权衡取舍。<p>技术栈:Next.js,使用 OpenRouter 访问模型,并行流式传输响应。最烦人的部分是处理当模型以不同速度响应时的 UI——你肯定不希望布局跳来跳去。<p>无需登录即可试用。欢迎提供反馈,特别是关于哪些地方有问题或令人不满意的地方。<p><a href="https:&#x2F;&#x2F;usecouncil.app&#x2F;" rel="nofollow">https:&#x2F;&#x2F;usecouncil.app&#x2F;</a>
1作者: victordg17 天前
ChatGPT 应用 SDK 学习曲线陡峭,尤其是 OAuth,你作为提供方,而 ChatGPT 是客户端(而非相反)。这很容易让你陷入困境。 这个技能教 Claude Code 如何正确构建 ChatGPT 应用: ``` - MCP 服务器设置 (Node.js/Python) - 使用 PKCE 和动态客户端注册的 OAuth - 使用 window.openai API 进行组件开发 - 20 多个需要注意的陷阱及修复方法 ``` 如何安装: `npx skills add https://github.com/vdel26/skills` GitHub: https://github.com/vdel26/skills 欢迎大家反馈在构建 ChatGPT / MCP 应用时遇到的遗漏的陷阱。
2作者: tokkyokky17 天前
嗨 HN, 这是一个使用 Go 1.26 的实验性 simd/archsimd 包的 CSV 解析器。 我想看看新的 SIMD API 在实践中是什么样的。CSV 解析主要就是“在缓冲区中找到这些字节”——加载 64 个字节,进行比较,得到一个位置的位掩码。有趣的部分是正确处理块边界(引号和换行符可以跨块分割)。 - 替代 encoding/csv - 在 AVX-512 上,对于未引用的数据,速度快约 20% - 引用数据较慢(仍在优化中) - 非 AVX-512 的标量回退 需要 GOEXPERIMENT=simd。 [https://github.com/nnnkkk7/go-simdcsv](https://github.com/nnnkkk7/go-simdcsv) 欢迎对边缘情况或 SIMD 实现提出反馈意见。
1作者: gamarino17 天前
在过去的几个月里,我一直在重新思考动态语言运行时应该如何与现代硬件交互。 结果是 ProtoCore 及其第一个主要实现 ProtoJS。 大多数动态运行时(Python、Ruby,甚至 JS 引擎)通过全局解释器锁(GIL)或复杂的内存屏障来处理并发,因为跨线程管理可变状态是出了名的困难。 使用 ProtoCore,我采取了一条不同的道路,基于三个支柱: 默认不可变性:所有核心数据结构都是不可变的。 我们使用结构共享来实现内存效率,而不是锁定。 这从根本上消除了对象级别的数据竞争。 硬件感知内存模型:对象是缓存行对齐的(64 字节单元),以防止错误共享并优化缓存局部性。 标记指针:我们使用 56 位嵌入式有效载荷来表示 SmallIntegers,这意味着大多数数值运算不需要堆分配。 为了验证该架构,我构建了 ProtoJS。 它使用 QuickJS 进行解析,但用 ProtoCore 原语替换了整个运行时。 这允许真正的 worker 线程执行(“Deferred”),其中不可变对象在线程之间共享,无需复制或与 GIL 相关的争用。 当前状态: ProtoCore:100% 的测试通过率(50/50 个测试),并且今天完成了全面的技术审计。 ProtoJS:第一阶段完成,展示了真正的并行执行和低于 1 毫秒的 GC 暂停。 我是一名电子工程师(现在是大学教授),我想看看应用底层硬件原理是否可以解决高级并发“混乱”。 我很想听听您对这种在系统编程中采用的不可变优先方法的权衡的看法。 ProtoCore(引擎):https://github.com/numaes/protoCore ProtoJS(JS 运行时):https://github.com/gamarino/protoJS
10作者: tullie17 天前
嗨,HN, 我是 Tullie,Shaped 的创始人。此前,我曾是 Meta AI 的研究员,负责 Instagram Reels 的排序工作,并且是 PyTorch Lightning 的贡献者。 我们构建 ShapedQL 是因为我们注意到,虽然检索(找到 1,000 个项目)已经被向量数据库商品化,但排序(找到最好的 10 个项目)仍然是一个基础设施问题。 为了构建一个像样的个性化推荐信息流或具有长期记忆的 RAG 系统,你通常需要整合一个向量数据库(Pinecone/Milvus)、一个特征存储(Redis)、一个推理服务,以及数千行 Python 代码来处理业务逻辑和重新排序。 我们构建了一个引擎,将这些整合到一个 SQL 方言中。它将声明性查询编译成高性能、多阶段的排序管道。 工作原理: ShapedQL 不仅仅使用 SELECT *,它在推荐系统中原生的四个阶段运行: 检索:通过混合搜索(关键词 + 向量)或协同过滤获取候选项目。 过滤:应用硬性约束(例如,“库存 > 0”)。 评分:使用实时模型对结果进行排序(例如,p(点击) 或 p(相关性))。 重新排序:应用多样性逻辑,这样你的 Agent/用户就不会看到 10 个几乎相同的结果。 语法:以下是一个 RAG 查询的示例。这取代了大约 500 行标准 Python/LangChain 代码: ```sql SELECT item_id, description, price FROM -- 检索:跨多个索引的混合搜索 search_flights("$param.user_prompt", "$param.context"), search_hotels("$param.user_prompt", "$param.context") ``` WHERE ```sql -- 过滤:硬性业务约束 price <= "$param.budget" AND is_available("$param.dates") ``` ORDER BY ```sql -- 评分:实时重新排序(个性化 + 相关性) 0.5 * preference_score(user, item) + 0.3 * relevance_score(item, "$param.user_prompt") ``` LIMIT 20 如果你不喜欢 SQL,你也可以使用我们的 Python 和 Typescript SDK。我很想知道你对这种语法和抽象层的看法!