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。
示例資料夾中找到大量示例:
- Agentic RAG + 工具服務
- Agentic Orchestrator 帶本地啟動器
- Agentic Orchestrator 帶伺服器啟動器
- 以人為本的代理協調器
- 帶工具服務的 Agentic Orchestrator
- 帶本地啟動器的管道編排器
- 有人員參與的管道編排器
- 管道編排器和代理伺服器作為工具
- 具有查詢重寫 RAG 的管道編排器
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 可即時處理任何型別的資料!
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 |
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 的資料隱私政策。