|  | @@ -62,16 +62,15 @@ class DailyConversationStatistic(Resource):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          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),
 | 
	
		
			
				|  |  | -                'conversation_count': i.conversation_count
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | +        with db.engine.begin() as conn:
 | 
	
		
			
				|  |  | +            rs = conn.execute(db.text(sql_query), arg_dict)
 | 
	
		
			
				|  |  | +            for i in rs:
 | 
	
		
			
				|  |  | +                response_data.append({
 | 
	
		
			
				|  |  | +                    'date': str(i.date),
 | 
	
		
			
				|  |  | +                    'conversation_count': i.conversation_count
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return jsonify({
 | 
	
		
			
				|  |  |              'data': response_data
 | 
	
	
		
			
				|  | @@ -124,16 +123,15 @@ class DailyTerminalsStatistic(Resource):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          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),
 | 
	
		
			
				|  |  | -                'terminal_count': i.terminal_count
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | +        with db.engine.begin() as conn:
 | 
	
		
			
				|  |  | +            rs = conn.execute(db.text(sql_query), arg_dict)            
 | 
	
		
			
				|  |  | +            for i in rs:
 | 
	
		
			
				|  |  | +                response_data.append({
 | 
	
		
			
				|  |  | +                    'date': str(i.date),
 | 
	
		
			
				|  |  | +                    'terminal_count': i.terminal_count
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return jsonify({
 | 
	
		
			
				|  |  |              'data': response_data
 | 
	
	
		
			
				|  | @@ -187,18 +185,17 @@ class DailyTokenCostStatistic(Resource):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          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),
 | 
	
		
			
				|  |  | -                'token_count': i.token_count,
 | 
	
		
			
				|  |  | -                'total_price': i.total_price,
 | 
	
		
			
				|  |  | -                'currency': 'USD'
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | +        with db.engine.begin() as conn:
 | 
	
		
			
				|  |  | +            rs = conn.execute(db.text(sql_query), arg_dict)
 | 
	
		
			
				|  |  | +            for i in rs:
 | 
	
		
			
				|  |  | +                response_data.append({
 | 
	
		
			
				|  |  | +                    'date': str(i.date),
 | 
	
		
			
				|  |  | +                    'token_count': i.token_count,
 | 
	
		
			
				|  |  | +                    'total_price': i.total_price,
 | 
	
		
			
				|  |  | +                    'currency': 'USD'
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return jsonify({
 | 
	
		
			
				|  |  |              'data': response_data
 | 
	
	
		
			
				|  | @@ -256,16 +253,15 @@ LEFT JOIN conversations c on c.id=subquery.conversation_id
 | 
	
		
			
				|  |  |  GROUP BY date
 | 
	
		
			
				|  |  |  ORDER BY date"""
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +        response_data = []
 | 
	
		
			
				|  |  | +        
 | 
	
		
			
				|  |  |          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),
 | 
	
		
			
				|  |  | -                'interactions': float(i.interactions.quantize(Decimal('0.01')))
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | +            for i in rs:
 | 
	
		
			
				|  |  | +                response_data.append({
 | 
	
		
			
				|  |  | +                    'date': str(i.date),
 | 
	
		
			
				|  |  | +                    'interactions': float(i.interactions.quantize(Decimal('0.01')))
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return jsonify({
 | 
	
		
			
				|  |  |              'data': response_data
 | 
	
	
		
			
				|  | @@ -320,20 +316,19 @@ class UserSatisfactionRateStatistic(Resource):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          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),
 | 
	
		
			
				|  |  | -                'rate': round((i.feedback_count * 1000 / i.message_count) if i.message_count > 0 else 0, 2),
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | +        with db.engine.begin() as conn:
 | 
	
		
			
				|  |  | +            rs = conn.execute(db.text(sql_query), arg_dict)
 | 
	
		
			
				|  |  | +            for i in rs:
 | 
	
		
			
				|  |  | +                response_data.append({
 | 
	
		
			
				|  |  | +                    'date': str(i.date),
 | 
	
		
			
				|  |  | +                    'rate': round((i.feedback_count * 1000 / i.message_count) if i.message_count > 0 else 0, 2),
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return jsonify({
 | 
	
		
			
				|  |  | -                'data': response_data
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | +            'data': response_data
 | 
	
		
			
				|  |  | +        })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  class AverageResponseTimeStatistic(Resource):
 | 
	
	
		
			
				|  | @@ -383,16 +378,15 @@ class AverageResponseTimeStatistic(Resource):
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          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),
 | 
	
		
			
				|  |  | -                'latency': round(i.latency * 1000, 4)
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | +        with db.engine.begin() as conn:
 | 
	
		
			
				|  |  | +            rs = conn.execute(db.text(sql_query), arg_dict)            
 | 
	
		
			
				|  |  | +            for i in rs:
 | 
	
		
			
				|  |  | +                response_data.append({
 | 
	
		
			
				|  |  | +                    'date': str(i.date),
 | 
	
		
			
				|  |  | +                    'latency': round(i.latency * 1000, 4)
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return jsonify({
 | 
	
		
			
				|  |  |              'data': response_data
 | 
	
	
		
			
				|  | @@ -447,16 +441,15 @@ WHERE app_id = :app_id'''
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          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)
 | 
	
		
			
				|  |  | -            })
 | 
	
		
			
				|  |  | +        with db.engine.begin() as conn:
 | 
	
		
			
				|  |  | +            rs = conn.execute(db.text(sql_query), arg_dict)
 | 
	
		
			
				|  |  | +            for i in rs:
 | 
	
		
			
				|  |  | +                response_data.append({
 | 
	
		
			
				|  |  | +                    'date': str(i.date),
 | 
	
		
			
				|  |  | +                    'tps': round(i.tokens_per_second, 4)
 | 
	
		
			
				|  |  | +                })
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |          return jsonify({
 | 
	
		
			
				|  |  |              'data': response_data
 |