import gradio as gr import os from functools import partial import gdown import pandas as pd from logs import save_logs import gdown import time import pandas as pd from config import logs_folder_id, json_url_id from ice_cold import get_refresher from web_scrapping_engine import get_linkedin_profile choices = ["sofwareAG"] title = """""" def stream(company): linkedin_extracted_info = get_linkedin_profile(company) linkedin_extracted_info["profile"]["similar_companies"] = "" resp = get_refresher(linkedin_extracted_info) answer = "*(Latest update as per Linkedin)*\n" for chunk in resp: if chunk.choices[0].delta.content is not None: answer = answer + chunk.choices[0].delta.content yield answer answer_to_save = answer + "\n============\n" + str(linkedin_extracted_info) save_logs(company, answer_to_save, folder_id=logs_folder_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) 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=3): chat_input = gr.Textbox(placeholder="Company Name", lines=1, label="Get instant refresher on any company") chat_submit_button = gr.Button(value="Submit ▶") with gr.Column(scale=6): chat_output = gr.Markdown("Waiting for company...") fn_chat = stream chat_submit_button.click(fn=fn_chat, inputs=[chat_input], outputs=[chat_output]) demo.launch(max_threads=40)