transcript / app.py
CORVO-AI's picture
Update app.py
ea53014 verified
raw
history blame
4.65 kB
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)