Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 44 additions & 6 deletions apps/homepage/serializers/homepage.py
Original file line number Diff line number Diff line change
Expand Up @@ -257,21 +257,35 @@ def ranking(self, auth, current_page, page_size, with_valid=True):
def export(self, auth, with_valid=True):
if with_valid:
self.is_valid(raise_exception=True)
token_count = HomePageSerializer.TokensAggregation(data=self.data).aggregation(auth)
queryset, asker_map = self.get_queryset(auth)
workbook = openpyxl.Workbook(write_only=True)
worksheet = workbook.create_sheet(title='Sheet1')
headers = [gettext('ranking'),
gettext('User Name'),
gettext('Token consumption'),
gettext('proportion'),
gettext('number of questions'),
gettext('Average tokens per request'),
]
worksheet.append(headers)
index = 0
for item in queryset:
index += 1
row = [index, asker_map.get(
user_info = asker_map.get(
(item["chat_user_id"], item["chat_user_type"])
).get('username'), item['total_tokens'], item['chat_record_count']]
) or {}
username = user_info.get("username", "")
total_tokens = item.get("total_tokens", 0)
chat_record_count = item.get("chat_record_count", 0)
row = [
index,
username,
total_tokens,
total_tokens / token_count if token_count else 0,
chat_record_count,
total_tokens / chat_record_count if chat_record_count else 0,
]
worksheet.append(row)
response = HttpResponse(content_type="application/vnd.ms-excel")
response["Content-Disposition"] = f'attachment; filename="data.xlsx"'
Expand Down Expand Up @@ -414,19 +428,29 @@ def ranking(self, auth, current_page, page_size, with_valid=True):
def export(self, auth, with_valid=True):
if with_valid:
self.is_valid(raise_exception=True)
chat_record_number = HomePageSerializer.ChatRecordAggregation(data=self.data).aggregation(auth)
queryset = self.get_queryset(auth)
workbook = openpyxl.Workbook(write_only=True)
worksheet = workbook.create_sheet(title='Sheet1')
headers = [gettext('ranking'),
gettext('Application Name'),
gettext('number of questions'),
gettext('active users')
gettext('proportion'),
gettext('active users'),
gettext('Average Number of Conversation Turns per Person')
]
worksheet.append(headers)
index = 0
for item in queryset:
index += 1
row = [index, item.name, item.chat_record_count_total, item.chat_user_count]
row = [
index,
item.name,
item.chat_record_count_total,
item.chat_record_count_total / chat_record_number if chat_record_number != 0 else 0,
item.chat_user_count,
item.chat_user_count / item.chat_record_count_total if item.chat_record_count_total != 0 else 0
]
worksheet.append(row)
response = HttpResponse(content_type="application/vnd.ms-excel")
response["Content-Disposition"] = f'attachment; filename="data.xlsx"'
Expand Down Expand Up @@ -528,19 +552,33 @@ def ranking(self, auth, current_page, page_size, with_valid=True):
def export(self, auth, with_valid=True):
if with_valid:
self.is_valid(raise_exception=True)
tokens_total = HomePageSerializer.TokensAggregation(data=self.data).aggregation(auth)
queryset = self.get_queryset(auth)
workbook = openpyxl.Workbook(write_only=True)
worksheet = workbook.create_sheet(title='Sheet1')
headers = [gettext('ranking'),
gettext('Application Name'),
gettext('Token consumption'),
gettext('number of questions')
gettext('proportion'),
gettext('number of questions'),
gettext('active users'),
gettext('Average tokens per request'),
]
worksheet.append(headers)
index = 0
for item in queryset:
index += 1
row = [index, item.name, item.total_tokens, item.chat_record_count_total]
total_tokens = item.total_tokens
chat_record_count_total = item.chat_record_count_total
row = [
index,
item.name,
total_tokens,
total_tokens / tokens_total if tokens_total else 0,
item.chat_user_count,
chat_record_count_total,
total_tokens / chat_record_count_total if chat_record_count_total else 0,
]
worksheet.append(row)
response = HttpResponse(content_type="application/vnd.ms-excel")
response["Content-Disposition"] = f'attachment; filename="data.xlsx"'
Expand Down
26 changes: 25 additions & 1 deletion apps/locales/en_US/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -9354,4 +9354,28 @@ msgid "Termbase"
msgstr ""

msgid "Copy"
msgstr "Copy"
msgstr "Copy"

msgid "ranking"
msgstr "ranking"

msgid "Token consumption"
msgstr "Token consumption"

msgid "proportion"
msgstr "proportion"

msgid "number of questions"
msgstr "number of questions"

msgid "active users"
msgstr "active users"

msgid "Average tokens per request"
msgstr "Average tokens per request"

msgid "Average Number of Conversation Turns per Person"
msgstr "Average Number of Conversation Turns per Person"

msgid "User Name"
msgstr "User Name"
26 changes: 25 additions & 1 deletion apps/locales/zh_CN/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -9477,4 +9477,28 @@ msgid "Termbase"
msgstr "词库"

msgid "Copy"
msgstr "复制"
msgstr "复制"

msgid "ranking"
msgstr "排名"

msgid "Token consumption"
msgstr "Token消耗"

msgid "proportion"
msgstr "占比"

msgid "number of questions"
msgstr "提问次数"

msgid "active users"
msgstr "活跃用户数"

msgid "Average tokens per request"
msgstr "单次请求平均Token数"

msgid "Average Number of Conversation Turns per Person"
msgstr "人均对话轮次"

msgid "User Name"
msgstr "用户名称"
26 changes: 25 additions & 1 deletion apps/locales/zh_Hant/LC_MESSAGES/django.po
Original file line number Diff line number Diff line change
Expand Up @@ -9474,4 +9474,28 @@ msgid "Termbase"
msgstr "詞庫"

msgid "Copy"
msgstr "複製"
msgstr "複製"

msgid "ranking"
msgstr "排名"

msgid "Token consumption"
msgstr "Token消耗"

msgid "proportion"
msgstr "占比"

msgid "number of questions"
msgstr "提問次數"

msgid "active users"
msgstr "活躍用戶數"

msgid "Average tokens per request"
msgstr "單次請求平均Token數"

msgid "Average Number of Conversation Turns per Person"
msgstr "人均對話輪次"

msgid "User Name"
msgstr "用戶名稱"
Loading