Spaces:
Runtime error
Runtime error
| import pandas as pd | |
| from datasets import load_dataset | |
| from transformers import pipeline | |
| from mcp.server.fastmcp import FastMCPServer | |
| # Charger dataset Hugging Face privé | |
| dataset = load_dataset("HackathonCRA/2024", split="train") | |
| df = dataset.to_pandas() | |
| # Charger Mistral | |
| mistral = pipeline("text-generation", model="mistralai/Mistral-7B-Instruct-v0.2", device_map="auto") | |
| # Créer serveur MCP | |
| server = FastMCPServer("csv_analyzer") | |
| def list_columns() -> list[str]: | |
| """Retourne la liste des colonnes disponibles dans le CSV.""" | |
| return df.columns.tolist() | |
| def filter_rows(column: str, value: str, limit: int = 5) -> list[dict]: | |
| """Retourne des lignes où column == value.""" | |
| if column not in df.columns: | |
| return [{"error": f"Colonne {column} inexistante"}] | |
| subset = df[df[column] == value].head(limit) | |
| return subset.to_dict(orient="records") | |
| def analyze_data(question: str) -> str: | |
| """Interprète les données CSV avec Mistral.""" | |
| # On résume rapidement le dataframe | |
| sample = df.head(20).to_string() | |
| prompt = f""" | |
| Voici un extrait de données tabulaires : | |
| {sample} | |
| Question: {question} | |
| Réponds de manière concise et claire. | |
| """ | |
| output = mistral(prompt, max_new_tokens=256)[0]["generated_text"] | |
| return output | |
| if __name__ == "__main__": | |
| server.run() | |