Spaces:
Sleeping
Sleeping
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)) | |
''' | |