本周Github上13个有趣Python项目和库

本周Github上有趣的Python项目和库(涉及大模型 与人工智能等):

1、DataTrove
通过提供一套平台无关的可定制流水线处理模块,将数据处理从疯狂的脚本编写中解放出来。

DataTrove 是一个用于大规模处理、过滤和删除重复文本数据的库。它提供了一组预构建的常用处理块以及一个框架,可以轻松添加自定义功能。

DataTrove 处理管道与平台无关,可以在本地或 slurm 集群上开箱即用。其(相对)较低的内存使用率和多步骤设计使其非常适合大型工作负载,例如处理大模型的训练数据。

通过fsspec支持本地、远程和其他文件系统。

2、Granian
用于 Python 应用程序的 Rust HTTP 服务器。

背后的主要原因是:

  • 拥有单一、正确的 HTTP 实现,支持版本 1、2(最终是 3)
  • 为多个平台提供单一包
  • 避免 unix 系统上常见的 Gunicorn + uvicorn + http-tools 依赖组合
  • 与现有替代方案相比,提供稳定的性能
  •  

特征
  • 支持ASGI/3、RSGI和WSGI接口应用
  • 实现 HTTP/1 和 HTTP/2 协议
  • 支持HTTPS
  • 支持Websocket


3、InstantID
在几秒钟内零次生成身份ID照片保存生成。

  • InstantID 是一种新的最先进的免调整方法,只需单个图像即可实现 个人头像ID 生成,支持各种下游任务。
  • 与现有的免调优最先进技术的比较。InstantID 实现了更好的保真度并保留了良好的文本可编辑性(面孔和样式更好地融合)。
  • 与预先训练的角色 LoRA 的比较。我们不需要多个图像,并且仍然可以在没有任何训练的情况下获得与 LoRA 一样的有竞争力的结果。

4、finagg
一个 Python 软件包,用于从流行和免费的金融 API 中聚合历史数据,并将这些数据转化为 AI/ML 的特征。
用于将这些 API 中的历史数据聚合到 SQL 数据库中的工具,以及用于将聚合数据转换为对分析和 AI/ML 有用的功能的工具。

用法:

  • 直接探索 API
  • 使用已安装的原始数据来探索最流行的功能
  • 使用已安装的功能来探索原始数据的精细聚合

特点:

  • 使用已实现的数据功能和 SQL 表聚合一些数据、创建一些分析笔记本或创建一些 RL 环境。该项目最初是为了为金融应用程序创建 RL 环境而创建的,但后来将其目的集中在聚合金融数据和功能上。话虽这么说,所有已实现的功能都是以这样的方式定义的,使开发金融 AI/ML 变得非常容易,所以我们鼓励您这样做!
  • 实施的 API 可能相对较新,并且可能无法提供特定股票或经济数据系列的数据。例如,并非所有公司都可以通过 SEC EDGAR API 获取每股收益。在某些情况下,API 可能会引发 HTTP 错误,导致安装跳过代码或系列。此外,并非所有股票行情和经济数据系列都包含足够的数据进行特征标准化。如果一个股票或系列只有一个数据点,则在计算一项功能(例如百分比变化)时可能会删除该数据点,从而导致不安装任何数据。
  • 支持 Python 3.10 及更高版本。我们不打算支持较低版本,因为 3.10 引入了一些在整个软件包中使用的良好的生活质量更新。
  • 该软件包在 Linux 和 Windows 上开发和测试,但我们建议在实践中使用 Linux 或 WSL。该包执行大量 I/O 和进程间操作,这可能会导致 Windows 上的性能明显下降。


5、Python-Type-Challenges
通过交互式在线练习掌握 Python类型 (类型提示)!

6、django-webhook
在模型变化时触发外发 Django webhook。

一个即插即用的 Django 应用程序,用于发送有关模型更改的传出 Webhook。

Django 有一个内置的信号系统,允许程序员安排在模型更改时执行的函数。django-webhook 利用信号系统与 Celery 一起在模型更改时发送 HTTP 请求。

特点

  • 自动发送有关模型更改的 Webhooks
  • 利用Celery 进行加工
  • 使用 HMAC 的 Webhook 身份验证
  • 使用指数退避重试
  • 管理集成
  • 包含过去 Webhook 事件的审核日志
  • 防止重放攻击

7、ULWGL-launcher
统一的 Linux Wine 游戏启动器

8、RAGxplorer
RAGxplorer 是一种交互式 Streamlit 工具,通过可视化文档块和嵌入空间中的查询来支持检索增强生成 (RAG) 应用程序的构建。

这个应用程序是为了Streamlit 竞赛而设计的,一天晚上才拼凑起来。

特点

  • 文档上传:用户可以上传PDF文档。
  • 块配置:配置块大小和重叠的选项
  • 嵌入模型的选择:all-MiniLM-L6-v2或text-embedding-ada-002
  • 矢量数据库创建:使用 Chroma 构建矢量数据库
  • 查询扩展:生成子问题和假设答案以增强检索过程。
  • 交互式可视化:利用 Plotly 来可视化块。


9、FastHX
FastAPI 和 HTMX,正确的方法。

主要特征:

  • 正如人们所期望的那样,装饰器语法可以与 FastAPI 一起使用,无需在路由中使用未使用或神奇的依赖项。
  • 可与任何模板引擎或服务器端渲染库一起使用,例如markyp-html或dominate.
  • 内置Jinja2 模板支持(即使有多个模板文件夹)。
  • 使渲染引擎能够访问修饰路由的所有依赖项。
  • 如果FastAPI路由收到非 HTMX请求,默认情况下将保持正常工作,因此同一路由可以同时提供数据和渲染 HTML。
  • 正确的类型可以将其他(类型化)装饰器应用到您的路线中。
  • 适用于同步和异步路由。


