Spaces:
Sleeping
Sleeping
| import gradio as gr | |
| from langgraphe_app import app # importe ton graphe déjà compilé | |
| def print_stream(stream): | |
| """Affiche le flux de messages de manière lisible""" | |
| print("\n" + "="*60) | |
| for s in stream: | |
| message = s["messages"][-1] | |
| if hasattr(message, 'pretty_print'): | |
| message.pretty_print() | |
| else: | |
| print(message) | |
| print("-"*60) | |
| # def run_research(user_query: str): | |
| # """Fonction helper pour lancer une recherche""" | |
| # inputs = {"messages": [("user", user_query)]} | |
| # print_stream(app.stream(inputs, stream_mode="values")) | |
| def run_research(user_query: str) -> str: | |
| """Exécute le graphe et renvoie le texte final pour Gradio.""" | |
| inputs = {"messages": [("user", user_query)]} | |
| stream = app.stream(inputs, stream_mode="values") | |
| last_state = None | |
| # on lit le stream mais on n'affiche pas dans le terminal | |
| for s in stream: | |
| last_state = s | |
| # le message final | |
| final_message = last_state["messages"][-1] | |
| # Retourne le texte pour l’UI Gradio | |
| try: | |
| return final_message.content | |
| except: | |
| return str(final_message) | |
| with gr.Blocks(title="AI Research Assistant") as demo: | |
| gr.Markdown("# 🔍 AI Research Assistant\nPipeline LangGraph pour la recherche automatisée") | |
| input_box = gr.Textbox( | |
| label="Votre sujet de recherche", | |
| placeholder="Ex : Impact de l'IA sur le marché du travail" | |
| ) | |
| output_box = gr.TextArea( | |
| label="Rapport généré", | |
| lines=20 | |
| ) | |
| run_button = gr.Button("Lancer la recherche") | |
| run_button.click(run_research, inputs=input_box, outputs=output_box) | |
| if __name__ == "__main__": | |
| # demo.launch(server_name="0.0.0.0", server_port=8000) | |
| # demo.launch(debug=True, share=True) | |
| demo.launch(debug=True) | |
| # p-:8P^AduGVf2hU |