本週4個Github有趣專案

banq發表於2024-06-03

本週4個Github有趣專案:

1、HippoRAG
HippoRAG 是一種新穎的檢索增強生成 (RAG)框架,其靈感來自人類長期記憶的神經生物學,使 LLM 能夠持續整合外部文件中的知識。我們的實驗表明,HippoRAG 可以為 RAG 系統提供通常需要昂貴且高延遲的迭代 LLM 管道才能實現的功能,而計算成本僅為其中的一小部分。

使用 HippoRAG
設定您的資料
要設定您自己的檢索語料庫,請遵循所示的格式和命名約定data/sample_corpus.json(您的資料集名稱後面應跟有_corpus.json)。如果使用預定義問題執行實驗,請根據查詢檔案組織您的查詢語料庫data/sample.json,同時確保遵循我們的命名約定。

與 LangChain 整合
此程式碼庫透過LangChain呼叫 LLM ,這使得 HippoRAG 可以更輕鬆地呼叫不同的線上 LLM API 或離線 LLM 部署。檢視src/langchain_util.py我們如何為實驗設定 OpenAI 和 TogetherAI。您還可以使用 LangChain 設定您的 LLM 選擇,例如,Ollama支援本地Llama、Gemma 和 Mistral 模型。

索引
建立語料庫後,將其新增到data目錄下。現在,我們可以使用以下命令開始索引。

我們將使用論文中定義的最佳超引數,並假設您的資料集名稱是sample。

  • 使用 ColBERTv2 對同義詞邊緣進行索引
  • 使用 HuggingFace 檢索編碼器對同義詞邊緣進行索引(即 Contriever)

檢索
索引完成後,HippoRAG 即可用於線上檢索。下面,我們提供了兩種使用 HippoRAG 的策略:

  1. 對一組預定義查詢執行檢索。
  2. 直接與我們的 API 整合以接收來自使用者的查詢。

HippoRAG 整合
我們提供指令碼來指導想要將 HippoRAG API 與其程式碼庫直接整合的使用者。

2、Spring Boot 3.3 和 GraphQL Java 22
DGS 框架(域圖服務)是由 Netflix 開發的用於 Spring Boot 的 GraphQL 伺服器框架。其特點包括:

  • 基於註解的 Spring Boot 程式設計模型
  • 用於將查詢測試編寫為單元測試的測試框架
  • Gradle 程式碼生成外掛根據架構建立型別
  • 輕鬆與 GraphQL Federation 整合
  • 與 Spring Security 整合
  • GraphQL 訂閱(WebSockets 和 SSE)
  • 檔案上傳
  • 錯誤處理
  • 許多擴充套件點

此版本基於Spring Boot 3.3Spring GraphQL 1.3GraphQL Java 22構建這是一個主要版本,因為升級到 Boot 3.3 和 GraphQL Java 22 意義重大,可能需要更改應用程式程式碼。

不過 DGS 本身沒有重大變化。

3、instructor-go
Instructor 是一個庫,它可以輕鬆處理大型語言模型 (LLM) 的結構化輸出。

它基於 Go 結構標籤構建invopop/jsonschema並利用jsonschema該標籤(因此無需更改程式碼邏輯),提供簡單、透明且使用者友好的 API 來管理驗證、重試和流式響應。準備好增強您的 LLM 工作流程吧!示例

  • 使用 OpenAI 進行函式呼叫
  • 使用 Anthropic 進行文字分類
  • OpenAI 的影像
  • 帶有 Anthropic 的影像
  • 使用 OpenAI 進行流式傳輸
  • 使用 Cohere 進行文件分割
  • 使用 Cohere 進行流式傳輸

4、springboot-on-minikube
在 Kubernetes 叢集(minikube)上部署 Spring Boot 應用程式透過克隆此儲存庫來開始,請執行以下步驟:

  • 從終端 cd 進入你的專案目錄並使用以下方式構建專案./gradlew clean build
  • 在系統上啟動docker
  • 使用以下方式構建 docker 映象: docker build -t springboot-on-minikube .
  • 執行docker容器:docker run -p 8080:8080 springboot-on-minikube並驗證呼叫urllocalhost:8080/data
  • 現在停止容器服務
  • 使用以下方式啟動 minikubeminikube start --driver=docker
  • 使用命令啟用 docker env: eval $(minikube docker-env)  
  • 在 minikube 中構建 docker 映象:docker build -t springboot-on-minikube .
  • 檢視圖片:minikube image ls
  • 要在 minikube 上啟用 ingress,請執行以下命令: minikube addons enable ingress 
  • 驗證入口控制器是否正在執行: kubectl get pods -n ingress-nginx
  • 接下來在叢集上安裝並部署 helm chart:helm install mychart ytkubechart
  • 使用以下方法驗證入口服務:kubectl get ingress

/etc/hosts接下來在檔案 中新增條目
執行 sudo vi /etc/hosts
輸入密碼
按下i鍵盤上的鍵
新增條目:127.0.0.1 ytlecture.com
按下Esc鍵盤上的鍵
按:wq

  • 使用驗證更改cat /etc/hosts
  • 啟用隧道執行命令:minikube tunnel
  • 然後在瀏覽器中呼叫 url:http://ytlecture.com/data

好極了 您已經在 Kubernetes 上成功部署了您的第一個 spring rest api。
使用以下方法停止 minikube:minikube stop

相關文章