IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Microsoft Azure Discussion :

Construisez un chatbot sur vos propres données en 1 heure avec Azure SQL, Langchain et Chainlit


Sujet :

Microsoft Azure

  1. #1
    Communiqués de presse

    Femme Profil pro
    Traductrice Technique
    Inscrit en
    Juin 2023
    Messages
    1 797
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Traductrice Technique

    Informations forums :
    Inscription : Juin 2023
    Messages : 1 797
    Points : 125 180
    Points
    125 180
    Par défaut Construisez un chatbot sur vos propres données en 1 heure avec Azure SQL, Langchain et Chainlit
    Construisez un chatbot sur vos propres données en 1 heure avec Azure SQL, Langchain et Chainlit, par Davide Mauri de Microsoft Azure SQL

    Construisez un chatbot sur vos propres données grâce à des bibliothèques comme LangChain, ChainLit et Azure SQL. Davide Mauri présente une méthode pour construire un chatbot entièrement fonctionnel en seulement 1 heure avec une architecture finale simple et élégante.

    Les chatbots sont à la mode ces derniers temps, et vous pouvez désormais les créer facilement en téléchargeant des solutions comme OpenWebUI, en les connectant à Ollama ou à n'importe quelle API compatible avec OpenAI, en choisissant votre modèle de langage favori, puis en les exécutant. Cela ne prend que quelques minutes et c'est fait.

    Mais construire des chatbots n'est pas suffisant, vous voulez très probablement construire un chatbot sur vos propres données. L'écosystème logiciel autour de l'IA et du chatbot se développe chaque jour et permet de créer un chatbot qui offre à vos utilisateurs de discuter avec des données stockées dans votre base de données.

    Grâce à des bibliothèques comme LangChain, ChainLit et, bien sûr, Azure SQL, Davide Mauri, Principal Product Manager d'Azure SQL, présente comment construire un chatbot sur vos propres données.

    Pour commencer, ces trois éléments sont la seule chose dont vous avez besoin :

    • Langchain : un cadre pour le développement d'applications basées sur de grands modèles de langage (LLM).
    • Chainlit : un framework Python asynchrone open-source qui permet aux développeurs de construire des applications évolutives d'IA conversationnelle ou agentique.
    • Azure SQL : ajoute la prise en charge des vecteurs en tant que fonctionnalité principale du moteur.


    Vous pouvez éventuellement utiliser Azure Functions pour que les données ajoutées ou mises à jour dans la base de données soient automatiquement traitées pour être utilisées avec des modèles d'IA, si vous aimez une approche de type "change-feed". L'architecture finale, simple et élégante, ressemblera à ce qui suit :

    Nom : 1.jpg
