Ronaldodev commited on
Commit
58abe3c
·
1 Parent(s): 1fbd96f

gradio api

Browse files
Files changed (1) hide show
  1. app.py +39 -35
app.py CHANGED
@@ -1,42 +1,46 @@
1
- from fastapi import FastAPI, HTTPException
2
- from pydantic import BaseModel
3
  from gradio_client import Client
4
 
5
- # Charger le modèle depuis HuggingFace
6
  client = Client("Qwen/Qwen1.5-72B-Chat")
7
 
8
  # Prompt système
9
- system_prompt = (
10
- "Tu es un assistant médical spécialisé dans le domaine du diabète. "
11
- "Donne des réponses claires, précises et utiles. D'abord ta première phrase sera de donner le type de diabète. "
12
- "Evite de dire que tu n'es pas médécin. Donne lui des recommandations pour qu'il n'attrape pas le diabète s'il ne l'a pas, "
13
- "et aussi s'il l'a. Aussi le type de diabète sans oublier de préciser le niveau de son diabète : normale, élevé, "
14
- "hyperglycémie, post-prandiale, etc ... Avant de commencer, faut toujours évaluer et dire le niveau d'atteinte de diabète sur en %."
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
15
  )
16
 
17
- # App FastAPI
18
- app = FastAPI()
19
-
20
- # Modèle pour recevoir la requête
21
- class QuestionInput(BaseModel):
22
- question: str
23
- historique: list = []
24
-
25
- # Endpoint API pour interagir avec le modèle
26
- @app.post("/ask")
27
- async def ask_question(data: QuestionInput):
28
- try:
29
- response = client.predict(
30
- data.question,
31
- data.historique,
32
- system_prompt,
33
- api_name="/model_chat"
34
- )
35
- new_history = response[1]
36
- reponse_texte = new_history[-1][1]
37
- return {"response": reponse_texte, "history": new_history}
38
- except Exception as e:
39
- raise HTTPException(status_code=500, detail=str(e))
40
- if __name__ == "__main__":
41
- import uvicorn
42
- uvicorn.run(app, host="0.0.0.0", port=7860)
 
1
+ import gradio as gr
 
2
  from gradio_client import Client
3
 
4
+ # Chargement du modèle
5
  client = Client("Qwen/Qwen1.5-72B-Chat")
6
 
7
  # Prompt système
8
+ system_prompt = "Tu es un assistant médical spécialisé dans le domaine du diabète. Donne des réponses claires, précises et utiles.D'abord ta première phrase sera de donner le type de diabète.Evite de dire que tu n'es pas médécin. Donne lui des recommendations pour qu'il n'attrape pas le diabète s'il n'a pas et aussi s'il a. Aussi le type de diabète sans oublié de préciser le niveau de son diabète : normale, élevé, hyperglycémie, post-prandile, etc ... Avant de commencer, faut toujours évaluer et dire le niveau d'atteinte de diabète sur en %."
9
+
10
+ # Fonction principale pour interagir avec le modèle
11
+ def repondre(question, historique):
12
+ if historique is None:
13
+ historique = []
14
+
15
+ # Appel au modèle
16
+ response = client.predict(
17
+ question,
18
+ historique,
19
+ system_prompt,
20
+ api_name="/model_chat"
21
+ )
22
+
23
+ # Récupération de l'historique mis à jour
24
+ new_history = response[1]
25
+
26
+ # Extraire la dernière réponse
27
+ reponse_texte = new_history[-1][1]
28
+ return reponse_texte, new_history
29
+
30
+ # Interface Gradio
31
+ demo = gr.Interface(
32
+ fn=repondre,
33
+ inputs=[
34
+ gr.Textbox(label="Votre question médical", placeholder="Ex : Mon taux de glycémie actuel est de 5.4 mmol/L avec un rythme cardique de 72bpm et une pression artérielle 120/80."),
35
+ gr.State([])
36
+ ],
37
+ outputs=[
38
+ gr.Textbox(label="Réponse de l'assistant"),
39
+ gr.State()
40
+ ],
41
+ title="Assistant Médical – Expert en Test diabétique",
42
+ description="Posez vos questions médicales concernant le diabète. L'assistant vous répondra avec des conseils clairs, utiles et adaptés."
43
  )
44
 
45
+ # Lancer l'app
46
+ demo.launch()