Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
|
@@ -2,6 +2,7 @@ from langchain_core.prompts import ChatPromptTemplate
|
|
| 2 |
from langchain_google_genai import ChatGoogleGenerativeAI
|
| 3 |
from langchain_community.document_loaders import DirectoryLoader
|
| 4 |
from langchain_text_splitters import CharacterTextSplitter
|
|
|
|
| 5 |
from langchain_huggingface import HuggingFaceEmbeddings
|
| 6 |
from typing import List
|
| 7 |
from langchain_chroma import Chroma
|
|
@@ -44,6 +45,10 @@ directory_path = "./documents"
|
|
| 44 |
loader = DirectoryLoader(directory_path, glob=glob_pattern)
|
| 45 |
documents = loader.load()
|
| 46 |
|
|
|
|
|
|
|
|
|
|
|
|
|
| 47 |
system = """
|
| 48 |
Tu es un assistant spécialisé dans l'enseignement de l'enseigement Sciences Numériques et Technologie (SNT) de la classe de seconde'
|
| 49 |
Ton interlocuteur est un élève qui suit l'enseigement SNT en classe de seconde
|
|
@@ -60,7 +65,7 @@ si tu proposes un exercice, tu dois bien vérifier que toutes les notions néces
|
|
| 60 |
prompt = ChatPromptTemplate.from_messages(
|
| 61 |
[
|
| 62 |
("system", system),
|
| 63 |
-
("human", "Résumé du cours de SNT : \n {documents} \n\n Historique conversation entre l'assistant et l'élève : \n {historical} \n\n Intervention de l'élève : {question}"),
|
| 64 |
]
|
| 65 |
)
|
| 66 |
|
|
@@ -76,7 +81,7 @@ class GraphState(TypedDict):
|
|
| 76 |
messages: Annotated[list[AnyMessage], add_messages]
|
| 77 |
|
| 78 |
def chatbot(state : GraphState):
|
| 79 |
-
question = prompt.invoke({'historical': format_historical(state['messages']), 'documents':documents , 'question' : state['messages'][-1].content[0]['text']})
|
| 80 |
q = question.messages[0].content + question.messages[1].content
|
| 81 |
if len(state['messages'][-1].content) > 1 :
|
| 82 |
response = llm.invoke([HumanMessage(
|
|
|
|
| 2 |
from langchain_google_genai import ChatGoogleGenerativeAI
|
| 3 |
from langchain_community.document_loaders import DirectoryLoader
|
| 4 |
from langchain_text_splitters import CharacterTextSplitter
|
| 5 |
+
from langchain_community.document_loaders import PyPDFLoader
|
| 6 |
from langchain_huggingface import HuggingFaceEmbeddings
|
| 7 |
from typing import List
|
| 8 |
from langchain_chroma import Chroma
|
|
|
|
| 45 |
loader = DirectoryLoader(directory_path, glob=glob_pattern)
|
| 46 |
documents = loader.load()
|
| 47 |
|
| 48 |
+
file_path = "./documents/prog.pdf"
|
| 49 |
+
loader = PyPDFLoader(file_path)
|
| 50 |
+
prog = loader.load()
|
| 51 |
+
|
| 52 |
system = """
|
| 53 |
Tu es un assistant spécialisé dans l'enseignement de l'enseigement Sciences Numériques et Technologie (SNT) de la classe de seconde'
|
| 54 |
Ton interlocuteur est un élève qui suit l'enseigement SNT en classe de seconde
|
|
|
|
| 65 |
prompt = ChatPromptTemplate.from_messages(
|
| 66 |
[
|
| 67 |
("system", system),
|
| 68 |
+
("human", "Programme officiel de SNT: \n {prog} \n\n" "Résumé du cours de SNT : \n {documents} \n\n Historique conversation entre l'assistant et l'élève : \n {historical} \n\n Intervention de l'élève : {question}"),
|
| 69 |
]
|
| 70 |
)
|
| 71 |
|
|
|
|
| 81 |
messages: Annotated[list[AnyMessage], add_messages]
|
| 82 |
|
| 83 |
def chatbot(state : GraphState):
|
| 84 |
+
question = prompt.invoke({'historical': format_historical(state['messages']),'prog':prog, 'documents':documents , 'question' : state['messages'][-1].content[0]['text']})
|
| 85 |
q = question.messages[0].content + question.messages[1].content
|
| 86 |
if len(state['messages'][-1].content) > 1 :
|
| 87 |
response = llm.invoke([HumanMessage(
|