Acessando a API do Google Gemini com LangChain

Avatar de Ana Maria Gomes Ana Maria Gomes
7 minutos de leitura 1 mês atrás

Para quem está dando os primeiros passos no universo da Inteligência Artificial (IA) e deseja aprender a integrar o LangChain com o Google Gemini, este é o lugar ideal! Neste guia, vamos desvendar o que são essas tecnologias, como configurá-las e utilizá-las para desenvolver aplicações impressionantes. Vamos começar?

O que é LangChain?

LangChain é um framework avançado destinado à criação de aplicações de Inteligência Artificial, especialmente focado no uso de Modelos de Linguagem de Grande Escala (LLMs). Ele facilita o desenvolvimento de aplicações robustas e inteligentes, permitindo a integração com diversos LLMs de forma padronizada. Com LangChain, é possível criar “Chains” que combinam múltiplos componentes e funções, simplificando a construção de soluções complexas e otimizando a lógica de negócios.

Principais Funcionalidades e Benefícios

O LangChain oferece uma série de funcionalidades que tornam o desenvolvimento com IA mais acessível. Entre os principais benefícios estão a facilidade de integração com diferentes modelos de linguagem, suporte a múltiplos formatos de entrada e saída (como texto e imagem), e a capacidade de realizar streaming e batching de respostas. Isso significa que você pode processar grandes volumes de dados de forma eficiente e obter respostas em tempo real.

O que é o Google Gemini?

O Google Gemini é uma plataforma de inteligência artificial desenvolvida pelo Google, projetada para facilitar a criação e implementação de modelos de linguagem natural. Utilizando tecnologias avançadas de machine learning, o Google Gemini permite que desenvolvedores integrem funcionalidades de processamento de linguagem natural em suas aplicações, tornando-as mais interativas e inteligentes. A plataforma é especialmente útil para iniciantes em Python que desejam explorar o potencial da IA em seus projetos.

Diferença entre Google AI e Google Cloud Vertex AI

É importante entender a diferença entre Google AI e Google Cloud Vertex AI. O Google AI é acessível com uma conta Google e uma chave de API, enquanto o Google Cloud Vertex AI requer uma conta no Google Cloud, com acordos de termos e faturamento. O Vertex AI oferece recursos empresariais adicionais, como chaves de criptografia personalizadas e redes privadas virtuais.

Como configurar o LangChain com Google Gemini?

Antes de começar, você precisará atender a alguns requisitos iniciais, como criar uma conta Google e obter uma chave de API.

Requisitos Iniciais

  1. Conta Google: Se você ainda não tem uma, crie uma conta Google.
  2. Chave de API: Vá até Google AI API Key para gerar sua chave de API.

Instalação do Pacote langchain-google-genai

Para integrar o LangChain com o Google Gemini, você precisará instalar o pacote langchain-google-genai. Você pode fazer isso com o seguinte comando:

%pip install -qU langchain-google-genai

Primeiros passos com LangChain e Google Gemini

Agora que você configurou tudo, vamos instanciar o modelo Gemini e fazer um exemplo básico de uso.

Instanciando o Modelo Gemini

Primeiro, importe a biblioteca e configure sua chave de API:

import getpass
import os
from langchain_google_genai import ChatGoogleGenerativeAI

os.environ["GOOGLE_API_KEY"] = getpass.getpass("Enter your Google AI API key: ")
llm = ChatGoogleGenerativeAI(model="gemini-1.5-pro", temperature=0)

Exemplo de Uso Básico: Tradução de Texto

Vamos criar um exemplo simples onde o modelo traduz uma frase do inglês para o francês:

messages = [
    ("system", "Você é um assistente que traduz do inglês para o francês. Traduza o seguinte."),
    ("human", "I love programming.")
]
ai_msg = llm.invoke(messages)
print(ai_msg.content)

Neste exemplo, configuramos o modelo para ser um assistente que traduz do inglês para o francês e fornecemos a frase “I love programming.” como entrada. O modelo retorna a tradução “J’adore programmer.”

