Spaces:
Running
Running
File size: 3,676 Bytes
a936419 40ce5ac 085ef0b 40ce5ac 1605c68 ae2ec3d a936419 6c974e5 085ef0b 40ce5ac 0963c3d 085ef0b cb7bc65 6ad3993 cb7bc65 ee8bb54 cb7bc65 40ce5ac cb7bc65 79b0e5e 0b36bad ae2ec3d 79b0e5e 40ce5ac 79b0e5e c3b4363 79b0e5e 40ce5ac 79b0e5e 40ce5ac fa566da 40ce5ac e6bff66 085ef0b 79b0e5e 85deaff 40ce5ac 5399f24 40ce5ac 085ef0b 0b36bad e5d9b98 085ef0b |
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 |
import gradio as gr
import requests
import os
import json
import google.generativeai as genai
from bs4 import BeautifulSoup
# Load environment variables
genai.configure(api_key=os.environ["geminiapikey"])
read_key = os.environ.get('HF_TOKEN', None)
custom_css = """
#md {
height: 400px;
font-size: 30px;
background: #202020;
padding: 20px;
color: white;
border: 1 px solid white;
}
"""
def google_search(search_term, **kwargs):
service = build("customsearch", "v1", developerKey=api_key) # Ersetze YOUR_GOOGLE_API_KEY mit deinem API-Key
res = service.cse().list(q=search_term, cx="77f1602c0ff764edb", **kwargs).execute() # Ersetze YOUR_CUSTOM_SEARCH_ENGINE_ID mit deiner Custom Search Engine ID
return res
def get_impressum_text(search_term):
try:
search_results = google_search(search_term)
if 'items' in search_results:
for item in search_results['items']:
link = item['link']
try:
response = requests.get(link, timeout=5) # Timeout hinzugefügt für Fehlerbehandlung
response.raise_for_status() # Wirft eine Exception, wenn der Statuscode nicht 200 ist
soup = BeautifulSoup(response.content, 'html.parser')
impressum_div = soup.find('div', class_='MjjYud')
if impressum_div:
return impressum_div.text.strip()
except requests.exceptions.RequestException as e:
print(f"Fehler beim Abrufen der URL {link}: {e}")
continue # Weiter mit dem nächsten Suchergebnis
return None # Kein Impressum gefunden
def websearch(prompt):
url = f"https://www.google.com/search?q={prompt}"
headers = {
"User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.36"
}
try:
response = requests.get(url, headers=headers)
response.raise_for_status() # Wirft eine Exception für Fehlercodes
except requests.exceptions.RequestException as e:
print(f"Fehler beim Abrufen der Google-Seite: {e}")
return None
soup = BeautifulSoup(response.content, 'html.parser')
first_div = soup.find('div', class_='MjjYud')
if first_div:
return first_div.text.strip()
else:
print("Kein div mit der Klasse 'MjjYud' gefunden.")
return None
def predict(prompt):
# Create the model
generation_config = {
"temperature": 0.3,
"top_p": 0.95,
"top_k": 40,
"max_output_tokens": 2048,
"response_mime_type": "text/plain",
}
model = genai.GenerativeModel(
#model_name="gemini-1.5-pro",
model_name="gemini-2.0-flash-exp",
generation_config=generation_config,
)
chat_session = model.start_chat(
history=[
]
)
response = chat_session.send_message(prompt)
#response = model.generate_content(contents=prompt, tools='google_search_retrieval')
return response.text
# Create the Gradio interface
with gr.Blocks(css=custom_css) as demo:
with gr.Row():
details_output = gr.Markdown(label="answer", elem_id="md")
#details_output = gr.Textbox(label="Ausgabe", value = f"\n\n\n\n")
with gr.Row():
ort_input = gr.Textbox(label="prompt", placeholder="ask anything...")
with gr.Row():
button = gr.Button("Senden")
# Connect the button to the function
button.click(fn=get_impressum_text, inputs=ort_input, outputs=details_output)
# Launch the Gradio application
demo.launch() |