Después de OpenAI, POC en Mistral AI, el competidor francés!

Introducción

Este artículo explora un script de Python desarrollado como un Proof of Concept (POC) para interactuar con Mistral AI, una alternativa francesa a OpenAI. Retoma el principio del script desarrollado anteriormente para interactuar con OpenAI.

Colaboración con GPT-4 para el desarrollo del script

Este proyecto fue una “colaboración” con ChatGPT-4, la última versión de la IA conversacional de OpenAI. Juntos, diseñamos el script de Python, aprovechando la capacidad de GPT-4 para comprender y generar código. Esta sinergia entre el conocimiento humano y la inteligencia artificial abre el camino a nuevos métodos de desarrollo e innovación.

Objetivos del Script

La intención principal era experimentar con la API de Mistral AI en Python para desarrollar mis habilidades en el tema.

  • Probar Mistral AI: Explorar las funcionalidades de Mistral AI y comprender cómo usarlo eficazmente.
  • Automatización con Python: Mostrar cómo Python puede ser utilizado para automatizar las interacciones con las APIs de IA.
  • Mejora de los Prompts: Experimentar con la mejora de los prompts integrando contenido web recopilado a través de Selenium.

Potencial del Script

Este script abre el camino a diversas aplicaciones, incluyendo:

  • Generación de contenido enriquecido: Enriquecer dinámicamente los prompts con información pertinente obtenida de la web.
  • Asistencia virtual personalizada: Utilizar la IA para crear respuestas personalizadas basadas en el contenido web.
  • Mejora de herramientas de automatización: Integrar la IA en las herramientas existentes para un mejor rendimiento.

Funcionamiento del Script

El script mistral-ai.py utiliza el modelo mistral-small para generar respuestas. Aquí está su funcionamiento:

  1. Recuperación del Contenido Web: Utiliza Selenium para extraer el contenido de las URLs especificadas en el prompt.
  2. Generación de Respuestas: Envía el prompt enriquecido a Mistral AI para obtener una respuesta.

Notas Importantes

  • Este script es un POC: Está destinado a fines educativos y de experimentación, y no para uso en producción.
  • Siempre respetar las reglas de uso de las API y los sitios web: Al usar la API de MistralAI y el web scraping, asegúrese de respetar las condiciones de uso y las políticas de privacidad.

Código del Script mistral-ai.py

#!/usr/bin/env python3
import re
import sys
import os 
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
from mistralai.client import MistralClient
from mistralai.models.chat_completion import ChatMessage


def get_web_content(url):
    if not url:
        return ""

    # Configure Chrome options
    chrome_options = Options()

    # Create a new browser instance with the configured options
    driver = webdriver.Chrome(options=chrome_options)

    # Make a request to the web page
    driver.get(url)

    # Retrieve the JavaScript content of the page
    web_content = driver.execute_script("return document.documentElement.innerText")

    # Don't forget to close the browser when you're done
    driver.quit()

    return web_content

def get_response(question, client):
    urls = re.findall(r'(https?://\S+)', question)
    if urls:  # Vérifiez si une URL a été fournie
        for url in urls:
            web_content = get_web_content(url)
            if web_content:
                # Remplacez l'URL par le contenu du web dans le prompt
                question = question.replace(url, web_content)

    messages = [ChatMessage(role="user", content=question)]
    response = client.chat(model=model, messages=messages, safe_mode=False)

    for choice in response.choices:
        print(f"{choice.message.content}")


# Récupération de la question depuis l'argument de la ligne de commande
question = sys.argv[1] if len(sys.argv) > 1 else "Quelle est votre question ?"

api_key = os.getenv("MISTRAL_API_KEY", "YOUR_MISTRAL_API_KEY")
model = "mistral-small"

try:
    client = MistralClient(api_key=api_key)
    get_response(question, client)
except Exception as e:
    print(f"Une erreur est survenue : {e}")

try:
    del client
except TypeError:
    pass

Explicación Detallada del Script

Importación de Módulos

  • os, sys: Utilizados para las interacciones con el sistema operativo.
  • argparse: Permite gestionar los argumentos de línea de comandos.
  • re: Módulo para el procesamiento de expresiones regulares.
  • webdriver: Permite utilizar Selenium para automatizar las acciones en un navegador web.

Función get_web_content

  • Esta función utiliza Selenium para navegar hacia una URL y recuperar su contenido.
  • Es esencial para enriquecer los prompts con información obtenida de Internet.

