Spaces:
Paused
Paused
from flask import Flask, request, jsonify | |
from huggingface_hub import InferenceClient | |
app = Flask(__name__) | |
client = InferenceClient("HuggingFaceH4/zephyr-7b-beta") | |
DEFAULT_MAX_TOKENS = 512 | |
DEFAULT_TEMPERATURE = 0.7 | |
DEFAULT_TOP_P = 0.95 | |
def generate_response(message, system_message): | |
messages = [{"role": "system", "content": system_message}] | |
messages.append({"role": "user", "content": message}) | |
response = "" | |
for message in client.chat_completion( | |
messages, | |
max_tokens=DEFAULT_MAX_TOKENS, | |
stream=True, | |
temperature=DEFAULT_TEMPERATURE, | |
top_p=DEFAULT_TOP_P, | |
): | |
token = message.choices[0].delta.content | |
response += token | |
return response | |
def generate_journal_suggestion(current_page): | |
suggestion_prompt = ( | |
f"Pe baza înregistrării din jurnal: '{current_page}', sugerează ce ar putea scrie utilizatorul în continuare în jurnalul său. " | |
"Concentrează-te pe încurajarea reflecției mai profunde, stabilirea obiectivelor sau explorarea ideilor conexe." | |
) | |
suggestion_response = "" | |
for message in client.chat_completion( | |
[{"role": "user", "content": suggestion_prompt}], | |
max_tokens=150, | |
stream=True, | |
temperature=DEFAULT_TEMPERATURE, | |
top_p=DEFAULT_TOP_P, | |
): | |
token = message.choices[0].delta.content | |
suggestion_response += token | |
return suggestion_response | |
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", "") | |
if not message: | |
return jsonify({"error": "Message is required."}), 400 | |
response = generate_response(message, system_message) | |
suggestion = "" | |
if journal_page: | |
suggestion = generate_journal_suggestion(journal_page) | |
return jsonify({"response": response, "journal_suggestion": suggestion}) | |
except Exception as e: | |
return jsonify({"error": str(e)}), 500 | |
if __name__ == "__main__": | |
app.run(debug=True) | |