|  | 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 | 
					
						
						|  | from selenium.webdriver.common.keys import Keys | 
					
						
						|  | 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://copilot.microsoft.com/" | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | wd.get(url) | 
					
						
						|  | wd.implicitly_wait(3) | 
					
						
						|  | WebDriverWait wait = new WebDriverWait(driver, 15); | 
					
						
						|  | WebElement textarea = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id("userInput"))); | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | textarea.send_keys(f"{message}") | 
					
						
						|  | time.sleep(3) | 
					
						
						|  | textarea.send_keys(Keys.RETURN) | 
					
						
						|  | time.sleep(3) | 
					
						
						|  | element = wd.find_element(By.ID, "BiQt5177sKnv5xKJwaSCP-user-message") | 
					
						
						|  | 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 | 
					
						
						|  |  | 
					
						
						|  | iface = gr.Interface( | 
					
						
						|  | fn=selenium, | 
					
						
						|  | inputs="text", | 
					
						
						|  | outputs="text", | 
					
						
						|  |  | 
					
						
						|  |  | 
					
						
						|  | ) | 
					
						
						|  |  | 
					
						
						|  | iface.launch() | 
					
						
						|  |  |