本周Github上数据科学Python有趣项目

Github上数据科学有趣的项目、工具和库

openllmetry
适用于您的 LLM 应用程序的开源可观测性。

OpenLLMetry 是一组基于OpenTelemetry构建的扩展,可让您对 LLM 应用程序具有完全的可观察性。由于它在底层使用 OpenTelemetry,因此可以连接到您现有的可观测性解决方案- Datadog、Honeycomb 等。

它由 Traceloop 根据 Apache 2.0 许可证构建和维护。

该存储库包含适用于 LLM 提供程序和矢量数据库的标准 OpenTelemetry 仪器,以及 Traceloop SDK,可以轻松开始使用 OpenLLMetry,同时仍然输出可连接到可观测性堆栈的标准 OpenTelemetry 数据。如果您已经安装了 OpenTelemetry 仪器,则可以直接添加我们的任何仪器。


CBScript
CBScript 是一种转译语言,由 SethBling 设计。该编译器会将 CBScript 文件编译为 Minecraft 数据包 zip 文件。它具有许多 Minecraft 命令级别所不存在的高级语言功能。

CBScript 包含许多高级功能,可以简化数据包的语法和构造,并使其更易于维护。查看“/scripts”文件夹中的脚本作为示例。还有存档的脚本子文件夹,其中包含旧版本游戏的数据包。

  • 包含文件
  • 算术表达式
  • For/while 循环
  • if/else if/else 块
  • 执行语法
  • Tellraw 具有简化的语法
  • 具有简化语法的标题/副标题/操作栏。
  • 宏功能支持
  • 实体选择器定义,包括数据路径
  • 进度/战利品表/块标签/谓词定义。
  • 带参数的函数/方法调用。
  • 开关,同时支持数字和块类型
  • 编译时变量
  • 编译时循环展开
  • 编译时宏
  • 模板函数
  • 坐标向量


SQLMesh 
向后兼容 dbt 的高效数据转换和建模框架。

SQLMesh 使数据从业者能够高效地运行和部署用 SQL 或 Python 编写的数据转换。
尽管 SQLMesh 将使您的 dbt 项目更加高效、可靠和可维护,但它不仅仅是dbt 的替代品

SQL 的语义理解

  • 编译时错误检查(针对 10 种不同的 SQL 方言!)
  • 简单地使用 SQL进行定义(不需要冗余和混乱的 Jinja + YAML)
  • 使用本机 SQL 注释进行自记录查询

dataverse
Dataverse 是一个可免费访问的开源项目,支持使用 Python 的 ETL(提取、转换和加载)管道。我们为数据处理和管理提供简单、标准化和用户友好的解决方案,满足LLM时代数据科学家、分析师和开发人员的需求。即使您对 Spark 不太了解,您也可以通过dataverse轻松使用它。

借助 Dataverse,您可以

  • 利用一系列预处理功能,无需安装多个库。
  • 创建用于分析和训练大型语言模型 (LLM) 的高质量数据。
  • 无论您的专业知识水平如何,都可以轻松利用 Spark。
  • 促进具有不同 Spark 熟练程度的用户之间更顺畅的协作。
  • 通过利用 AWS EMR 的功能,摆脱本地环境的限制。


LlamaGym
通过在线强化学习微调 LLM 代理。

起源于强化学习,它们通过与环境交互并接收奖励信号来学习。然而,如今基于 LLM 的智能体并不通过强化进行在线学习(即持续实时学习)。
OpenAI 创建Gym是为了标准化和简化 RL 环境,但如果您尝试将基于 LLM 的代理放入 Gym 环境中进行训练,您会发现它仍然需要相当多的代码来处理 LLM 对话上下文、剧集批次、奖励分配, PPO 设置等。

LlamaGym 寻求通过 RL 简化 LLM 代理的微调。现在,它是一个单独的Agent抽象类,可以处理上述所有问题,让您可以在任何 Gym 环境中快速迭代和试验代理提示和超参数。

chedule-texts-from-txt
从 .txt 文件安排 iMessage 或 SMS 文本。

fructose
Fructose 是一个 Python 包,用于围绕 LLM 调用创建可靠的强类型接口。

只需将@ai装饰器放在带类型注释的函数上,然后像调用函数一样调用它即可。它是轻量级的语法糖。

from fructose import Fructose
ai = Fructose()

@ai
def describe(animals: list[str]) -> str:
  """
  Given a list of animals, use one word that'd describe them all.
 
"""
  ...

description = describe([
"dog", "cat", "parrot", "goldfish"])
print(description) # ->
"pets" type: str

装饰器@ai会自省该函数,并为 LLM 构建一个提示,以便在调用该函数时执行该任务。


R2R
用于快速开发和部署生产就绪 RAG 系统的框架。

R2R 旨在弥合实验 RAG 模型和强大的生产就绪系统之间的差距。我们的半固执己见的框架消除了复杂性,提供了在生产中部署、调整和维护 RAG 管道的直接途径。我们优先考虑简单性和实用性,旨在为易用性和有效性树立新的行业基准。

该框架主要围绕三个核心抽象:

  • 摄取管道:有助于从各种数据格式(json、txt、pdf、html 等)准备可嵌入的“文档”。抽象可以在 中找到ingestion.py。
  • 嵌入管道:管理文本到存储的向量嵌入的转换,通过一系列步骤(例如,extract_text、transform_text、chunk_text、embed_chunks 等)与嵌入和向量数据库提供程序进行交互。抽象可以在 中找到embedding.py。
  • RAG 管道:工作原理与嵌入管道类似,但合并了 LLM 提供程序来生成文本补全。抽象可以在 中找到rag.py。
  • Eval Pipeline:对 rag_completion 调用的某些子集进行采样以进行评估。目前支持DeepEval 。抽象可以在 中找到eval.py。

每个管道都包含一个日志数据库,用于操作跟踪和可观察性。


python-docstring-highlighter
VSCode 插件扩展: Python Docstring 的语法高亮显示。

此扩展旨在突出显示Python 代码中的文档字符串,使其更易于阅读和理解源代码。它不提供任何对编辑或创建文档字符串的支持。它针对Google、NumPy和Sphinx样式文档字符串格式进行了优化,尽管它也应该部分适用于其他格式。


Ludic
轻量级框架,用于用纯 Python 构建 HTML 页面。

Ludic 是一个轻量级框架,用于使用类似于React 的组件方法构建 HTML 页面。它旨在与htmx.org一起使用,因此开发人员几乎不需要编写任何 JavaScript 来创建动态 Web 服务。它的潜力可以与其 Web 框架一起利用,该框架是强大的Starlette框架的包装器。它是用最新的 Python 3.12 功能构建的,大量结合了类型。

特征

  • 无缝</> htmx集成,用于纯 Python中的快速 Web 开发
  • 具有标准 Python 类型提示的类似React的组件方法
  • 利用Starlette和Async的强大功能进行高性能 Web 开发
  • 使用 Python f-string轻松而强大地构建 HTML


five_decorators
五个有用的装饰器,为你的 Python 代码带来灵感。

modguard
一个用于实施模块化、解耦包架构的 Python 工具

Modguard 使您能够为给定模块定义公共接口。默认情况下,用 标记包会Boundary使其所有内部都是私有的,仅公开标记为 的成员 public。
这强制实施了解耦模块的架构,并确保域之间的通信仅通过其定义的公共接口进行。
Modguard 非常轻量级,并且不会影响代码的运行时。相反,它的检查是通过静态分析 CLI 工具执行的。