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 | |
| api_key=os.getenv("GOOGLE_API_KEY") | |
| genai.configure(api_key=api_key) | |
| model=genai.GenerativeModel('gemini-pro') | |
| # @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(): | |
| 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) | |