Module: Legion::LLM::Pipeline::AuditPublisher
- Extended by:
- Legion::Logging::Helper
- Defined in:
- lib/legion/llm/pipeline/audit_publisher.rb
Class Method Summary collapse
- .build_event(request:, response:) ⇒ Object
- .build_message_context(response:) ⇒ Object
- .publish(request:, response:) ⇒ Object
Class Method Details
.build_event(request:, response:) ⇒ Object
12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/legion/llm/pipeline/audit_publisher.rb', line 12 def build_event(request:, response:) { request_id: response.request_id, conversation_id: response.conversation_id, caller: response.caller, routing: response.routing, tokens: response.tokens, cost: response.cost, enrichments: response.enrichments, audit: response.audit, timeline: response.timeline, timestamps: response., classification: response.classification, tracing: response.tracing, messages: request., response_content: response.[:content], tools_used: response.tools, timestamp: Time.now, request_type: request.respond_to?(:request_type) ? request.request_type : 'chat', tier: response.routing.is_a?(Hash) ? response.routing[:tier] : nil, message_context: (request: request, response: response) } end |
.build_message_context(response:) ⇒ Object
45 46 47 48 49 50 |
# File 'lib/legion/llm/pipeline/audit_publisher.rb', line 45 def (response:, **) { request_id: response.request_id, conversation_id: response.conversation_id }.compact end |
.publish(request:, response:) ⇒ Object
36 37 38 39 40 41 42 43 |
# File 'lib/legion/llm/pipeline/audit_publisher.rb', line 36 def publish(request:, response:) event = build_event(request: request, response: response) Legion::LLM::Audit.emit_prompt(event) event rescue StandardError => e handle_exception(e, level: :warn) nil end |