1+ """
2+ patching module openai
3+ - patches function create(...) on Responses class, to inspect response
4+ - patches function create(...) on Completions class, to inspect response
5+ """
6+
17from aikido_zen .helpers .on_ai_call import on_ai_call
28from aikido_zen .helpers .register_call import register_call
39from aikido_zen .sinks import on_import , patch_function , after
410
511
612@after
7- def _create (func , instance , args , kwargs , return_value ):
8- op = "openai.resources.responses.responses.Responses.create"
13+ def _create_responses (func , instance , args , kwargs , return_value ):
14+ op = f "openai.resources.responses.responses.Responses.create"
915 register_call (op , "ai_op" )
1016
1117 on_ai_call (
@@ -16,10 +22,24 @@ def _create(func, instance, args, kwargs, return_value):
1622 )
1723
1824
19- @on_import ("openai.resources.responses.responses" , "openai" , version_requirement = "1.0" )
20- def patch (m ):
21- """
22- patching module openai
23- - patches function create(...) on Responses class, to inspect response
24- """
25- patch_function (m , "Responses.create" , _create )
25+ @after
26+ def _create_completions (func , instance , args , kwargs , return_value ):
27+ op = f"openai.resources.chat.completions.completions.Completions.create"
28+ register_call (op , "ai_op" )
29+
30+ on_ai_call (
31+ provider = "openai" ,
32+ model = return_value .model ,
33+ input_tokens = return_value .usage .prompt_tokens ,
34+ output_tokens = return_value .usage .completion_tokens ,
35+ )
36+
37+
38+ @on_import ("openai.resources.responses.responses" , "openai" , "1.0" )
39+ def patch_responses (m ):
40+ patch_function (m , "Responses.create" , _create_responses )
41+
42+
43+ @on_import ("openai.resources.chat.completions.completions" , "openai" , "1.0" )
44+ def patch_chat_completions (m ):
45+ patch_function (m , "Completions.create" , _create_completions )
0 commit comments