Bot IA
Tradotto dall'originale in spagnolo. Leggi in spagnolo
In questo tutorial impareremo a creare un semplice bot IA per rispondere alle domande usando Python e Azure OpenAI. Costruiremo un sistema di base in grado di rispondere alle domande in una conversazione interattiva dalla riga di comando.

Prerequisiti
Prima di iniziare, installa le seguenti librerie nel tuo ambiente Python:
pip install langchain
pip install -U langchain-openai
pip install azure-identity
Autenticazione
Per prima cosa dobbiamo caricare le credenziali necessarie per autenticarci su Azure e usare i servizi di Azure OpenAI.
import os
from azure.identity import ChainedTokenCredential, EnvironmentCredential
Carichiamo le variabili d’ambiente AZURE_TENANT_ID, AZURE_CLIENT_ID e AZURE_CLIENT_SECRET con i valori corrispondenti.
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"
Per ottenere il token di accesso usiamo Azure Identity. Trovi maggiori informazioni nella documentazione ufficiale di Azure Identity.
credential = ChainedTokenCredential(EnvironmentCredential())
access_token = credential.get_token("https://cognitiveservices.azure.com/.default")
Implementazione del bot di domande e risposte
Poi configuriamo il deployment con il nome del deployment e impostiamo le variabili d’ambiente necessarie.
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
Configuriamo l’LLM e il template dei messaggi per le domande e le risposte. Trovi maggiori informazioni su queste impostazioni nella documentazione di LangChain e nella guida rapida ai template dei messaggi.
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}"),
]
)
Definiamo la catena di elaborazione del bot e prepariamo la chat interattiva dalla riga di 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)
Con questo codice puoi interagire con il chatbot scrivendo domande nel terminale.
Codice completo
Ecco il codice completo per eseguire il bot IA di domande e risposte con 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)
Con questo semplice esempio hai creato un bot IA che può fare da base per sistemi più complessi.
