"Se um trabalhador quiser fazer bem o seu trabalho, ele deve primeiro afiar suas ferramentas." - Confúcio, "Os Analectos de Confúcio. Lu Linggong"
Primeira página > Programação > Aprimore seu aplicativo RAG com capacidade de pesquisa na Web!

Aprimore seu aplicativo RAG com capacidade de pesquisa na Web!

Publicado em 2024-11-08
Navegar:841

Enhance Your RAG Application With Web Searching Capability!

Introdução

Ao construir projetos divertidos com aplicativos Retrieval-Augmented Generation (RAG), muitas vezes enfrentamos limitações como restrições de navegação, tornando difícil obter as informações mais recentes ou dados atuais, como atualizações meteorológicas (espero algo mais engraçado). Para resolver isso, podemos equipar nosso aplicativo RAG com ferramentas de busca na internet. Vamos mergulhar!

 Nossa bancada de ferramentas

  • LangChain (Framework para construção de aplicativos com grandes modelos de linguagem)
  • SearXNG (mecanismo de metabusca gratuito)
  • CPython (um wrapper de linguagem C:>)
  • Docker (um homem com pão fresco)

Configurar

Primeiro começamos com a instalação do SearXNG.

1 -) Obtenha a janela de encaixe SearXNG

clone do git https://github.com/searxng/searxng-docker.git

2 -) Edite o arquivo .env para definir o nome do host e um email

3 -) Gere a chave secreta



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


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


$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 -) Atualize o searxng/settings.yml para ativar os formatos de pesquisa disponíveis e desativar o limitador para nossa instância 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: ""  # change this!
  limiter: false
  image_proxy: true
ui:
  static_use_hash: true
redis:
  url: redis://redis:6379/0

search:
    formats:
        - html
        - json

5-) Execute a instância SearXNG

docker compõe

Verifique a implantação do SearXNG no Docker. Se tudo estiver certo, você está pronto para continuar.

 Aplicativo de demonstração

1 -) Crie um ambiente virtual e ative

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

2 -) Instalar Langchain

pip install langchain langchain-community

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

E aí está! Seu aplicativo RAG agora possui recursos de pesquisa. Este guia não apresenta nada de novo, mas visa reunir as etapas para adicionar funcionalidade de pesquisa na web ao seu aplicativo RAG. Espero que ajude!

Declaração de lançamento Este artigo foi reproduzido em: https://dev.to/iamnotagentleman/enhance-your-rag-application-with-web-searching-capability-lnn?1 Se houver alguma violação, entre em contato com [email protected] para excluir isto
Tutorial mais recente Mais>

Isenção de responsabilidade: Todos os recursos fornecidos são parcialmente provenientes da Internet. Se houver qualquer violação de seus direitos autorais ou outros direitos e interesses, explique os motivos detalhados e forneça prova de direitos autorais ou direitos e interesses e envie-a para o e-mail: [email protected]. Nós cuidaremos disso para você o mais rápido possível.

Copyright© 2022 湘ICP备2022001581号-3