Skip to content

Commit 87ab217

Browse files
authored
feat: application chat log (#3230)
1 parent ab256b9 commit 87ab217

File tree

12 files changed

+1193
-2
lines changed

12 files changed

+1193
-2
lines changed
Lines changed: 135 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,135 @@
1+
# coding=utf-8
2+
"""
3+
@project: MaxKB
4+
@Author:虎虎
5+
@file: application_chat.py
6+
@date:2025/6/10 13:54
7+
@desc:
8+
"""
9+
from django.utils.translation import gettext_lazy as _
10+
from drf_spectacular.types import OpenApiTypes
11+
from drf_spectacular.utils import OpenApiParameter
12+
13+
from application.serializers.application_chat import ApplicationChatQuerySerializers, \
14+
ApplicationChatResponseSerializers, ApplicationChatRecordExportRequest
15+
from common.mixins.api_mixin import APIMixin
16+
from common.result import ResultSerializer, ResultPageSerializer
17+
18+
19+
class ApplicationChatListResponseSerializers(ResultSerializer):
20+
def get_data(self):
21+
return ApplicationChatResponseSerializers(many=True)
22+
23+
24+
class ApplicationChatPageResponseSerializers(ResultPageSerializer):
25+
def get_data(self):
26+
return ApplicationChatResponseSerializers(many=True)
27+
28+
29+
class ApplicationChatQueryAPI(APIMixin):
30+
@staticmethod
31+
def get_request():
32+
return ApplicationChatQuerySerializers
33+
34+
@staticmethod
35+
def get_parameters():
36+
return [
37+
OpenApiParameter(
38+
name="workspace_id",
39+
description="工作空间id",
40+
type=OpenApiTypes.STR,
41+
location='path',
42+
required=True,
43+
),
44+
OpenApiParameter(
45+
name="application_id",
46+
description="application ID",
47+
type=OpenApiTypes.STR,
48+
location='path',
49+
required=True,
50+
), OpenApiParameter(
51+
name="start_time",
52+
description="start Time",
53+
type=OpenApiTypes.STR,
54+
required=True,
55+
),
56+
OpenApiParameter(
57+
name="end_time",
58+
description="end Time",
59+
type=OpenApiTypes.STR,
60+
required=True,
61+
),
62+
OpenApiParameter(
63+
name="abstract",
64+
description="summary",
65+
type=OpenApiTypes.STR,
66+
required=False,
67+
),
68+
OpenApiParameter(
69+
name="min_star",
70+
description=_("Minimum number of likes"),
71+
type=OpenApiTypes.INT,
72+
required=False,
73+
),
74+
OpenApiParameter(
75+
name="min_trample",
76+
description=_("Minimum number of clicks"),
77+
type=OpenApiTypes.INT,
78+
required=False,
79+
),
80+
OpenApiParameter(
81+
name="comparer",
82+
description=_("Comparator"),
83+
type=OpenApiTypes.STR,
84+
required=False,
85+
),
86+
]
87+
88+
@staticmethod
89+
def get_response():
90+
return ApplicationChatListResponseSerializers
91+
92+
93+
class ApplicationChatQueryPageAPI(APIMixin):
94+
@staticmethod
95+
def get_request():
96+
return ApplicationChatQueryAPI.get_request()
97+
98+
@staticmethod
99+
def get_parameters():
100+
return [
101+
*ApplicationChatQueryAPI.get_parameters(),
102+
OpenApiParameter(
103+
name="current_page",
104+
description=_("Current page"),
105+
type=OpenApiTypes.INT,
106+
location='path',
107+
required=True,
108+
),
109+
OpenApiParameter(
110+
name="page_size",
111+
description=_("Page size"),
112+
type=OpenApiTypes.INT,
113+
location='path',
114+
required=True,
115+
),
116+
117+
]
118+
119+
@staticmethod
120+
def get_response():
121+
return ApplicationChatPageResponseSerializers
122+
123+
124+
class ApplicationChatExportAPI(APIMixin):
125+
@staticmethod
126+
def get_request():
127+
return ApplicationChatRecordExportRequest
128+
129+
@staticmethod
130+
def get_parameters():
131+
return ApplicationChatQueryAPI.get_parameters()
132+
133+
@staticmethod
134+
def get_response():
135+
return None
Lines changed: 180 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,180 @@
1+
# coding=utf-8
2+
"""
3+
@project: MaxKB
4+
@Author:虎虎
5+
@file: application_chat_record.py
6+
@date:2025/6/10 15:19
7+
@desc:
8+
"""
9+
from django.utils.translation import gettext_lazy as _
10+
from drf_spectacular.types import OpenApiTypes
11+
from drf_spectacular.utils import OpenApiParameter
12+
13+
from application.serializers.application_chat_record import ApplicationChatRecordAddKnowledgeSerializer, \
14+
ApplicationChatRecordImproveInstanceSerializer
15+
from common.mixins.api_mixin import APIMixin
16+
17+
18+
class ApplicationChatRecordQueryAPI(APIMixin):
19+
@staticmethod
20+
def get_response():
21+
pass
22+
23+
@staticmethod
24+
def get_request():
25+
pass
26+
27+
@staticmethod
28+
def get_parameters():
29+
return [
30+
OpenApiParameter(
31+
name="workspace_id",
32+
description="工作空间id",
33+
type=OpenApiTypes.STR,
34+
location='path',
35+
required=True,
36+
),
37+
OpenApiParameter(
38+
name="application_id",
39+
description="Application ID",
40+
type=OpenApiTypes.STR,
41+
location='path',
42+
required=True,
43+
),
44+
OpenApiParameter(
45+
name="chat_id",
46+
description=_("Chat ID"),
47+
type=OpenApiTypes.STR,
48+
location='path',
49+
required=True,
50+
),
51+
OpenApiParameter(
52+
name="order_asc",
53+
description=_("Is it in order"),
54+
type=OpenApiTypes.BOOL,
55+
required=True,
56+
)
57+
]
58+
59+
60+
class ApplicationChatRecordPageQueryAPI(APIMixin):
61+
@staticmethod
62+
def get_response():
63+
pass
64+
65+
@staticmethod
66+
def get_request():
67+
pass
68+
69+
@staticmethod
70+
def get_parameters():
71+
return [*ApplicationChatRecordQueryAPI.get_parameters(),
72+
OpenApiParameter(
73+
name="current_page",
74+
description=_("Current page"),
75+
type=OpenApiTypes.INT,
76+
location='path',
77+
required=True,
78+
),
79+
OpenApiParameter(
80+
name="page_size",
81+
description=_("Page size"),
82+
type=OpenApiTypes.INT,
83+
location='path',
84+
required=True,
85+
)]
86+
87+
88+
class ApplicationChatRecordImproveParagraphAPI(APIMixin):
89+
@staticmethod
90+
def get_response():
91+
pass
92+
93+
@staticmethod
94+
def get_request():
95+
return ApplicationChatRecordImproveInstanceSerializer
96+
97+
@staticmethod
98+
def get_parameters():
99+
return [OpenApiParameter(
100+
name="workspace_id",
101+
description="工作空间id",
102+
type=OpenApiTypes.STR,
103+
location='path',
104+
required=True,
105+
),
106+
OpenApiParameter(
107+
name="application_id",
108+
description="Application ID",
109+
type=OpenApiTypes.STR,
110+
location='path',
111+
required=True,
112+
),
113+
OpenApiParameter(
114+
name="chat_id",
115+
description=_("Chat ID"),
116+
type=OpenApiTypes.STR,
117+
location='path',
118+
required=True,
119+
),
120+
OpenApiParameter(
121+
name="chat_record_id",
122+
description=_("Chat Record ID"),
123+
type=OpenApiTypes.STR,
124+
location='path',
125+
required=True,
126+
),
127+
OpenApiParameter(
128+
name="knowledge_id",
129+
description=_("Knowledge ID"),
130+
type=OpenApiTypes.STR,
131+
location='path',
132+
required=True,
133+
),
134+
OpenApiParameter(
135+
name="document_id",
136+
description=_("Document ID"),
137+
type=OpenApiTypes.STR,
138+
location='path',
139+
required=True,
140+
)
141+
]
142+
143+
class Operate(APIMixin):
144+
@staticmethod
145+
def get_parameters():
146+
return [*ApplicationChatRecordImproveParagraphAPI.get_parameters(), OpenApiParameter(
147+
name="paragraph_id",
148+
description=_("Paragraph ID"),
149+
type=OpenApiTypes.STR,
150+
location='path',
151+
required=True,
152+
)]
153+
154+
155+
class ApplicationChatRecordAddKnowledgeAPI(APIMixin):
156+
@staticmethod
157+
def get_request():
158+
return ApplicationChatRecordAddKnowledgeSerializer
159+
160+
@staticmethod
161+
def get_response():
162+
return None
163+
164+
@staticmethod
165+
def get_parameters():
166+
return [
167+
OpenApiParameter(
168+
name="workspace_id",
169+
description="工作空间id",
170+
type=OpenApiTypes.STR,
171+
location='path',
172+
required=True,
173+
),
174+
OpenApiParameter(
175+
name="application_id",
176+
description="Application ID",
177+
type=OpenApiTypes.STR,
178+
location='path',
179+
required=True,
180+
)]

0 commit comments

Comments
 (0)