Spaces:
Sleeping
Sleeping
import os | |
import openai | |
import gradio as gr | |
from azure.cognitiveservices.vision.computervision import ComputerVisionClient | |
from msrest.authentication import CognitiveServicesCredentials | |
from azure.storage.blob import BlobClient | |
#import utils functions | |
from preprocessing_images import preprocessing_function | |
from extract_text import azure_ocr | |
my_container = os.getenv("AZURE_CONTAINER") | |
subscription_key = os.getenv("SUB_KEY") | |
endpoint = os.getenv("AZURE_ENDPOINT") | |
connection_string = os.getenv("AZURE_CON_STRING") | |
openai.api_key = os.getenv("OPENAI_API_KEY") | |
computervision_client = ComputerVisionClient(endpoint, CognitiveServicesCredentials(subscription_key)) | |
def ocr_pdf(pdf_url): | |
preprocessing_function(pdf_url) | |
my_blob = pdf_url.split('/')[-1] | |
blob = BlobClient.from_connection_string(conn_str=connection_string, container_name= my_container, blob_name=my_blob) | |
with open("answer_paper.pdf", "rb") as data: | |
blob.upload_blob(data,overwrite=True) | |
text = azure_ocr(blob.url,computervision_client) | |
return text.strip() | |
# def ocr_pdf(pdf_url2): | |
# preprocessing_function(pdf_url2) | |
# my_blob = pdf_url2.split('/')[-1] | |
# blob = BlobClient.from_connection_string(conn_str=connection_string, container_name= my_container, blob_name=my_blob) | |
# with open("answer_paper.pdf", "rb") as data: | |
# blob.upload_blob(data,overwrite=True) | |
# text = azure_ocr(blob.url,computervision_client) | |
# return text.strip() | |
def classify_cause(incident_description): | |
response = openai.Completion.create( | |
engine="text-davinci-003", | |
prompt= f"Identify the root cause from the below list:\nincident_description:{incident_description}\n", | |
temperature= 0, | |
max_tokens= 50, | |
n=1, | |
stop=None | |
#timeout=15, | |
) | |
classification = response.choices[0].text.strip() | |
return classification | |
def classify_class(incident_description): | |
response = openai.Completion.create( | |
engine="text-davinci-003", | |
prompt= f"Classify the following incident description into one of the given classes:Aircraft Autopilot Problem, Auxiliary Power Problem,Cabin Pressure Problem, Engine Problem,Fuel System Problem,Avionics Problem,Communications Problem,Electrical System Problem,Engine Problem,Smoke Problem\nincident_description:{incident_description}\n", | |
temperature= 0, | |
max_tokens= 50, | |
n=1, | |
stop=None | |
#timeout=15, | |
) | |
classification = response.choices[0].text.strip() | |
return classification | |
def avatiation(pdf_url): | |
pdftext = ocr_pdf(pdf_url) | |
defect_class = classify_class(pdftext) | |
main_issue = classify_cause(pdftext) | |
return main_issue, defect_class | |
inputs1 = gr.inputs.Textbox(label="Link for aviation log reports") | |
#inputs2 = gr.inputs.Textbox(label="Link for aviation log reports 2") | |
outputs = [gr.outputs.Textbox(label="Main Issue of the log report"), | |
gr.outputs.Textbox(label="category of the log report") | |
] | |
demo = gr.Interface(fn=avatiation,inputs=inputs1,outputs=outputs, title="ATA Auto classification using OCR and GPT3 ") | |
demo.launch() | |