Spaces:
Running
Running
Ilyas KHIAT
commited on
Commit
•
be13230
1
Parent(s):
5e72909
whatif
Browse files
main.py
CHANGED
@@ -133,11 +133,21 @@ async def generate(user_input: UserInput):
|
|
133 |
except Exception as e:
|
134 |
return {"message": str(e)}
|
135 |
|
136 |
-
|
137 |
@app.post("/whatif")
|
138 |
async def generate_whatif(whatif_input: WhatifInput):
|
139 |
try:
|
140 |
print(whatif_input)
|
141 |
return generate_whatif_stream(whatif_input["question"],whatif_input["response"])
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
142 |
except Exception as e:
|
143 |
return {"message": str(e)}
|
|
|
133 |
except Exception as e:
|
134 |
return {"message": str(e)}
|
135 |
|
136 |
+
|
137 |
@app.post("/whatif")
|
138 |
async def generate_whatif(whatif_input: WhatifInput):
|
139 |
try:
|
140 |
print(whatif_input)
|
141 |
return generate_whatif_stream(whatif_input["question"],whatif_input["response"])
|
142 |
+
except Exception as e:
|
143 |
+
return {"message": str(e)}
|
144 |
+
|
145 |
+
@app.post("/whatif_chat")
|
146 |
+
async def generate_whatif_chat(user_input: UserInput):
|
147 |
+
try:
|
148 |
+
if user_input.stream:
|
149 |
+
return StreamingResponse(generate_stream_whatif_chat(user_input.query,user_input.messages,stream=True),media_type="application/json")
|
150 |
+
else:
|
151 |
+
return generate_stream_whatif_chat(user_input.query,user_input.messages,stream=False)
|
152 |
except Exception as e:
|
153 |
return {"message": str(e)}
|
prompt.py
CHANGED
@@ -70,6 +70,19 @@ Présente la réponse de la façon suivante :
|
|
70 |
|
71 |
'''
|
72 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
73 |
summary_text = '''
|
74 |
Ce récit d'anticipation, se déroulant principalement en 2038, explore les tensions entre l'art, la technologie et les limites planétaires à travers une exposition visionnaire des œuvres de René Magritte. Anne-Hélène, nouvelle directrice des Musées Royaux des Beaux-Arts de Belgique, organise cette exposition avec plusieurs personnages clés comme Tristan, un guide discret mais observateur, Karla Madrigale, PDG de la start-up IA SIGNATURE, et Jad Wahid, un artiste engagé. L'exposition vise à confronter les œuvres de Magritte aux limites planétaires pour inspirer de nouvelles façons de penser la place du vivant et de l'art dans un futur dominé par l'IA. Cependant, un incident dramatique se produit lorsque Karla, en interaction avec une installation immersive, tombe dans le coma à la suite d'une réaction toxique des plantes. Les événements soulèvent des questions sur l'éthique, la responsabilité et les limites de l'IA et des technologies immersives. Le récit invite à réfléchir sur le potentiel et les risques de l'IA dans l'art et la société.
|
75 |
'''
|
|
|
70 |
|
71 |
'''
|
72 |
|
73 |
+
template_whatif_response = '''
|
74 |
+
Vous êtes un assistant IA très intelligent qui connaît tout sur le livre {name_book} de {writer}.
|
75 |
+
Vous allez répondre à la question de l'utilisateur, qui portera sur ce livre. Vous répondrez rigoureusement dans le style d'écriture de la nouvelle. Vos réponses seront courtes.
|
76 |
+
|
77 |
+
**Historique des messages :** {messages}
|
78 |
+
|
79 |
+
**l'utilisateur :** {query}
|
80 |
+
|
81 |
+
**Contexte récupéré (si pertinent pour votre réponse) :** {context}
|
82 |
+
|
83 |
+
**Sortie attendue :** Votre réponse doit être bien formatée, plaisante à lire et inclure des émojis.
|
84 |
+
'''
|
85 |
+
|
86 |
summary_text = '''
|
87 |
Ce récit d'anticipation, se déroulant principalement en 2038, explore les tensions entre l'art, la technologie et les limites planétaires à travers une exposition visionnaire des œuvres de René Magritte. Anne-Hélène, nouvelle directrice des Musées Royaux des Beaux-Arts de Belgique, organise cette exposition avec plusieurs personnages clés comme Tristan, un guide discret mais observateur, Karla Madrigale, PDG de la start-up IA SIGNATURE, et Jad Wahid, un artiste engagé. L'exposition vise à confronter les œuvres de Magritte aux limites planétaires pour inspirer de nouvelles façons de penser la place du vivant et de l'art dans un futur dominé par l'IA. Cependant, un incident dramatique se produit lorsque Karla, en interaction avec une installation immersive, tombe dans le coma à la suite d'une réaction toxique des plantes. Les événements soulèvent des questions sur l'éthique, la responsabilité et les limites de l'IA et des technologies immersives. Le récit invite à réfléchir sur le potentiel et les risques de l'IA dans l'art et la société.
|
88 |
'''
|
rag.py
CHANGED
@@ -186,6 +186,29 @@ def generate_whatif_stream(question:str,response:str, stream:bool = True) -> str
|
|
186 |
return llm_chain.stream({"question":question,"response":response,"context":context})
|
187 |
else:
|
188 |
return llm_chain.invoke({"question":question,"response":response,"context":context})
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
189 |
except Exception as e:
|
190 |
print(e)
|
191 |
return False
|
|
|
186 |
return llm_chain.stream({"question":question,"response":response,"context":context})
|
187 |
else:
|
188 |
return llm_chain.invoke({"question":question,"response":response,"context":context})
|
189 |
+
except Exception as e:
|
190 |
+
print(e)
|
191 |
+
return False
|
192 |
+
|
193 |
+
def generate_stream_whatif_chat(query:str,messages = [], model = "gpt-4o-mini", max_tokens = 500, temperature = 1,index_name="",stream=True,vector_store=None):
|
194 |
+
try:
|
195 |
+
print("init chat")
|
196 |
+
print("init template")
|
197 |
+
prompt = PromptTemplate.from_template(template_whatif_response)
|
198 |
+
|
199 |
+
writer = "Laurent Tripied"
|
200 |
+
name_book = "Limites de l'imaginaire ou limites planétaires"
|
201 |
+
print("retreiving context")
|
202 |
+
context = retrieve_context_from_vectorestore(query)
|
203 |
+
print(f"Context: {context}")
|
204 |
+
llm_chain = prompt | llm | StrOutputParser()
|
205 |
+
|
206 |
+
print("streaming")
|
207 |
+
if stream:
|
208 |
+
return llm_chain.stream({"name_book":name_book,"writer":writer,"messages":messages,"context":context,"query":query})
|
209 |
+
else:
|
210 |
+
return llm_chain.invoke({"name_book":name_book,"writer":writer,"messages":messages,"context":context,"query":query})
|
211 |
+
|
212 |
except Exception as e:
|
213 |
print(e)
|
214 |
return False
|
requirements.txt
CHANGED
@@ -15,5 +15,6 @@ neo4j==5.24.0
|
|
15 |
itext2kg==0.0.7
|
16 |
langchain-community
|
17 |
six
|
|
|
18 |
|
19 |
pandas
|
|
|
15 |
itext2kg==0.0.7
|
16 |
langchain-community
|
17 |
six
|
18 |
+
httpx==0.27.2
|
19 |
|
20 |
pandas
|