Logotipo-500-x-400-px.png

Dominando o LangChain: Construindo IAs Personalizadas com Python

O LangChain é uma ferramenta inovadora para Python que permite a construção de inteligências artificiais personalizadas e sistemas inteligentes integrados aos seus arquivos. Imagine criar seu próprio chatbot, como um ChatGPT, com conhecimento específico sobre seu negócio, capaz de responder perguntas com informações relevantes em tempo real. Este tutorial passo a passo demonstra como usar o LangChain para construir uma aplicação simples, porém poderosa: um tradutor universal.

7L0MnVu1KEo

Entendendo o LangChain e Configurando o Ambiente

O LangChain é um framework que simplifica o uso de LLMs (Large Language Models), como o ChatGPT da OpenAI. Ele oferece bibliotecas e pacotes de código que facilitam a integração com diversas IAs, abstraindo a complexidade das APIs individuais. Com o LangChain, você pode escolher a IA mais adequada para sua necessidade e fornecer suas próprias informações, permitindo que modelos como o ChatGPT respondam com base em seu conteúdo específico, como bases de dados.

Para começar, instale o LangChain e o pacote da OpenAI:

pip install langchain
pip install langchain-openai

Para usar a API da OpenAI, você precisará de uma chave de API. Crie uma conta na OpenAI (https://openai.com), gere uma chave secreta e armazene-a como uma variável de ambiente chamada OPENAI_API_KEY. Para gerenciar variáveis de ambiente, instale o pacote python-dotenv:

pip install python-dotenv

Crie um arquivo .env e adicione a seguinte linha:

OPENAI_API_KEY=sua_chave_api_aqui

No seu código Python, carregue as variáveis de ambiente e acesse a chave:

from dotenv import load_dotenv
import os

load_dotenv()

chave_api = os.getenv("OPENAI_API_KEY")

Construindo a Cadeia de Ações com LangChain

A base do LangChain é a estrutura de uma conversa. Importe SystemMessage e HumanMessage de langchain.schema. As mensagens do usuário são HumanMessage e as instruções para a IA são SystemMessage. Crie uma lista de mensagens:

from langchain.schema import SystemMessage, HumanMessage

mensagens = [
    SystemMessage(content="Traduza o texto a seguir para inglês"),
    HumanMessage(content="Se inscrevam no canal para aprender Python")
]

Crie o modelo usando o ChatOpenAI:

from langchain.chat_models import ChatOpenAI

modelo = ChatOpenAI(model_name="gpt-3.5-turbo", openai_api_key=chave_api)
resposta = modelo.invoke(mensagens)

Para extrair apenas o texto da resposta, use o StrOutputParser:

from langchain.output_parsers import StrOutputParser

output_parser = StrOutputParser()
texto = output_parser.parse(resposta)

print(texto)
CopyofIAGenerativanoDireito40

R$ 59,90

Criando um Servidor e Consumindo a API

Agora, vamos criar uma cadeia (chain) que combina o modelo e o parser:

from langchain.prompts import ChatPromptTemplate

template_mensagem = ChatPromptTemplate.from_messages(
    [
        ("system", "Traduza o texto a seguir para {idioma}"),
        ("user", "{texto}")
    ]
)

cadeia = template_mensagem | modelo | output_parser

Crie um servidor com FastAPI para disponibilizar a cadeia como uma API:

from fastapi import FastAPI
from langserve import add_routes

app = FastAPI(title="Meu App de IA", description="Traduza textos para qualquer idioma.")
add_routes(app, cadeia, path="/tradutor")

if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="127.0.0.1", port=8000)

Acesse a interface do playground em http://127.0.0.1:8000/tradutor/playground para interagir com a API. Para consumir a API em outro aplicativo, use RemoteRunnable:

from langserve.client import RemoteRunnable

chain_remota = RemoteRunnable(url="http://127.0.0.1:8000/tradutor")

texto_traduzido = chain_remota.invoke({"idioma": "espanhol", "texto": "Estamos no fim do vídeo"})

print(texto_traduzido)

Com isso, você terá um aplicativo consumindo sua IA de tradução de forma eficiente e escalável.

Gostou do conteúdo? Compartilhe

Facebook
LinkedIn
WhatsApp
Twitter
Telegram
Email

Referência

Dominando o LangChain: Construindo IAs Personalizadas com Python

Deixe um comentário

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

Este site utiliza cookies. Ao continuar a navegar neste site, você aceita o uso de cookies e nossa política de privacidade.