| | from flask import Flask, jsonify, request |
| | from webscout import WEBS |
| | from webscout.LLM import LLM |
| |
|
| | app = Flask(__name__) |
| |
|
| | @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) |
| | WEBS_instance = WEBS() |
| | 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('/int', methods=['GET']) |
| | def WEBScout3_search_search_search_search(): |
| | query = request.args.get('q') |
| | 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/Mixtral-8x7B-Instruct-v0.1") |
| | response = llm.mistral_chat([{"role": "user", "content": user_input}]) |
| | return jsonify({"response": response}) |
| |
|
| | if __name__ == '__main__': |
| | app.run(debug=True) |