2作者: dselvaggio7 天前原帖
嘿,HN,我们刚刚发布了 Hebo Gateway 的 v0.1 版本。 市面上已经有很多网关,但我们不断遇到同样的问题:一旦需要真正的定制(如身份验证、路由、速率限制、可观察性、请求/响应转换),大多数“现成”的网关就变得难以扩展。 Hebo Gateway 适用于希望将网关作为应用程序一部分的场景。您可以独立运行它,或将其嵌入到现有的后端中。它暴露了与 OpenAI 兼容的端点(/chat/completions、/embeddings、/models),可以与任何 Vercel AI SDK 提供者配合使用,并添加了一个钩子系统,您可以在不修改核心代码的情况下将逻辑插入请求生命周期中。 快速入门、示例和“接下来是什么”都在这篇文章中: <a href="https://hebo.ai/blog/260127-hebo-gateway" rel="nofollow">https://hebo.ai/blog/260127-hebo-gateway</a> 我非常希望能收到您在 OpenAI 兼容边缘案例中遇到的问题反馈(特别是与流媒体和推理相关的内容),以及您希望网关默认提供的钩子功能。
9作者: dinunnob7 天前原帖
嘿,HN, 我是一名转行的量化物理学家。我和一些朋友“构建”了SymDerive,因为我们希望有一个符号数学库,设计上是“代理原生”的,同时又是一个对人类实用的工具。 这归结为两个主要目标: 1. 代理可靠性:我发现,当AI代理遵循无状态的函数式管道(类似Lisp风格)时,它们编写的代码要可靠得多。这可以防止它们产生状态变化的幻觉或在长的过程脚本中迷失。我希望有一个库默认强制执行“输入 -> 转换 -> 输出”的流程。 2. 缓解向Python的过渡:对于许多物理学家来说,Mathematica是他们的母语。我想提供一种方式来缓解这一过渡——提供一座桥梁,保持熟悉的语法(驼峰命名法、Sin、Integrate),同时在底层严格使用Python科学栈。 我构建的内容:这是一个围绕标准栈(SymPy、PySR、CVXPY)的函数式封装,作为一个独立的引擎,适用于任何人——无论是人类还是代理——喜欢基于管道的工作流程。 ```python # “管道”方法(对代理更清晰,对人类可读) result = ( Pipe((x + 1)**3) .then(Expand) .then(Simplify) .value ) ``` “氛围”特性: - Wolfram语法:Integrate、Det、Solve。如果你懂数学,你就懂这个API。 - 模块化:重的功能(符号回归、凸优化)是可选安装([regression]、[optimize])。除非你要求,否则不会膨胀你的虚拟环境。 - 物理工具:我添加了我实际使用的工具——广义相对论的抽象指标符号、因果模型的克拉默斯-克罗尼希等。 这绝对是有主见的,但如果你正在构建代理来进行严格的数学计算,或者只是想要一个熟悉的函数式接口来进行自己的研究,这可能会有所帮助。 我发现协调者(Claude Code等)在学习工具和将任务发送到正确角色方面相当不错,我们对它的效果感到惊讶。 代码库在这里:https://github.com/closedform/deriver 如果被嘲笑得太狠我会哭的。
1作者: justvugg7 天前原帖
我构建了PolyMCP,以便轻松地将现有函数暴露为MCP工具,而无需重写逻辑或添加过多的胶水代码。 目标:将“普通”的Python或TypeScript函数立即使其可被MCP客户端(如Claude Desktop、代理、Ollama等)使用。 Python示例: ```python from polymcp.polymcp_toolkit import expose_tools def greet(name: str) -> str: """打招呼。""" return f"你好,{name}!" def add(a: int, b: int) -> int: """将两个数字相加。""" return a + b app = expose_tools([greet, add], title="我的MCP工具") ``` 运行命令: ``` uvicorn server:app --reload ``` MCP端点出现于: - /mcp/list_tools - /mcp/invoke TypeScript示例: ```typescript import { z } from "zod"; import { tool, exposeTools } from "polymcp"; const uppercaseTool = tool({ name: "uppercase", description: "将文本转换为大写", inputSchema: z.object({ text: z.string() }), function: async ({ text }) => text.toUpperCase(), }); const app = exposeTools([uppercaseTool], { title: "文本工具" }); app.listen(3000); ``` 更“真实”的示例(Python): ```python import pandas as pd from polymcp.polymcp_toolkit import expose_tools def calculate_commissions(sales_data: list[dict]): df = pd.DataFrame(sales_data) df["commission"] = df["sales_amount"] * 0.05 return df.to_dict(orient="records") app = expose_tools([calculate_commissions], title="商业工具") ``` 你将获得: - 最小修改即可重用现有代码 - 兼容MCP(Claude Desktop、代理、Ollama等) - 支持HTTP、标准输入输出和WASM - 自动输入验证 - 基本生产特性(预算、重试、数据脱敏、日志) - 内置检查器用于测试和监控 安装: - Python: `pip install polymcp` - TypeScript: 克隆仓库 → `cd polymcp-ts` → `npm install` → `npm run build` 仓库地址: [https://github.com/poly-mcp/Polymcp](https://github.com/poly-mcp/Polymcp) 我很好奇如果这么简单,人们会首先暴露什么样的函数。 欢迎反馈。
1作者: hpen7 天前原帖
嘿,HN, 在2014年的一块死硬盘上,有我写过的最好的东西。我不记得具体内容是什么,只记得那种感觉。 那是我不断回想的时刻。不是我决定去构建这个东西的时刻——那是后来的事——而是它背后的原因。十年的音乐创作意味着十年的项目文件散落、硬盘损坏,还有那些名为“旧东西 请勿删除”的文件夹,最终还是会被删除。 于是我创建了ScratchTrack。这是一个所有内容都经过版本控制的数字音频工作站(DAW)。每一次编辑、每一个录音、每一条你在改变主意之前走过的分支。我深入研究了架构——事件源、内容寻址存储、完善的提交历史。我希望它成为我所渴望拥有的工具。 上个月我发布了它。在几个地方发了帖子,告诉了一些人。 反响平淡。只有少数注册用户,没有 momentum。 我以为我会感到沮丧。我投入了这么多精力。但今天早上我打开它,准备做一些新东西,意识到——我只是喜欢使用它。我的项目是安全的,历史也在。这个我为自己构建的东西实际上对我有用。 所以我会继续构建它。如果有其他一些在创作过程中失去过歌曲的人觉得它有用,那就是我的梦想。如果没有,它依然是我的,它也会继续存在。
5作者: smashah7 天前原帖
大家好, 我想要一个可靠的方法来跟踪我的收据,而不需要把它们放在一个盒子里,因此我找到了无纸化(paperless)——但现有的无纸化人工智能项目并没有将我的收据转换为可用的数据。 于是我创建了nutlope的receipthero的一个分支(实际上这是一个完整的重写,唯一保留的就是系统提示)。这个项目的目标是成为一个一站式服务,自动检测标记的文档并使用模式定义将其转换为JSON——这包括发票……我现在想不出其他的了,也许你能想到?如果有,请提出一个问题! 我非常欢迎任何反馈或问题,谢谢! (附言:我确保它的设置非常简单,使用dockge/basic docker-compose.yml) 仓库链接: [https://github.com/smashah/receipthero-ng](https://github.com/smashah/receipthero-ng) 教程链接: [https://youtu.be/LNlUDtD3og0](https://youtu.be/LNlUDtD3og0)