23个Github有趣的项目、工具和库
1、Positron
下一代数据科学 IDE。
- 您使用 VS Code 进行数据科学(Python 或 R),但希望它包含专用控制台、变量窗格、数据浏览器和其他用于特定数据工作的功能。
- 您使用 Jupyterlab 进行数据科学(Python 或 R),并准备使用功能更强大、功能更齐全的 IDE。
- 您使用 RStudio 并希望更好地定制或扩展您的 IDE。
- 您在日常数据科学或包开发工作中使用其他语言,例如 Rust、C++、JavaScript 或 Lua。
2、Hatchet
Go编制分布式容错任务队列。
Hatchet 取代了难以管理的传统队列或发布/订阅系统,因此您可以设计能够从故障中恢复的持久工作负载,并解决并发性、公平性和速率限制等问题。您无需管理自己的任务队列或发布/订阅系统,而是可以使用 Hatchet 在一组具有最少配置或基础架构的工作程序之间分配函数。
是什么让 Hatchet 如此出色?
-
⚡️超低延迟和高吞吐量调度: Hatchet 建立在低延迟队列上,完美平衡了实时交互能力和关键任务所需的可靠性。
-
☮️并发性、公平性和速率限制:使用 Hatchet 的内置策略实现 FIFO、LIFO、循环和优先级队列,旨在以最少的配置规避常见的扩展陷阱。阅读文档 →
-
弹性设计:借助可自定义的重试策略和集成的错误处理,Hatchet 可确保您的操作从瞬时故障中快速恢复。您可以将大型作业分解为小任务,这样您就可以完成运行而无需重新运行工作。阅读文档 →
增强的可视性和控制力:
-
可观察性。您的所有运行都完全可搜索,让您可以快速识别问题。我们会跟踪您运行中的延迟、错误率或自定义指标。
-
(实用)持久执行。重播事件并手动从工作流中的特定步骤中获取执行。
-
Cron。设置要执行的函数运行的重复计划。
-
一次性调度。安排函数运行在未来的特定时间和日期执行。
-
峰值保护。平滑流量峰值并仅执行系统可以处理的操作。
-
增量流。随着您的功能在后台工作器中进展,订阅更新。
示例用例:
- 生成式 AI 的公平性:不要让繁忙的用户淹没您的系统。Hatchet 可让您使用可配置的策略公平地将请求分配给您的工作人员。
- 文档索引的批处理: Hatchet 可以处理文档、图像和其他数据的大规模批处理,并在发生故障时恢复中途作业。
- 多模式系统的工作流编排: Hatchet 可以处理多模式输入和输出的编排,并具有完整的 DAG 样式执行。
- 基于事件的处理的正确性:响应系统内的外部事件或内部事件并自动重播事件。
与其他替代方案(Celery、BullMQ)相比如何?
为什么要构建另一个托管队列?我们希望构建具有完全事务排队优势的东西 - 特别是对于依赖的 DAG 样式执行 - 并且强烈认为 Postgres 比大多数替代方案更好地解决了 99.9% 的排队用例(Celery 使用 Redis 或 RabbitMQ 作为代理,BullMQ 使用 Redis)。自从引入SKIP LOCKED和最近的 PG 版本(如主动-主动复制)的里程碑以来,在多个区域水平扩展 Postgres 并垂直扩展到 10k TPS 或更高变得更加可行。许多队列(如 BullMQ)都是基于 Redis 构建的,如果您不小心,在遭受 OOM 时可能会发生数据丢失,而使用 PG 有助于避免一整类问题。
我们还希望应用程序开发人员能够更轻松地使用和调试。很多时候,构建任务可观察性的负担落在了基础设施/平台团队身上(例如,要求基础设施团队根据导出的 prom 指标为他们的任务构建 Grafana 视图)。我们正在将这种可观察性直接构建到 Hatchet 中。
3、shpool
Rust编写,它允许创建由 shpool 拥有的命名 shell 会话来实现会话持久性,以便在连接断开时会话不会丢失。
shpool 可以被认为是 tmux 或 GNU screen 的轻量级替代品。
4、overleaf
一个 开源的在线实时协作 LaTeX 编辑器。
在线实时协作 LaTeX 编辑器是一种工具,允许多个用户同时在网络上编辑 LaTeX 文档。这些编辑器通过云端存储和同步,提供实时更新和版本控制功能,使用户可以方便地进行协作和共享。以下是一些主要功能和常用的在线实时协作 LaTeX 编辑器:
主要功能
-
实时协作:多个用户可以同时编辑同一个文档,所有更改会立即反映在所有用户的界面上。
-
版本控制:跟踪文档的历史版本,可以查看和恢复到之前的版本。
-
评论和注释:用户可以在文档中添加评论和注释,便于团队交流和反馈。
-
模板和宏:提供丰富的模板和宏,加快文档的编写速度。
-
编译和预览:在线编译 LaTeX 代码,并实时预览输出效果。
常用的在线实时协作 LaTeX 编辑器
-
Overleaf:最受欢迎的在线 LaTeX 编辑器,支持实时协作、版本控制和广泛的模板库。
-
ShareLaTeX:现已与 Overleaf 合并,提供类似功能的协作平台。
-
Authorea:专注于科研文档,支持 LaTeX 和 Markdown,提供实时协作和版本控制。
-
Papeeria:提供在线 LaTeX 编辑和协作功能,并支持编译和预览。
这些工具大大简化了 LaTeX 文档的协作过程,尤其适用于学术论文、技术文档和报告的编写。
5、 Restate
是一个构建弹性应用程序的平台,可以容忍所有基础设施故障,而不需要博士学位。
更多:Restate:支持JavaScript/Java的Rust低延迟持久工作流
6、SmoothMQ
SmoothMQ 是 SQS 的替代品,为开发人员带来更流畅的体验。它具有实用的 UI、可观察性、跟踪、消息调度和速率限制。SmoothMQ 可让您在任何云上运行私有 SQS 实例。
Amazon Simple Queue Service (SQS) 是一种完全托管的消息队列服务,提供了一个可靠、高度可用、可扩展的消息队列系统,允许分布式应用程序和微服务之间通过消息进行异步通信。SQS 可以帮助解耦和扩展分布式系统的不同组件。以下是 SQS 的一些主要特点和功能:
主要特点
- 完全托管:SQS 是一个托管服务,AWS 负责基础设施的管理和维护,用户无需担心底层硬件或软件的配置和管理。
- 高可用性和可扩展性:SQS 自动处理消息队列的扩展和缩减,确保高可用性,并能适应负载的变化。
- 消息持久性:消息在传递过程中会被持久化存储,确保消息不会丢失。
- 两种队列类型:
-
标准队列:提供高吞吐量、至少一次传递和最多一次的顺序保证。
-
FIFO 队列:保证消息的严格顺序和每条消息只传递一次的语义。
-
7、diff-pdf
diff-pdf 是一个用于直观比较两个 PDF 的工具。
它以两个 PDF 文件作为参数。默认情况下,它的唯一输出是返回代码,如果没有差异,则为 0,如果两个 PDF 不同,则为 1。如果给出选项--output-diff,它会生成一个以视觉突出显示差异的 PDF 文件:
$ diff-pdf --output-diff=diff.pdf a.pdf b.pdf
另一种选择是在简单的 GUI 中直观地比较两个文件,使用以下--view参数:
$ diff-pdf --view a.pdf b.pdf
这将打开一个窗口,让您可以查看文件的页面并放大细节。您还可以使用 Ctrl-箭头(MacOS 上为 Cmd-箭头)将两个页面相对移动。这对于识别仅翻译的差异很有用。
8、llama-agents
llama-agents是一个异步优先框架,用于构建、迭代和生产多智能体系统,包括多智能体通信、分布式工具执行、人在环等!
在 中llama-agents,每个代理被视为一个service,不断处理传入的任务。每个代理从 中提取并发布消息message queue。
系统顶层llama-agents是control plane。控制平面跟踪正在进行的任务、网络中的服务,并决定哪个服务应该使用 来处理任务的下一步orchestrator。
示例文件夹中找到大量示例:
llama-agents系统组件
其中llama-agents,有几个关键组件构成了整个系统
- message queue-- 消息队列充当所有服务和的队列control plane。它具有将方法发布到命名队列的方法,并将消息委托给消费者。
- control plane-- 控制平面是系统的中央网关llama-agents。它跟踪当前任务以及注册到系统的服务。它还保存orchestrator。
- orchestrator-- 该模块处理传入的任务并决定将其发送到哪个服务,以及如何处理服务的结果。编排器可以是代理式的(由 LLM 做出决策)、显式的(由查询管道定义流程)、两者的混合,或完全自定义的。
- services-- 服务是实际工作发生的地方。服务接受一些传入的任务和上下文,对其进行处理,并发布结果
-
是一种tool service用于减轻代理工具计算负担的特殊服务。代理可以配备调用工具服务的元工具。
-
9、BLAKE3
BLAKE3 加密哈希函数的官方 Rust 和 C 实现
BLAKE3 是一种加密哈希函数,其特点是:
- 比 MD5、SHA-1、SHA-2、SHA-3 和 BLAKE2快得多。
- 与 MD5 和 SHA-1 不同,它是安全的。与 SHA-2 不同,它可以防止长度扩展。
- 由于它内部是一棵 Merkle 树,因此可以在任意数量的线程和 SIMD 通道上高度并行化。
- 能够进行验证的流式传输和增量更新,同样因为它是一棵 Merkle 树。
- PRF 、MAC 、 KDF和XOF,以及常规哈希。
- 一种没有变体的算法,在 x86-64 以及较小的架构上运行速度很快。
10、flpc
基于 Rust 的 Python3 正则表达式包装器,可获得更快的性能
flpc 是一个功能强大的 Python 库,它包装了速度超快的Rust regex crate,可提高正则表达式操作的速度。它旨在作为 Python 原生re模块的直接替代品,但语法略有不同。
其他Python生态开源:
11、Pretzel
现代的开源 Jupyter 替代品。
Pretzel 是 Jupyter 的一个分支,旨在改进 Jupyter 的功能。对于我们的前几个功能,我们为 Jupyter 添加了 AI 代码生成和编辑、内联制表符补全、侧边栏聊天和错误修复。
从 Jupyter 切换到 Pretzel 非常简单,因为它只是 Jupyter 的改进版本。您的所有 Jupyter 配置、设置、键绑定和扩展都可以立即使用。
12、 PuePy
通过 PyScript 实现的 Python+Webassembly 前端框架。
PuePy 尝试使用PyScript创建前端框架。PuePy 部分灵感来自 Vue。它完全在浏览器中运行,但服务器端渲染可能可行。PuePy 旨在支持两种运行时环境:PyScript Pyodide 或 PyScript Micropython。
Micropython 选项放弃了 CPython 中的一些功能,但提供了更小的运行时,使其成为网站的更好选择。业务线或科学 Web 应用程序开发人员可能更喜欢 CPython 版本,它更重但功能更强大。
可以用 PuePy 定义可重用的组件,这些组件也使用插槽(类似于 Vue、Web 组件等)。
13、Stockdex
用于挖掘股票和财务数据的 Python 包,使用来自 Yahoo Finance 等开放数据源的数据。
可抓取:
-
来自网站的数据Yahoo Finance(网页抓取)
-
来自API的数据Yahoo Finance(通过Yahoo Finance API进行快速查询)
-
股票数据来自Digrin(网络抓取)
-
股票数据来自macrotrends
-
欧盟ETF数据来自justETF
14、PSQLPy
用 Rust 编写的 Python 异步 PostgreSQL 驱动程序。
PostgreSQL 驱动程序完全用 Rust 编写并暴露给 Python。该库的主要目标是速度和类型安全。
该项目有两个主要目标:尽可能快地与数据库进行交互,现在PSQLPy显示它比上述驱动程序快几倍。不要做无用的抽象,让它像PostgreSQL 的镜子一样
安装:
pip install psqlpy
15、BunkerWeb
默认保护您的 Web 服务!
BunkerWeb 是下一代开源 Web 应用程序防火墙 (WAF):
-
作为一个功能齐全的 Web 服务器(基于NGINX),它将保护您的 Web 服务,使其“默认安全”。
-
BunkerWeb 无缝集成到您现有的环境中(Linux、Docker、Swarm、Kubernetes等),
-
并且完全可配置(不要惊慌,如果您不喜欢 CLI,还有一个很棒的 Web UI)以满足您自己的用例。
换句话说,网络安全不再是麻烦。
BunkerWeb 的核心包含主要的安全功能,但可以通过插件系统轻松扩展其他功能。
16、composio
Composio 为智能体配备了精心制作的工具,使它们能够应对复杂的任务。
基于 AI 的代理/工作流是未来趋势。Composio 是将 AI 代理集成到最佳代理工具并使用它们完成任务的最佳工具集。
主要特点
-
100+ 工具:支持多种不同类别
- 软件:在 GitHub、Notion、Linear、Gmail、Slack、Hubspot、Salesforce 和其他 90 个软件上执行任何操作。
- 操作系统:单击任意位置、输入任何内容、复制到剪贴板等等。
- 浏览器:智能搜索、截屏、MultiOn、下载、上传等。
- 搜索:Google 搜索、Perplexity Search、Tavily、Exa 等等。
- SWE:Ngrok、数据库、Redis、Vercel、Git 等。
- RAG:Agentic RAG 可即时处理任何类型的数据!
-
框架:在一行代码中使用带有代理框架的工具,如OpenAI、Claude、LlamaIndex、Langchain、CrewAI、Autogen、Gemini、Julep、Lyzr等。
-
托管授权:支持六种不同的身份验证协议。访问令牌、刷新令牌、OAuth、API 密钥、JWT 等被抽象出来,以便您可以专注于构建代理。
-
准确性:由于更好的工具设计,工具调用的代理准确性可提高高达 40% 。
-
可嵌入:在应用程序后端使用白标签来管理所有用户和代理的身份验证和集成,并保持一致的体验。
-
可插入:设计为可通过附加工具、框架和授权协议轻松扩展。
17、cambrian
纽约大学推出的完全开放、以视觉为中心的多模态 LLM 探索。
在使用较少固定数量的视觉标记的情况下提供了极具竞争力的性能。
- 视觉表现:我们探索各种视觉编码器及其组合。
- 连接器设计:我们设计了一种新的动态和_空间感知_连接器:空间视觉聚合器 (SVA),它将来自多个模型的视觉特征与 LLM 集成在一起,同时减少了令牌的数量。
- 指令调整数据:我们从公共来源整理高质量的视觉指令调整数据,强调分布平衡的重要性。
- 指令调整方法:我们讨论指令调整策略和实践。
- 基准测试:我们检查现有的 MLLM 基准并引入一个以视觉为中心的新基准“CV-Bench”。
空间视觉聚合器 (SVA)融合了两个新的以视觉为中心的设计原则:
-
我们通过明确定位查询中每个标记的聚合空间来编码空间归纳偏差。
-
我们在 LLM 层之间多次执行视觉特征聚合,从而允许模型重复引用必要的视觉信息。
18、PyPI Scout
在 PyPI 上使用自然语言查询查找 Python 包的在线工具。
这个在线工具让您使用自然语言查询在 PyPI 上搜索 Python 包。
例如,
查询是:“创建图表和精美可视化的包”。
单击搜索后:
-
您的查询将与 PyPI 上约 100,000 个最受欢迎软件包的摘要和描述的第一部分进行匹配,其中包括每周下载量至少约 100 次的所有软件包。
-
然后根据结果与查询的相似度及其每周下载量对结果进行评分,最佳结果显示在上面的图表和表格中。
19、Metatype
声明式 API 开发平台。使用 WASM、Typescript 和 Python 构建后端组件,无论您的(旧式)系统位于何处以及如何运行。
- 编程就像建造城堡:建造城堡并不容易。即使是最好的团队也很难按照计划建造,尤其是在需求不断变化和技术格局复杂的情况下。
- 使用 Typegraphs 构建可靠的城堡:Typegraphs 是可编程的虚拟图,用于描述堆栈的所有组件。它们使您能够以类型安全的方式编写 API、存储和业务逻辑。
- 使用 Metatype 构建可重复使用的城堡:安装第三方作为依赖项并开始重复使用组件。Meta CLI 为您提供实时重新加载和一键部署到 Metatype 云或您的自托管实例的功能。
20、OmniParse
提取、解析和优化从文档到多媒体的任何数据格式,以增强与 GenAI 框架的兼容性。
OmniParse 是一个平台,它可以提取和解析任何非结构化数据,将其转换为针对 GenAI (LLM) 应用程序优化的结构化、可操作数据。无论您处理的是文档、表格、图像、视频、音频文件还是网页,OmniParse 都可以将您的数据准备得干净、结构化,并可用于 RAG、微调等 AI 应用程序
为什么选择 OmniParse?
数据具有不同的形状和大小,因此处理数据非常具有挑战性。OmniParse 旨在成为一个摄取/解析平台,您可以在其中摄取任何类型的数据,例如文档、图像、音频、视频和 Web 内容,并获得最结构化、最可操作且对 GenAI (LLM) 友好的输出。
特征
- ✅ 完全本地,无需外部 API
- ✅ 适合 T4 GPU
- ✅ 支持 ~20 种文件类型
- ✅ 将文档、多媒体和网页转换为高质量的结构化 markdown
- ✅ 表格提取、图像提取/字幕、音频/视频转录、网页抓取
- ✅ 使用 Docker 和 Skypilot 轻松部署
- ✅ Colab 友好
- ✅ 由 Gradio 提供支持的交互式 UI
21、packse
Python打包场景。
场景是依赖关系树的 JSON 描述。
看scenarios/examples/
每个场景文件可以包含一个或多个场景。
以下命令打印可用场景的列表list:
packse list
默认情况下,packse 将在当前树中搜索场景。
使用以下命令view预览场景的依赖树:
$ packse view scenarios/examples/example.json
example-89cac9f1
├── root
│ └── requires a
│ └── satisfied by a-1.0.0
├── a
│ └── a-1.0.0
│ └── requires b>1.0.0
│ ├── satisfied by b-2.0.0
│ └── satisfied by b-3.0.0
└── b
├── b-1.0.0
├── b-2.0.0
│ └── requires c
│ └── unsatisfied: no versions for package
└── b-3.0.0
22、Code2Promptt
一个功能强大的命令行工具,可从代码库生成全面的提示,旨在简化开发人员与大型语言模型 (LLM) 之间的交互,以进行代码分析、文档编制和改进任务
为什么选择Code2Prompt?
- 背景理解:为 LLM 提供您的项目的全面视图,以便获得更准确的建议和分析。
- 一致性提升:在整个项目中保持编码风格和约定。
- 高效重构:实现更好的相互依赖性分析和更智能的重构建议。
- 改进的文档:生成真正反映您的代码库的上下文相关文档。
- 模式识别:帮助 LLM 学习和应用特定于项目的模式和习语。
主要特点
-
整体代码库表示:生成一个结构良好的 Markdown 提示,捕捉整个项目的精髓。
-
智能源树生成:创建代码库结构的清晰、分层视图。
-
可定制的提示模板:使用 Jinja2 模板定制您的输出以适合特定的 AI 任务。
-
智能token管理:计数和优化token以确保与各种 LLM token限制兼容。
-
Gitignore 集成:尊重项目的 .gitignore 规则以获得准确的表示。
-
灵活的文件处理:使用强大的 glob 模式过滤和排除文件。
-
剪贴板就绪:立即将生成的提示复制到剪贴板,以便快速进行 AI 交互。
-
多种输出选项:保存到文件或显示在控制台中。
-
增强代码可读性:在源代码块中添加行号以便精确引用。
改变您与 AI 进行软件开发的方式。借助 Code2Prompt,在每次 AI 对话中充分利用代码库的全部功能。
23、GraphRAG
Microsoft 的模块化基于图形的检索增强生成 (RAG) 系统。
GraphRAG 项目是一个数据管道和转换套件,旨在利用 LLM 的功能从非结构化文本中提取有意义的结构化数据。
GraphRAG 能做什么?
GraphRAG 能够将大量信息连接起来,并利用这些连接来回答那些使用关键字和基于向量的搜索机制难以回答或无法回答的问题。在上一个问题的基础上,提供有关系统如何提供各种用途功能的半技术性高级信息。这使得使用 GraphRAG 的系统能够回答答案涵盖许多文档的问题以及主题问题,例如“此数据集中的热门主题是什么?”。
GraphRAG 的预期用途是什么?
- GraphRAG 旨在支持关键信息发现和分析用例,其中获得有用见解所需的信息涵盖许多文档、嘈杂、混杂错误和/或虚假信息,或者当用户想要回答的问题比底层数据更抽象或主题化时可以直接回答。
- GraphRAG 旨在用于用户已接受过负责任的分析方法培训并需要批判性推理的环境中。GraphRAG 能够对复杂的信息主题提供高度的洞察力,但需要领域专家对答案进行人工分析,以验证和增强 GraphRAG 生成的响应。
- GraphRAG 旨在与特定领域的文本数据语料库一起部署和使用。GraphRAG 本身不收集用户数据,但鼓励用户验证用于配置 GraphRAG 的所选 LLM 的数据隐私政策。