Queria informar sobre um ponto, como eu estou usando ollama localmente , fiz um experimento usando o parâmetro n=3 e descobri que apesar de usar chamada compatível com openai, o ollama não tem suporte para n, sempre retornar choices[0] , eu testei com gemma4:e4b e llama3.1:lastest, o problema não está no modelo, esta na interface não implementada pelo ollama, e tem outros parâmetros que não tem como best_of, logprobst, response_format e alguns recursos de tools.
Para resolver, caso de fato queira x alternativas, precisaria repetir a chamada x vezes e concaternar os resultados. Ou, fazer uma função utilitária para chamar n vezes e funcionar com qualquer provedor. Para não quebrar fiz uma chamada que admite apenas uma choice.
def main():
# Inicializa o cliente localmente
client = get_ollama_client()
try:
response = client.chat.completions.create(
messages=[
{
"role":"system",
"content":"Classifique o produto abaixo em uma das categorias: Higiene Pessoal, Moda ou Casa e de uma descrição da categoria."
},
{
"role":"user",
"content":"Escova de dentes de bambu"
}
],
model=modelo,
temperature=0,
max_tokens=256,
top_p=1,
frequency_penalty=0,
presence_penalty=0,
n=3
)
print("\n")
#print(response)
print("\n")
# gpt e azure são compativeis com n, grog, grok, gemini, ollama, claude não são compativel com n
resposta = ""
for choice in response.choices:
resposta = choice.message.content
print(resposta)
print("\n")
except Exception as e:
print(f"Erro ao conectar com o Ollama: {e}")