2 分•作者: abelgvidal•3 个月前
他13岁。他想追踪自己的蚂蚁群落——包括它们的生长、喂食、湿度以及其他指标。他自己构建了整个应用程序,其中一些功能得到了AI工具的帮助;我只是帮他把应用程序部署到了服务器上。非常期待您的反馈!
2 分•作者: cpard•3 个月前
大家好。我想分享一个对我来说意义重大的项目。fenic 是一个数据框 API,将大型语言模型(LLM)作为一等公民加入,这是一个经典的惰性数据框 API,通过由 LLM 支持的新运算符进行了扩展。 这使您能够在同一上下文中处理结构化和非结构化数据。最重要的是,LLM 不是作为不透明的 UDF 黑盒集成的。它们被暴露为“语义”运算符,规划器可以与经典运算符一起对其进行推理。 (仓库中有示例和代码片段,展示了所有内容如何协同工作) 为什么要做这个项目?我是一名数据基础设施/系统人员。当 LLM 出现时,我看到的是一种新型计算,它改变了我们处理的工作负载的特性。我想尝试一下我们现有的系统如何吸收这些新的工作负载和计算类型,以及如何使开发者体验(DX)尽可能无缝,这就是为什么 UDF + 任意提示感觉过于麻烦。 为了妥善支持这一点,我们引入了一些非常棒的功能: 新的计划运算符。您不仅仅是向 LLM 发送提示。您可以使用诸如语义连接(semantic join)、语义映射和归约(semantic map and reduce)、语义过滤(semantic filter)等运算符。它们与经典运算符混合,并且由于规划器将它们视为真正的运算符而不是黑盒,因此它可以围绕它们重新排序工作。 类型化输出。有一种便捷的方式可以将语义运算符的输出直接转换为类型化数据框列。LLM 输出的 Pydantic 模式会变成一个类型化的结构化列,您可以对其进行解嵌套、展开等操作。 新的数据类型,如 Markdown 数据类型。Markdown 成为了与 LLM 共享信息的重要方式,尽管它最初是为了格式化文本以供展示而设计的。它承载着结构,并且能够像访问结构体或 JSON 类型一样访问这种结构,这增强了我提到的开发者体验。 异步 UDF。LLM 爆炸式增长带来的工作负载中一个更有趣的变化是,需要在管道中放入大量 I/O 密集型步骤:获取 API 响应、爬取网站等。异步 UDF 填补了这一空白,并且实现会为您处理其中的细微差别:并发、重试以及其他一切。 LLM 推理感知规划器和运行时。这是我最兴奋的部分之一,而且还有很多工作要做。目前:批次内的相同提示会折叠成一次模型调用,因此重复的提示成本为零 token;请求会根据每个提供商的 rpm/tpm 限制并发分发,并进行重试和回退;空值和空单元格会完全跳过模型;并且您会获得每个运算符的 token 和成本指标。还有一个可选的持久响应缓存,因此重新运行会跳过模型。 MCP 作为新的目录原语。就像注册视图一样,您可以将数据框管道注册为目录中的 MCP 工具。然后,fenic 会提供一个 MCP 服务器,该服务器以该管道作为工具的逻辑,并在您的数据上执行。 这些只是 fenic 在尝试将 LLM 融入我们的计算基础设施时所做的一些工作。还有更多,并且现有功能还有很多需要完善的地方。 我一直在使用 fenic 处理各种事情。在小型/个人方面,我用它来处理我的播客音频录音,并将它们转换成我可以研究的结构良好的元数据表。在更重型的方面,我将其用作代理工具,用于分析从 Pydantic Logfire 导出的代理跟踪,以发现评估(evals)并将它们转换成数据框管道形式的可重现构件。 ```bash pip install fenic ``` 仓库:https://github.com/typedef-ai/fenic 文档:https://docs.fenic.ai 还有一个您可以与 claude code、codex 等一起使用的技能,以便在您最喜欢的代理编码环境中快速开始使用 fenic。 我很想听听您的想法、批评以及任何其他您想到的。 我很乐意回答问题。
1 分•作者: doener•3 个月前