Spaces:
Running
Running
import gradio as gr | |
import requests | |
from bs4 import BeautifulSoup | |
from urllib.parse import urljoin | |
import json | |
import os | |
secreturl = os.environ.get('secret_url') | |
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 =""" | |
instruction: you are a json expert and your job is extracting information from text, generating valid json and return a json object only. do not return any text. halte dich an das vorgegebene json schema. | |
prompt: fill in the missing contact information. do not reference the json object. do not use html tags inside the json object. do not return explanaitons or any other text. return a valid json object only. | |
{ | |
"Name": "", | |
"Email": "", | |
"Website": "", | |
"Phone": "" | |
} | |
""" | |
try: | |
#url to api of a self-hosted docker container with perplexica over http:// | |
url = secreturl | |
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()) | |
ergebnis = response.json().get('message') | |
#ergebnis=gr.Markdown() | |
return ergebnis | |
# return as Dictionary, for gr.JSON | |
#return {"body_text": body_text} | |
except requests.RequestException as e: | |
return {"error": str(e)} | |
except Exception as e: | |
return {"error": str(e)} | |
def clear(): | |
clear="" | |
return clear | |
# 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") | |
with gr.Row(): | |
clearbutton = gr.Button("clear") | |
# 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) | |
clearbutton.click(fn=clear, inputs=[], outputs=links_output) | |
demo.launch() |