File size: 1,573 Bytes
1fbd96f
 
909f464
 
1fbd96f
909f464
 
 
1fbd96f
 
 
 
 
 
909f464
 
1fbd96f
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
from fastapi import FastAPI, HTTPException
from pydantic import BaseModel
from gradio_client import Client

# Charger le modèle depuis HuggingFace
client = Client("Qwen/Qwen1.5-72B-Chat")

# Prompt système
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 recommandations pour qu'il n'attrape pas le diabète s'il ne l'a pas, "
    "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é, "
    "hyperglycémie, post-prandiale, etc ... Avant de commencer, faut toujours évaluer et dire le niveau d'atteinte de diabète sur en %."
)

# App FastAPI
app = FastAPI()

# Modèle pour recevoir la requête
class QuestionInput(BaseModel):
    question: str
    historique: list = []

# Endpoint API pour interagir avec le modèle
@app.post("/ask")
async def ask_question(data: QuestionInput):
    try:
        response = client.predict(
            data.question,
            data.historique,
            system_prompt,
            api_name="/model_chat"
        )
        new_history = response[1]
        reponse_texte = new_history[-1][1]
        return {"response": reponse_texte, "history": new_history}
    except Exception as e:
        raise HTTPException(status_code=500, detail=str(e))
if __name__ == "__main__":
    import uvicorn
    uvicorn.run(app, host="0.0.0.0", port=7860)