Nouveau node inject_preparation_prompt
Ne change rien, mais simplifie le système
This commit is contained in:
@@ -4,9 +4,11 @@ from langgraph.prebuilt import ToolNode
|
||||
from langchain.chat_models import init_chat_model
|
||||
from langgraph.graph import START, END
|
||||
from langchain.messages import HumanMessage, AIMessage, SystemMessage
|
||||
from langgraph.types import interrupt
|
||||
|
||||
from .tools import getTools, getWeeklyReportTools
|
||||
from .state import CustomState
|
||||
from .InterruptPayload import InterruptPayload
|
||||
|
||||
# LLM principal
|
||||
llm = ChatMistralAI( # LLM sans outils
|
||||
@@ -16,21 +18,20 @@ llm = ChatMistralAI( # LLM sans outils
|
||||
)
|
||||
|
||||
# NODES
|
||||
def inject_preparation_prompt(state: CustomState):
|
||||
""" Noeud qui vise juste à insérer le message indiquant au LLM comment travailler sur les résumés de comptes-rendus """
|
||||
return {'messages': HumanMessage(
|
||||
"Ton but est de lire les fichiers présents dans la base de données en utilisant l'outil 'search_in_files',\
|
||||
afin de générer des rapports sur chaque semaine du stage qui y est décrit. Pour enregistrer chaque semaine du stage, utilise l'outil 'write_week_report'.\
|
||||
Une fois terminé, fais une liste de tous les outils, logiciels, méthodes, entreprises, techniques, ect.. utilisés,\
|
||||
et fais en une liste avec quelques descriptions que tu devras enregistrer avec l'outil 'write_library_tools_details_on_internship'."
|
||||
)}
|
||||
|
||||
def preparation_docs(state: CustomState):
|
||||
"""Noeud en charge de préparer les résumés pour chaque semaine des rapports, et la liste des outils et méthodes utilisées"""
|
||||
model = llm.bind_tools(getWeeklyReportTools()) # LLM en charge de générer des rapports hebdomadaires sur le stage
|
||||
print(len(state['messages']))
|
||||
messages = [m for m in state['messages']] # Tous les messages du stage
|
||||
|
||||
if 'documentsGenerationStarted' not in state.keys():
|
||||
# Si ce noeud en est à son premier lancement, je lui donne la consigne de départ
|
||||
messages.append(HumanMessage("Ton but est de lire les fichiers présents dans la base de données en utilisant l'outil 'search_in_files',\
|
||||
afin de générer des rapports sur chaque semaine du stage qui y est décrit. Pour enregistrer chaque semaine du stage, utilise l'outil 'write_week_report'.\
|
||||
Une fois terminé, fais une liste de tous les outils, logiciels, méthodes, entreprises, techniques, ect.. utilisés,\
|
||||
et fais en une liste avec quelques descriptions que tu devras enregistrer avec l'outil 'write_library_tools_details_on_internship'."))
|
||||
|
||||
messages.append(model.invoke(messages)) # Invocation LLM
|
||||
return {'messages': messages, 'documentsGenerationStarted':True} # Je passe une liste de messages, ce qui ne devrait pas ajouter un message mais redéfinir toute la liste
|
||||
return {'messages': model.invoke(state['messages'])}
|
||||
|
||||
def call_to_LLM(state: MessagesState):
|
||||
"""Noeud qui s'occupe de gérer les appels au LLM"""
|
||||
|
||||
Reference in New Issue
Block a user