ecpp / app.py
Adr740's picture
Update app.py
e87b828 verified
import gradio as gr
import os
from functools import partial
from get_answer import get_answer
from logs import save_logs
import gdown
from config import folder_id, json_url_id
json_url_id = os.environ.get("json_url_id")
download_url = f'https://drive.google.com/uc?id={json_url_id}'
output = 'secret_google_service_account.json'
gdown.download(download_url, output, quiet=False)
def stream(query,additional_information = ""):
resp, description, images = get_answer(query, additional_information)
answer = ""
listing = ""
for img in images:
listing += f"![]({img}) "
listing += f"\n---\n{description}"
yield "" , listing
for chunk in resp:
if chunk.choices[0].delta.content is not None:
answer = answer + chunk.choices[0].delta.content
yield answer, listing
save_logs(query, answer, folder_id=folder_id)
title = ""
with gr.Blocks(title=title,theme='nota-ai/theme',css="footer {visibility: hidden}") as demo:
gr.Markdown(f"## {title}")
with gr.Row():
with gr.Column(scale=6):
with gr.Row():
with gr.Column(scale=8):
url_input = gr.Textbox(placeholder="https://www.ebay.fr/itm/123", lines=1, label="Link to listing")
additional_infomration = gr.Textbox(placeholder="Perfume samples are forbidden", lines=1, label="Missed interpretation? Add any additional information")
with gr.Column(scale=1):
chat_submit_button = gr.Button(value="Submit ▶")
with gr.Row():
with gr.Column(scale=1):
listing = gr.Markdown("Waiting for link...")
with gr.Column(scale=3):
compliance_output = gr.Markdown("Waiting for link...")
fn_chat = stream
chat_submit_button.click(fn=fn_chat, inputs=[url_input, additional_infomration], outputs=[compliance_output, listing])
demo.launch(max_threads=40, share=True)