from fastapi import FastAPI from utils import get_us_speeches from config import UPDATE_SPEECHES from haystack.document_stores import ElasticsearchDocumentStore from haystack.nodes import ElasticsearchRetriever from haystack.nodes import FARMReader from haystack.pipelines import ExtractiveQAPipeline import gradio as gr document_store = ElasticsearchDocumentStore( host='fgm-v2.es.eastus2.azure.elastic-cloud.com', username='elastic', password='cxjWqZfmhcfhzpWmfX57ylJc', scheme='https', port=9243, index='us-speeches' ) if UPDATE_SPEECHES: us_speeches = get_us_speeches() document_store.write_documents(us_speeches) retriever = ElasticsearchRetriever( document_store=document_store ) reader = FARMReader(model_name_or_path="deepset/roberta-base-squad2", use_gpu=False) pipeline = ExtractiveQAPipeline(reader=reader, retriever=retriever) app = FastAPI() async def run_query(query: str): return pipeline.run(query=query) gr.Interface(run_query, "textbox", ["label", "label"]).launch()