返回首页
最新
嘿,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 兼容边缘案例中遇到的问题反馈(特别是与流媒体和推理相关的内容),以及您希望网关默认提供的钩子功能。
嘿,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
如果被嘲笑得太狠我会哭的。
我构建了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)
我很好奇如果这么简单,人们会首先暴露什么样的函数。
欢迎反馈。
嘿,HN,
在2014年的一块死硬盘上,有我写过的最好的东西。我不记得具体内容是什么,只记得那种感觉。
那是我不断回想的时刻。不是我决定去构建这个东西的时刻——那是后来的事——而是它背后的原因。十年的音乐创作意味着十年的项目文件散落、硬盘损坏,还有那些名为“旧东西 请勿删除”的文件夹,最终还是会被删除。
于是我创建了ScratchTrack。这是一个所有内容都经过版本控制的数字音频工作站(DAW)。每一次编辑、每一个录音、每一条你在改变主意之前走过的分支。我深入研究了架构——事件源、内容寻址存储、完善的提交历史。我希望它成为我所渴望拥有的工具。
上个月我发布了它。在几个地方发了帖子,告诉了一些人。
反响平淡。只有少数注册用户,没有 momentum。
我以为我会感到沮丧。我投入了这么多精力。但今天早上我打开它,准备做一些新东西,意识到——我只是喜欢使用它。我的项目是安全的,历史也在。这个我为自己构建的东西实际上对我有用。
所以我会继续构建它。如果有其他一些在创作过程中失去过歌曲的人觉得它有用,那就是我的梦想。如果没有,它依然是我的,它也会继续存在。
大家好,
我想要一个可靠的方法来跟踪我的收据,而不需要把它们放在一个盒子里,因此我找到了无纸化(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)