File size: 1,689 Bytes
8161c55
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
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
import google.generativeai as genai
import os
from flask import Flask, render_template
from user_data import get_user_history
from book_recommendations import (
    recommend_fiction,
    recommend_non_fiction,
    recommend_science
)

app = Flask(__name__)

# Configurar a chave de API
GOOGLE_API_KEY = os.environ.get('GOOGLE_API_KEY')
genai.configure(api_key=GOOGLE_API_KEY)

# Definir o modelo generativo com as funções disponíveis
magical_if = genai.GenerativeModel(
    "gemini-1.5-flash",
    tools=[
        recommend_fiction,
        recommend_non_fiction,
        recommend_science
    ]
)

def ia_decision(user_id, history):
    business_rules = """
    Analise o histórico de compras do usuário e decida qual categoria de livros recomendar.
    Regras:
    1. Se o usuário comprou mais livros de ficção, recomende ficção.
    2. Se o usuário comprou mais livros de não ficção, recomende não ficção.
    3. Se o usuário demonstrou interesse em ciência, recomende ciência.
    4. Caso contrário, ofereça uma recomendação geral de ficção.
    """
    user_decision = magical_if.start_chat(enable_automatic_function_calling=True)
    response = user_decision.send_message(
        f"Histórico do usuário {user_id}: {history}; Regras de negócio: {business_rules}"
    )
    return response.text

@app.route('/recommend/<int:user_id>')
def recommend(user_id):
    history = get_user_history(user_id)
    if not history:
        return "Usuário não encontrado", 404
    ia_response = ia_decision(user_id, history)
    return render_template('recommendation.html', user_id=user_id, message=ia_response)

if __name__ == '__main__':
    app.run(debug=True)