Why is function call not happening when passing input parameters?

Hello, I need help please.

I am new to gpt, and exploring function_call functionality. The task is to ask gpt answer the user request from a provided list of answers using cosine similarity method.
I created the function that takes in the user request and Python list of answers, and outputs the answer that is the most similar to the question.

This is my function.
def choose_likely_answer(question, answer_choices):
vectorizer = TfidfVectorizer()
answer_choices = answer_choices.split(', ')
answer_vectors = vectorizer.fit_transform(answer_choices)
user_input_vector = vectorizer.transform([question])
similarity_scores = cosine_similarity(user_input_vector, answer_vectors)
similarity_scores = similarity_scores.flatten()
most_likely_index = similarity_scores.argmax()
return json.loads(answer_choices[most_likely_index])

This is functions body:
functions = [
“name”: “choose_likely_answer”,
“description”: “Use cosine similarity to output the most likely answer from the provided list.”,
“parameters”: {
“type”: “object”,
“properties”: {
“question”: {“type”: “string”, “description”: “The new user request”},
“answer_choices”: {“type”: “array”, “items”: {“type”: “string”,“enum”: answer_choices}, “description”: “The list to choose answers from”},
“chosen_answer”: {“type”: “string”, “description”: “chosen answer”}
“required”: [“question”, “answer_choices”,“chosen_answer”],

Message body (includes instructions):
[{‘role’: ‘system’, ‘content’: ‘You ALWAYS call the provided function.’}, {‘role’: ‘user’, ‘content’: “Please follow these step-by-step instructions to handle user questions:\n\n1. Call the provided function. \n2. Output an answer returned by the function as a concise standalone phrase without modification.\n3. If the function returns an empty string, output ‘no option applies’ as a standalone response.\n\nQuestion: What is the brand satisfaction?\nAnswer:”}]

chat = openai.ChatCompletion.create(model=model, messages=message, functions = functions, function_call= {f"name": “choose_likely_answer”}, **params)

Why is function_call not happening? Only finish_reason = stop takes place.

How to correctly pass in the input parameters ?