Bot IA

Traduit de l'original en espagnol. Lire en espagnol

Dans ce tutoriel, nous allons apprendre à créer un bot IA simple pour répondre à des questions avec Python et Azure OpenAI. Nous allons construire un système de base capable de répondre aux questions dans une conversation interactive en ligne de commande.

iStock AI Generator

Prérequis

Avant de commencer, installez les bibliothèques suivantes dans votre environnement Python :

pip install langchain
pip install -U langchain-openai
pip install azure-identity

Authentification

D’abord, nous devons charger les identifiants nécessaires pour nous authentifier auprès d’Azure et utiliser les services Azure OpenAI.

import os
from azure.identity import ChainedTokenCredential, EnvironmentCredential

Nous chargeons les variables d’environnement AZURE_TENANT_ID, AZURE_CLIENT_ID et AZURE_CLIENT_SECRET avec les valeurs correspondantes.

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"

Pour obtenir le token d’accès, nous utilisons Azure Identity. Vous trouverez plus d’informations dans la documentation officielle d’Azure Identity.

credential = ChainedTokenCredential(EnvironmentCredential())
access_token = credential.get_token("https://cognitiveservices.azure.com/.default")

Implémentation du bot de questions-réponses

Ensuite, nous configurons le deployment avec le nom du déploiement et définissons les variables d’environnement nécessaires.

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

Nous configurons le LLM et le modèle de messages pour les questions et réponses. Vous trouverez plus d’informations sur ces paramètres dans la documentation de LangChain et dans le guide de démarrage rapide des modèles de messages.

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}"),
    ]
)

Nous définissons la chaîne de traitement du bot et préparons le chat interactif en ligne de commande.

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)

Avec ce code, vous pouvez interagir avec le chatbot en tapant vos questions dans le terminal.

Code complet

Voici le code complet pour exécuter le bot IA de questions-réponses avec Python et 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)

Avec cet exemple simple, vous avez créé un bot IA qui peut servir de base à des systèmes plus complexes.

Maximiliano Díaz Doglia

AI Platform Engineer & Full-Stack Developer
Building Enterprise Integrations & Automations

Publié dans : IA