File size: 4,654 Bytes
5492f08
20a3b47
305d870
5492f08
c895ad2
11f6cf9
 
 
c948fc8
11f6cf9
 
ea53014
c948fc8
 
c572b5a
11f6cf9
5492f08
11f6cf9
c948fc8
 
 
ae8b7b4
11f6cf9
c948fc8
11f6cf9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
5492f08
ae8b7b4
11f6cf9
 
20a3b47
11f6cf9
 
 
 
 
 
 
2f62045
5492f08
11f6cf9
5492f08
 
 
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
from flask import Flask, request, jsonify
import requests

app = Flask(__name__)

# Define the URL and headers for the external API
EXTERNAL_API_URL = "https://api.botpress.cloud/v1/cognitive/chat-gpt/query"
HEADERS = {
    "User-Agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36",
    "x-bot-id": "fbe047bc-06fb-44c1-9672-342fe1a2e506",
    "Content-Type": "application/json",
    "Cookie": "pscd=try.botpress.com; _gid=GA1.2.615255121.1735718396; _gcl_au=1.1.2059955793.1735718381; csrf_token_bd9ac21c34b9f0915e733c3e5305d737d0722c1168be7376b889426b5ec2a298=jodj27LFWsi2+szyWXyyeB9kSLWs8KK+JXM6e0HYjk4=; ory_kratos_session=MTczNTY3NTI2MHx5WlZxQnRHZzgwTHlWYzdDemF6aWFuSk4tOXA2eThZS0FZXy1XSnZyZzBWX3EwRVRBUU1hM2E1Mi1RdG9Da0RhYXVWODctQUk0dUlIVFhaZkl1OUpYdmViOGc0RmVRcEtacFhNeG5HYW9kSDNnMlVsbFVQZjdnQmJrUjV2MzJmLWs2Vmh2YnZ4bGl5ZmhGcF9lVkNxSFBIOWN0dS1Pd3MwR2NidzdLOGpwQVZZS3kzRlF4cU1uOHVVSXNoVnhQaXRCRzlkMHlzaWJNRnlVWkp6MnNrMWwwSWtaZGxNc2JONlRMZ3RTaW5XbzI3X1VGb0daNFhVWC1FakR0aWhNTG5EZDc0cGlCc3NtMUVpdGJPZ2hCV3RIQT09fI4khQhSXNtG4vpJU2FiOKNw13-i91YryQW4fmXKuaRU; _hjSession_2931810=eyJpZCI6ImY1ZjMyOWNkLTYwOTEtNDQ0Yi1iZTYyLWQzZGYwZDQzNGE5OSIsImMiOjE3MzU3MTg0MDcwNTIsInMiOjAsInIiOjAsInNiIjowLCJzciI6MCwic2UiOjAsImZzIjoxLCJzcCI6MH0=; _hjSessionUser_2931810=eyJpZCI6ImQ2MGMzYjhkLTlkMjQtNTA0OS1hMzlmLWEzNmI0NzA0NzUxNCIsImNyZWF0ZWQiOjE3MzU3MTg0MDcwNTAsImV4aXN0aW5nIjp0cnVlfQ==; __hstc=59821234.75739411a4d011b2164c4f3d944ecb94.1735718442141.1735718442141.1735718442141.1; hubspotutk=75739411a4d011b2164c4f3d944ecb94; __hssrc=1; intercom-device-id-bjzkw2xf=afd0a36b-b229-44e3-828e-60483c80c10c; _hjSession_3339867=eyJpZCI6ImZlOTE3N2VjLTNjMGQtNGNmMC1iMDU1LTVjMzRjOGMyMzMxZCIsImMiOjE3MzU3MTg1ODM4MDksInMiOjAsInIiOjAsInNiIjowLCJzciI6MCwic2UiOjAsImZzIjoxLCJzcCI6MH0=; _hjSessionUser_3339867=eyJpZCI6IjU4ODlmMTY4LWRkNGEtNTJhZS1hZTUzLWZlYWQwM2ZmMTVjNyIsImNyZWF0ZWQiOjE3MzU3MTg1ODM4MDgsImV4aXN0aW5nIjp0cnVlfQ==; mp_1195923e954ce61d822842b5832047cd_mixpanel=%7B%22distinct_id%22%3A%20%22anonymous%22%2C%22%24device_id%22%3A%20%22anonymous%22%2C%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fapp.botpress.cloud%2F%22%2C%22%24initial_referring_domain%22%3A%20%22app.botpress.cloud%22%2C%22__mps%22%3A%20%7B%7D%2C%22__mpso%22%3A%20%7B%22%24initial_referrer%22%3A%20%22https%3A%2F%2Fapp.botpress.cloud%2F%22%2C%22%24initial_referring_domain%22%3A%20%22app.botpress.cloud%22%7D%2C%22__mpus%22%3A%20%7B%7D%2C%22__mpa%22%3A%20%7B%7D%2C%22__mpu%22%3A%20%7B%7D%2C%22__mpr%22%3A%20%5B%5D%2C%22__mpap%22%3A%20%5B%5D%7D; _ga_PCC6TBWJY6=GS1.1.1735718393.1.1.1735719368.0.0.0; _ga=GA1.1.1726154447.1735718383; _ga_HKHSWES9V9=GS1.1.1735718383.1.1.1735719368.22.0.1129077405; _ga_W6YT9YSNLH=GS1.2.1735718403.1.1.1735719369.0.0.0; __hssc=59821234.2.1735718442141; _ga_CYSS87Q508=GS1.2.1735718405.1.1.1735719371.0.0.0; ajs_user_id=anonymous; ajs_anonymous_id=01be9348-6603-4da6-a529-dcdcca3d822d; intercom-session-bjzkw2xf=NGNPa3dQZDFJZW5sV2R6WGd1VnpyUUw0QlNqcHVBL05iOXRVZ04ydEZDTFFhekRqSU01VkFCMWFMclN6eVVUZS0tWkR0LzRwMkQ2MTdod21IcWROS1Rjdz09--dd9958b94533c254b9325ab04bb09ddb2669d9e6",  # Replace with actual cookie value
}

@app.route('/chat', methods=['POST'])
def query():
    try:
        # Get the JSON payload from the request
        data = request.get_json()
        question = data.get('question', '')
        history = data.get('history', [])

        # Construct the payload for the external API
        payload = {
            "prompt": {
                "messages": history + [
                    {"role": "user", "content": question}
                ],
                "model": "gpt-4o",
                "temperature": 0.9,
                "signatureVersion": "Jan-2024",
            },
            "variables": {
                "TASK_INPUT": ""
            },
            "options": {
                "origin": "cards/ai-task",
            },
            "origin": "cards/ai-task",
        }

        # Send the POST request to the external API
        response = requests.post(EXTERNAL_API_URL, json=payload, headers=HEADERS)

        # Check the response status
        if response.status_code == 200:
            response_json = response.json()
            assistant_content = response_json.get('choices', [{}])[0].get('message', {}).get('content', '')
            return jsonify({"success": True, "response": assistant_content})
        else:
            return jsonify({"success": False, "error": response.text}), response.status_code

    except Exception as e:
        return jsonify({"success": False, "error": str(e)}), 500

if __name__ == "__main__":
    app.run(host="0.0.0.0", port=7860)