Start log tracing to log business events. Storage in both database and logging-backend.
This commit is contained in:
@@ -1,28 +1,21 @@
|
||||
from common.extensions import db
|
||||
from sqlalchemy.dialects.postgresql import JSONB
|
||||
import sqlalchemy as sa
|
||||
|
||||
|
||||
class LLMUsageMetric(db.Model):
|
||||
class BusinessEventLog(db.Model):
|
||||
__bind_key__ = 'public'
|
||||
__table_args__ = {'schema': 'public'}
|
||||
|
||||
id = db.Column(db.Integer, primary_key=True)
|
||||
tenant_id = db.Column(db.Integer, nullable=False)
|
||||
environment = db.Column(db.String(20), nullable=False)
|
||||
activity = db.Column(db.String(20), nullable=False)
|
||||
sub_activity = db.Column(db.String(20), nullable=False)
|
||||
activity_detail = db.Column(db.String(50), nullable=True)
|
||||
session_id = db.Column(db.String(50), nullable=True) # Chat Session ID
|
||||
interaction_id = db.Column(db.Integer, nullable=True) # Chat Interaction ID
|
||||
document_version_id = db.Column(db.Integer, nullable=True)
|
||||
prompt_tokens = db.Column(db.Integer, nullable=True)
|
||||
completion_tokens = db.Column(db.Integer, nullable=True)
|
||||
total_tokens = db.Column(db.Integer, nullable=True)
|
||||
cost = db.Column(db.Float, nullable=True)
|
||||
latency = db.Column(db.Float, nullable=True)
|
||||
model_name = db.Column(db.String(50), nullable=False)
|
||||
timestamp = db.Column(db.DateTime, nullable=False)
|
||||
additional_info = db.Column(JSONB, nullable=True)
|
||||
|
||||
# Add any additional fields or methods as needed
|
||||
event_type = db.Column(db.String(50), nullable=False)
|
||||
tenant_id = db.Column(db.Integer, nullable=False)
|
||||
trace_id = db.Column(db.String(50), nullable=False)
|
||||
span_id = db.Column(db.String(50))
|
||||
span_name = db.Column(db.String(50))
|
||||
parent_span_id = db.Column(db.String(50))
|
||||
document_version_id = db.Column(db.Integer)
|
||||
chat_session_id = db.Column(db.Integer)
|
||||
interaction_id = db.Column(db.Integer)
|
||||
environment = db.Column(db.String(20))
|
||||
message = db.Column(db.Text)
|
||||
# Add any other fields relevant for invoicing or warnings
|
||||
Reference in New Issue
Block a user