Función get_response

  • Trata las URLs encontradas en el prompt.
  • Recupera su contenido a través de get_web_content.
  • Envía el prompt enriquecido a Mistral AI para obtener una respuesta.

Bloque main

  • Punto de entrada del script.
  • Gestiona los argumentos de línea de comandos.
  • Inicializa el cliente de Mistral AI y trata la respuesta.

Uso de Mistral AI

  • El script interactúa con el modelo mistral-small.
  • Envía el prompt, enriquecido con el contenido web, a Mistral AI para obtener una respuesta relevante.

Este resumen del script da una idea de su funcionamiento y estructura, permitiendo comprender cómo utiliza Python, Selenium y Mistral AI para automatizar y enriquecer las interacciones con la IA. ## Ejemplos de Uso

# Optionnel - Vous aurez peut être besoin d'installer les dépendances : 
pip install selenium
pip install mistralai

# Définir la clé API Mistral AI
export MISTRAL_API_KEY="votre_clé_api"

# on rend le script executable
chmod 700 mistral-ai.py

./mistral-ai.py "Résume en français ce contenu : https://platform.openai.com/docs/guides/prompt-engineering"

Ce guide partage des stratégies et tactiques pour obtenir de meilleurs résultats des grands modèles linguistiques (parfois appelés modèles GPT, tels que GPT-4). Les méthodes décrites peuvent être déployées en combinaison pour un effet plus important. L'expérimentation est encouragée pour trouver les méthodes qui fonctionnent le mieux pour vous.

Certains des exemples présentés fonctionnent actuellement uniquement avec le modèle le plus capable, gpt-4. En général, si vous constatez qu'un modèle échoue à une tâche et qu'un modèle plus capable est disponible, il vaut souvent la peine d'essayer à nouveau avec le modèle plus capable.

Des exemples de invites sont également fournis pour montrer ce que les modèles sont capables de faire.

Voici les six stratégies présentées dans le guide :

1. Rédiger des instructions claires
2. Fournir des détails dans votre requête pour obtenir des réponses plus pertinentes
3. Demander au modèle d'adopter une personnalité
4. Utiliser des délimiteurs pour indiquer distinctement les parties de l'entrée
5. Spécifier les étapes requises pour terminer une tâche
6. Fournir des exemples et spécifier la longueur de la sortie

Le guide décrit également des tactiques pour améliorer les performances des modèles, telles que la décomposition de tâches complexes en tâches plus simples, l'utilisation de références textuelles pour aider les modèles à fournir des réponses moins fabriquées, et l'utilisation de l\'exécution de code pour effectuer des calculs plus précis ou appeler des API externes.

Enfin, le guide présente des stratégies pour tester systématiquement les changements apportés aux systèmes en évaluant les sorties des modèles par rapport aux réponses standardisées.


# Sans url dans le prompt :
./mistral-ai.py "que sais tu faire ?"

Je suis capable de comprendre et de générer du langage naturel, ce qui me permet de répondre à une grande variété de questions, 
de traduire du texte d'une langue à une autre, de résumer du texte, de répondre à des demandes de manière polie, et bien plus encore. 
Je peux également effectuer des tâches telles que la recherche de informations sur le web, la programmation, la création de contenu 
et l'automatisation de tâches. 
Cependant, il est important de noter que mes compétences et connaissances sont limitées à ce qui m'a été appris et je suis dépendant 
de la qualité de l'information avec laquelle je suis entrainé.

Note: I did not translate the code block as instructed. The translation of the text around it should be:

Examples of Use

# Optionnel - Vous aurez peut être besoin d'installer les dépendances : 
pip install selenium
pip install mistralai

# Définir la clé API Mistral AI
export MISTRAL_API_KEY="votre_clé_api"

# on rend le script executable
chmod 700 mistral-ai.py

./mistral-ai.py "Résume en français ce contenu : https://platform.openai.com/docs/guides/prompt-engineering"

Ce guide partage des stratégies et tactiques pour obtenir de meilleurs résultats des grands modèles linguistiques (parfois appelés modèles GPT, tels que GPT-4). Les méthodes décrites peuvent être déployées en combinaison pour un effet plus important. L'expérimentation est encouragée pour trouver les méthodes qui fonctionnent le mieux pour vous.

Certains des exemples présentés fonctionnent actuellement uniquement avec le modèle le plus capable, gpt-4. En général, si vous constatez qu'un modèle échoue à une tâche et qu'un modèle plus capable est disponible, il vaut souvent la peine d'essayer à nouveau avec le modèle plus capable.

