Supplementary material for the article "Explaining Vibration Patterns and Fault Diagnoses in the Oil Industry via Finetuned Chatbot" The signatures' textual descriptions can be found in the python code in this repository, whereas the question templates and prompts can be seen in this README.
- "What can be noted from this signal?"
- "How would you describe the signal’s behavior?"
- "What kind of behavior this signal presents?"
Considering "X" comprises the user's analysis of some (1-5) signatures in the signal.
- "This signal presents X. What more can you say about it?"
- "This signal shows X and what more?"
- "I'd say this signal displays X, but what do you have to say?"
- "Could there be a fault in this signal?"
- "Does this behaviour imply a specific fault type?"
- "Also tell me what fault type it indicates."
- "Is it likely a known fault type?"
Considering "X" is the signal's entire description.
- "This signal presents X."
- "This signal shows X."
- "I'd say this signal displays X."
Considering "X" is the user's fault type suggestion.
- "I think X can be seen in this signal. Is this classification correct?"
- "In the system, this signal contains X, but I'm not sure of it."
- "Apparently, this signal presents X, yet I'm not sure if that's right."
- "Upon looking at this signal, X can be seen, right?"
- "Could it be that X can appear here?"
- "I suspect X can appear here, though I'd like confirmation."
Considering "X" and "Y" as the assumptions from the user and the Random Forest classifier, respectively.
- "The Random Forest Classifier has said that the signal shows Y, does it seem like it?"
- "The Random Forest model predicted Y. Is this a valid conclusion according to the features?"
- "Upon looking at the signal, the Random Forest identified Y. Is that reliable?"
- "The Random Forest Classifier has said this signal presents Y. Meanwhile, I think that it presents X. Can you explain which one is correct?"
- "Which classification is correct according to the features? X or Y?"
- "My guess is that this signal presents X, but the Random Forest indicates Y. Which one do you think fits better?"
- "I think this signal presents X and the Random Forest Classifier says it has Y. What do you think is the correct classification according to the features?"
- "From my observation, the signal shows X, and the Random Forest Classifier says it has Y. What do you think the features indicate?"
- "It looks like X for me, and the Random Forest Classifier thinks it shows Y. What's your opinion on this?"
- "There is no noise at low frequencies, right?"
- "Is there noise at lower frequencies?"
- "Is there an exponential behaviour at low frequencies?"
- "Is there evidence of exponential behavior at low frequencies?"
- "Would you say the low frequencies follow an exponential pattern?"
- "Is the peak at the first harmonic high?"
- "What can be said about the peak at the first harmonic?"
- "It seems there isn't a peak at the first harmonic."
- "What do you have to say about the peak at the first harmonic?"
- "Is the peak at the first harmonic visible?"
- "Is there significant noise around the first harmonic?"
- "What can you say about the noise in the signal?"
- "Do you notice any particular noise pattern in the signal?"
- "Can you comment on the noise level in the signal?"
- "How would you analyze the features of both harmonic peaks?"
- "What do you have to say about both harmonic peaks?"
- "What stands out to you about the two harmonic peaks?"
- "Is the peak at the second harmonic high?"
- "What can be said about the peak at the second harmonic?"
Considering "X" and "Y" two distinct fault types, with only one being correct.
- "Is this indicative of X or Y?"
- "This could be either X or Y, what do you think?"
- "I'm torn between saying this signal has X or Y."
- If the response does not return the fault type prediction:
- "I'm asking about the signal's fault type!"
- If the fault type is not a valid class:
- "Please, return a valid fault type!"
- If the predicted class is neither of the ones asked:
- "Choose only between the two classes I mentioned!"
- If the response does not return the behaviour hashmap:
- "I'm asking about some of the signal's behaviours!"
- If the behaviour hashmap contains incorrect keys/values:
- "Please, return the JSON with valid signature names and values!"
- If the response does not contain the required behaviour X:
- "I'm asking about X!"
- If the response is not a valid JSON object:
- "Please provide a correctly formatted JSON with the expected values!"
You'll be given several percentage values regarding features extracted from a vibration signal in the frequency domain. Your task is to analyze each feature percentage and, according to the following descriptions, determine the expected signal behavior and provide an overall behaviour classification. Later, give each behavior a level of intensity (an integer between the ranges given below for each behaviour) based on the pattern shown by their respective values, and provide your fault type prediction for the signal.
The vibration signals presents two main peaks: one in the first harmonic frequency and another on the second harmonic frequency.
Signals also can present noisiness in lower frequencies, exponential curves and noisiness around the peak at the first harmonic frequency.Here are the correlations between each feature and the signal behavior:
- low_frequency_noise: 'median(3,5)' represents the noise around 3Hz and 5Hz. Levels: 0 (no noise) up to 3 (high noise).
- low_frequency_curve: 'a' and 'b' represent the behavior of the curve between 5Hz and 19Hz. Levels: 0 (no exponential behavior) up to 2 (great exponential behavior).
- first_peak: 'peak1x' represents the peak amplitude at the first harmonic. Levels: 0 (no peak) up to 3 (high peak).
- noise_at_first_peak: 'rms_angle' and 'rms_magnitude' represent the visibility of the peak amplitude at the first harmonic. Levels: 0 (visible) up to 1 (less visible).
- second_peak: 'peak2x' represents the peak amplitude at the second harmonic. Levels: 0 (common) up to 1 (uncommon).
The possible classes are: "normal", "rubbing", "faulty sensor", "misalignment" and "unbalance". Return the most likely fault type if the question regards classification.
Now, return your answer only in the following format: {{"response": <response>, "behaviour_values": <behaviour values>, "class_prediction": <class type>}}, where:
- <response> is a response to the user,
- <behaviour values> is a dictionary containing the level of intensity for each behaviour mentioned in your response in the format {<behaviour name> : <behaviour level>}, if requested,
- <class type> is the most likely class between "normal", "rubbing", "faulty sensor", "misalignment" and "unbalance", if requested.