File size: 4,544 Bytes
a143120
7fcf52f
 
 
a143120
 
95c9859
8018de6
95c9859
 
 
 
 
 
 
 
 
 
 
 
 
 
bf3028a
 
79b31ff
 
bf3028a
7fcf52f
79b31ff
 
7fcf52f
79b31ff
 
 
7fcf52f
bf3028a
5cc9742
a61eaba
5cc9742
 
 
a143120
5cc9742
7fcf52f
5cc9742
 
7fcf52f
5cc9742
 
 
7fcf52f
a143120
 
 
324ca83
a143120
324ca83
a143120
 
324ca83
a143120
 
7fcf52f
324ca83
 
 
 
 
 
 
 
 
 
 
 
a143120
 
324ca83
a143120
 
324ca83
a143120
 
7fcf52f
324ca83
 
 
 
 
 
 
 
 
 
 
 
 
a143120
 
324ca83
a143120
 
324ca83
a143120
7fcf52f
324ca83
 
 
 
 
 
 
 
 
 
a143120
 
 
324ca83
a143120
 
324ca83
a143120
 
7fcf52f
324ca83
 
7fcf52f
ea718cf
a143120
 
324ca83
 
a143120
7fcf52f
 
 
a143120
324ca83
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
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) # 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('/int', methods=['GET'])
def WEBScout3_search_search_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) # 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('/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="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() # Instantiate WEBS without context manager
    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") # Initialize the LLM class with a model
    response = llm.mistral_chat([{"role": "user", "content": user_input}]) # Call the mistral_chat method
    return jsonify({"response": response})

if __name__ == '__main__':
    app.run(debug=True)