Files
hack/tools/scripts/llm-key-hunter/results/_cache/content/andinoferdi_chatbot.json
T

1 line
3.2 KiB
JSON

{"repo": "andinoferdi/chatbot", "files": {"app.py": {"e77cf1b32836ac467a3e321fc1460d6302ef1133": {"t": 1785674366.7929096, "n": 2958, "h": "9fae5b8a25dcc4cb", "c": "from flask import Flask, render_template, request, jsonify\nimport requests\nimport json\nimport os\nimport uuid\nfrom dotenv import load_dotenv\n\nload_dotenv()\n\napp = Flask(__name__)\n\nAPI_KEY = os.getenv(\"OPENROUTER_API_KEY\")\nAPI_URL = os.getenv(\"OPENROUTER_API_URL\", \"https://openrouter.ai/api/v1/chat/completions\")\n\nheaders = {\n \"Authorization\": f\"Bearer {API_KEY}\",\n \"Content-Type\": \"application/json\"\n}\n\nSESSIONS_FILE = \"data/chat_sessions.json\"\n\nif not os.path.exists(\"data\"):\n os.makedirs(\"data\")\n\nif not os.path.exists(SESSIONS_FILE):\n with open(SESSIONS_FILE, \"w\") as file:\n json.dump({}, file)\n\ndef load_chat_sessions():\n try:\n with open(SESSIONS_FILE, \"r\") as file:\n return json.load(file)\n except (json.JSONDecodeError, FileNotFoundError):\n return {}\n\ndef save_chat_sessions(sessions):\n with open(SESSIONS_FILE, \"w\") as file:\n json.dump(sessions, file, indent=4)\n\n@app.route(\"/new_session\", methods=[\"GET\"])\ndef new_session():\n session_id = str(uuid.uuid4()) \n chat_sessions = load_chat_sessions()\n chat_sessions[session_id] = [] \n save_chat_sessions(chat_sessions)\n return jsonify({\"session_id\": session_id})\n\n@app.route(\"/get_history/<session_id>\", methods=[\"GET\"])\ndef get_history(session_id):\n chat_sessions = load_chat_sessions()\n return jsonify({\"history\": chat_sessions.get(session_id, [])})\n\n@app.route(\"/get_sessions\", methods=[\"GET\"])\ndef get_sessions():\n chat_sessions = load_chat_sessions()\n return jsonify({\"sessions\": list(chat_sessions.keys())})\n\n@app.route(\"/chat\", methods=[\"POST\"])\ndef chat():\n data = request.get_json()\n session_id = data.get(\"session_id\")\n user_message = data.get(\"message\")\n\n if not session_id:\n return jsonify({\"error\": \"Session ID is required\"}), 400\n\n chat_sessions = load_chat_sessions()\n\n if session_id not in chat_sessions:\n chat_sessions[session_id] = []\n\n chat_sessions[session_id].append({\"role\": \"user\", \"content\": user_message})\n\n payload = {\n \"model\": \"openai/gpt-3.5-turbo\",\n \"messages\": chat_sessions[session_id]\n }\n\n response = requests.post(API_URL, headers=headers, data=json.dumps(payload))\n\n if response.status_code == 200:\n api_response = response.json()\n \n if \"choices\" in api_response and len(api_response[\"choices\"]) > 0:\n bot_response = api_response[\"choices\"][0][\"message\"][\"content\"]\n else:\n bot_response = \"Sorry, there was an error retrieving a response from AI.\"\n\n chat_sessions[session_id].append({\"role\": \"assistant\", \"content\": bot_response})\n save_chat_sessions(chat_sessions)\n return jsonify({\"response\": bot_response})\n else:\n return jsonify({\"error\": f\"Error {response.status_code}: {response.text}\"}), response.status_code\n\n@app.route(\"/\")\ndef index():\n return render_template(\"index.html\")\n\nif __name__ == \"__main__\":\n app.run(debug=True)\n"}}}}