Spaces:
Running
Running
File size: 4,812 Bytes
a936419 40ce5ac 085ef0b 40ce5ac 1605c68 eb28548 0a61873 085ef0b 40ce5ac 0963c3d cd1062c 085ef0b cb7bc65 6ad3993 cb7bc65 ee8bb54 cb7bc65 40ce5ac cb7bc65 ee3485c 6111834 cd1062c 0a61873 cd1062c ccb48c5 cd1062c d139e05 cd1062c 67a4ea7 cd1062c ccb48c5 cd1062c 0a90f51 cd1062c 0a61873 cd1062c 0a61873 ee3485c 51f5b3e ee3485c 6578e3e eb28548 c230eb4 618e915 7405511 618e915 c4d944b eb7082a c4d944b 2664ac6 0a61873 085ef0b 79b0e5e 85deaff c4d944b 5399f24 75cc043 573de21 40ce5ac 085ef0b cd1062c e5d9b98 085ef0b 0a61873 236847e 0a61873 |
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 |
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)
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)
response.raise_for_status() # Wirft eine Exception, wenn die Anfrage fehlschlägt
# 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 result_text
# 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 search_query
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
#very simple (and extremly fast) websearch
def websearch(search_term):
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.google.com/search?q={search_term}"
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 result
def process_audio(file_path):
try:
# Open the audio file
with open(file_path, "rb") as file:
# Create a translation of the audio file
translation = client.audio.transcriptions.create(
file=(os.path.basename(file_path), file.read()), # Correct passing of filename
model="whisper-large-v3-turbo", # Required model to use for translation
prompt="transcribe", # Optional
language="de", # Optional
response_format="json", # Optional
temperature=0.0 # Optional
)
# Return the translation text
suche = websearch(translation.text)
result = predict(suche)
return result
return translation.text
except Exception as e:
return f"An error occurred: {str(e)}"
# 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=perform_search, inputs=ort_input, outputs=details_output)
# Launch the Gradio application
demo.launch()
"""
with gr.Blocks() as speech:
with gr.Row():
sr_outputs = gr.Textbox(label="Antwort")
with gr.Row():
sr_inputs = gr.Microphone(type="filepath")
sr_inputs.change(process_audio, inputs=sr_inputs, outputs=sr_outputs)
speech.launch()
"""
|