Affichages : 345625
Taille : 29,8 Ko

    Partir de la base de données

    Il suffirait de moins d'une heure pour commencer à avoir un chatbot entièrement fonctionnel sur vos propres données. Pour l'aspect des données, commencer par la fonctionnalité qui rend cette capacité possible : le type vector nouvellement introduit et la fonction vector_distance associée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    declare @qv vector(1536)
    exec web.get_embedding 'RAG on your own data', @qv output
     
    select top(5)
        se.id as session_id, 
        vector_distance('cosine', se.[embeddings], @qv) as distance
    from 
        web.sessions se
    order by
        distance
    Comme vous pouvez le voir, le code est simple. Il transforme le texte fourni en un embedding en appelant le point de terminaison OpenAI, via la procédure stockée get_embedding, puis utilise le vecteur retourné pour trouver tous les vecteurs similaires dans le tableau d'échantillons. Dans ce cas, c'est un tableau contenant des données relatives aux sessions de conférences.


    Intégration avec LangChain

    L'étape suivante consiste à trouver comment intégrer ce code dans LangChain, qui orchestre le modèle RAG. Grâce au LCEL (Langchain Expression Language), il est assez facile de définir l'invite et de l'envoyer au LLM avec des informations contextuelles supplémentaires extraites de la base de données :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    prompt = ChatPromptTemplate.from_messages([
    (
        "ai", 
        """ 
        You are a system assistant who helps users find the right session to watch from the conference, 
        based off the sessions that are provided to you. Sessions will be provided in an assistant message 
        in the format of `title|abstract|speakers|start-time|end-time`. You can use only the provided session 
        list to help you answer the user's question. If the user ask a question that is not related to the 
        provided sessions, you can respond with a message that you can't help with that question. 
        Your aswer must have the session title, a very short summary of the abstract, the speakers, 
        the start time, and the end time. 
        """
    ), 
    ( 
        "human", 
        """ 
        The sessions available at the conference are the following: 
        {sessions} 
        """ 
    ), 
    ( 
        "human", 
        "{question}" 
    ) 
    ])
     
    # Use an agent retriever to get similar sessions
    retriever = RunnableLambda(get_similar_sessions, name="GetSimilarSessions").bind() 
     
    runnable = {"sessions": retriever, "question": RunnablePassthrough()} | prompt | openai | StrOutputParser()
    La ligne où runnable est défini est l'endroit où vous pouvez voir LCEL en action. Il s'assure que les espaces réservés comme {sessions} sont remplacés par des données réelles avant d'être envoyés au LLM (OpenAI dans l'exemple). Des données réelles qui sont récupérées en utilisant le retriever défini, qui à son tour appelle la fonction get_similar_session qui n'est rien d'autre qu'une enveloppe autour du code SQL décrit précédemment.

    En quelques lignes de code, l'invite a été défini, ainsi que l'outil utilisé par LangChain pour fournir des données contextuelles supplémentaires au LLM et la manière d'injecter dans l'invite ces données contextuelles supplémentaires. Pour le code de get_similar_session, il a utilisé une procédure stockée au lieu d'un SQL ad-hoc car cela rend la solution plus propre, plus sûre et plus facile à maintenir.


    Ajouter ChainLit

    La dernière pièce manquante est l'intégration du travail effectué avec Chainlit, qui a un support natif pour LangChain, via la fonction LangchainCallbackHandler. En gros, l'intégration se résume à deux points :

    • Initialiser la chaîne Langchain et la rendre utilisable avant le début du chat
    • Lorsque les utilisateurs envoient des messages, récupérer leur contenu et le transmettre à la chaîne Langchain pour traitement, et renvoyer le résultat.


    Cela signifie que l'intégration se fait dans deux méthodes seulement : on_chat_start et on_message. C'est simple et direct.

    Une fois que c'est fait, le projet est terminé ! Exécutez le script Python et vous serez prêt à partir ! Bien sûr, ce n'est qu'un point de départ. Vous voudrez sûrement construire une chaîne LCEL plus complète et plus complexe pour gérer les demandes et les situations les plus diverses, et la limite n'est plus que votre imagination !



    Source : Davide Mauri, Principal Product Manager, Microsoft

    Et vous ?

    Pensez-vous que cette présentation est crédible ou pertinente ?
    Quel est votre avis sur le sujet ?

    Voir aussi :

    Cloud Azure, Office 365, cybersécurité, partenariats, support, certifications, formations, bootcamps, comment Microsoft annonce l'intelligence artificielle à toutes les sauces

    OpenAI publie un outil de réglage fin pour personnaliser GPT-4o avec des ensembles de données personnalisés, afin d'obtenir des performances plus élevées à moindre coût pour les cas d'utilisation spécifiques

    Hugging Face lance un fabricant d'assistants IA open source pour rivaliser avec les GPT personnalisés d'OpenAI. L'outil est gratuit et permet de choisir parmi plusieurs LLM open source
    Publication de communiqués de presse en informatique. Contribuez au club : corrections, suggestions, critiques, ... Contactez le service news et Rédigez des actualités

  2. #2
    Membre émérite
    Homme Profil pro
    Expertise comptable
    Inscrit en
    Décembre 2019
    Messages
    802
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Expertise comptable
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Décembre 2019
    Messages : 802
    Points : 2 809
    Points
    2 809
    Par défaut
    Un grand merci !!!

    Je vais enfin pouvoir faire mon chatbot dopé aux archives google books. Un chatbot philosophe qui n'aurait jamais connu Descartes, mais qui serait boosté aux philosophes humanistes Italiens et Français qui haïssait le rationnalisme, mais que l'histoire à oublié. Un rêve de gosse qui se réalise !!

    Bon il va déjà falloir dans un premier temps maitriser le framework LangChain, ça à l'air simple comme ça mais mon petit doigt me dit que ça va pas se faire en un dimanche ?

    Est-il possible de faire tout ça avec les comptes gratuit Oracle ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2002
    Messages : 246
    Points : 325
    Points
    325
    Par défaut
    Vu que c'est pour faire un chatbot avec ses propres données,
    existe-t-il un moyen de se passer du cloud Azure et d'héberger soi-même la database histoire de bien garder les données chez soi et ne pas toujours être dépendant de services cloud ?????

  4. #4
    Expert éminent sénior

    Homme Profil pro
    Directeur des systèmes d'information
    Inscrit en
    Avril 2002
    Messages
    2 852
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : Luxembourg

    Informations professionnelles :
    Activité : Directeur des systèmes d'information
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2002
    Messages : 2 852
    Points : 19 326
    Points
    19 326
    Par défaut
    Oui si ta machine est adaptée tu peux télécharger et installer un LLM open source léger (voir la rubrique IA ) et donc héberger ta propre IA sans être dépendant d'un service cloud. Beaucoup de chercheurs font ça.

    6 Ways For Running A Local LLM

    Ne prenez pas la vie au sérieux, vous n'en sortirez pas vivant ...

  5. #5
    Membre averti
    Profil pro
    Responsable technique
    Inscrit en
    Février 2006
    Messages
    366
    Détails du profil
    Informations personnelles :
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Responsable technique

    Informations forums :
    Inscription : Février 2006
    Messages : 366
    Points : 353
    Points
    353
    Par défaut
    Pour le coup, travaillant tous les jours sur azure et aws, je déconseille d'utiliser azure pour faire ça. C'est plus cher qu'aws et pas intuitif du tout.

Discussions similaires

  1. Réponses: 2
    Dernier message: 21/11/2022, 18h58
  2. Les thèmes personnalisés sur Developpez, proposez vos propres thèmes !
    Par Community Management dans le forum Evolutions du club
    Réponses: 8
    Dernier message: 15/01/2019, 19h47
  3. Combien d'heures passez vous sur vos projets
    Par Issam dans le forum Débats sur le développement - Le Best Of
    Réponses: 76
    Dernier message: 09/12/2007, 20h53

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo