|
import gradio as gr |
|
from selenium import webdriver |
|
from selenium.common.exceptions import WebDriverException |
|
from selenium.webdriver.common.by import By |
|
from gradio_client import Client |
|
from selenium.webdriver.support.wait import WebDriverWait |
|
from selenium.webdriver.support import expected_conditions as EC |
|
from selenium.webdriver.chrome.options import Options |
|
import groq |
|
import os |
|
import time |
|
|
|
options = webdriver.ChromeOptions() |
|
options.add_argument('--headless') |
|
wd = webdriver.Chrome(options=options) |
|
|
|
|
|
api_key = os.getenv('groq') |
|
client = groq.Client(api_key=api_key) |
|
|
|
|
|
def update(prompt, ort): |
|
try: |
|
completion = client.chat.completions.create( |
|
model="llama3-70b-8192", |
|
messages=[ |
|
{"role": "system", "content": "You are a helpful assistant."}, |
|
{"role": "user", "content": f"gefragt sind die nächsten 3 zugverbindungen von bad kissingen nach {ort} du findest die antwort im kontext. liefere als antwort ein 2 spaltige tabelle. linke spalte: abfahrtszeit, fahrtdauer, ankunftszeit.rechte spalte: abfahrtsort,leer,zielort. formatiere die tabelle in markdown\n kontext: \n {prompt} \n antworte immer auf deutsch!"} |
|
], |
|
) |
|
return completion.choices[0].message.content |
|
except Exception as e: |
|
return f"Error in response generation: {str(e)}" |
|
|
|
def selenium(message): |
|
|
|
url = "https://chatgpt.com/" |
|
|
|
|
|
wd.get(url) |
|
wd.implicitly_wait(3) |
|
|
|
textarea = wd.find_element(By.XPATH, "/html/body/div[1]/div[2]/main/div[1]/div[1]/div/div[2]/div/div/div/div[4]/form/div/div/div/div/div[1]/div[1]/div/textarea") |
|
time.sleep(3) |
|
textarea.send_keys(f"{message}") |
|
time.sleep(3) |
|
textarea.send_keys(Keys.RETURN) |
|
time.sleep(3) |
|
antwort = element = wd.find_element(By.TAG_NAME, "p") |
|
time.sleep(3) |
|
return element.text |
|
|
|
|
|
texts="" |
|
url = f"https://www.google.com/search?q=zugverbindung+bad+kissingen+{message}" |
|
|
|
|
|
wd.get(url) |
|
wd.implicitly_wait(3) |
|
element = wd.find_element(By.TAG_NAME, "body") |
|
|
|
time.sleep(3) |
|
|
|
results = update(element.text, message) |
|
results=gr.Markdown() |
|
return results |
|
|
|
|
|
|
|
|
|
|
|
textarea.send_keys("Hier ist der Text, den du einfügen möchtest.") |
|
|
|
iface = gr.Interface( |
|
fn=selenium, |
|
inputs="text", |
|
outputs="text", |
|
|
|
|
|
) |
|
|
|
iface.launch() |
|
|