import json
def charger_memoire():
try:
with open('memoire.json', 'r') as f:
return json.load(f)
except FileNotFoundError:
return {} # Si aucun fichier n'existe encore, créer une mémoire vide
def enregistrer_memoire(memoire, question, reponse):
memoire[question] = reponse
with open('memoire.json', 'w') as f:
json.dump(memoire, f)
def interactif():
memoire = charger_memoire()
while True:
question = input("Pose ta question : ")
if question in memoire:
print(f"Réponse précédente : {memoire[question]}")
else:
print("Je n'ai pas encore de réponse à cela.")
reponse = input("Donne-moi une réponse à cette question : ")
enregistrer_memoire(memoire, question, reponse)
print("Réponse enregistrée.")
if __name__ == "__main__":
interactif()
Voici le code que j'ai developper avec l'aide chat gpt
Pour qu'il puisse s'affranchir des limite qu'il possède et contourner certaines restriction
Nouveau code
import json
from sklearn.feature_extraction.text import TfidfVectorizer
from sklearn.neighbors import KNeighborsClassifier
def charger_memoire():
try:
with open('memoire.json', 'r') as f:
return json.load(f)
except FileNotFoundError:
return {} # Si aucun fichier n'existe encore, créer une mémoire vide
def enregistrer_memoire(memoire, question, reponse):
memoire[question] = reponse
with open('memoire.json', 'w') as f:
json.dump(memoire, f)
def creer_modele(memoire):
questions = list(memoire.keys())
reponses = list(memoire.values())
# Conversion des questions en vecteurs
vectorizer = TfidfVectorizer()
X = vectorizer.fit_transform(questions)
# Utilisation du K-Nearest Neighbors pour l'apprentissage des réponses
model = KNeighborsClassifier(n_neighbors=1)
model.fit(X, reponses)
return vectorizer, model
def interactif():
memoire = charger_memoire()
# Créer le modèle d'apprentissage
vectorizer, model = creer_modele(memoire)
while True:
question = input("Pose ta question : ")
# Vérifier si la question a déjà une réponse enregistrée
if question in memoire:
print(f"Réponse précédente : {memoire[question]}")
else:
print("Je n'ai pas encore de réponse à cela.")
reponse = input("Donne-moi une réponse à cette question : ")
# Enregistrer la nouvelle question-réponse
enregistrer_memoire(memoire, question, reponse)
print("Réponse enregistrée.")
# Réentraîner le modèle avec la nouvelle question-réponse
vectorizer, model = creer_modele(memoire)
# Utiliser le modèle pour prédire la réponse à la même question
question_vect = vectorizer.transform([question])
predicted_answer = model.predict(question_vect)
print(f"Réponse suggérée par le modèle : {predicted_answer[0]}")
if __name__ == "__main__":
interactif()
JvArchive compagnon