bot / app.py
Abhaykoul's picture
Update app.py
6a46ed8 verified
raw
history blame
5.45 kB
import g4f
from webscout import WEBS
from flask import Flask, jsonify, request
import google.generativeai as palm
app = Flask(__name__)
@app.route('/search', methods=['POST'])
def WEBScout_search():
data = request.get_json()
if 'query' not in data:
return jsonify({'error': 'Query parameter missing'})
query = data['query']
limit = data.get('limit', 10) # Default limit to 10 if not provided
WEBS_instance = WEBS() # Instantiate WEBS without context manager
responses = []
for i, r in enumerate(WEBS_instance.text(query, region='wt-wt', safesearch='off', timelimit='y')):
if i == limit: # Use the custom limit
break
responses.append(r)
return jsonify(responses)
# @app.route('/search', methods=['POST'])
# def WEBScout2_search():
# data = request.get_json()
# if 'query' not in data:
# return jsonify({'error': 'Query parameter missing'})
# query = data['query']
# WEBS_instance = WEBS() # Instantiate WEBS without context manager
# responses = []
# for i, r in enumerate(WEBS_instance.text(query, region='wt-wt', safesearch='off', timelimit='y')):
# if i == 10: # Limiting the results to 10
# break
# responses.append(r)
# return jsonify(responses)
@app.route('/mws', methods=['POST'])
def WEBScout_search():
data = request.get_json()
if 'query' not in data:
return jsonify({'error': 'Query parameter missing'})
query = data['query']
WEBS_instance = WEBS() # Instantiate WEBS without context manager
responses = []
for i, r in enumerate(WEBS_instance.text(query, region='wt-wt', safesearch='off', timelimit='y')):
if i == 2: # Limiting the results to 10
break
responses.append(r)
return jsonify(responses)
@app.route('/health', methods=['GET'])
def health_check():
return jsonify({'status': 'ok'})
@app.route('/video', methods=['GET'])
def WEBScout_videos():
params = request.args
if 'keywords' not in params:
return jsonify({'error': 'Keywords parameter missing'})
keywords = params['keywords']
WEBS_instance = WEBS() # Instantiate WEBS without context manager
responses = []
for r in WEBS_instance.videos(
keywords,
region="wt-wt",
safesearch="off",
timelimit="w",
resolution="high",
duration="medium",
max_results=10,
):
responses.append(r)
return jsonify(responses)
@app.route('/img', methods=['GET'])
def WEBScout2_images():
params = request.args
if 'keywords' not in params:
return jsonify({'error': 'Keywords parameter missing'})
keywords = params['keywords']
WEBS_instance = WEBS() # Instantiate WEBS without context manager
responses = []
for r in WEBS_instance.images(
keywords,
region="wt-wt",
safesearch="off",
size=None,
type_image=None,
layout=None,
license_image=None,
max_results=10,
):
responses.append(r)
return jsonify(responses)
@app.route('/news', methods=['GET'])
def WEBScout_news():
params = request.args
if 'keywords' not in params:
return jsonify({'error': 'Keywords parameter missing'})
keywords = params['keywords']
WEBS_instance = WEBS() # Instantiate WEBS without context manager
responses = []
for r in WEBS_instance.news(
keywords,
region="wt-wt",
safesearch="off",
timelimit="m",
max_results=10
):
responses.append(r)
return jsonify(responses)
@app.route('/int', methods=['GET'])
def WEBScout3_search():
query = request.args.get('q') # Change 'query' to 'q'
if not query:
return jsonify({'error': 'Query parameter missing'})
WEBS_instance = WEBS() # Instantiate WEBS without context manager
responses = []
for i, r in enumerate(WEBS_instance.text(query, region='wt-wt', safesearch='off', timelimit='y')):
if i == 10: # Limiting the results to 10
break
responses.append(r)
return jsonify(responses)
@app.route('/translate', methods=['GET'])
def WEBScout_translate():
params = request.args
if 'keywords' not in params or 'to' not in params:
return jsonify({'error': 'Keywords or target language parameter missing'})
keywords = params['keywords']
target_language = params['to']
WEBS_instance = WEBS() # Instantiate WEBS without context manager
translation = WEBS_instance.translate(keywords, to=target_language)
return jsonify(translation)
# Configure the API key
@app.route('/chat', methods=['POST'])
def chat_gpt():
user_input = request.json.get('message')
if user_input is None:
return jsonify({'error': 'Message parameter missing'})
messages = [
{
"role": "system",
"content": "Hello! I'm your virtual assistant. How can I help you?"
},
{
"role": "user",
"content": user_input
}
]
response = g4f.ChatCompletion.create(
model="gpt-4-32k-0613",
provider=g4f.Provider.GPTalk,
messages=messages,
stream=True,
)
ms = "".join([str(message) for message in response])
messages.append({"role": "assistant", "content": ms})
return jsonify({"response": ms})
if __name__ == '__main__':
app.run(debug=True)