in instrumentation/openai-client-instrumentation/instrumentation-1.1/src/main/java/co/elastic/otel/openai/v1_1/wrappers/InstrumentedChatCompletionService.java [205:229]
public Object invoke(Object proxy, Method method, Object[] args) throws Throwable {
String methodName = method.getName();
Class<?>[] parameterTypes = method.getParameterTypes();
if (methodName.equals("create")
&& parameterTypes.length >= 1
&& parameterTypes[0] == ChatCompletionCreateParams.class) {
if (parameterTypes.length == 1) {
return create((ChatCompletionCreateParams) args[0], RequestOptions.none());
} else if (parameterTypes.length == 2 && parameterTypes[1] == RequestOptions.class) {
return create((ChatCompletionCreateParams) args[0], (RequestOptions) args[1]);
}
}
if (methodName.equals("createStreaming")
&& parameterTypes.length >= 1
&& parameterTypes[0] == ChatCompletionCreateParams.class) {
if (parameterTypes.length == 1) {
return createStreaming((ChatCompletionCreateParams) args[0], RequestOptions.none());
} else if (parameterTypes.length == 2 && parameterTypes[1] == RequestOptions.class) {
return createStreaming((ChatCompletionCreateParams) args[0], (RequestOptions) args[1]);
}
}
return super.invoke(proxy, method, args);
}