O que são agentes Haystack? O guia completo para PNL baseada em ferramentas com operações de código
Inteligência artificial

O que são agentes Haystack? O guia completo para PNL baseada em ferramentas com operações de código


Os aplicativos modernos de PNL geralmente exigem pensamento em várias etapas, colaboração com ferramentas externas e capacidade de adaptação eficaz às consultas do usuário. Haystack Agents, um novo recurso da estrutura Haystack NLP da deepset, são um exemplo dessa nova onda de recursos avançados de PNL.

Os Agentes Haystack são projetados para lidar com situações que exigem:

  • Raciocínio complexo em várias etapas.
  • Integração de ferramentas externas ou APIs.
  • Fluxo de trabalho de recuperação aprimorado que vai além de responder a consultas simples.

Este artigo se aprofunda na estrutura Haystack Agents, explorando seus recursos, arquitetura e aplicações do mundo real. Para fornecer informações acionáveis, construiremos um agente de controle de qualidade que usa ferramentas como um mecanismo de pesquisa e uma calculadora.

Por que escolher agentes Haystack?

Ao contrário de estruturas de uso geral, como LangChain, os Haystack Agents estão profundamente integrados ao ecossistema Haystack, tornando-os altamente eficazes em tarefas especializadas, como recuperação de documentos, integração de ferramentas personalizadas e raciocínio em várias etapas. Esses agentes se destacam na pesquisa de grandes conjuntos de dados usando complementos avançados, aumentando o desempenho integrando APIs para operações como cálculos ou consultas de banco de dados e lidando com consultas complexas que exigem captura lógica. Sendo de código aberto e modulares, os Haystack Agents integram-se perfeitamente com bibliotecas e infraestruturas populares de ML, como Elasticsearch, modelos Hugging Face e transformações pré-treinadas.

Propriedades dos agentes Haystack

Os Agentes Haystack são construídos usando um estruturas acionadas por ferramentas. Aqui, as ferramentas atuam como módulos individuais projetados para tarefas específicas, como pesquisa de documentos, análises ou interação de API. O agente decide dinamicamente quais ferramentas usar, a ordem em que serão usadas e como combinar seus resultados para formar uma resposta coerente. A arquitetura inclui componentes-chave, como ferramentas, que implementam comandos de ação específicos que orientam o processo de tomada de decisão do agente. Esses localizadores ajudam a pesquisar documentos em grandes conjuntos de dados, e os campos e pipelines controlam o processamento de dados e o planejamento do fluxo de trabalho no Haystack.

Caso de uso: construindo um agente de controle de qualidade com ferramentas de pesquisa e calculadora

Neste tutorial, nosso agente de controle de qualidade fará o seguinte:

  • Retorne respostas a perguntas factuais do armazenamento de documentos.
  • Faça cálculos matemáticos usando uma calculadora.
  • Combine dinamicamente os resultados, se necessário.

Etapa 1: insira o necessário

Antes de entrar na implementação, certifique-se de que sua localização esteja configurada:

1. Instale o Python 3.8 ou superior.

2. Instale o Haystack e todas as dependências:

# bash
pip install farm-haystack[all]

3. Inicie o Elasticsearch, a espinha dorsal do nosso armazenamento de documentos:

# bash
docker run -d -p 9200:9200 -e "discovery.type=single-node" docker.elastic.co/elasticsearch/elasticsearch:7.17.1

Etapa 2: iniciar armazenamento e recuperação de documentos

Um armazenamento de documentos é um repositório central para armazenar e consultar documentos, enquanto o recuperador encontra os documentos relevantes para uma determinada consulta.

# python
from haystack.utils import launch_es
from haystack.nodes import EmbeddingRetriever
from haystack.pipelines import DocumentSearchPipeline
from haystack.document_stores import ElasticsearchDocumentStore

# Launch Elasticsearch
launch_es()

# Initialize Document Store
document_store = ElasticsearchDocumentStore()

# Add documents to the store
docs = [
    {"content": "Albert Einstein was a theoretical physicist who developed the theory of relativity."},
    {"content": "The capital of France is Paris."},
    {"content": "The square root of 16 is 4."}
]
document_store.write_documents(docs)

