WebScout1 / app.py
Abhaykoul's picture
Update app.py
06ce162 verified
raw
history blame
No virus
4.01 kB
from flask import Flask, jsonify, request
from webscout import AsyncWEBS, WEBS
from webscout.LLM import LLM
from webscout.AI import OPENGPT # Import OPENGPT
app = Flask(__name__)
# Initialize the OPENGPT instance
opengpt = OPENGPT(is_conversation=False, max_tokens=8000, timeout=30)
@app.route('/search', methods=['POST'])
def WEBScout2_search_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')):
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 2
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="d",
max_results=10
):
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)
@app.route('/chat', methods=['POST'])
def chat_opengpt():
user_input = request.json.get('message')
if user_input is None:
return jsonify({'error': 'Message parameter missing'})
# Use the opengpt instance to process the chat message
response_str = opengpt.chat(user_input)
return jsonify({"response": response_str})
if __name__ == '__main__':
app.run(debug=True)