Spaces:
Runtime error
Runtime error
import gradio as gr | |
import pandas as pd | |
from transformers import AutoModelForCausalLM, AutoTokenizer | |
# Load the dataset | |
df = pd.read_csv("subdirectory_name/climate_data.csv") | |
# Load the LLaMa model and tokenizer | |
model_name = "huggingface/llama" # Replace with actual LLaMa model | |
tokenizer = AutoTokenizer.from_pretrained(model_name) | |
model = AutoModelForCausalLM.from_pretrained(model_name) | |
# Function to get model responses | |
def ask_llama(question): | |
inputs = tokenizer(question, return_tensors="pt") | |
outputs = model.generate(inputs.input_ids, max_length=100) | |
return tokenizer.decode(outputs[0], skip_special_tokens=True) | |
# Function to fetch data from the dataset | |
def fetch_data_from_dataset(query, df): | |
if "year" in query: | |
year = int(query.split("year")[-1].strip()) | |
return df[df['year'] == year].to_dict(orient="records") | |
if "scenario" in query: | |
scenario = query.split("scenario")[-1].strip() | |
columns = [col for col in df.columns if scenario in col] | |
return df[columns].to_dict(orient="records") | |
return "Sorry, I couldn't find any relevant data." | |
# Combined function to answer user questions | |
def answer_question(query): | |
# Step 1: Get response from LLaMa model | |
llama_response = ask_llama(query) | |
# Step 2: Fetch data based on response | |
data_response = fetch_data_from_dataset(llama_response, df) | |
return data_response | |
# Define the Gradio interface | |
interface = gr.Interface(fn=answer_question, inputs="text", outputs="text", | |
title="Climate Data Explorer", | |
description="Ask questions about climate data") | |
# Launch the app | |
interface.launch() | |