# Initialize Retriever
retriever = EmbeddingRetriever(
    document_store=document_store,
    embedding_model="sentence-transformers/all-MiniLM-L6-v2",
    use_gpu=True
)

# Update embeddings
document_store.update_embeddings(retriever)

Etapa 3: definir ferramentas

As ferramentas são os blocos de construção dos Haystack Agents. Cada ferramenta tem uma finalidade específica, como pesquisar documentos ou realizar cálculos.

# python
from haystack.agents.base import Tool

# Search Tool
search_pipeline = DocumentSearchPipeline(retriever)
search_tool = Tool(
    name="Search",
    pipeline_or_node=search_pipeline,
    description="Use this tool for answering factual questions using a document store."
)

# Calculator Tool
def calculate(expression: str) -> str:
    try:
        result = eval(expression)
        return str(result)
    except Exception as e:
        return f"Error in calculation: {e}"

calculator_tool = Tool(
    name="Calculator",
    pipeline_or_node=calculate,
    description="Use this tool to perform mathematical calculations."
)

Etapa 4: iniciar o agente

Os agentes no Haystack são configurados com ferramentas e um modelo rápido que explica como eles interagem com as ferramentas.

# python
from haystack.agents import Agent

# Initialize Agent
agent = Agent(
    tools=[search_tool, calculator_tool],
    prompt_template="Answer questions using the provided tools. Combine results if needed."
)

Etapa 5: pergunte a um agente

Entre em contato com o agente fazendo perguntas em linguagem natural.

# python
# Factual Question
response = agent.run("Who developed the theory of relativity?")
print("Agent Response:", response)

# Mathematical Calculation
response = agent.run("What is the result of 8 * (2 + 3)?")
print("Agent Response:", response)

# Combined Query
response = agent.run("What is the square root of 16, and who developed it?")
print("Agent Response:", response)

Recursos avançados de agentes Haystack

  • Ferramentas personalizadas: Integre APIs ou ferramentas específicas de domínio para ampliar a funcionalidade (por exemplo, APIs meteorológicas, dados do mercado de ações).
  • Modelos ajustados: Substitua o modelo de incorporação padrão por um otimizado para operações especiais.
  • Correntes de tubos: Use vários pipelines para processar consultas complexas que envolvem diversas fontes de dados.

Concluindo, os Haystack Agents fornecem uma estrutura poderosa, flexível e modular para a construção de aplicativos avançados de PNL que exigem pensamento e ferramentas em várias etapas. Com sua integração perfeita ao ecossistema Haystack, esses agentes se destacam em tarefas como recuperação de documentos, integração de API personalizada e processamento lógico, tornando-os prontos para resolver problemas complexos do mundo real. Eles são adequados para aplicações como bots de suporte ao cliente, que combinam pesquisa de documentos com APIs externas para processamento de tickets em tempo real, ferramentas educacionais que adquirem informações e realizam cálculos para responder perguntas dos usuários, e soluções de business intelligence que combinam dados de múltiplas fontes. fontes e produzir informações.

Fontes


Além disso, não se esqueça de nos seguir Twitter e junte-se ao nosso Estação telefônica de novo LinkedIn Gracima. Não se esqueça de participar do nosso SubReddit de 65k + ML.

🚨 [Recommended Read] Nebius AI Studio se estende com modelos de visão, novos modelos de linguagem, embeddings e LoRA (Promovido)


Sana Hassan, estagiária de consultoria na Marktechpost e estudante de pós-graduação dupla no IIT Madras, é apaixonada pelo uso de tecnologia e IA para enfrentar desafios do mundo real. Com um profundo interesse em resolver problemas do mundo real, ele traz uma nova perspectiva para a interseção entre IA e soluções da vida real.

📄 Conheça 'Height': ferramenta independente de gerenciamento de projetos (patrocinado)



Source link

Você também pode gostar...

Deixe um comentário

O seu endereço de e-mail não será publicado. Campos obrigatórios são marcados com *