Spaces:
Running
Running
File size: 2,847 Bytes
a936419 8ca50ab 1d3c45e c9f3ae4 a936419 ce9fc94 201f13e bfda8a9 9d4773b a41bba5 c9b175d a41bba5 2c076d1 a41bba5 f824e57 5a96c14 9005e59 a07a31e 2c076d1 a07a31e 24ad0b1 a07a31e 9d4773b a07a31e 5a96c14 512941f e1ff041 543ccb3 5a96c14 5758366 2c9db66 f824e57 5a96c14 2566216 5a96c14 a936419 aee6311 e1ff041 cc3cf8c ce9fc94 a936419 5e3a028 4203071 a936419 33dc2c4 |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 |
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() |