Bot de IA
Traduzido do original em espanhol. Ler em espanhol
Neste tutorial vamos aprender a criar um bot de IA simples para responder perguntas usando Python e Azure OpenAI. Vamos montar um sistema básico capaz de responder perguntas em uma conversa interativa pela linha de comando.

Pré-requisitos
Antes de começar, instale as seguintes bibliotecas no seu ambiente Python:
pip install langchain
pip install -U langchain-openai
pip install azure-identity
Autenticação
Primeiro, precisamos carregar as credenciais necessárias para nos autenticar no Azure e usar os serviços do Azure OpenAI.
import os
from azure.identity import ChainedTokenCredential, EnvironmentCredential
Carregamos as variáveis de ambiente AZURE_TENANT_ID, AZURE_CLIENT_ID e AZURE_CLIENT_SECRET com os valores correspondentes.
os.environ['AZURE_TENANT_ID'] = "00000000-0000-0000-0000-000000000000"
os.environ['AZURE_CLIENT_ID'] = "00000000-0000-0000-0000-000000000000"
os.environ['AZURE_CLIENT_SECRET'] = "xxxxx"
Para obter o token de acesso usamos o Azure Identity. Você encontra mais informações na documentação oficial do Azure Identity.
credential = ChainedTokenCredential(EnvironmentCredential())
access_token = credential.get_token("https://cognitiveservices.azure.com/.default")
Implementação do Bot de Perguntas e Respostas
Em seguida, configuramos o deployment com o nome do deployment e definimos as variáveis de ambiente necessárias.
deployment = "zerogap-gpt4-turbo"
os.environ["AZURE_OPENAI_ENDPOINT"] = "https://zerogap.openai.azure.com/"
os.environ["OPENAI_API_VERSION"] = "2024-02-15-preview"
os.environ["OPENAI_API_TYPE"] = "azure_ad"
os.environ["AZURE_OPENAI_API_KEY"] = access_token.token
os.environ["OPENAI_DEPLOYMENT"] = deployment
Configuramos o LLM e o template de mensagens para as perguntas e respostas. Você encontra mais informações sobre essas configurações na documentação do LangChain e no guia de início rápido de templates de mensagens.
from langchain_openai import AzureChatOpenAI
from langchain.prompts import ChatPromptTemplate
llm = AzureChatOpenAI(openai_api_version="2024-02-15-preview", azure_deployment=deployment, temperature=0.5)
qa_system_prompt = """Tú eres un asistente para tareas de respuesta a preguntas. \
Utiliza un máximo de tres frases y mantén la respuesta concisa.\
"""
qa_prompt = ChatPromptTemplate.from_messages(
[
("system", qa_system_prompt),
("human", "{input}"),
]
)
Definimos a cadeia de processamento do bot e preparamos o chat interativo pela linha de comando.
from langchain.prompts import ChatPromptTemplate
chain = qa_prompt | llm
print("\033[92m" + "¡Bienvenido al Bot de IA!" + "\033[0m")
print("\033[92m" + "###############################" + "\033[0m")
print("\033[92m" + "###############################" + "\033[0m")
print("\n")
while True:
question = input("\033[93m" + "Ingresa tu pregunta: " + "\033[0m")
if question == "quit":
break
result = chain.invoke({"input": question})
print("\033[92m" + "Respuesta: " + "\033[0m", result)
Com este código você pode interagir com o chatbot digitando perguntas no seu terminal.
Código Completo
Aqui está o código completo para executar o bot de IA de perguntas e respostas usando Python e Azure OpenAI:
import os
from azure.identity import ChainedTokenCredential, EnvironmentCredential
from langchain_openai import AzureChatOpenAI
from langchain.prompts import ChatPromptTemplate
os.environ['AZURE_TENANT_ID'] = "00000000-0000-0000-0000-000000000000"
os.environ['AZURE_CLIENT_ID'] = "00000000-0000-0000-0000-000000000000"
os.environ['AZURE_CLIENT_SECRET'] = "xxxxx"
credential = ChainedTokenCredential(EnvironmentCredential())
access_token = credential.get_token("https://cognitiveservices.azure.com/.default")
deployment = "zerogap-gpt4-turbo"
os.environ["AZURE_OPENAI_ENDPOINT"] = "https://zerogap.openai.azure.com/"
os.environ["OPENAI_API_VERSION"] = "2024-02-15-preview"
os.environ["OPENAI_API_TYPE"] = "azure_ad"
os.environ["AZURE_OPENAI_API_KEY"] = access_token.token
os.environ["OPENAI_DEPLOYMENT"] = deployment
llm = AzureChatOpenAI(openai_api_version="2024-02-15-preview", azure_deployment=deployment, temperature=0.5)
qa_system_prompt = """Tú eres un asistente para tareas de respuesta a preguntas. \
Utiliza un máximo de tres frases y mantén la respuesta concisa.\
"""
qa_prompt = ChatPromptTemplate.from_messages(
[
("system", qa_system_prompt),
("human", "{input}"),
]
)
chain = qa_prompt | llm
print("\033[92m" + "¡Bienvenido al Bot de IA!" + "\033[0m")
print("\033[92m" + "###############################" + "\033[0m")
print("\033[92m" + "###############################" + "\033[0m")
print("\n")
while True:
question = input("\033[93m" + "Ingresa tu pregunta: " + "\033[0m")
if question == "quit":
break
result = chain.invoke({"input": question})
print("\033[92m" + "Respuesta: " + "\033[0m", result)
Com este exemplo simples, você criou um bot de IA que pode servir de base para sistemas mais complexos.
