Hey everyone,
I am working on a React app that uses the TensorFlow QnA model to generate study cards based on user input. I have implemented a form in which the user can enter a question, and upon submission, the app should use the QnA model to generate an answer and create a new study card with the question and answer.
However, when I try to submit the form, I am getting the following error: “TypeError: context.trim is not a function”. After some investigation, I determined that this error is occurring in the QnA model’s process
function, which is called by the findAnswers
function.
Here is the relevant code for the form submission and the use of the QnA model:
import * as qna from "@tensorflow-models/qna";
import * as tf from "@tensorflow/tfjs";
//...
const [qnaModel, setQnAModel] = useState(null);
//...
const handleInputChange = (event) => {
setInput(event.target.value.toString());
};
// ...
const handleInputSubmit = async (event) => {
event.preventDefault();
if (qnaModel) {
// Make sure that the `context` parameter is a string
let context = String(input).trim();
// model => ready
console.log(typeof context);
const answers = await qnaModel.findAnswers(context, 1);
console.log(answers[0].question);
console.log(answers[0].answer);
setCards([
...cards,
{ question: answers[0].question, answer: answers[0].answer },
]);
} else {
// The qnaModel is not ready yet, so you should not try to use it
console.error("qnaModel is not ready yet");
}
};
I have verified that the context
variable is indeed a string by logging its type to the console. However, the error is still occurring.
Has anyone else encountered this error or have any ideas on how to fix it? Any help would be greatly appreciated!
Thanks in advance.