File size: 2,259 Bytes
31c0a7e
 
980db68
a83fb54
31c0a7e
 
5175e14
 
 
31c0a7e
5175e14
 
31c0a7e
5175e14
31c0a7e
 
 
5175e14
31c0a7e
5175e14
 
31c0a7e
 
 
 
 
 
0408a46
 
 
 
 
 
 
 
 
 
 
5175e14
 
0408a46
 
 
 
 
 
5175e14
31c0a7e
 
0408a46
31c0a7e
 
 
 
 
 
0408a46
31c0a7e
5175e14
 
31c0a7e
5175e14
31c0a7e
0408a46
 
 
 
 
31c0a7e
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
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

@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", "")

        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)