API2 / app.py
DIVY118's picture
Update app.py
c05503b verified
raw
history blame
3.67 kB
from flask import Flask, request, jsonify
from mistral import Mistral7B
from gpt import ChatGpt
from news import News
from datetime import datetime
from os import listdir
from web import Online_Scraper
import requests
import google.generativeai as genai
from time import time as t
app = Flask(__name__)
generation_config = {
"temperature": 0.7,
"top_p": 1,
"top_k": 1,
"max_output_tokens": 300,
}
safety_settings = [
{
"category": "HARM_CATEGORY_HARASSMENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_HATE_SPEECH",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_SEXUALLY_EXPLICIT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
{
"category": "HARM_CATEGORY_DANGEROUS_CONTENT",
"threshold": "BLOCK_MEDIUM_AND_ABOVE"
},
]
model = genai.GenerativeModel(
model_name="gemini-pro",
generation_config=generation_config,
safety_settings=safety_settings)
@app.route('/mistral7b', methods=['POST'])
def generate():
# Get data from the request
data = request.json
prompt = data.get('prompt', '')
messages = data.get('messages', [])
key = data.get('key', '')
# Call Mistral7B function
response, updated_messages, execution_time = Mistral7B(prompt, messages,key)
# Prepare the response
result = {
'response': response,
'messages': updated_messages,
'execution_time': execution_time
}
return jsonify(result)
@app.route('/chatgpt', methods=['POST'])
def chat():
# Get data from the request
data = request.json
user_message = data.get('message', '')
messages = data.get('messages', [])
# Call ChatGpt function
response, updated_messages, execution_time = ChatGpt(user_message, messages)
# Prepare the response
result = {
'response': response,
'messages': updated_messages,
'execution_time': execution_time
}
return jsonify(result)
@app.route('/news', methods=['GET'])
def get_news():
# Get data from the request
key = request.args.get('key', '')
cache_flag = request.args.get('cache', 'True').lower() == 'true'
# Call News function
news, error, execution_time = News(key, cache_flag)
# Prepare the response
result = {
'news': news,
'error': error,
'execution_time': execution_time
}
return jsonify(result)
@app.route('/web', methods=['GET'])
def Web():
key = request.args.get('prompt', '')
result = {
'response': Online_Scraper(key)
}
return jsonify(result)
@app.route('/imageneration', methods=['POST'])
def IMGEN():
data = request.json
prompt = data.get('prompt', '')
key = data.get('key', '')
API_URL = "https://api-inference.huggingface.co/models/stabilityai/stable-diffusion-2-1"
headers = {"Authorization": f"Bearer {key}"}
return requests.post(API_URL, headers=headers, json={"inputs": prompt,}).content
@app.route('/generativeai', methods=['POST'])
def Genration():
global model,safety_settings,generation_config
data = request.json
prompt = data.get('prompt', '')
messages = data.get('messages', [])
key = data.get('key', '')
C=t()
genai.configure(api_key=key)
genai.configure(api_key=key)
response = model.generate_content(messages)
# Prepare the response
result = {
'response': response.text,
'execution_time': t()-C
}
return jsonify(result)
@app.route('/divyanshpizza', methods=['GET'])
def get_counters():
return jsonify(counter),jsonify({"data":str(listdir(r"static/data/"))})
if __name__ == '__main__':
app.run()