Spaces:
Running
Running
import gradio as gr | |
import requests | |
from bs4 import BeautifulSoup | |
from urllib.parse import urljoin | |
import json | |
def parse_links(prompt): | |
#anfrage ='fill in the missing contact information. do not reference the json object. do not use html tags inside the json object. it must be valid json. do not return explanaitons or any other text. thanks for your efforts:)' | |
Name=prompt | |
anfrage =""" | |
fill in the missing contact information. do not reference the json object. do not use html tags inside the json object. it must be valid json. do not return explanaitons or any other text. only returm a valid json.object | |
{ | |
"Name": "", | |
"Email": "", | |
"Website": "", | |
"Phone": "" | |
} | |
""" | |
try: | |
url = "http://specialist-it.de:3001/api/search" | |
payload = { | |
"chatModel": { | |
"provider": "groq", | |
"model": "llama3-70b-8192" | |
}, | |
"embeddingModel": { | |
"provider": "local", | |
"model": "xenova-bge-small-en-v1.5" | |
}, | |
"optimizationMode": "balanced", | |
"focusMode": "webSearch", | |
"query": f"Name={prompt}\n{anfrage}. outputformat=json", | |
"history": [ | |
["human", "Hi, how are you?"], | |
["assistant", "I am doing well, how can I help you today?"] | |
] | |
} | |
headers = { | |
"Content-Type": "application/json" | |
} | |
response = requests.post(url, json=payload, headers=headers) | |
print(response.json()) | |
# Parse the JSON response | |
#data = response.json() | |
# Extract the message | |
#ergebnis = data.get('message') | |
ergebnis = response.json().get('message') | |
#ergebnis=gr.Markdown() | |
return ergebnis | |
# Split the response to get the JSON part only | |
json_part = ergebnis.split('}\n')[0] + '}' | |
# Load the JSON part to validate it's correctly formatted | |
try: | |
data = json.loads(json_part) | |
print(json.dumps(data, indent=2)) | |
return json.dumps(data, indent=2) | |
except json.JSONDecodeError as e: | |
print(f"Invalid JSON: {e}") | |
#return response.json().get('message') | |
# Rückgabe als Dictionary, um es mit gr.JSON kompatibel zu machen | |
#return {"body_text": body_text} | |
except requests.RequestException as e: | |
return {"error": str(e)} | |
except Exception as e: | |
return {"error": str(e)} | |
# Erstelle die Gradio-Schnittstelle | |
with gr.Blocks() as demo: | |
gr.Markdown("# Perplexica WebSearch") | |
ort_input = gr.Textbox(label="Prompt", placeholder="prompt", value="Aero Club Bamberg e.V.") | |
links_output = gr.Textbox(label="Antwort") | |
# Button zum Starten der Parsung | |
button = gr.Button("senden") | |
# Verbinde den Button mit der Funktion | |
button.click(fn=parse_links, inputs=ort_input, outputs=links_output) | |
demo.launch() |