Matthias Mohr commited on
Commit
54447d6
1 Parent(s): 60b99bb

Add data sources

Browse files
Files changed (3) hide show
  1. fiboa/app.py +12 -4
  2. fiboa/data.py +22 -0
  3. requirements.txt +1 -1
fiboa/app.py CHANGED
@@ -1,4 +1,5 @@
1
  import ibis
 
2
  import streamlit as st
3
 
4
  from langchain.chains import create_sql_query_chain
@@ -7,11 +8,18 @@ from langchain_core.prompts.prompt import PromptTemplate
7
  from langchain_openai import ChatOpenAI
8
 
9
  from query import execute_prompt
 
 
 
 
 
 
10
 
11
  geoparquet = "https://data.source.coop/fiboa/be-vlg/be_vlg.parquet"
12
- con = ibis.duckdb.connect("duck.db", extensions = ["spatial"])
13
- #con.raw_sql(f'CREATE OR REPLACE VIEW crops AS SELECT *, ST_GEOMFROMWKB(geometry) AS "geometry" FROM read_parquet("{geoparquet}")')
14
- crops = con.read_parquet(geoparquet, "crops").cast({"geometry": "geometry"})
 
15
 
16
  st.set_page_config(
17
  page_title="fiboaGPT",
@@ -50,7 +58,7 @@ llm = ChatOpenAI(model="gpt-4o-mini", temperature=0, api_key=st.secrets["OPENAI_
50
 
51
  # Create the SQL query chain with the custom prompt
52
  db = SQLDatabase.from_uri("duckdb:///duck.db", view_support=True)
53
- chain = create_sql_query_chain(llm, db, prompt=new_prompt, k=11)
54
 
55
  '''
56
  Ask me about fiboa data! Request "a map" to get map output, or table for tabular output, e.g.
 
1
  import ibis
2
+ import os
3
  import streamlit as st
4
 
5
  from langchain.chains import create_sql_query_chain
 
8
  from langchain_openai import ChatOpenAI
9
 
10
  from query import execute_prompt
11
+ # from data import DATA
12
+
13
+ if os.path.exists("duck.db"):
14
+ os.remove("duck.db")
15
+ if os.path.exists("duck.db.wal"):
16
+ os.remove("duck.db.wal")
17
 
18
  geoparquet = "https://data.source.coop/fiboa/be-vlg/be_vlg.parquet"
19
+ con = ibis.connect("duckdb://duck.db", extensions = ["spatial"])
20
+ con.read_parquet(geoparquet, "crops").cast({"geometry": "geometry"})
21
+ # for code, url in DATA.items():
22
+ # tbl = con.read_parquet(url, code).cast({"geometry": "geometry"})
23
 
24
  st.set_page_config(
25
  page_title="fiboaGPT",
 
58
 
59
  # Create the SQL query chain with the custom prompt
60
  db = SQLDatabase.from_uri("duckdb:///duck.db", view_support=True)
61
+ chain = create_sql_query_chain(llm, db, prompt=new_prompt, k=100)
62
 
63
  '''
64
  Ask me about fiboa data! Request "a map" to get map output, or table for tabular output, e.g.
fiboa/data.py ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ DATA = {
2
+ "at":"https://data.source.coop/fiboa/austria/inspire_referenzen_2021.parquet",
3
+ "de_bb":"https://data.source.coop/fiboa/de-bb/dfbk.parquet",
4
+ "de_nds":"https://data.source.coop/fiboa/de-nds/FB_NDS.parquet",
5
+ "de_nrw":"https://data.source.coop/fiboa/de-nrw/LFK-AKTI.parquet",
6
+ "de_th":"https://data.source.coop/fiboa/de-th/de-th.parquet",
7
+ "de_sh":"https://data.source.coop/fiboa/de-sh/Feldbloecke_2024.parquet",
8
+ "ec_si":"https://data.source.coop/fiboa/slovenia-ec/data/slovenia_eurocrops_2021.parquet",
9
+ "ec_lv":"https://data.source.coop/fiboa/ec-lv/ec_lv.parquet",
10
+ "fi":"https://data.source.coop/fiboa/finland/finland.parquet",
11
+ "ec_fr":"https://data.source.coop/fiboa/france-ec/france_eurocrops_2018.parquet",
12
+ "nl":"https://data.source.coop/fiboa/nl-ref/nl_ref.parquet",
13
+ "nl_crop":"https://data.source.coop/fiboa/nl-crop/nl_crop.parquet",
14
+ "ai4sf":"https://data.source.coop/fiboa/ai4sf/ai4sf.parquet",
15
+ "pt":"https://data.source.coop/fiboa/portugal/Continente.parquet",
16
+ "be_vlg":"https://data.source.coop/fiboa/be-vlg/be_vlg.parquet",
17
+ "br-ba-lem":"https://data.source.coop/fiboa/br-ba-lem/br-ba-lem.parquet",
18
+ "dk":"https://data.source.coop/fiboa/denmark//denmark.parquet",
19
+ "de_sax":"https://data.source.coop/fiboa/de-sax/de-sax.parquet",
20
+ "de_mv":"https://data.source.coop/fiboa/de-mv/de-mv.parquet",
21
+ "de_sl":"https://data.source.coop/fiboa/de-sl/de-sl.parquet"
22
+ }
requirements.txt CHANGED
@@ -1,4 +1,4 @@
1
- duckdb==1.1.0
2
  pandas==2.2.2
3
  git+https://github.com/eodaGmbH/py-maplibregl
4
  leafmap[maplibre]
 
1
+ duckdb==1.0.0
2
  pandas==2.2.2
3
  git+https://github.com/eodaGmbH/py-maplibregl
4
  leafmap[maplibre]