from flask import Flask, request, jsonify from huggingface_hub import InferenceClient from gunicorn.glogging import Logger class Config: loglevel = "info" # errorlog = "error.log" # Log file for errors # accesslog = "access.log" # Log file for access logs syslog = False syslog_facility = "daemon" syslog_prefix = "gunicorn" capture_output = True logconfig = None logconfig_json = None logconfig_dict = None disable_redirect_access_to_syslog = False cfg = Config() app = Flask(__name__) logger = Logger(cfg) client = InferenceClient("meta-llama/Llama-3.1-8B-Instruct") DEFAULT_MAX_TOKENS = 512 DEFAULT_TEMPERATURE = 0.7 DEFAULT_TOP_P = 0.95 def generate_journal_suggestion(current_page): try: suggestion_prompt = ( f"""Pe baza înregistrării din jurnal: '{current_page}', generează o singură întrebare pe care utilizatorul ar putea să și-o pună într-un jurnal. Întrebarea ar trebui să încurajeze reflecția personală mai profundă, explorarea sentimentelor sau clarificarea obiectivelor.""" ) logger.info("Generated suggestion prompt: %s", suggestion_prompt) suggestion_response = "" response_stream = client.chat_completion( [ {"role": "user", "content": suggestion_prompt} ], max_tokens=150, stream=True, temperature=DEFAULT_TEMPERATURE, top_p=DEFAULT_TOP_P, ) logger.info("Response stream received.") for message in response_stream: logger.info("Message received: %s", message) token = message.choices[0].delta.content suggestion_response += token return suggestion_response except Exception as e: logger.error("An error occurred: %s", e) return jsonify({"error": str(e)}), 500 @app.route("/", methods=["POST", "GET"]) def home(): return "Hi!" @app.route("/chat", methods=["POST"]) def chat(): try: data = request.json message = data.get("message", "") system_message = data.get("system_message", "You are a friendly chatbot.") journal_page = data.get("journal_page", "") suggestion = "" if journal_page: suggestion = generate_journal_suggestion(journal_page) return jsonify({"journal_suggestion": suggestion}) except Exception as e: logger.error("Error in chat endpoint: %s", e) return jsonify({"error": str(e)}), 500 if __name__ == "__main__": app.run(debug=True)