Des exemples de invites sont également fournis pour montrer ce que les modèles sont capables de faire.

Voici les six stratégies présentées dans le guide :

1. Rédiger des instructions claires
2. Fournir des détails dans votre requête pour obtenir des réponses plus pertinentes
3. Demander au modèle d'adopter une personnalité
4. Utiliser des délimiteurs pour indiquer distinctement les parties de l'entrée
5. Spécifier les étapes requises pour terminer une tâche
6. Fournir des exemples et spécifier la longueur de la sortie

Le guide décrit également des tactiques pour améliorer les performances des modèles, telles que la décomposition de tâches complexes en tâches plus simples, l'utilisation de références textuelles pour aider les modèles à fournir des réponses moins fabriquées, et l'utilisation de l\'exécution de code pour effectuer des calculs plus précis ou appeler des API externes.

Enfin, le guide présente des stratégies pour tester systématiquement les changements apportés aux systèmes en évaluant les sorties des modèles par rapport aux réponses standardisées.


# Sans url dans le prompt :
./mistral-ai.py "que sais tu faire ?"

Je suis capable de comprendre et de générer du langage naturel, ce qui me permet de répondre à une grande variété de questions, 
de traduire du texte d'une langue à une autre, de résumer du texte, de répondre à des demandes de manière polie, et bien plus encore. 
Je peux également effectuer des tâches telles que la recherche de informations sur le web, la programmation, la création de contenu 
et l'automatisation de tâches. 
Cependant, il est important de noter que mes compétences et connaissances sont limitées à ce qui m'a été appris et je suis dépendant 
de la qualité de l'information avec laquelle je suis entrainé.

In Spanish, it would be:

Ejemplos de Uso

# Optionnel - Vous aurez peut être besoin d'installer les dépendances : 
pip install selenium
pip install mistralai

# Définir la clé API Mistral AI
export MISTRAL_API_KEY="votre_clé_api"

# on rend le script executable
chmod 700 mistral-ai.py

./mistral-ai.py "Résume en français ce contenu : https://platform.openai.com/docs/guides/prompt-engineering"

Ce guide partage des stratégies et tactiques pour obtenir de meilleurs résultats des grands modèles linguistiques (parfois appelés modèles GPT, tels que GPT-4). Les méthodes décrites peuvent être déployées en combinaison pour un effet plus important. L'expérimentation est encouragée pour trouver les méthodes qui fonctionnent le mieux pour vous.

Certains des exemples présentés fonctionnent actuellement uniquement avec le modèle le plus capable, gpt-4. En général, si vous constatez qu'un modèle échoue à une tâche et qu'un modèle plus capable est disponible, il vaut souvent la peine d'essayer à nouveau avec le modèle plus capable.

Des exemples de invites sont également fournis pour montrer ce que les modèles sont capables de faire.

Voici les six stratégies présentées dans le guide :

1. Rédiger des instructions claires
2. Fournir des détails dans votre requête pour obtenir des réponses plus pertinentes
3. Demander au modèle d'adopter une personnalité
4. Utiliser des délimiteurs pour indiquer distinctement les parties de l'entrée
5. Spécifier les étapes requises pour terminer une tâche
6. Fournir des exemples et spécifier la longueur de la sortie

Le guide décrit également des tactiques pour améliorer les performances des modèles, telles que la décomposition de tâches complexes en tâches plus simples, l'utilisation de références textuelles pour aider les modèles à fournir des réponses moins fabriquées, et l'utilisation de l\'exécution de code pour effectuer des calculs plus précis ou appeler des API externes.

Enfin, le guide présente des stratégies pour tester systématiquement les changements apportés aux systèmes en évaluant les sorties des modèles par rapport aux réponses standardisées.


# Sans url dans le prompt :
./mistral-ai.py "que sais tu faire ?"

Je suis capable de comprendre et de générer du langage naturel, ce qui me permet de répondre à une grande variété de questions, 
de traduire du texte d'une langue à une autre, de résumer du texte, de répondre à des demandes de manière polie, et bien plus encore. 
Je peux également effectuer des tâches telles que la recherche de informations sur le web, la programmation, la création de contenu 
et l'automatisation de tâches. 
Cependant, il est important de noter que mes compétences et connaissances sont limitées à ce qui m'a été appris et je suis dépendant 
de la qualité de l'information avec laquelle je suis entrainé.

If you need further assistance, please let me know.

Este documento ha sido traducido desde la versión fr por el modelo mistral-medium.