GID_HuggingFace / app.py
jeme213's picture
Update app.py
4cbe8a4
# App.py to launch the app via hugging face
#######################################################################################################
# IMPORT
#######################################################################################################
import pandas as pd
import gradio as gr
# modules
from modules.language_model import TAPAS
##################################################################################
# Function that enables testing
##################################################################################
table_main = pd.read_csv('gadm41_DEU_1_main').astype(str)
def AskAI(ques, lv, table_main = table_main):
level = int(lv) # Currently placeholder
question = str(ques)
ans = TAPAS(question = question, table_main= table_main)
return(ans)
def AskAI_easy(ques):
Tmain = pd.read_csv('gadm41_DEU_1_main').astype(str)
Tgeom = pd.read_csv('gadm41_DEU_1_geom').astype(str)
fname = ''.join(char for char in str(ques) if char.isupper() or char.islower())
blub = str(AskAI(ques,1,Tmain))
# generate DL Links ###################################
# Geospatial Libraries
import geopandas as gpd
from shapely.wkt import loads
row = eval(blub)[0]['coordinates'][0][0] #get object
out_df = Tmain.iloc[row,:12]
out_df['geometry'] = Tgeom.iloc[row,1]
geometry_wkt = out_df['geometry']
geometry = loads(geometry_wkt)
out_gdf = gpd.GeoDataFrame(geometry=[geometry]) #
geojson_string = out_gdf.to_json()
# store File on GitHub
from github import Github
from github import Auth
github_user = "Giedeon25"
github_repo = "GID-Project"
token = "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"
# using an access token
auth = Auth.Token("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")
# First create a Github instance:
g = Github(auth=auth)
repo = g.get_repo("Giedeon25/GID-Project")
repo.create_file("data/Output/" + fname + ".json", "committing file", geojson_string, branch="main") # create File
return(blub + " ==== " + "dllink: https://github.com/Giedeon25/GID-Project/blob/main/data/Output/" + fname + ".json")
#######################################################################################
# Gradio Interface
###############################################################################
desc = 'Example: What is the Bundesland with tyhe biggest Area?'
iface = gr.Interface(fn=AskAI_easy, inputs=['text'], outputs='text', description= desc)
iface.launch()
#