Update app.py
Browse files
app.py
CHANGED
@@ -106,20 +106,43 @@ def initialize_chat_engine(index):
|
|
106 |
# ===================================
|
107 |
# 6️⃣ Fungsi untuk Menghasilkan Respons Chatbot
|
108 |
# ===================================
|
109 |
-
def generate_response(message, history
|
110 |
if history is None:
|
111 |
history = []
|
112 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
113 |
chat_messages = [
|
114 |
ChatMessage(
|
115 |
role="system",
|
116 |
-
content="Anda adalah chatbot yang
|
|
|
|
|
|
|
|
|
|
|
117 |
),
|
118 |
]
|
119 |
-
|
|
|
120 |
response = chat_engine.stream_chat(message)
|
121 |
-
text = "".join(response.response_gen)
|
122 |
-
|
123 |
history.append((message, text))
|
124 |
return history
|
125 |
|
|
|
106 |
# ===================================
|
107 |
# 6️⃣ Fungsi untuk Menghasilkan Respons Chatbot
|
108 |
# ===================================
|
109 |
+
def generate_response(message, history):
|
110 |
if history is None:
|
111 |
history = []
|
112 |
+
|
113 |
+
# 🔹 Ambil data terbaru dari Google Spreadsheet setiap kali ada pertanyaan
|
114 |
+
text_data = read_google_sheet()
|
115 |
+
document = Document(text=text_data)
|
116 |
+
documents = [document]
|
117 |
+
|
118 |
+
# 🔹 Perbarui index dengan data terbaru
|
119 |
+
parser = SentenceSplitter(chunk_size=150, chunk_overlap=10)
|
120 |
+
nodes = parser.get_nodes_from_documents(documents)
|
121 |
+
index = VectorStoreIndex(nodes)
|
122 |
+
retriever = index.as_retriever(similarity_top_k=3)
|
123 |
+
|
124 |
+
# 🔹 Buat ulang chat engine dengan index yang diperbarui
|
125 |
+
chat_engine = CondensePlusContextChatEngine.from_defaults(
|
126 |
+
retriever=retriever,
|
127 |
+
verbose=True,
|
128 |
+
)
|
129 |
+
|
130 |
chat_messages = [
|
131 |
ChatMessage(
|
132 |
role="system",
|
133 |
+
content="Anda adalah chatbot yang cerdas dan sopan. "
|
134 |
+
"Jawablah semua pertanyaan dalam bahasa Indonesia dengan jelas dan mudah dipahami. "
|
135 |
+
"Gunakan gaya bahasa yang profesional tetapi tetap ramah. "
|
136 |
+
"Jika informasi tidak tersedia di dokumen, beritahukan dengan sopan bahwa Anda tidak memiliki informasi tersebut. "
|
137 |
+
"Jangan menjawab dalam bahasa lain selain Bahasa Indonesia. "
|
138 |
+
"Fokuslah memberikan jawaban yang akurat dan relevan sesuai dengan dokumen yang tersedia."
|
139 |
),
|
140 |
]
|
141 |
+
|
142 |
+
# 🔹 Gunakan chat engine baru untuk menjawab pertanyaan
|
143 |
response = chat_engine.stream_chat(message)
|
144 |
+
text = "".join(response.response_gen)
|
145 |
+
|
146 |
history.append((message, text))
|
147 |
return history
|
148 |
|