Spaces:
Sleeping
Sleeping
the last samurai
Browse files- chat/database_manage.py +12 -1
- chat/templates/index.html +4 -2
- chat/views.py +13 -11
- chatbot_django/settings.py +5 -1
- db.sqlite3 +0 -0
chat/database_manage.py
CHANGED
@@ -36,8 +36,19 @@ class DataManage:
|
|
36 |
for x in chat_details:
|
37 |
mes.append({'role':"user",'content':x.UserPrompt})
|
38 |
mes.append({'role':"model",'content':x.BotResponse})
|
39 |
-
|
40 |
return {'id':str(room.RoomID), 'user':room.UserName,'messages':mes}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
41 |
def LoadRooms(self,username):
|
42 |
#return list of {id,name}
|
43 |
try:
|
|
|
36 |
for x in chat_details:
|
37 |
mes.append({'role':"user",'content':x.UserPrompt})
|
38 |
mes.append({'role':"model",'content':x.BotResponse})
|
|
|
39 |
return {'id':str(room.RoomID), 'user':room.UserName,'messages':mes}
|
40 |
+
|
41 |
+
def LoadHistoryRoomForModel(self, roomid):
|
42 |
+
room = Room.objects.get(RoomID=roomid)
|
43 |
+
print(f"{room.RoomID} đã gọi chi tiết đoạn chat theo pattern context []")
|
44 |
+
chat_details = ChatDetails.objects.filter(RoomID=room.RoomID).order_by('order')
|
45 |
+
mes = []
|
46 |
+
for x in chat_details:
|
47 |
+
text = [{"text":str(x.UserPrompt)}]
|
48 |
+
mes.append({'role':"user",'parts':text})
|
49 |
+
text = [{"text":str(x.BotResponse)}]
|
50 |
+
mes.append({'role':"model",'parts':text})
|
51 |
+
return mes
|
52 |
def LoadRooms(self,username):
|
53 |
#return list of {id,name}
|
54 |
try:
|
chat/templates/index.html
CHANGED
@@ -78,7 +78,7 @@
|
|
78 |
<!-- head -->
|
79 |
<div class="flex flex-row justify-between items-center p-4 select-none">
|
80 |
<h1 class="text-2xl font-medium text-center">
|
81 |
-
|
82 |
</h1>
|
83 |
<div>
|
84 |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"
|
@@ -217,6 +217,7 @@
|
|
217 |
},
|
218 |
],
|
219 |
isLoading: false,
|
|
|
220 |
message: '',
|
221 |
messages: roomdata.messages,
|
222 |
// cs:roomdata,
|
@@ -244,8 +245,9 @@
|
|
244 |
}
|
245 |
// this.connect()
|
246 |
this.ques = params.get('ques');
|
247 |
-
if (this.ques != null) {
|
248 |
this.message = this.ques;
|
|
|
249 |
this.sendMessageAPI();
|
250 |
}
|
251 |
},
|
|
|
78 |
<!-- head -->
|
79 |
<div class="flex flex-row justify-between items-center p-4 select-none">
|
80 |
<h1 class="text-2xl font-medium text-center">
|
81 |
+
<a :href="`/chat`">Arxiv Chatbot</a>
|
82 |
</h1>
|
83 |
<div>
|
84 |
<svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg"
|
|
|
217 |
},
|
218 |
],
|
219 |
isLoading: false,
|
220 |
+
isFirst:true,
|
221 |
message: '',
|
222 |
messages: roomdata.messages,
|
223 |
// cs:roomdata,
|
|
|
245 |
}
|
246 |
// this.connect()
|
247 |
this.ques = params.get('ques');
|
248 |
+
if (this.ques != null && this.isFirst==true) {
|
249 |
this.message = this.ques;
|
250 |
+
this.isFirst = false;
|
251 |
this.sendMessageAPI();
|
252 |
}
|
253 |
},
|
chat/views.py
CHANGED
@@ -51,23 +51,25 @@ def deletechat(request):
|
|
51 |
|
52 |
@method_decorator(csrf_exempt, name='dispatch')
|
53 |
class MessageView(View):
|
54 |
-
def __init__(self) -> None:
|
55 |
-
super().__init__()
|
56 |
-
self.model = None
|
57 |
-
self.session = None
|
58 |
-
self.database = None
|
59 |
-
|
60 |
def post(self, request):
|
61 |
-
if not self.model:
|
62 |
-
self.model, self.session = md.init_model("auto")
|
63 |
text_data_json = json.loads(request.body)
|
64 |
-
self.database = DataManage()
|
65 |
-
print(text_data_json)
|
66 |
roomid = text_data_json["roomid"]
|
67 |
message = text_data_json["messages"]
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
68 |
print(message)
|
69 |
question = message[-1]['content']
|
70 |
-
response, history_state = md.full_chain_history_question(question,
|
71 |
# print("First answer: ",response)
|
72 |
print("Session history:")
|
73 |
md.print_history(history_state)
|
|
|
51 |
|
52 |
@method_decorator(csrf_exempt, name='dispatch')
|
53 |
class MessageView(View):
|
|
|
|
|
|
|
|
|
|
|
|
|
54 |
def post(self, request):
|
|
|
|
|
55 |
text_data_json = json.loads(request.body)
|
|
|
|
|
56 |
roomid = text_data_json["roomid"]
|
57 |
message = text_data_json["messages"]
|
58 |
+
self.database = DataManage()
|
59 |
+
history = self.database.LoadHistoryRoomForModel(roomid)
|
60 |
+
model, session = md.init_model("auto",history=history)
|
61 |
+
# if 'session' not in request.session:
|
62 |
+
# history = self.database.LoadHistoryRoomForModel(roomid)
|
63 |
+
# model, session = md.init_model("auto",history=history)
|
64 |
+
# # request.session['model'] = model
|
65 |
+
# request.session['session'] = session
|
66 |
+
# else:
|
67 |
+
# # model = request.session['model']
|
68 |
+
# session = request.session['session']
|
69 |
+
print(text_data_json)
|
70 |
print(message)
|
71 |
question = message[-1]['content']
|
72 |
+
response, history_state = md.full_chain_history_question(question, session, mode="auto")
|
73 |
# print("First answer: ",response)
|
74 |
print("Session history:")
|
75 |
md.print_history(history_state)
|
chatbot_django/settings.py
CHANGED
@@ -15,6 +15,10 @@ from pathlib import Path
|
|
15 |
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
16 |
BASE_DIR = Path(__file__).resolve().parent.parent
|
17 |
|
|
|
|
|
|
|
|
|
18 |
|
19 |
# Quick-start development settings - unsuitable for production
|
20 |
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/
|
@@ -26,7 +30,7 @@ LOGIN_URL = '/users/login/'
|
|
26 |
|
27 |
|
28 |
# SECURITY WARNING: don't run with debug turned on in production!
|
29 |
-
DEBUG =
|
30 |
|
31 |
ALLOWED_HOSTS = ['artteiv-arxiv-chatbot.hf.space','arxivbot-arxiv-chatbot.hf.space','localhost','127.0.0.1']
|
32 |
|
|
|
15 |
# Build paths inside the project like this: BASE_DIR / 'subdir'.
|
16 |
BASE_DIR = Path(__file__).resolve().parent.parent
|
17 |
|
18 |
+
SESSION_ENGINE = 'django.contrib.sessions.backends.db'
|
19 |
+
|
20 |
+
# settings.py
|
21 |
+
SESSION_EXPIRE_AT_BROWSER_CLOSE = True # Cấu hình session hết hạn khi trình duyệt đóng
|
22 |
|
23 |
# Quick-start development settings - unsuitable for production
|
24 |
# See https://docs.djangoproject.com/en/5.0/howto/deployment/checklist/
|
|
|
30 |
|
31 |
|
32 |
# SECURITY WARNING: don't run with debug turned on in production!
|
33 |
+
DEBUG = True
|
34 |
|
35 |
ALLOWED_HOSTS = ['artteiv-arxiv-chatbot.hf.space','arxivbot-arxiv-chatbot.hf.space','localhost','127.0.0.1']
|
36 |
|
db.sqlite3
CHANGED
Binary files a/db.sqlite3 and b/db.sqlite3 differ
|
|