Skip to content

Latest commit

 

History

2 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 

Repository files navigation

Desenvolvedor Python 1

1. Objetivo da Prova

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.


2. Cenário

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:

  1. Responder perguntas internas sobre a empresa (usando RAG).
  2. Buscar informações em tempo real na web.
  3. Realizar cálculos matemáticos simples.

Para isso, você implementará um Agente de IA usando o framework LangChain.


3. Requisitos Funcionais

Você deve criar um projeto em Python que atenda aos seguintes requisitos:

  1. Setup do Projeto:

    • Crie um repositório Git para o seu projeto.
    • Inicialize um ambiente virtual (venv).
    • Crie um arquivo requirements.txt com as dependências necessárias.
    • Configure um arquivo .env para armazenar sua chave de API do Google Gemini de forma segura.
  2. 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.
  3. 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 FAISS ou similar) com os embeddings do Gemini.
    • Transforme essa base vetorial em uma ferramenta de recuperação (retriever tool) que o agente possa usar.
  4. 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 @tool do LangChain.
  5. 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 AgentExecutor para orquestrar a execução do agente.
  6. 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.

4. Dados Fornecidos

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.

5. Ferramentas e Bibliotecas Sugeridas

  • langchain
  • langchain-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)

6. Critérios de Avaliação

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)?

7. Instruções de Entrega

  1. Ao finalizar, submeta seu projeto em um repositório Git público (GitHub, GitLab, etc.).
  2. NUNCA envie suas chaves de API no repositório! O arquivo .env deve estar no .gitignore.
  3. Inclua um arquivo README.md com:
    • Uma breve descrição do projeto.
    • Instruções passo a passo para configurar o ambiente (criar o .env com a chave GOOGLE_API_KEY).
    • Como instalar as dependências (pip install -r requirements.txt).
    • Como executar o script principal.
  4. Envie o link do repositório para o avaliador.

8. Dicas e Considerações

  • Foque no Raciocínio: A parte mais importante de um agente é ver como ele "pensa". Use a opção verbose=True no AgentExecutor para 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.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors