Spaces:
Running
Running
File size: 4,489 Bytes
a936419 40ce5ac 085ef0b 40ce5ac 1605c68 eb28548 abae114 085ef0b 40ce5ac 0963c3d cd1062c 085ef0b cb7bc65 6ad3993 cb7bc65 ee8bb54 cb7bc65 40ce5ac cb7bc65 ee3485c abae114 cd1062c c58f0e1 0a61873 abae114 0a61873 cb954b3 c0b8d28 f227cbb 72701df afbd097 1887ca7 afbd097 f227cbb cb954b3 87823b4 cb954b3 c93dedb cb954b3 cd1062c abae114 cd1062c abae114 cd1062c 7c71d14 cd1062c 320e043 cd1062c abae114 320e043 abae114 0a61873 cd1062c 0a61873 ee3485c 51f5b3e ee3485c 6578e3e eb28548 c230eb4 0a61873 085ef0b 79b0e5e 85deaff c4d944b 5399f24 75cc043 573de21 40ce5ac 085ef0b cb954b3 e5d9b98 085ef0b 0a61873 236847e |
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 |
import gradio as gr
import requests
import os
import json
import google.generativeai as genai
from bs4 import BeautifulSoup
#from groq import Groq
# Load environment variables
genai.configure(api_key=os.environ["geminiapikey"])
read_key = os.environ.get('HF_TOKEN', None)
cx="77f1602c0ff764edb"
custom_css = """
#md {
height: 400px;
font-size: 30px;
background: #202020;
padding: 20px;
color: white;
border: 1 px solid white;
}
"""
#api_key = os.getenv('groq')
google_api_key = os.getenv('google_search')
#if api_key is None:
#raise ValueError("groq_whisper environment variable is not set")
# Initialize the Groq client
#client = Groq(api_key=api_key)
#very simple (and extremly fast) websearch
def websearch(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"
}
#url = f"https://www.googleapis.com/customsearch/v1?key={google_api_key}&cx={cx}&q={prompt}"
url = f"https://www.google.com/search?key={google_api_key}&cx={cx}&q={prompt}"
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')
response_text = soup.find('body')
#prompt = f"{search_term}\n use this result from a google search to answer the question \n {response_text.text}"
#result = predict(prompt)
return response_text.text
response = requests.get(url, headers=headers)
data = response.json() # JSON-Daten direkt verarbeiten
# Extrahieren des Textes aus den Ergebnissen
items = data.get('items', [])
results = [item['snippet'] for item in items]
result_text = '\n'.join(results)
#return results[0]
return result_text
# URL der Google Custom Search API
url = f"https://www.googleapis.com/customsearch/v1?key={google_api_key}&cx={cx}&q={prompt}"
response = requests.get(url, headers=headers)
soup = BeautifulSoup(response.content, 'html.parser')
response_text = soup.find('body')
#prompt = f"{search_term}\n use this result from a google search to answer the question \n {response_text.text}"
#result = predict(prompt)
return response_text.text
def perform_search(prompt):
if prompt.strip() == '':
return '' # Return empty string for empty search
# URL der Google Custom Search API
url = f"https://www.googleapis.com/customsearch/v1?key={google_api_key}&cx={cx}&q={prompt}"
try:
# HTTP GET-Anfrage an die Google Custom Search API
response = requests.get(url)
# JSON-Antwort parsen
data = response.json()
# Extrahiere die Suchergebnisse
items = data.get('items', [])
results = [item['snippet'] for item in items]
#return results[0]
# Kombiniere die Ergebnisse zu einem String
result_text = '\n'.join(results)
#return results[0]
# Formuliere die Antwort
#search_query = f"{prompt} antworte kurz und knapp. antworte auf deutsch. du findest die antwort hier: {result_text}"
#result = predict(search_query)
#return result
return result_text
except requests.exceptions.RequestException as e:
print(f"An error occurred: {e}")
return ''
def predict(prompt):
generation_config = {
"temperature": 0.4,
"top_p": 0.95,
"top_k": 40,
"max_output_tokens": 8192,
"response_mime_type": "text/plain",
}
model = genai.GenerativeModel(
model_name="gemini-2.0-flash-exp",
generation_config=generation_config,
)
chat_session = model.start_chat(
history=[]
)
response = chat_session.send_message(f"{prompt}\n antworte immer auf deutsch")
response_value = response.candidates[0].content.parts[0].text
return response_value
# 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...")
#audio_input=gr.Microphone(type="filepath")
with gr.Row():
button = gr.Button("Senden")
# Connect the button to the function
button.click(fn=websearch, inputs=ort_input, outputs=details_output)
# Launch the Gradio application
demo.launch()
|