Spaces:
Running
Running
Upload main.py
Browse files
main.py
CHANGED
|
@@ -13,9 +13,13 @@ from fastapi import FastAPI
|
|
| 13 |
from fastapi.middleware.cors import CORSMiddleware
|
| 14 |
from pydantic import BaseModel
|
| 15 |
from database import create_table, return_title, return_exercise
|
|
|
|
| 16 |
|
| 17 |
create_table()
|
| 18 |
|
|
|
|
|
|
|
|
|
|
| 19 |
class Request(BaseModel):
|
| 20 |
enonce : str
|
| 21 |
code : str
|
|
@@ -35,7 +39,7 @@ load_dotenv()
|
|
| 35 |
os.environ["GROQ_API_KEY"] = os.getenv('GROQ_API_KEY')
|
| 36 |
os.environ["TOKENIZERS_PARALLELISM"] = "false"
|
| 37 |
|
| 38 |
-
llm = ChatGroq(model="llama-3.1-
|
| 39 |
#llm = ChatGroq(model="mixtral-8x7b-32768", temperature=0.5)
|
| 40 |
exercise = ""
|
| 41 |
system = """
|
|
@@ -68,11 +72,12 @@ class GraphState(TypedDict):
|
|
| 68 |
|
| 69 |
def chatbot(state : GraphState):
|
| 70 |
msg_test = ""
|
| 71 |
-
|
|
|
|
| 72 |
msg_test = "Le code de l'élève n'a pas encore été testé avec les tests unitaires"
|
| 73 |
-
elif
|
| 74 |
msg_test = "Le code de l'élève a bien été testé avec les tests unitaires, il a échoué à au moins un test unitaire"
|
| 75 |
-
elif
|
| 76 |
msg_test = "Le code de l'élève a bien été testé avec les tests unitaires, il a réussi tous les tests unitaires"
|
| 77 |
response = chain.invoke({'enonce': state['enonce'].content, 'code' : state['messages'][-1].content, 'test_unit' : msg_test} )
|
| 78 |
return {"messages": [AIMessage(content=response)]}
|
|
@@ -87,7 +92,7 @@ app_chatbot = workflow.compile()
|
|
| 87 |
|
| 88 |
@app.post('/request')
|
| 89 |
def request(req: Request):
|
| 90 |
-
rep = app_chatbot.invoke({"enonce" : HumanMessage(content=req.enonce),"messages": [HumanMessage(content=req.code)], "res_test" :
|
| 91 |
return {"response":rep['messages'][-1].content}
|
| 92 |
|
| 93 |
|
|
|
|
| 13 |
from fastapi.middleware.cors import CORSMiddleware
|
| 14 |
from pydantic import BaseModel
|
| 15 |
from database import create_table, return_title, return_exercise
|
| 16 |
+
import logging
|
| 17 |
|
| 18 |
create_table()
|
| 19 |
|
| 20 |
+
logger = logging.getLogger('uvicorn.error')
|
| 21 |
+
logger.setLevel(logging.DEBUG)
|
| 22 |
+
|
| 23 |
class Request(BaseModel):
|
| 24 |
enonce : str
|
| 25 |
code : str
|
|
|
|
| 39 |
os.environ["GROQ_API_KEY"] = os.getenv('GROQ_API_KEY')
|
| 40 |
os.environ["TOKENIZERS_PARALLELISM"] = "false"
|
| 41 |
|
| 42 |
+
llm = ChatGroq(model="llama-3.1-70b-versatile", temperature=0.5)
|
| 43 |
#llm = ChatGroq(model="mixtral-8x7b-32768", temperature=0.5)
|
| 44 |
exercise = ""
|
| 45 |
system = """
|
|
|
|
| 72 |
|
| 73 |
def chatbot(state : GraphState):
|
| 74 |
msg_test = ""
|
| 75 |
+
res_test =state['res_test'].content
|
| 76 |
+
if res_test == '0' :
|
| 77 |
msg_test = "Le code de l'élève n'a pas encore été testé avec les tests unitaires"
|
| 78 |
+
elif res_test == '1':
|
| 79 |
msg_test = "Le code de l'élève a bien été testé avec les tests unitaires, il a échoué à au moins un test unitaire"
|
| 80 |
+
elif res_test == '2':
|
| 81 |
msg_test = "Le code de l'élève a bien été testé avec les tests unitaires, il a réussi tous les tests unitaires"
|
| 82 |
response = chain.invoke({'enonce': state['enonce'].content, 'code' : state['messages'][-1].content, 'test_unit' : msg_test} )
|
| 83 |
return {"messages": [AIMessage(content=response)]}
|
|
|
|
| 92 |
|
| 93 |
@app.post('/request')
|
| 94 |
def request(req: Request):
|
| 95 |
+
rep = app_chatbot.invoke({"enonce" : HumanMessage(content=req.enonce),"messages": [HumanMessage(content=req.code)], "res_test" : HumanMessage(content=req.res_test)}, stream_mode="values")
|
| 96 |
return {"response":rep['messages'][-1].content}
|
| 97 |
|
| 98 |
|