@@ -37,7 +37,7 @@ def wrap_chat_completion_create(wrapped, instance, args, kwargs):
3737        return 
3838
3939    custom_attrs_dict  =  transaction ._custom_params 
40-     conversation_id  =  custom_attrs_dict [ "conversation_id" ]  if   "conversation_id"   in   custom_attrs_dict . keys ()  else   str (uuid .uuid4 ())
40+     conversation_id  =  custom_attrs_dict . get ( "conversation_id" ,  str (uuid .uuid4 () ))
4141
4242    chat_completion_id  =  str (uuid .uuid4 ())
4343    available_metadata  =  get_trace_linking_metadata ()
@@ -46,6 +46,8 @@ def wrap_chat_completion_create(wrapped, instance, args, kwargs):
4646
4747    response_headers  =  getattr (response , "_nr_response_headers" , None )
4848    response_model  =  response .model 
49+     response_id  =  response .get ("id" , "" )
50+     request_id  =  response_headers .get ("x-request-id" , "" )
4951    settings  =  transaction .settings  if  transaction .settings  is  not   None  else  global_settings ()
5052
5153    chat_completion_summary_dict  =  {
@@ -55,8 +57,9 @@ def wrap_chat_completion_create(wrapped, instance, args, kwargs):
5557        "span_id" : span_id ,
5658        "trace_id" : trace_id ,
5759        "transaction_id" : transaction ._transaction_id ,
60+         "request_id" : request_id ,
5861        "api_key_last_four_digits" : f"sk-{ response .api_key [- 4 :]}  " ,
59-         "response_time " : ft .duration ,
62+         "duration " : ft .duration ,
6063        "request.model" : kwargs .get ("model" ) or  kwargs .get ("engine" ),
6164        "response.model" : response_model ,
6265        "response.organization" :  response .organization ,
@@ -77,44 +80,46 @@ def wrap_chat_completion_create(wrapped, instance, args, kwargs):
7780        "vendor" : "openAI" ,
7881        "ingest_source" : "Python" ,
7982        "number_of_messages" : len (kwargs .get ("messages" , [])) +  len (response .choices ),
80-         "api_version" : response_headers .get ("openai-version" , "" )
8183    }
8284
8385    transaction .record_ml_event ("LlmChatCompletionSummary" , chat_completion_summary_dict )
8486    message_list  =  list (kwargs .get ("messages" , [])) +  [response .choices [0 ].message ]
8587
86-     create_chat_completion_message_event (transaction , message_list , chat_completion_id , span_id , trace_id , response_model )
88+     create_chat_completion_message_event (transaction , settings . app_name ,  message_list , chat_completion_id , span_id , trace_id , response_model ,  response_id ,  request_id )
8789
8890    return  response 
8991
9092
9193def  check_rate_limit_header (response_headers , header_name , is_int ):
9294    if  not  response_headers :
93-         return  None 
95+         return  "" 
96+ 
9497    if  header_name  in  response_headers :
9598        header_value  =  response_headers .get (header_name )
9699        if  is_int :
97100            header_value  =  int (header_value )
98101        return  header_value 
99102    else :
100-         return  None 
103+         return  "" 
101104
102105
103- def  create_chat_completion_message_event (transaction , message_list , chat_completion_id , span_id , trace_id , response_model ):
106+ def  create_chat_completion_message_event (transaction , app_name ,  message_list , chat_completion_id , span_id , trace_id , response_model ,  response_id ,  request_id ):
104107    if  not  transaction :
105108        return 
106109
107110    for  index , message  in  enumerate (message_list ):
108111        chat_completion_message_dict  =  {
109-             "id" : str (uuid .uuid4 ()),
112+             "id" : "%s-%s"  %  (response_id , index ),
113+             "appName" : app_name ,
114+             "request_id" : request_id ,
110115            "span_id" : span_id ,
111116            "trace_id" : trace_id ,
112117            "transaction_id" : transaction ._transaction_id ,
113118            "content" : message .get ("content" , "" )[:MAX_LOG_MESSAGE_LENGTH ],
114119            "role" : message .get ("role" ),
115120            "completion_id" : chat_completion_id ,
116121            "sequence" : index ,
117-             "model" : response_model ,
122+             "response. model" : response_model ,
118123            "vendor" : "openAI" ,
119124            "ingest_source" : "Python" ,
120125        }
0 commit comments