Spaces:
Paused
Paused
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 | |
def home(): | |
return "Hi!" | |
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) | |