本週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 的策略:
- 對一組預定義查詢執行檢索。
- 直接與我們的 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.3、Spring GraphQL 1.3和GraphQL 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