Spaces:
Running
Running
Update app.py
Browse files
app.py
CHANGED
@@ -9,6 +9,7 @@ from audiorecorder import audiorecorder
|
|
9 |
# Umgebungsvariablen laden
|
10 |
groq_api_key = os.getenv('groqwhisper')
|
11 |
gemini_api_key = os.getenv('geminiapi')
|
|
|
12 |
|
13 |
if not groq_api_key or not gemini_api_key:
|
14 |
st.error("Bitte setze die Umgebungsvariablen 'groqwhisper' und 'geminiapi'")
|
@@ -41,6 +42,24 @@ if "chat_session" not in st.session_state:
|
|
41 |
if "display_history" not in st.session_state:
|
42 |
st.session_state.display_history = []
|
43 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
44 |
def process_audio(audio_data):
|
45 |
"""Verarbeitet Audiodaten und gibt Transkript zurück."""
|
46 |
try:
|
@@ -90,8 +109,9 @@ if audio_bytes:
|
|
90 |
if transcription.startswith("Fehler:"):
|
91 |
st.error(transcription)
|
92 |
else:
|
93 |
-
#st.session_state.display_history.append(("user", transcription))
|
94 |
-
|
|
|
95 |
response = st.session_state.chat_session.send_message(full_prompt)
|
96 |
response_text = response.candidates[0].content.parts[0].text if response.candidates else "Keine Antwort"
|
97 |
messages.chat_message("assistant").write(f"{response_text}")
|
@@ -104,6 +124,8 @@ if audio_bytes:
|
|
104 |
# Texteingabe verarbeiten
|
105 |
user_input = st.text_input("Schreibe deine Frage:", key="user_input")
|
106 |
if user_input:
|
|
|
|
|
107 |
#st.session_state.display_history.append(("user", user_input))
|
108 |
full_prompt = f"{user_input}\nAntworte immer auf Deutsch\n antworte kurz und knapp."
|
109 |
response = st.session_state.chat_session.send_message(full_prompt)
|
|
|
9 |
# Umgebungsvariablen laden
|
10 |
groq_api_key = os.getenv('groqwhisper')
|
11 |
gemini_api_key = os.getenv('geminiapi')
|
12 |
+
google_api_key = os.getenv('google_search')
|
13 |
|
14 |
if not groq_api_key or not gemini_api_key:
|
15 |
st.error("Bitte setze die Umgebungsvariablen 'groqwhisper' und 'geminiapi'")
|
|
|
42 |
if "display_history" not in st.session_state:
|
43 |
st.session_state.display_history = []
|
44 |
|
45 |
+
|
46 |
+
def websearch(prompt):
|
47 |
+
headers = {
|
48 |
+
"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"
|
49 |
+
}
|
50 |
+
url = f"https://www.googleapis.com/customsearch/v1?key={google_api_key}&cx={cx}&q={prompt}"
|
51 |
+
response = requests.get(url, headers=headers)
|
52 |
+
data = response.json() # JSON-Daten direkt verarbeiten
|
53 |
+
# Extrahieren des Textes aus den Ergebnissen
|
54 |
+
items = data.get('items', [])
|
55 |
+
results = [item['snippet'] for item in items]
|
56 |
+
result_text = '\n'.join(results)
|
57 |
+
# Formuliere die Antwort
|
58 |
+
search_query = f"{prompt} antworte kurz und knapp. antworte auf deutsch. du findest die antwort hier: {result_text}"
|
59 |
+
result = predict(search_query)
|
60 |
+
return result
|
61 |
+
|
62 |
+
|
63 |
def process_audio(audio_data):
|
64 |
"""Verarbeitet Audiodaten und gibt Transkript zurück."""
|
65 |
try:
|
|
|
109 |
if transcription.startswith("Fehler:"):
|
110 |
st.error(transcription)
|
111 |
else:
|
112 |
+
#st.session_state.display_history.append(("user", transcription))
|
113 |
+
websearch = websearch(transcription)
|
114 |
+
full_prompt = f"{transcription}\nAntworte immer auf Deutsch\n Du findest die Antwort hier:\n{webearch}"
|
115 |
response = st.session_state.chat_session.send_message(full_prompt)
|
116 |
response_text = response.candidates[0].content.parts[0].text if response.candidates else "Keine Antwort"
|
117 |
messages.chat_message("assistant").write(f"{response_text}")
|
|
|
124 |
# Texteingabe verarbeiten
|
125 |
user_input = st.text_input("Schreibe deine Frage:", key="user_input")
|
126 |
if user_input:
|
127 |
+
|
128 |
+
|
129 |
#st.session_state.display_history.append(("user", user_input))
|
130 |
full_prompt = f"{user_input}\nAntworte immer auf Deutsch\n antworte kurz und knapp."
|
131 |
response = st.session_state.chat_session.send_message(full_prompt)
|