Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tingkatkan Aplikasi RAG Anda Dengan Keupayaan Mencari Web!

Tingkatkan Aplikasi RAG Anda Dengan Keupayaan Mencari Web!

王林
王林asal
2024-09-10 06:00:361120semak imbas

Enhance Your RAG Application With Web Searching Capability!

pengenalan

Apabila membina projek yang menyeronokkan dengan aplikasi Retrieval-Augmented Generation (RAG), kami sering menghadapi pengehadan seperti sekatan menyemak imbas, menjadikannya sukar untuk mendapatkan maklumat terkini atau data semasa, seperti kemas kini cuaca (saya harap sesuatu yang lebih lucu). Untuk menyelesaikannya, kami boleh melengkapkan aplikasi RAG kami dengan alat untuk mencari di internet. Mari selami!

 Bangku Alat Kami

  • LangChain (Kerangka untuk membina aplikasi dengan model bahasa yang besar)
  • SearXNG (enjin metasearch percuma)
  • CPython (pembungkus bahasa C :> )
  • Docker (lelaki dengan roti sejuk)

Persediaan

Mula-mula kita mulakan dengan pemasangan SearXNG.

1 -) Dapatkan SearXNG-docker

klon git https://github.com/searxng/searxng-docker.git

2 -) Edit fail .env untuk menetapkan nama hos dan e-mel

3 -) Jana kunci rahsia

<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 -) Kemas kini searxng/settings.yml untuk mendayakan format carian yang tersedia dan lumpuhkan pengehad untuk contoh LangChain kami:

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-) Jalankan Instance SearXNG

karang buruh pelabuhan

Semak penggunaan SearXNG dalam Docker. Jika semuanya kelihatan baik, anda bersedia untuk meneruskan.

 Aplikasi Demo

1 -) Cipta persekitaran maya & aktifkan

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

2 -) Pasang Langchain

pip install langchain langchain-community

3 -) Cipta 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"],
                                })

Dan begitulah! Aplikasi RAG anda kini mempunyai keupayaan carian. Panduan ini tidak memperkenalkan sesuatu yang baharu tetapi bertujuan untuk mengumpulkan langkah-langkah untuk menambahkan fungsi carian web pada aplikasi RAG anda. Saya harap ia membantu!

Atas ialah kandungan terperinci Tingkatkan Aplikasi RAG Anda Dengan Keupayaan Mencari Web!. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn