首頁  >  文章  >  後端開發  >  透過 Web 搜尋功能增強您的 RAG 應用程式!

透過 Web 搜尋功能增強您的 RAG 應用程式!

王林
王林原創
2024-09-10 06:00:361126瀏覽

Enhance Your RAG Application With Web Searching Capability!

介紹

當使用檢索增強生成(RAG)應用程式建立有趣的專案時,我們經常面臨瀏覽限制等限制,這使得很難獲取最新資訊或當前數據,例如天氣更新(我希望有更有趣的東西) 。為了解決這個問題,我們可以為 RAG 應用程式配備搜尋網路的工具。讓我們開始吧!

 我們的工具台

  • LangChain(使用大型語言模型建立應用程式的框架)
  • SearXNG(免費元搜尋引擎)
  • CPython(C 語言包裝器 :> )
  • Docker(一個拿著涼麵包的男人)

設定

首先我們先從 SearXNG 安裝開始。

1 -) 取得 SearXNG-docker

git 複製 https://github.com/searxng/searxng-docker.git

2 -) 編輯 .env 檔案以設定主機名稱和電子郵件

3 -) 產生金鑰

<Linux>

sed -i "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml

<MacOS>
sed -i"" -e "s|ultrasecretkey|$(openssl rand -hex 32)|g" searxng/settings.yml 

<Windows>
$randomBytes = New-Object byte[] 32
(New-Object Security.Cryptography.RNGCryptoServiceProvider).GetBytes($randomBytes)
$secretKey = -join ($randomBytes | ForEach-Object { "{0:x2}" -f $_ })
(Get-Content searxng/settings.yml) -replace 'ultrasecretkey', $secretKey | Set-Content searxng/settings.yml

4 -) 更新searxng/settings.yml以啟用可用的搜尋格式並停用我們的LangChain實例的限制器:

use_default_settings: true
server:
  # base_url is defined in the SEARXNG_BASE_URL environment variable, see .env and docker-compose.yml
  secret_key: "<secret-key>"  # change this!
  limiter: false
  image_proxy: true
ui:
  static_use_hash: true
redis:
  url: redis://redis:6379/0

search:
    formats:
        - html
        - json

5-) 運行 SearXNG 實例

docker 組成

檢查 Docker 中的 SearXNG 部署。如果一切看起來都不錯,您就可以繼續了。

 演示應用程式

1 -) 建立虛擬環境並啟動

python3 -m venv .venv
source .venv/bin/activate

2 -) 安裝 Langchain

pip install langchain langchain-community

3 -) 建立 main.py

## Simple Get Results
from langchain_community.utilities import SearxSearchWrapper
import pprint

s = SearxSearchWrapper(searx_host="http://localhost:8080",)
result = s.results("What is RAG?", num_results=10, engines=["google"])
pprint.pprint(result)

## Github Tool

from langchain_community.tools.searx_search.tool import SearxSearchResults

wrapper = SearxSearchWrapper(searx_host="**")
github_tool = SearxSearchResults(name="Github", wrapper=wrapper,
                            kwargs = {
                                "engines": ["github"],
                                })

就是這樣!您的 RAG 應用程式現在具有搜尋功能。本指南沒有介紹任何新內容,而是旨在匯總向 RAG 應用程式添加 Web 搜尋功能的步驟。希望對您有幫助!

以上是透過 Web 搜尋功能增強您的 RAG 應用程式!的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn