Spaces:
Sleeping
Sleeping
File size: 12,017 Bytes
d7a4e38 1328c27 999cad9 1328c27 1de7e12 d7a4e38 1328c27 d7a4e38 1de7e12 d7a4e38 1948d7c bdbcb36 5d098bd bdbcb36 5d54c7e bdbcb36 f17eb40 bdbcb36 f17eb40 ce8c2d2 f17eb40 71a77a6 77e357b 28003f3 bdbcb36 acdbb29 8bc932f bdbcb36 f251670 e664082 bc01de5 bdbcb36 d1293e3 acdbb29 f5b8aa7 ed0fd21 d1293e3 8a95c68 babb003 df37481 634fbf2 babb003 bdbcb36 bee6540 7f8c43d bee6540 42d8c3c 7f8c43d ed0fd21 42d8c3c 403c928 42d8c3c 8a95c68 976b202 403c928 d1293e3 42d8c3c d1293e3 976b202 403c928 7f8c43d 403c928 3a2ad41 df37481 403c928 98eaec6 bee6540 6da491c bdbcb36 df37481 634fbf2 df37481 01b139c 827278a 3c8df63 98eaec6 3c8df63 5d098bd bdbcb36 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 |
import streamlit as st
import requests
from bs4 import BeautifulSoup
from urllib.parse import urljoin
import json
import csv
import pandas as pd
import os
from gradio_client import Client
#api_key = os.getenv('groq')
def parse_links_and_content(ort):
base_url = "https://vereine-in-deutschland.net"
all_links = []
# Konstruiere die vollständige URL
initial_url = f"{base_url}/vereine/Bayern/{ort}/"
try:
# Senden der Anfrage an die initiale URL
response = requests.get(initial_url)
response.raise_for_status() # Überprüfen, ob die Anfrage erfolgreich war
# Parse the HTML content using BeautifulSoup
soup = BeautifulSoup(response.content, 'html.parser')
# Ermittle die letzte Seite
link_element = soup.select_one('li.page-item:nth-child(8) > a:nth-child(1)')
if link_element and 'href' in link_element.attrs:
href = link_element['href']
# Extrahiere die letzten beiden Zeichen der URL
last_two_chars = href[-2:]
# Konvertiere die letzten beiden Zeichen in einen Integer
last_two_chars_int = int(last_two_chars)
else:
last_two_chars_int = 1 # Falls die letzte Seite nicht gefunden wird, nimm an, dass es nur eine Seite gibt
# Schleife durch alle Seiten und sammle Links
for page_number in range(1, last_two_chars_int + 1):
page_url = f"{base_url}/vereine/Bayern/{ort}/p/{page_number}"
response = requests.get(page_url)
response.raise_for_status()
soup = BeautifulSoup(response.content, 'html.parser')
target_div = soup.select_one('div.row-cols-1:nth-child(4)')
if target_div:
texts = [a.text for a in target_div.find_all('a', href=True)]
all_links.extend(texts)
else:
st.write(f"Target div not found on page {page_number}")
except Exception as e:
return str(e), []
all_links = all_links[0::2]
return all_links
def scrape_links(links):
contact_details = []
client = Client("mgokg/PerplexicaApi")
for verein in links:
result = client.predict(
prompt=f"{verein}",
api_name="/parse_links"
)
contact_details.append(result)
return contact_details
# Speichere die JSON-Daten in eine CSV-Datei
def save_to_csv(data, filename):
keys = data[0].keys()
with open(filename, 'w', newline='', encoding='utf-8') as output_file:
dict_writer = csv.DictWriter(output_file, fieldnames=keys)
dict_writer.writeheader()
dict_writer.writerows(data)
# Streamlit App
st.title("Vereinsinformationen abrufen")
ort_input = st.text_input("Ort", placeholder="Gib den Namen des Ortes ein")
if st.button("Senden"):
links = parse_links_and_content(ort_input)
contact_details = scrape_links(links)
json_data = [json.loads(item) for item in contact_details]
# Zeige die Ergebnisse an
st.json(json_data)
# Speichere die Daten in einer CSV-Datei
save_to_csv(json_data, 'contact_details.csv')
# Bereitstellung des Download-Links
with open('contact_details.csv', 'rb') as file:
st.download_button(
label="CSV-Datei herunterladen",
data=file,
file_name='contact_details.csv',
mime='text/csv'
)
'''
import streamlit as st
#import sounddevice as sd
import numpy as np
import wavio
import speech_recognition as sr
st.title("Audio Recorder und Transkription")
# Aufnahmeparameter
duration = st.slider("Aufnahmedauer (Sekunden)", 1, 10, 5)
fs = 44100 # Abtastrate
if st.button("Aufnahme starten"):
st.write("Aufnahme läuft...")
#recording = sd.rec(int(duration * fs), samplerate=fs, channels=2)
#sd.wait() # Aufnahme beenden
# Speichern der Aufnahme
wavio.write("aufnahme.wav", recording, fs, sampwidth=2)
st.write("Aufnahme abgeschlossen!")
# Transkription
recognizer = sr.Recognizer()
with sr.AudioFile("aufnahme.wav") as source:
audio_data = recognizer.record(source)
try:
text = recognizer.recognize_google(audio_data, language="de-DE")
st.write("Transkribierter Text:")
st.write(text)
except sr.UnknownValueError:
st.write("Audio konnte nicht erkannt werden.")
except sr.RequestError as e:
st.write(f"Fehler bei der Anfrage an den Google Speech Recognition Service: {e}")
# Hinweis für Benutzer
st.write("Klicke auf 'Aufnahme starten', um die Aufnahme zu beginnen.")
import streamlit as st
import pydub
import speech_recognition as sr
from io import BytesIO
st.title("Audio Recorder und Transkription")
# Audioaufnahme
audio_file = st.file_uploader("Lade eine Audiodatei hoch", type=["wav", "mp3"])
if audio_file is not None:
audio_bytes = audio_file.read()
audio = pydub.AudioSegment.from_file(BytesIO(audio_bytes))
# Audio in das richtige Format konvertieren
audio = audio.set_frame_rate(16000).set_channels(1).set_sample_width(2)
audio_bytes = audio.raw_data
# Audio transkribieren
recognizer = sr.Recognizer()
audio_source = sr.AudioData(audio_bytes, frame_rate=16000, sample_width=2, channels=1)
try:
text = recognizer.recognize_google(audio_source)
st.write("Transkribierter Text:")
st.write(text)
except sr.UnknownValueError:
st.write("Audio konnte nicht erkannt werden.")
except sr.RequestError as e:
st.write(f"Fehler bei der Anfrage an den Google Speech Recognition Service: {e}")
# Hinweis für Benutzer
st.write("Lade eine Audiodatei hoch, um sie zu transkribieren.")
import streamlit as st
from streamlit_webrtc import webrtc_streamer, AudioProcessorBase, WebRtcMode
class AudioProcessor(AudioProcessorBase):
def recv(self, frame):
# Hier kannst du die Audioverarbeitung hinzufügen
return frame
st.title("Audio Recorder")
webrtc_ctx = webrtc_streamer(
key="audio",
mode=WebRtcMode.SENDRECV,
audio_processor_factory=AudioProcessor,
media_stream_constraints={"audio": True},
async_processing=True,
)
if webrtc_ctx.state.playing:
st.write("Recording...")
else:
st.write("Click on Start to record audio.")
import streamlit as st
import os
import time
import pandas as pd
from pandasai import SmartDatalake
from pandasai import SmartDataframe
from pandasai.responses.streamlit_response import StreamlitResponse
import numpy as np
#from pandasai import Agent
import json
import matplotlib.pyplot as plt
os.environ['PANDASAI_API_KEY'] = "$2a$10$2s0v3C29vItNS2CO4QX10OV51/OONFCUNa4e9EU90w2Gozw88f4vK"
st.set_page_config(page_title="SAP Data Analysis", layout="wide")
st.image('Pandas-AI-Logo.png', caption=None)
uploaded_file = st.file_uploader("Upload CSV data for analysis", type=['csv'])
#uploaded_file = st.file_uploader("Upload EXcel data for analysis", type=['xlsx'])
df1 = ""
sdf = ""
data = [{"Feb 24":"","1.":"Do","2.":"Fr","3.":"Sa","4.":"So","5.":"Mo","6.":"Di","7.":"Mi","8.":"Do","9.":"Fr","10.":"Sa","11.":"So","12.":"Mo","13.":"Di","14.":"Mi","15.":"Do","16.":"Fr","17.":"Sa","18.":"So","19.":"Mo","20.":"Di","21.":"Mi","22.":"Do","23.":"Fr","24.":"Sa","25.":"So","26.":"Mo","27.":"Di","28.":"Mi","29.":"Do"},{"Feb 24":"Standke Steffen","1.":"F","2.":"F","3.":"","4.":"","5.":"","6.":"","7.":"","8.":"","9.":"","10.":"","11.":"","12.":"","13.":"","14.":"UA","15.":"UA","16.":"","17.":"SD","18.":"SD","19.":"","20.":"","21.":"","22.":"","23.":"","24.":"","25.":"","26.":"","27.":"","28.":"","29.":""},{"Feb 24":"Will Susanne","1.":"","2.":"TZ","3.":"","4.":"","5.":"UA","6.":"","7.":"","8.":"","9.":"TZ","10.":"","11.":"","12.":"","13.":"","14.":"","15.":"","16.":"TZ","17.":"","18.":"","19.":"","20.":"","21.":"","22.":"","23.":"TZ","24.":"","25.":"","26.":"","27.":"","28.":"","29.":""},{"Feb 24":"Raab Julia","1.":"TZ","2.":"TZ","3.":"","4.":"","5.":"","6.":"","7.":"","8.":"TZ","9.":"TZ","10.":"BLOCKER","11.":"","12.":"Ü","13.":"Ü","14.":"Ü","15.":"TZ","16.":"TZ","17.":"BLOCKER","18.":"","19.":"","20.":"","21.":"","22.":"TZ","23.":"TZ","24.":"","25.":"SD","26.":"","27.":"","28.":"","29.":"TZ"},{"Feb 24":"Eckert Marion","1.":"","2.":"","3.":"","4.":"","5.":"","6.":"","7.":"","8.":"","9.":"Ü","10.":"","11.":"","12.":"S","13.":"S","14.":"S","15.":"S","16.":"S","17.":"","18.":"","19.":"","20.":"","21.":"","22.":"","23.":"","24.":"","25.":"","26.":"S","27.":"S","28.":"S","29.":"S"},{"Feb 24":"Meder, Milena","1.":"","2.":"","3.":"","4.":"","5.":"","6.":"","7.":"","8.":"","9.":"","10.":"","11.":"","12.":"F","13.":"F","14.":"","15.":"F","16.":"F","17.":"","18.":"","19.":"","20.":"","21.":"","22.":"","23.":"","24.":"","25.":"","26.":"Voloreise","27.":"","28.":"","29.":""},{"Feb 24":"Despang Angelika","1.":"","2.":"","3.":"SD","4.":"","5.":"","6.":"","7.":"","8.":"","9.":"","10.":"","11.":"","12.":"UA","13.":"UA","14.":"UA","15.":"","16.":"","17.":"","18.":"","19.":"F","20.":"F","21.":"F","22.":"F","23.":"F","24.":"","25.":"","26.":"","27.":"","28.":"","29.":""},{"Feb 24":"Heike Beudert","1.":"TZ","2.":"0,5 U","3.":"","4.":"","5.":"TZ","6.":"","7.":"","8.":"","9.":"","10.":"SD","11.":"SD","12.":"UA","13.":"UA","14.":"TZ","15.":"TZ","16.":"TZ","17.":"","18.":"","19.":"TZ","20.":"TZ","21.":"TZ","22.":"TZ","23.":"TZ","24.":"","25.":"","26.":"F","27.":"F","28.":"F","29.":"F"},{"Feb 24":"Borst Benedikt","1.":"","2.":"","3.":"","4.":"SD","5.":"F","6.":"F","7.":"F","8.":"F","9.":"F","10.":"BLOCKER","11.":"","12.":"UA","13.":"UA","14.":"F","15.":"","16.":"","17.":"","18.":"","19.":"","20.":"","21.":"","22.":"","23.":"","24.":"BLOCKER","25.":"","26.":"","27.":"","28.":"","29.":""}]
#df = pd.DataFrame(data)
#sdf = SmartDataframe(df)
#df1
if uploaded_file is not None:
#Dateien im CSV Format
df1 = pd.read_csv(uploaded_file)
# Dateien im XLSX Format
#df1 = pd.read_excel(uploaded_file, sheet_name=NONE)
#st.table(df1)
df1 = pd.DataFrame(df1)
st.success("Daten erfolgreich geladen!")
df1
#sdf = SmartDataframe(df1)
bild = st.empty()
bild.subheader("Datenanalyse & Datenvisualisierung")
c = st.container(border=True)
prompt = st.text_area("Enter your prompt:")
if st.button("Generate"):
if prompt:
#c.text("Generating response...")
if os.path.isfile('./exports/charts/temp_chart.png'):
os.remove('./exports/charts/temp_chart.png')
#spin = st.spinner
with c:
with st.spinner("Generating response..."):
#bar = st.progress(20)
#bar = st.progress(100)
with bild:
sdf = SmartDataframe(df1)
st.write(sdf.chat(prompt))
#with st.spinner("Generating response..."):
if os.path.isfile('./exports/charts/temp_chart.png'):
st.image('./exports/charts/temp_chart.png')
#st.success('Done!')
#bar.progress(100)
#c.write(bar)
#c.write(st.spinner)
#bild.empty()
#st.write(sdf.chat(prompt))
#bar.progress(100)
else:
st.error("Please enter a prompt.")
#with placeholder.container():
#st.write("This is one element")
#st.write("This is another")
#agent = Agent(df)
#result = agent.chat("erstelle balkendiagramm")
#st.write(result)
#sdf = SmartDataframe(df)
#sdf.chat("draw chart")
#pandas_ai = PandasAI(llm, verbose=True, save_charts=True)
#st.write(sdf.chat("Plot a chart"))
#st.write(st.bar_chart(data))
'''
|