Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
D
dify
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
ai-tech
dify
Commits
614fdbf9
Commit
614fdbf9
authored
Jul 28, 2023
by
John Wang
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'feat/add-stat-tps' into deploy/dev
parents
c0d48756
dd4b3e2c
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
65 additions
and
0 deletions
+65
-0
statistic.py
api/controllers/console/app/statistic.py
+65
-0
No files found.
api/controllers/console/app/statistic.py
View file @
614fdbf9
...
...
@@ -398,9 +398,74 @@ class AverageResponseTimeStatistic(Resource):
})
class
TokensPerSecondStatistic
(
Resource
):
@
setup_required
@
login_required
@
account_initialization_required
def
get
(
self
,
app_id
):
account
=
current_user
app_id
=
str
(
app_id
)
app_model
=
_get_app
(
app_id
)
parser
=
reqparse
.
RequestParser
()
parser
.
add_argument
(
'start'
,
type
=
datetime_string
(
'
%
Y-
%
m-
%
d
%
H:
%
M'
),
location
=
'args'
)
parser
.
add_argument
(
'end'
,
type
=
datetime_string
(
'
%
Y-
%
m-
%
d
%
H:
%
M'
),
location
=
'args'
)
args
=
parser
.
parse_args
()
sql_query
=
'''SELECT date(DATE_TRUNC('day', created_at AT TIME ZONE 'UTC' AT TIME ZONE :tz )) AS date,
CASE
WHEN SUM(provider_response_latency) = 0 THEN 0
ELSE (SUM(answer_tokens) / SUM(provider_response_latency))
END as tokens_per_second
FROM messages
WHERE app_id = :app_id'''
arg_dict
=
{
'tz'
:
account
.
timezone
,
'app_id'
:
app_model
.
id
}
timezone
=
pytz
.
timezone
(
account
.
timezone
)
utc_timezone
=
pytz
.
utc
if
args
[
'start'
]:
start_datetime
=
datetime
.
strptime
(
args
[
'start'
],
'
%
Y-
%
m-
%
d
%
H:
%
M'
)
start_datetime
=
start_datetime
.
replace
(
second
=
0
)
start_datetime_timezone
=
timezone
.
localize
(
start_datetime
)
start_datetime_utc
=
start_datetime_timezone
.
astimezone
(
utc_timezone
)
sql_query
+=
' and created_at >= :start'
arg_dict
[
'start'
]
=
start_datetime_utc
if
args
[
'end'
]:
end_datetime
=
datetime
.
strptime
(
args
[
'end'
],
'
%
Y-
%
m-
%
d
%
H:
%
M'
)
end_datetime
=
end_datetime
.
replace
(
second
=
0
)
end_datetime_timezone
=
timezone
.
localize
(
end_datetime
)
end_datetime_utc
=
end_datetime_timezone
.
astimezone
(
utc_timezone
)
sql_query
+=
' and created_at < :end'
arg_dict
[
'end'
]
=
end_datetime_utc
sql_query
+=
' GROUP BY date order by date'
with
db
.
engine
.
begin
()
as
conn
:
rs
=
conn
.
execute
(
db
.
text
(
sql_query
),
arg_dict
)
response_data
=
[]
for
i
in
rs
:
response_data
.
append
({
'date'
:
str
(
i
.
date
),
'tps'
:
round
(
i
.
tokens_per_second
,
4
)
})
return
jsonify
({
'data'
:
response_data
})
api
.
add_resource
(
DailyConversationStatistic
,
'/apps/<uuid:app_id>/statistics/daily-conversations'
)
api
.
add_resource
(
DailyTerminalsStatistic
,
'/apps/<uuid:app_id>/statistics/daily-end-users'
)
api
.
add_resource
(
DailyTokenCostStatistic
,
'/apps/<uuid:app_id>/statistics/token-costs'
)
api
.
add_resource
(
AverageSessionInteractionStatistic
,
'/apps/<uuid:app_id>/statistics/average-session-interactions'
)
api
.
add_resource
(
UserSatisfactionRateStatistic
,
'/apps/<uuid:app_id>/statistics/user-satisfaction-rate'
)
api
.
add_resource
(
AverageResponseTimeStatistic
,
'/apps/<uuid:app_id>/statistics/average-response-time'
)
api
.
add_resource
(
TokensPerSecondStatistic
,
'/apps/<uuid:app_id>/statistics/tokens-per-second'
)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment