(duration, provider, model, input_tokens, output_tokens, service, purpose, session_id=None, success=True, log_message=None)
| 17 | return wrapper |
| 18 | |
| 19 | def log_apicall(duration, provider, model, input_tokens, output_tokens, service, purpose, session_id=None, success=True, log_message=None): |
| 20 | if not EVENTS_ENGINE: |
| 21 | return {"status": "no engine"} |
| 22 | cost = calculate_cost(model, input_tokens, output_tokens) |
| 23 | |
| 24 | params = { |
| 25 | "duration": duration, |
| 26 | "provider": provider, |
| 27 | "model": model, |
| 28 | "input_tokens": input_tokens, |
| 29 | "output_tokens": output_tokens, |
| 30 | "service": service, |
| 31 | "purpose": purpose, |
| 32 | "cost": cost, |
| 33 | "success": success, |
| 34 | "session_id": session_id, |
| 35 | "log_message": log_message, |
| 36 | } |
| 37 | |
| 38 | insert_query = text(""" |
| 39 | INSERT INTO apicalls (duration, provider, model, input_tokens, output_tokens, service, purpose, cost, success, session_id, log_message) |
| 40 | VALUES (:duration, :provider, :model, :input_tokens, :output_tokens, :service, :purpose, :cost, :success, :session_id, :log_message) |
| 41 | """) |
| 42 | |
| 43 | with EVENTS_ENGINE.connect() as conn: |
| 44 | conn.execute(insert_query, params) |
| 45 | conn.commit() |
| 46 | |
| 47 | return {"status": "success"} |
| 48 | |
| 49 | @failsoft |
| 50 | def log_apicall_failure(duration, provider, model, input_tokens, service, purpose, session_id=None): |
no test coverage detected