Spaces:
Sleeping
Sleeping
import os | |
import warnings | |
from transformers import AutoModelForImageClassification, AutoFeatureExtractor | |
import torch | |
from flask_cors import CORS | |
from flask import Flask, request, json, Response | |
import numpy as np | |
from PIL import Image | |
import requests | |
from io import BytesIO | |
from bs4 import BeautifulSoup | |
from urllib.parse import urljoin | |
import google.generativeai as genai | |
from langchain_google_genai import GoogleGenerativeAIEmbeddings | |
from langchain_google_genai import ChatGoogleGenerativeAI | |
import warnings | |
from dotenv import load_dotenv | |
os.environ["CUDA_VISIBLE_DEVICES"] = "" | |
app = Flask(__name__) | |
cors = CORS(app) | |
load_dotenv() | |
# # Define the model and feature extractor globally | |
# model = AutoModelForImageClassification.from_pretrained('carbon225/vit-base-patch16-224-hentai') | |
# feature_extractor = AutoFeatureExtractor.from_pretrained('carbon225/vit-base-patch16-224-hentai') | |
def load_model(): | |
api_key=os.getenv("GOOGLE_API_KEY") | |
genai.configure(api_key=api_key) | |
model = ChatGoogleGenerativeAI(model="gemini-pro", | |
temperature=0.3) | |
return model | |
def load_embeddings(): | |
embeddings = GoogleGenerativeAIEmbeddings(model = "models/embedding-001") | |
return embeddings | |
def default(): | |
return json.dumps({"Server": "Working"}) | |
def extract_images(): | |
try: | |
src=request.args.get("src") | |
response = requests.get(src) | |
soup = BeautifulSoup(response.content,'html.parser') | |
img_urls=[] | |
img_tags = soup.select('div img') | |
for img_tag in img_tags: | |
img_url = urljoin(src, img_tag['src']) | |
img_urls.append(img_url) | |
return json.dumps({"images":img_urls}) | |
except Exception as e: | |
return e | |
# @app.route("/predict", methods=["GET"]) | |
# def predict(): | |
# try: | |
# src = request.args.get("src") | |
# # Download image from the provided URL | |
# response = requests.get(src) | |
# response.raise_for_status() | |
# # Open and preprocess the image | |
# image = Image.open(BytesIO(response.content)) | |
# image = image.resize((128, 128)) | |
# # Extract features using the pre-trained feature extractor | |
# encoding = feature_extractor(images=image.convert("RGB"), return_tensors="pt") | |
# # Make a prediction using the pre-trained model | |
# with torch.no_grad(): | |
# outputs = model(**encoding) | |
# logits = outputs.logits | |
# # Get the predicted class index and label | |
# predicted_class_idx = logits.argmax(-1).item() | |
# predicted_class_label = model.config.id2label[predicted_class_idx] | |
# # Return the predictions | |
# return json.dumps({"class": predicted_class_label}) | |
# except requests.exceptions.RequestException as e: | |
# return json.dumps({"error": f"Request error: {str(e)}"}) | |
# except Exception as e: | |
# return json.dumps({"error": f"An unexpected error occurred: {str(e)}"}) | |
def answer(): | |
api_key=os.getenv("GOOGLE_API_KEY") | |
genai.configure(api_key=api_key) | |
model=genai.GenerativeModel('gemini-pro') | |
query=request.get_json()['query'] | |
final_query=f""" | |
Following are negative reviews about my products, suggest what are the key issues from the customer feedback:{query} | |
""" | |
response = model.generate_content(final_query) | |
return json.dumps({"message":response.text}) | |
if __name__ == "__main__": | |
app.run(debug=True) | |