|
import streamlit as st |
|
import os |
|
import google.generativeai as genai |
|
|
|
|
|
st.set_page_config( |
|
page_title="Gemini Chatbot mit Google Search", |
|
page_icon="🤖" |
|
) |
|
|
|
|
|
genai.configure(api_key=os.environ["geminiapi"]) |
|
|
|
|
|
generation_config = { |
|
"temperature": 0.4, |
|
"top_p": 0.95, |
|
"top_k": 40, |
|
"max_output_tokens": 8192, |
|
"response_mime_type": "text/plain", |
|
} |
|
|
|
grounding_config = genai.types.GroundingConfig( |
|
source_type=genai.types.GroundingSource.GOOGLE_SEARCH |
|
) |
|
|
|
model = genai.GenerativeModel( |
|
model_name="gemini-2.0-flash-exp", |
|
generation_config=generation_config, |
|
grounding_config=grounding_config |
|
) |
|
|
|
|
|
if "chat_session" not in st.session_state: |
|
st.session_state.chat_session = model.start_chat(history=[]) |
|
|
|
|
|
st.title("🤖 Gemini Chatbot mit Google Search") |
|
user_input = st.text_input("Stelle deine Frage:", key="user_input") |
|
|
|
if user_input: |
|
|
|
full_prompt = f"{user_input}\nAntworte immer auf Deutsch" |
|
|
|
|
|
response = st.session_state.chat_session.send_message(full_prompt) |
|
|
|
|
|
if response.candidates: |
|
response_text = response.candidates[0].content.parts[0].text |
|
else: |
|
response_text = "Keine Antwort erhalten" |
|
|
|
|
|
st.subheader("Antwort:") |
|
st.write(response_text) |
|
|
|
|
|
if response.grounding_metadata: |
|
st.subheader("Quellen:") |
|
for source in response.grounding_metadata.sources: |
|
st.markdown(f"- [{source.url}]({source.url})") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
""" |
|
# Flask API |
|
from flask import Flask, jsonify |
|
import threading |
|
from flask_cors import CORS, cross_origin |
|
|
|
# Streamlit Frontend |
|
import streamlit as st |
|
import requests |
|
st.title("huhu") |
|
#st.text(data) |
|
|
|
|
|
data="ok" |
|
app = Flask(__name__) |
|
cors = CORS(app) |
|
@app.route('/endpoint', methods=['GET']) |
|
def my_endpoint(): |
|
#get data from GET Request |
|
data = request.args # Die Daten, die vom Client gesendet wurden |
|
|
|
#post request |
|
#data = request.form.get('variable') |
|
#print(prompt) |
|
#st.text(data) |
|
return "Daten erfolgreich empfangen!" |
|
|
|
|
|
#result = selenium(prompt) |
|
# Das Ergebnis an PHP zurückgeben |
|
#import streamlit as st |
|
#st.write(prompt) |
|
#prompting(prompt) |
|
#return prompt |
|
|
|
def run_flask(): |
|
app.run(port=5000) |
|
|
|
|
|
# Starte den Flask-Server in einem separaten Thread |
|
flask_thread = threading.Thread(target=run_flask) |
|
flask_thread.start() |
|
|
|
|
|
|
|
|
|
#response = requests.get('https://huggingface.co/spaces/mgokg/PandasAI:5000/api?data=huhu') |
|
#data = response.json() |
|
|
|
#st.write(response) # Zeigt die Daten in der Streamlit-Oberfläche an |
|
|
|
""" |