|
from flask import Flask, jsonify, request |
|
from webscout import WEBS |
|
from webscout.LLM import LLM |
|
|
|
app = Flask(__name__) |
|
|
|
@app.route('/search', methods=['GET']) |
|
def WEBScout2_search_search(): |
|
query = request.args.get('query') |
|
if not query: |
|
return jsonify({'error': 'Query parameter missing'}) |
|
|
|
limit = request.args.get('limit', default=10, type=int) |
|
WEBS_instance = WEBS() |
|
responses = [] |
|
for i, r in enumerate(WEBS_instance.text(query, region='wt-wt', safesearch='off', timelimit='y')): |
|
if i == limit: |
|
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() |
|
responses = [] |
|
for i, r in enumerate(WEBS_instance.text(query, region='wt-wt', safesearch='off', timelimit='y')): |
|
if i == 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() |
|
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() |
|
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() |
|
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('/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() |
|
translation = WEBS_instance.translate(keywords, to=target_language) |
|
return jsonify(translation) |
|
|
|
@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'}) |
|
|
|
llm = LLM("mistralai/Mistral-7B-Instruct-v0.1") |
|
response = llm.mistral_chat([{"role": "user", "content": user_input}]) |
|
return jsonify({"response": response}) |
|
|
|
if __name__ == '__main__': |
|
app.run(debug=True) |