ajoute et implementation de la communication etre Satellite
Browse files- main.py +32 -0
- req.txt +1 -0
- satellites/atlasSat/atlas.py +30 -1
- satellites/base_satellite.py +29 -6
- satellites/lilithSat/lilith.py +21 -0
- satellites/pythagorasSat/pythagoras.py +27 -2
- satellites/shakaSat/shaka.py +31 -8
- stellar/base_stellar.py +32 -0
- tests/pythagoras_test.py +22 -0
main.py
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from stellar.base_stellar import Stellar
|
| 2 |
+
from satellites.atlasSat.atlas import Atlas
|
| 3 |
+
from satellites.lilithSat.lilith import Lilith
|
| 4 |
+
from satellites.pythagorasSat.pythagoras import Pythagoras
|
| 5 |
+
from satellites.shakaSat.shaka import Shaka
|
| 6 |
+
from satellites.edisonSat.edison import Edison
|
| 7 |
+
from satellites.yorkSat.york import York
|
| 8 |
+
from typing import Dict, Any
|
| 9 |
+
|
| 10 |
+
stellar = Stellar()
|
| 11 |
+
atlas = Atlas()
|
| 12 |
+
lilith = Lilith()
|
| 13 |
+
pythagoras = Pythagoras()
|
| 14 |
+
shaka = Shaka()
|
| 15 |
+
edison = Edison()
|
| 16 |
+
york = York()
|
| 17 |
+
|
| 18 |
+
|
| 19 |
+
|
| 20 |
+
stellar.register_satellites(atlas)
|
| 21 |
+
stellar.register_satellites(lilith)
|
| 22 |
+
stellar.register_satellites(pythagoras)
|
| 23 |
+
stellar.register_satellites(shaka)
|
| 24 |
+
stellar.register_satellites(edison)
|
| 25 |
+
stellar.register_satellites(york)
|
| 26 |
+
|
| 27 |
+
response = Stellar.route_communication("Atlas", "York", {"type": "check_resources"})
|
| 28 |
+
|
| 29 |
+
results = Stellar.broadcast_message("Atlas", {"type": "check_resources"})
|
| 30 |
+
|
| 31 |
+
|
| 32 |
+
print(results)
|
req.txt
CHANGED
|
@@ -10,4 +10,5 @@ pandas
|
|
| 10 |
psutil
|
| 11 |
python-dotenv
|
| 12 |
beautifulsoup4
|
|
|
|
| 13 |
|
|
|
|
| 10 |
psutil
|
| 11 |
python-dotenv
|
| 12 |
beautifulsoup4
|
| 13 |
+
langchain-anthropic
|
| 14 |
|
satellites/atlasSat/atlas.py
CHANGED
|
@@ -123,4 +123,33 @@ class Atlas(VegapunkSatellite):
|
|
| 123 |
status.update({
|
| 124 |
"Monitored_directories": self.monitored_directories,
|
| 125 |
"Email_config": self.email_config
|
| 126 |
-
})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 123 |
status.update({
|
| 124 |
"Monitored_directories": self.monitored_directories,
|
| 125 |
"Email_config": self.email_config
|
| 126 |
+
})
|
| 127 |
+
|
| 128 |
+
|
| 129 |
+
|
| 130 |
+
def proccess_communicatioon(self,sender_name:str,message:Dict[str,Any]) ->Dict[str,Any]:
|
| 131 |
+
|
| 132 |
+
if message.get("type") == "task":
|
| 133 |
+
task_result = self.process_task(message.get("task"))
|
| 134 |
+
return {"status": "Traitement effectué", "result": task_result}
|
| 135 |
+
elif message.get("type") == "email_config":
|
| 136 |
+
self.email_config = message.get("content")
|
| 137 |
+
return {"status": "Configuration email mise à jour", "result": self.email_config}
|
| 138 |
+
elif message.get("type") == "system_command":
|
| 139 |
+
command_result = self.execute_system_command(message.get("command"))
|
| 140 |
+
return {"status": "Commande système exécutée", "result": command_result}
|
| 141 |
+
elif message.get("type") == "file_management":
|
| 142 |
+
file_result = self.manage_files(message.get("action"), message.get("file_path"))
|
| 143 |
+
return {"status": "Gestion de fichier effectuée", "result": file_result}
|
| 144 |
+
elif message.get("type") == "monitor_directory":
|
| 145 |
+
monitor_result = self.monitor_directory(message.get("directory"))
|
| 146 |
+
return {"status": "Surveillance de répertoire effectuée", "result": monitor_result}
|
| 147 |
+
elif message.get("type") == "email":
|
| 148 |
+
email_result = self.send_email(message.get("to"), message.get("subject"), message.get("body"))
|
| 149 |
+
return {"status": "Email envoye", "result": email_result}
|
| 150 |
+
elif message.get("type") == "status_report":
|
| 151 |
+
result = self.report_status()
|
| 152 |
+
return {"status": "Rapport de status généré", "result": result}
|
| 153 |
+
elif message.get("type") == "check_changes":
|
| 154 |
+
changes = self.check_directory_changes()
|
| 155 |
+
return {"status": "Changements vérifiés", "result": changes}
|
satellites/base_satellite.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
from abc import ABC, abstractmethod
|
| 2 |
-
from typing import Dict, Any
|
| 3 |
import logging
|
| 4 |
|
| 5 |
|
|
@@ -60,12 +60,35 @@ class VegapunkSatellite(ABC):
|
|
| 60 |
# Methode pour mettre a jour de la base de connaissance local du satellite depuis punkrecord
|
| 61 |
pass
|
| 62 |
|
| 63 |
-
|
| 64 |
-
|
| 65 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 66 |
|
| 67 |
-
#
|
| 68 |
-
#
|
| 69 |
# class Satellite:
|
| 70 |
# def __init__(self, name, specialty):
|
| 71 |
# self.name = name
|
|
|
|
| 1 |
from abc import ABC, abstractmethod
|
| 2 |
+
from typing import Dict, Any,Optional
|
| 3 |
import logging
|
| 4 |
|
| 5 |
|
|
|
|
| 60 |
# Methode pour mettre a jour de la base de connaissance local du satellite depuis punkrecord
|
| 61 |
pass
|
| 62 |
|
| 63 |
+
# Methode pour communiquer avec un autre satellite
|
| 64 |
+
def communicate_with_other_satellite(self, satellite: 'VegapunkSatellite', message: Dict[str, Any]) -> Optional[Dict[str, Any]]:
|
| 65 |
+
if not isinstance(satellite, VegapunkSatellite):
|
| 66 |
+
logging.error(f"Le satellite spécifié n'est pas valide :{type(satellite)}")
|
| 67 |
+
return None
|
| 68 |
+
|
| 69 |
+
try:
|
| 70 |
+
response = satellite.receive_communication(self.name,message)
|
| 71 |
+
logging.info(f"Communication avec {satellite.name} : {response}")
|
| 72 |
+
return response
|
| 73 |
+
except Exception as e:
|
| 74 |
+
logging.error(f"Erreur lors de la communication avec {satellite.name} : {str(e)}")
|
| 75 |
+
return None
|
| 76 |
+
|
| 77 |
+
def receive_communication(self, message: Dict[str, Any]) -> Dict[str, Any]:
|
| 78 |
+
# Methode pour recevoir une communication d'un autre satellite
|
| 79 |
+
logging.info(f"{self.name} a reçu un message : {message}")
|
| 80 |
+
return {"status": "Message reçu","from":{self.name}, "details": message}
|
| 81 |
+
|
| 82 |
+
@abstractmethod
|
| 83 |
+
def proccess_communicatioon(self,sender_name:str,message:Dict[str,Any])->Dict[str,Any]:
|
| 84 |
+
"""
|
| 85 |
+
traite le message recu d'un autre satellite
|
| 86 |
+
a implementer dans chaque classe de satellite specifique
|
| 87 |
+
"""
|
| 88 |
+
pass
|
| 89 |
+
|
| 90 |
+
|
| 91 |
|
|
|
|
|
|
|
| 92 |
# class Satellite:
|
| 93 |
# def __init__(self, name, specialty):
|
| 94 |
# self.name = name
|
satellites/lilithSat/lilith.py
CHANGED
|
@@ -2,6 +2,7 @@ from satellites.base_satellite import VegapunkSatellite
|
|
| 2 |
from typing import Dict, Any, List
|
| 3 |
import random
|
| 4 |
from utils.logger import get_logger
|
|
|
|
| 5 |
|
| 6 |
role = " Explorer des solution non conventionnel , creatove,voir risqué"
|
| 7 |
|
|
@@ -114,3 +115,23 @@ class Lilith(VegapunkSatellite):
|
|
| 114 |
# Ici, vous pourriez implémenter la logique pour mettre à jour les approches créatives ou les domaines d'innovation
|
| 115 |
|
| 116 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 2 |
from typing import Dict, Any, List
|
| 3 |
import random
|
| 4 |
from utils.logger import get_logger
|
| 5 |
+
import logging
|
| 6 |
|
| 7 |
role = " Explorer des solution non conventionnel , creatove,voir risqué"
|
| 8 |
|
|
|
|
| 115 |
# Ici, vous pourriez implémenter la logique pour mettre à jour les approches créatives ou les domaines d'innovation
|
| 116 |
|
| 117 |
|
| 118 |
+
def proccess_communicatioon(self,sender_name:str,message:Dict[str,Any]) ->Dict[str,Any]:
|
| 119 |
+
if message.get("type") == "task":
|
| 120 |
+
task_result = self.process_task(message.get("task"))
|
| 121 |
+
return {"status": "Traitement effectué", "result": task_result}
|
| 122 |
+
elif message.get("type") == "generate_idea":
|
| 123 |
+
idea_result = self.generate_creative_idea(message.get("domain"))
|
| 124 |
+
return {"status": "Idée générée", "result": idea_result}
|
| 125 |
+
elif message.get("type") == "solve_problem":
|
| 126 |
+
solution_result = self.propose_unconventional_solution(message.get("problem"))
|
| 127 |
+
return {"status": "Solution proposée", "result": solution_result}
|
| 128 |
+
elif message.get("type") == "brainstorm":
|
| 129 |
+
brainstorm_result = self.conduct_brainstorming_session(message.get("topic"), message.get("duration"))
|
| 130 |
+
return {"status": "Session de brainstorming effectuée", "result": brainstorm_result}
|
| 131 |
+
elif message.get("type") == "challenge_assumption":
|
| 132 |
+
assumption_result = self.challenge_assumption(message.get("assumption"))
|
| 133 |
+
return {"status": "Assomption challengée", "result": assumption_result}
|
| 134 |
+
elif message.get("type") == "status_report":
|
| 135 |
+
result = self.report_status()
|
| 136 |
+
return {"status": "Rapport de status généré", "result": result}
|
| 137 |
+
|
satellites/pythagorasSat/pythagoras.py
CHANGED
|
@@ -12,14 +12,18 @@ from bs4 import BeautifulSoup
|
|
| 12 |
import json
|
| 13 |
import os
|
| 14 |
from dotenv import load_dotenv
|
|
|
|
| 15 |
import requests
|
| 16 |
import logging
|
| 17 |
|
| 18 |
load_dotenv()
|
| 19 |
|
| 20 |
|
|
|
|
| 21 |
|
| 22 |
-
|
|
|
|
|
|
|
| 23 |
|
| 24 |
|
| 25 |
role = "mathématiques, statistiques et analyse de données"
|
|
@@ -241,4 +245,25 @@ class Pythagoras(VegapunkSatellite):
|
|
| 241 |
"Constantes_mathématiques": list(self.mathematical_constants.keys()),
|
| 242 |
"Opérations_disponibles": ["mean", "median", "std_dev", "correlation"]
|
| 243 |
})
|
| 244 |
-
return status
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 12 |
import json
|
| 13 |
import os
|
| 14 |
from dotenv import load_dotenv
|
| 15 |
+
from openai import OpenAI
|
| 16 |
import requests
|
| 17 |
import logging
|
| 18 |
|
| 19 |
load_dotenv()
|
| 20 |
|
| 21 |
|
| 22 |
+
# client = OpenAI(os.getenv("LLM_API_KEY"))
|
| 23 |
|
| 24 |
+
client =OpenAI(
|
| 25 |
+
organization="LLM_API_KEY",
|
| 26 |
+
)
|
| 27 |
|
| 28 |
|
| 29 |
role = "mathématiques, statistiques et analyse de données"
|
|
|
|
| 245 |
"Constantes_mathématiques": list(self.mathematical_constants.keys()),
|
| 246 |
"Opérations_disponibles": ["mean", "median", "std_dev", "correlation"]
|
| 247 |
})
|
| 248 |
+
return status
|
| 249 |
+
|
| 250 |
+
|
| 251 |
+
def proccess_communicatioon(self,sender_name:str,message:Dict[str,Any]) ->Dict[str,Any]:
|
| 252 |
+
if message.get("type")== "task":
|
| 253 |
+
task_result = self.process_task(message.get("task"))
|
| 254 |
+
return {"status": "Traitement effectué", "result": task_result}
|
| 255 |
+
elif message.get("type") == "research":
|
| 256 |
+
research_result = self.conduct_research(message.get("topic"), message.get("depth"))
|
| 257 |
+
return {"status": "Recherche effectuée", "result": research_result}
|
| 258 |
+
elif message.get("type") == "information_extraction":
|
| 259 |
+
info_result = self.extract_information(message.get("content"), message.get("keywords", []))
|
| 260 |
+
return {"status": "Extraction d'information effectuée", "result": info_result}
|
| 261 |
+
elif message.get("type") == "update_constants":
|
| 262 |
+
self.mathematical_constants.update(message.get("constants", {}))
|
| 263 |
+
return {"status": "Constantes mises à jour", "result": self.mathematical_constants}
|
| 264 |
+
elif message.get("type") == "update_resources":
|
| 265 |
+
self.resources.update(message.get("resources", {}))
|
| 266 |
+
return {"status": "Ressources mises à jour", "result": self.resources}
|
| 267 |
+
elif message.get("type") == "update_external_apis":
|
| 268 |
+
self.external_apis.update(message.get("apis", {}))
|
| 269 |
+
return {"status": "APIs mises à jour", "result": self.external_apis}
|
satellites/shakaSat/shaka.py
CHANGED
|
@@ -1,5 +1,5 @@
|
|
| 1 |
from satellites.base_satellite import VegapunkSatellite
|
| 2 |
-
from typing import Dict, Any, List
|
| 3 |
import nltk
|
| 4 |
from nltk.tokenize import word_tokenize
|
| 5 |
from nltk.corpus import stopwords
|
|
@@ -163,13 +163,6 @@ class Shaka(VegapunkSatellite):
|
|
| 163 |
def log_activity(self, activity: str):
|
| 164 |
logging.info(activity)
|
| 165 |
|
| 166 |
-
def communicate_with_stellar(self, message: Dict[str, Any]) -> Dict[str, Any]:
|
| 167 |
-
print(f"{self.name} envoie un message à Stellar: {message}")
|
| 168 |
-
return {"Statut": "Message reçu", "message": "Stellar a bien reçu le message"}
|
| 169 |
-
|
| 170 |
-
def update_from_punkrecord(self):
|
| 171 |
-
print(f"{self.name} met à jour sa base de connaissances depuis Punkrecord")
|
| 172 |
-
self.add_to_knowledge_base("Last_update", "Nouveaux patterns détectés dans les données")
|
| 173 |
|
| 174 |
def perform_advanced_analyse(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
| 175 |
text_analyse = self._analyse_text(data.get('text', ''))
|
|
@@ -180,3 +173,33 @@ class Shaka(VegapunkSatellite):
|
|
| 180 |
"Analyse_logique": logical_analyse,
|
| 181 |
"Conclusions": "Analyse intégrale basée sur le texte et les raisonnements logiques"
|
| 182 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
from satellites.base_satellite import VegapunkSatellite
|
| 2 |
+
from typing import Dict, Any, List, Optional
|
| 3 |
import nltk
|
| 4 |
from nltk.tokenize import word_tokenize
|
| 5 |
from nltk.corpus import stopwords
|
|
|
|
| 163 |
def log_activity(self, activity: str):
|
| 164 |
logging.info(activity)
|
| 165 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 166 |
|
| 167 |
def perform_advanced_analyse(self, data: Dict[str, Any]) -> Dict[str, Any]:
|
| 168 |
text_analyse = self._analyse_text(data.get('text', ''))
|
|
|
|
| 173 |
"Analyse_logique": logical_analyse,
|
| 174 |
"Conclusions": "Analyse intégrale basée sur le texte et les raisonnements logiques"
|
| 175 |
}
|
| 176 |
+
|
| 177 |
+
def communicate_with_stellar(self, message: Dict[str, Any]) -> Dict[str, Any]:
|
| 178 |
+
print(f"{self.name} envoie un message à Stellar: {message}")
|
| 179 |
+
return {"Statut": "Message reçu", "message": "Stellar a bien reçu le message"}
|
| 180 |
+
|
| 181 |
+
def update_from_punkrecord(self):
|
| 182 |
+
print(f"{self.name} met à jour sa base de connaissances depuis Punkrecord")
|
| 183 |
+
self.add_to_knowledge_base("Last_update", "Nouveaux patterns détectés dans les données")
|
| 184 |
+
return {"Statut": "Mise à jour effectuée"}
|
| 185 |
+
|
| 186 |
+
def proccess_communicatioon(self, sender_name: str, message: Dict[str, Any]) -> Dict[str, Any]:
|
| 187 |
+
# logique a shaka pour traiter le message
|
| 188 |
+
if message.get("type") == "ethics_check":
|
| 189 |
+
result = self.check_ethics(message.get("content"))
|
| 190 |
+
return {"status": "Traitement effectué", "result": result}
|
| 191 |
+
elif message.get("type") == "fact_check":
|
| 192 |
+
result = self.verify_facts(message.get("claim"))
|
| 193 |
+
return {"status": "Traitement effectué", "result": result}
|
| 194 |
+
elif message.get("type") == "task":
|
| 195 |
+
task_result = self.process_task(message.get("task"))
|
| 196 |
+
return {"status": "Traitement effectué", "result": task_result}
|
| 197 |
+
elif message.get("type") == "recommendations":
|
| 198 |
+
result = self.provide_ethical_recommendations(message.get("content"))
|
| 199 |
+
return {"status": "Traitement effectué", "result": result}
|
| 200 |
+
elif message.get("type") == "toggle_ethical_filter":
|
| 201 |
+
result = self.toggle_ethical_filter()
|
| 202 |
+
return {"status": "Traitement effectué", "result": result}
|
| 203 |
+
|
| 204 |
+
|
| 205 |
+
|
stellar/base_stellar.py
ADDED
|
@@ -0,0 +1,32 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 1 |
+
from satellites.base_satellite import VegapunkSatellite
|
| 2 |
+
from abc import ABC, abstractmethod
|
| 3 |
+
from typing import Dict, Any,Optional
|
| 4 |
+
import logging
|
| 5 |
+
|
| 6 |
+
|
| 7 |
+
|
| 8 |
+
|
| 9 |
+
class Stellar:
|
| 10 |
+
def __init__(self):
|
| 11 |
+
self.satellites = {} # dictionnaire pour stocke les references satellites
|
| 12 |
+
|
| 13 |
+
|
| 14 |
+
def register_satellites(self,satellite:VegapunkSatellite)->None:
|
| 15 |
+
self.satellites[satellite.name] = satellite
|
| 16 |
+
|
| 17 |
+
def route_communication(self, sender_name: str, target_name: str, message: Dict[str, Any]) -> Optional[Dict[str, Any]]:
|
| 18 |
+
if sender_name not in self.satellites or target_name not in self.satellites:
|
| 19 |
+
logging.error(f"Impossible de router le message de {sender_name} à {target_name}")
|
| 20 |
+
return None
|
| 21 |
+
|
| 22 |
+
sender_name = self.satellites[sender_name]
|
| 23 |
+
target_name = self.satellites[target_name]
|
| 24 |
+
|
| 25 |
+
return sender_name.communicate_with_stellar(target_name, message)
|
| 26 |
+
|
| 27 |
+
def broadcast_message(self, sender_name: str, message: Dict[str, Any]) -> Dict[str, Dict[str, Any]]:
|
| 28 |
+
results = {}
|
| 29 |
+
for satellite_name, satellite in self.satellites.items():
|
| 30 |
+
if satellite_name != sender_name:
|
| 31 |
+
results[satellite_name] = satellite.communicate_with_stellar(self.satellites[sender_name], message)
|
| 32 |
+
return results
|
tests/pythagoras_test.py
CHANGED
|
@@ -57,6 +57,28 @@ def test_pythagoras():
|
|
| 57 |
stat_result = pythagoras.process_task(stat_task)
|
| 58 |
print("Résultat du test statistique:", stat_result)
|
| 59 |
print("\n\n")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 60 |
|
| 61 |
print("Connexion au Punkrecord")
|
| 62 |
pythagoras.update_from_punkrecord()
|
|
|
|
| 57 |
stat_result = pythagoras.process_task(stat_task)
|
| 58 |
print("Résultat du test statistique:", stat_result)
|
| 59 |
print("\n\n")
|
| 60 |
+
# Exemple de données pour l'analyse
|
| 61 |
+
sample_data = [
|
| 62 |
+
{"x": 1, "y": 2, "z": 3},
|
| 63 |
+
{"x": 2, "y": 4, "z": 6},
|
| 64 |
+
{"x": 3, "y": 6, "z": 9},
|
| 65 |
+
{"x": 4, "y": 8, "z": 12},
|
| 66 |
+
{"x": 5, "y": 10, "z": 15}
|
| 67 |
+
]
|
| 68 |
+
|
| 69 |
+
# Ajout de tâches à la file d'attente
|
| 70 |
+
pythagoras.add_task({"type": "analyze_data", "data": sample_data})
|
| 71 |
+
pythagoras.add_task({"type": "conduct_research", "topic": "Intelligence Artificielle", "depth": "deep"})
|
| 72 |
+
pythagoras.add_task({"type": "extract_information",
|
| 73 |
+
"content": "L'intelligence artificielle (IA) est un domaine de l'informatique qui vise à créer des machines capables de simuler l'intelligence humaine. Elle englobe des sous-domaines tels que l'apprentissage automatique, le traitement du langage naturel et la vision par ordinateur.",
|
| 74 |
+
"keywords": ["apprentissage automatique", "traitement du langage naturel"]})
|
| 75 |
+
|
| 76 |
+
# Traitement des tâches
|
| 77 |
+
while task := pythagoras.get_next_task():
|
| 78 |
+
result = pythagoras.process_task(task)
|
| 79 |
+
print(f"Résultat de la tâche : {result}")
|
| 80 |
+
|
| 81 |
+
print("\n\n")
|
| 82 |
|
| 83 |
print("Connexion au Punkrecord")
|
| 84 |
pythagoras.update_from_punkrecord()
|