Esta prova prática avalia sua capacidade de construir uma aplicação de IA complexa utilizando ferramentas modernas. O foco é na sua habilidade de orquestrar componentes com o LangChain, interagir com o Google Gemini e, principalmente, projetar e implementar um Agente de IA que utiliza múltiplas ferramentas para resolver problemas.
Você faz parte da equipe de IA da "InovaTech Ltda." e foi desafiado a criar um "Assistente Virtual Inteligente". Diferente de um simples chatbot, este assistente deve ser capaz de raciocinar e decidir qual ferramenta usar para responder às perguntas dos usuários.
Ele terá três principais capacidades:
- Responder perguntas internas sobre a empresa (usando RAG).
- Buscar informações em tempo real na web.
- Realizar cálculos matemáticos simples.
Para isso, você implementará um Agente de IA usando o framework LangChain.
Você deve criar um projeto em Python que atenda aos seguintes requisitos:
-
Setup do Projeto:
- Crie um repositório Git para o seu projeto.
- Inicialize um ambiente virtual (
venv). - Crie um arquivo
requirements.txtcom as dependências necessárias. - Configure um arquivo
.envpara armazenar sua chave de API do Google Gemini de forma segura.
-
Configuração do LLM e do Ambiente:
- Instancie o modelo de linguagem Google Gemini através da integração do LangChain.
- Carregue a chave de API a partir das variáveis de ambiente.
-
Criação da Base de Conhecimento RAG (Ferramenta 1):
- Use os componentes do LangChain para carregar o arquivo
conhecimento.txt. - Divida o texto em blocos (chunks) de forma eficiente.
- Crie uma base vetorial em memória (usando
FAISSou similar) com os embeddings do Gemini. - Transforme essa base vetorial em uma ferramenta de recuperação (retriever tool) que o agente possa usar.
- Use os componentes do LangChain para carregar o arquivo
-
Criação das Ferramentas do Agente (Tools):
- Ferramenta 2 (Busca na Web): Integre uma ferramenta de busca da web do LangChain (ex:
DuckDuckGoSearchRun) para permitir que o agente procure informações que não estão na base interna. - Ferramenta 3 (Calculadora): Crie uma ferramenta personalizada (custom tool) que o agente possa usar para realizar operações matemáticas simples (soma, subtração, etc.). Dica: use o decorador
@tooldo LangChain.
- Ferramenta 2 (Busca na Web): Integre uma ferramenta de busca da web do LangChain (ex:
-
Implementação do Agente:
- Crie um prompt para o agente. Este prompt é crucial: ele deve informar ao agente quem ele é, quais ferramentas ele tem à disposição e como usá-las para responder aos usuários.
- Instancie o agente, fornecendo o LLM (Gemini), a lista de ferramentas e o prompt.
- Crie um
AgentExecutorpara orquestrar a execução do agente.
-
Interface de Usuário:
- Crie um loop de linha de comando onde o usuário pode fazer perguntas.
- O programa deve invocar o agente para processar a pergunta e retornar a resposta.
- Importante: Configure o executor para exibir o "raciocínio" do agente (os passos intermediários que ele toma para chegar à resposta). Isso é fundamental para a avaliação.
Crie um arquivo chamado conhecimento.txt no seu projeto com o seguinte conteúdo:
InovaTech Ltda. é uma empresa de tecnologia fundada em 2018 por Ana Silva e Carlos Souza. A nossa sede está localizada em São Paulo, e nossa missão é revolucionar o mercado de software com soluções baseadas em inteligência artificial.
Nosso principal produto é o "Sistema Omega", uma plataforma de automação de processos de negócios que utiliza IA para otimizar tarefas repetitivas. O Sistema Omega já ajudou mais de 200 clientes a aumentar sua produtividade em até 40%.
Além do Sistema Omega, desenvolvemos o "Data Insights", uma ferramenta de análise de dados que cria relatórios automáticos e dashboards interativos. Ele é conhecido por sua interface intuitiva e por se integrar com diversas fontes de dados, como planilhas e bancos de dados SQL.
A cultura da InovaTech é baseada em colaboração, inovação e aprendizado contínuo. Acreditamos que a melhor forma de crescer é como um time, e por isso incentivamos a troca de conhecimento e a experimentação de novas tecnologias.
langchainlangchain-google-genai(para integração com o Gemini)langchain-community(para ferramentas como busca)faiss-cpu(para a base vetorial)python-dotenv(para gerenciar variáveis de ambiente)google-generativeai(dependência principal da API)
Seu projeto será avaliado com base nos seguintes critérios:
- Funcionalidade do Agente (40%): O agente funciona corretamente? Ele escolhe a ferramenta certa para cada pergunta? (Ex: "Quem fundou a InovaTech?" -> usa RAG; "Qual a temperatura em Paris?" -> usa busca; "Quanto é 25 vezes 4?" -> usa calculadora).
- Uso Correto do LangChain (30%): Você demonstrou proficiência no uso das abstrações do LangChain? (LLMs, Text Loaders, Splitters, Vector Stores, Tools, Agent Executor).
- Lógica do Agente e Prompt (20%): O prompt do agente é claro e eficaz? A estrutura das ferramentas personalizadas está correta? Fica evidente que você entende o ciclo de raciocínio (Thought -> Action -> Observation) do agente?
- Qualidade e Estrutura do Código (10%): O código é limpo, legível e bem organizado? O
README.mdé claro e o projeto segue boas práticas (.env,.gitignore)?
- Ao finalizar, submeta seu projeto em um repositório Git público (GitHub, GitLab, etc.).
- NUNCA envie suas chaves de API no repositório! O arquivo
.envdeve estar no.gitignore. - Inclua um arquivo
README.mdcom:- Uma breve descrição do projeto.
- Instruções passo a passo para configurar o ambiente (criar o
.envcom a chaveGOOGLE_API_KEY). - Como instalar as dependências (
pip install -r requirements.txt). - Como executar o script principal.
- Envie o link do repositório para o avaliador.
- Foque no Raciocínio: A parte mais importante de um agente é ver como ele "pensa". Use a opção
verbose=TruenoAgentExecutorpara imprimir os passos intermediários no terminal. - Comece pelas Ferramentas: Construa e teste cada ferramenta (RAG, busca, calculadora) individualmente antes de tentar integrá-las ao agente.
- O Prompt é Rei: Um bom prompt pode fazer toda a diferença. Seja explícito sobre as capacidades e limitações de cada ferramenta no prompt do agente.
- Tratamento de Erros: Pense em como o agente deve se comportar se uma ferramenta falhar ou se uma pergunta estiver fora do escopo.
Boa sorte! Mostre sua capacidade de construir soluções de IA inteligentes e autônomas.