MGL7320

EngineeringAISystems

MGL7320 - Ingénierie logicielle des systèmes d’IA

08 - Systèmes experts, Agents IA & Systèmes multiagents

Prelude

L’IA, une histoire mouvementée

alt text Intelligence artificielle : définition, histoire et application

Systèmes experts

Systèmes multiagents

Théorie

Pratique

Démonstration (Code-Executors avec Autogen)

Voir Code Executors.

Utilise le fichier docker_coder.py

Dans un premier terminal :

ollama pull codellama:34b
ollama serve

Dans un second terminal:

conda create -n autogen python=3.11
conda activate autogen
pip install pyautogen flaml[automl]
rm -r .cache/* ; clear ; python docker_coder.py

Et voici une (possible) exécution :

code_executor_agent_docker (to code_writer_agent):

Write Python code to calculate the 14th Fibonacci number.

--------------------------------------------------------------------------------

>>>>>>>> USING AUTO REPLY...
code_writer_agent (to code_executor_agent_docker):

# filename: fibonacci.py
def fibonacci(n):
    if n <= 1:
        return n
    else:
        return fibonacci(n-1) + fibonacci(n-2)

print(f"The 14th Fibonacci number is {fibonacci(14)}")

--------------------------------------------------------------------------------
Replying as code_executor_agent_docker. Provide feedback to code_writer_agent. Press enter to skip and use auto-reply, or type 'exit' to end the conversation: 

>>>>>>>> NO HUMAN INPUT RECEIVED.

>>>>>>>> USING AUTO REPLY...

>>>>>>>> EXECUTING CODE BLOCK (inferred language is python)...
code_executor_agent_docker (to code_writer_agent):

exitcode: 0 (execution succeeded)
Code output: The 14th Fibonacci number is 377

Clavardage

Le but de cet exercice est de créez un Chatbot à base d’agents et d’outils.

Voici LA question auquel le chatbot devra répondre, en faisant appel à des informations disponibles en ligne : “What’s the best restaurant in Montreal?”

:bulb: Vous pouvez remplacer ChatAnthropic par Chat Ollama (fonctionne en utilisant le modèle llama3.2:3b)

:bulb: Vous aurez besoin d’un jeton (token) Tavily, lequel est gratuit pour un usage modéré.

:warning: Ne jamais sauvegarder vos mots de passe directement dans le code. Pour les conserver en local sans avoir à les partager, vous pouvez utiliser des outils tels que Dotenv (:bomb: ajoutez les fichiers .env dans la liste .gitignore pour éviter qu’ils se retrouvent disponibles sur Github !).

:bulb: Voici un notebook fonctionnel (à utiliser uniquement si vous êtes bloqués) : langgraph_chatbot.ipynb

Travail personnel pour les prochaines semaines

uqàm