10、TaskingAI
任务分配人工智能TaskingAI 是 AI 原生应用程序开发的开源平台。

TaskingAI将 Firebase 的简单性带入AI 原生应用程序开发中。该平台支持使用来自不同提供商的各种法学硕士来创建类似 GPT 的多租户应用程序。它具有独特的模块化功能,例如推理、检索、助手和工具,无缝集成以增强开发过程。TaskingAI 的凝聚力设计确保了人工智能应用开发的高效、智能和用户友好的体验。

主要特征:

  1. 一体化 LLM 平台:通过统一的 API 访问数百个 AI 模型。
  2. 直观的 UI 控制台:简化项目管理并允许控制台内工作流程测试。
  3. BaaS 启发的工作流程:将 AI 逻辑(服务器端)与产品开发(客户端)分开,提供从基于控制台的原型设计到使用 RESTful API 和客户端 SDK 的可扩展解决方案的清晰途径。
  4. 可定制的集成:通过可定制的工具和先进的检索增强生成(RAG)系统增强法学硕士功能
  5. 异步效率:利用Python FastAPI的异步特性实现高性能、并发计算,增强应用程序的响应能力和可扩展性。

可以使用 TaskingAI 构建什么?

  •  交互式应用程序演示:使用 TaskingAI 的 UI 控制台快速创建和部署引人入胜的应用程序演示。它是展示人工智能原生应用程序在实时交互和用户参与方面的潜力的理想环境。
  •  用于团队协作的人工智能代理:开发利用集体知识和工具的人工智能代理,增强团队合作和效率。TaskingAI 有助于创建共享 AI 资源,从而简化组织内的协作和支持。
  •  面向商业的多租户 AI 原生应用程序:借助 TaskingAI,构建可投入生产的强大、多租户 AI 原生应用程序。它非常适合处理不同的客户需求,同时保持个性化定制、安全性和可扩展性。

TaskingAI 的架构设计以模块化和灵活性为核心,能够与各种法学硕士兼容。这种适应性使其能够轻松支持各种应用程序,从简单的演示到复杂的多租户人工智能系统。TaskingAI 以开源原则为基础,融合了众多开源工具,确保该平台不仅多功能,而且可定制。

  • Nginx:充当前端 Web 服务器,有效地将流量路由到架构内的指定服务。
  • 前端(TypeScript + React):这种交互式和响应式用户界面是使用 TypeScript 和 React 构建的,允许用户与后端 API 顺利交互。
  • 后端(Python + FastAPI):后端采用Python和FastAPI设计,因其异步设计而提供高性能。它管理业务逻辑、数据处理,并充当前端和人工智能推理服务之间的管道。Python 的广泛使用吸引了更广泛的贡献,为持续改进和创新营造了协作环境。
  • TaskingAI-Inference:该组件致力于 AI 模型推理,能够熟练处理响应生成和自然语言输入处理等任务。这是 TaskingAI 开源产品套件中的另一个杰出项目。
  • TaskingAI 核心服务:包括各种服务,包括模型、助手、检索和工具,每个服务都是平台运营不可或缺的一部分。
  • PostgreSQL + PGVector:作为主数据库,PGVector 增强了用于嵌入比较的向量操作,这对于 AI 功能至关重要。
  • Redis:提供高性能数据缓存,对于加快响应时间和提高数据检索效率至关重要。

11、Applio
终极语音克隆工具,经过精心优化,具有无与伦比的强大功能、模块化和用户友好体验。

  • 代码模块化:代码库已经过重组,以遵循模块化方法。这确保了更好的组织、可读性和易于维护。
  • 跳长实现:特别感谢@Mangio621介绍跳长实现。此增强功能提高了 Crepe(以前称为 Mangio-Crepe)的效率和性能。
  • 翻译超过 30 种语言:该存储库现在支持 30 多种语言的翻译,使其更适合全球受众。
  • 跨平台兼容性:通过多平台兼容性,该存储库可以跨各种平台无缝运行,为用户提供一致的体验。
  • 优化的需求:该项目的需求已经过微调,以提高性能和资源利用率。
  • 安装简单:安装过程得到简化,确保了简单且用户友好的设置体验。


12、Wafer
Wafer 是一款简单而有效的 Web 应用程序防火墙(WAF)模糊测试工具。它使您与 LLM 的交互更快、更可控。

Wafer 首先尝试通过发送常见有效负载列表来识别被阻止的有效负载或字符串。然后,它使用各种技术来构建可能触发 XSS 的独特有效负载。
大多数技术都来自 PortSwiggers XSS 备忘单,您可以在这里找到它。
Wafer 可以结合多种技术来构建触发不同 XSS 向量的独特有效负载。

Chrome驱动程序
Wafer 使用 ChromeDriver 来渲染页面并分析 DOM。您可以在此处下载最新的 ChromeDriver 。
Wafer 可以自动为您下载最新的 ChromeDriver,只需运行以下命令即可。
python3 wafer.py --update-chromedriver

13、SGLang
SGLang 是一种专为大型语言模型 (LLM) 设计的结构化生成语言。它使您与模型的交互更快、更可控。

SGLang 的核心功能包括:

  • 灵活的前端语言:这允许通过多个链式生成调用、高级提示技术、控制流、多种模式、并行性和外部交互轻松地对 LLM 应用程序进行编程。
  • 具有 RadixAttention 的高性能运行时:此功能通过跨多个调用的自动 KV 缓存重用,显着加速复杂 LLM 程序的执行。它还支持其他常见技术,例如连续批处理和张量并行。