Funcionalidades Avançadas do LangChain com Google Gemini

Além das funcionalidades básicas, o LangChain com Google Gemini oferece várias funcionalidades avançadas.

Configuração de Segurança e Ajustes de Bloqueio

Você pode ajustar as configurações de segurança para controlar como o modelo lida com conteúdo potencialmente perigoso:

from langchain_google_genai import HarmBlockThreshold, HarmCategory

llm = ChatGoogleGenerativeAI(
    model="gemini-1.5-pro",
    safety_settings={
        HarmCategory.HARM_CATEGORY_DANGEROUS_CONTENT: HarmBlockThreshold.BLOCK_NONE,
    }
)

Uso de Mensagens Multimodais (Texto e Imagem)

O LangChain também suporta mensagens multimodais, permitindo que você envie texto e imagens juntos:

from langchain_core.messages import HumanMessage

import base64


def encode_image(caminho_imagem):
    with open(caminho_imagem, 'rb' ) as img:
        return base64.b64encode(img.read()).decode('utf-8')
image_data = encode_image('caminho/para/sua/imagem.jpg')

message = HumanMessage(
    content=[
        {"type": "text", "text": "O que há nesta imagem?"},
        {
            "type": "image_url",
            "image_url": {"url": f"data:image/jpeg;base64,{image_data}"},
        },
    ],
)
llm.invoke([message])

Streaming e Batching de Respostas

Você pode utilizar o streaming e batching para processar grandes volumes de dados de forma eficiente:

for chunk in llm.stream("Escreva uma piada sobre modelos de linguagem."):
    print(chunk.content)
    print("---")

results = llm.batch(["Quanto é 2+2?", "Quanto é 3+5?"])
for res in results:
    print(res.content)

O stream envia a resposta para usuário assim que ela vai sendo gerada. Já o batch é capaz de rodar múltiplas chamadas simultaneamente.

Aplicações Práticas para Iniciantes

Agora que você conhece as funcionalidades básicas e avançadas, vamos explorar algumas aplicações práticas.

Criação de um Chatbot Simples

Você pode criar um chatbot simples que responde a perguntas dos usuários:

messages = [
    ("system", "Você é um assistente amigável."),
    ("human", "Qual a capital da França?")
]
ai_msg = llm.invoke(messages)
print(ai_msg.content)

Tradução Automática de Idiomas

Automatize a tradução de textos entre diferentes idiomas:

messages = [
    ("system", "Você é um assistente que traduz do português para o inglês. Traduza o seguinte."),
    ("human", "Como vai você?")
]
ai_msg = llm.invoke(messages)
print(ai_msg.content)

Dicas e Melhores Práticas

Para obter os melhores resultados, é importante seguir algumas dicas e melhores práticas.

Como Lidar com Erros Comuns

Erros são inevitáveis, mas você pode minimizá-los verificando suas entradas e saídas e ajustando os parâmetros do modelo conforme necessário.

Otimização de Prompts para Melhores Resultados

Experimente diferentes prompts e ajustes de parâmetros para encontrar a configuração que melhor atende às suas necessidades.

Segurança e Ética no Uso de IA

Sempre considere as implicações éticas e de segurança ao utilizar modelos de IA. Certifique-se de que seu uso está em conformidade com as diretrizes e regulamentos aplicáveis.

Conclusão

Neste guia, exploramos como configurar e utilizar o LangChain com o Google Gemini para criar aplicações de IA poderosas. Aprendemos sobre as funcionalidades básicas e avançadas, e vimos exemplos práticos de como aplicar essas tecnologias em diferentes cenários.

Se você está interessado em continuar sua jornada no mundo da IA, recomendamos explorar mais sobre o LangChain e o Google Gemini, e experimentar diferentes aplicações e configurações. Boa sorte!

Referências

Curso Gratuito

Curso gratuito de Python

Do zero ao primeiro projeto em apenas 2 horas

Criar conta gratuita

Comentários

Comentar
Faça parte da discussão Crie sua conta gratuita e compartilhe
sua opinião nos comentários
Entre para a Asimov