|
|
import firebase_admin |
|
|
from firebase_admin import credentials |
|
|
from firebase_admin import firestore |
|
|
import io |
|
|
from fastapi import FastAPI, File, UploadFile |
|
|
from werkzeug.utils import secure_filename |
|
|
import speech_recognition as sr |
|
|
import subprocess |
|
|
import os |
|
|
import requests |
|
|
import random |
|
|
import pandas as pd |
|
|
from pydub import AudioSegment |
|
|
from datetime import datetime |
|
|
from datetime import date |
|
|
import numpy as np |
|
|
from sklearn.ensemble import RandomForestRegressor |
|
|
import shutil |
|
|
import json |
|
|
from transformers import AutoModelForQuestionAnswering, AutoTokenizer, pipeline |
|
|
from pydantic import BaseModel |
|
|
from typing import Annotated |
|
|
from transformers import BertTokenizerFast, EncoderDecoderModel |
|
|
import torch |
|
|
import random |
|
|
import string |
|
|
import time |
|
|
from huggingface_hub import InferenceClient |
|
|
|
|
|
from fastapi import Form |
|
|
|
|
|
class Query(BaseModel): |
|
|
text: str |
|
|
code:str |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
from fastapi import FastAPI, Request, Depends, UploadFile, File |
|
|
from fastapi.exceptions import HTTPException |
|
|
from fastapi.middleware.cors import CORSMiddleware |
|
|
from fastapi.responses import JSONResponse |
|
|
|
|
|
|
|
|
app = FastAPI() |
|
|
|
|
|
app.add_middleware( |
|
|
CORSMiddleware, |
|
|
allow_origins=['*'], |
|
|
allow_credentials=True, |
|
|
allow_methods=['*'], |
|
|
allow_headers=['*'], |
|
|
) |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@app.on_event("startup") |
|
|
async def startup_event(): |
|
|
print("on startup") |
|
|
|
|
|
|
|
|
audio_space="https://audiospace-1-u9912847.deta.app/uphoto" |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
import threading |
|
|
@app.post("/") |
|
|
async def get_answer(q: Query ): |
|
|
|
|
|
text = q.text |
|
|
code= q.code |
|
|
|
|
|
|
|
|
N = 20 |
|
|
res = ''.join(random.choices(string.ascii_uppercase + |
|
|
string.digits, k=N)) |
|
|
|
|
|
|
|
|
|
|
|
res= res+ str(time.time()) |
|
|
|
|
|
filename= res |
|
|
|
|
|
t = threading.Thread(target=do_ML, args=(filename,text,code)) |
|
|
t.start() |
|
|
|
|
|
return JSONResponse({"id": filename}) |
|
|
|
|
|
return "hello" |
|
|
|
|
|
|
|
|
import requests |
|
|
import io |
|
|
import torch |
|
|
import io |
|
|
from PIL import Image |
|
|
import json |
|
|
|
|
|
|
|
|
client = InferenceClient() |
|
|
|
|
|
|
|
|
|
|
|
def do_ML(filename:str,text:str,code:str): |
|
|
|
|
|
global client |
|
|
|
|
|
imagei = client.text_to_image(text) |
|
|
|
|
|
byte_array = io.BytesIO() |
|
|
imagei.save(byte_array, format='JPEG') |
|
|
image_bytes = byte_array.getvalue() |
|
|
|
|
|
|
|
|
files = {'file': image_bytes} |
|
|
|
|
|
global audio_space |
|
|
url = audio_space+code |
|
|
|
|
|
data = {"filename": filename} |
|
|
response = requests.post(url, files=files,data= data) |
|
|
|
|
|
print(response.text) |
|
|
|
|
|
if response.status_code == 200: |
|
|
print("File uploaded successfully.") |
|
|
|
|
|
else: |
|
|
print("File upload failed.") |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|