Hi,
I’m trying to run a local LLM (Gemma3 12B) via Ollama with CrewAI version 1.3.0, but I keep running into issues.
Here is my setup:
from utils import basic_auth, api_key, OLLAMA_URL, modelo, OLLAMA_LOCALHOST,modelo_localhost, prioridade_baixa, prioridade_media, prioridade_alta, prioridade_urgente
from requests.auth import HTTPBasicAuth
import os
# Warning control
import warnings
warnings.filterwarnings("ignore")
os.environ["OPENAI_API_KEY"] = "dummy"
# os.environ["CREWAI_LLM_PROVIDER"] = "ollama"
from crewai import Agent, Crew, Task, Process, LLM
# llm = LLM(
# model="ollama/gemma3:12b",
# stream=True
# )
llm = LLM(
model='ollama/gemma3:12b',
base_url='http://localhost:11434'
)
assunto = "Que horas são?"
descricao = "Por favor, gostaria de saber que horas são em São Paulo."
class CrewClassificar:
def classificador_prioridade(self) -> Agent:
return Agent(
role="Classificador de Prioridade de Tickets",
goal=(
"Classificar a prioridade de um ticket do Freshdesk em **Baixa**, **Média**, **Alta** ou **Urgente**, "
"com base exclusivamente no **assunto** e na **descrição** do ticket. "
),
backstory=(
"Você é um especialista em priorização de tickets de suporte. "
),
verbose=True,
LLM=llm
)
def classificador_tipo(self) -> Agent:
return Agent(
role="Classificador de tipo de ticket",
goal="Classificar os tickets em Solicitação, Dúvida, Incidente, Problema",
backstory="Pesquisador dedicado com olhar atento aos detalhes",
verbose=True,
LLM=llm
)
def task_prioridade(self, assunto,descricao) -> Task:
return Task(
description=f'Analise o assunto: "{assunto} e a descrição: {descricao} do ticket e classifique levando em consideração as palavras-chaves."',
expected_output="Apenas uma palavra: Baixa, Média, Alta ou Urgente",
agent=self.classificador_prioridade()
)
def task_tipo(self, assunto, descricao) -> Task:
return Task(
description=f"Classifique a o tipo do ticket de acordo com o assunto: {assunto} e a descrição: {descricao}",
expected_output="Apenas uma palavra: Solicitação, Dúvida, Incidente, Problema, Service Task, Acompanhamento, Pedidos , Notificação NOC , Aviso Manutenção , Análise e estudo, Comercial (Novo Projeto/Proposta) ",
agent=self.classificador_tipo()
)
def crew(self) -> Crew:
file_name = "log-crew-classificacao[1]"
return Crew(
agents=[self.classificador_prioridade(), self.classificador_tipo()],
tasks=[self.task_prioridade(assunto,descricao), self.task_tipo(assunto,descricao)],
process=Process.sequential,
verbose=True,
output_log_file=f"{file_name}.txt"
)
CrewClassificar().crew().kickoff()
Errors I encounter:
- When I try the above, I get:
ImportError: Error importing native provider: OPENAI_API_KEY is required
openai.AuthenticationError: Error code: 401 - {‘error’: {‘message’: ‘Incorrect API key provided: dummy’, …}}