15 Downloads Updated 2 months ago
ollama pull deepseek-r1:latest
Salve o conteúdo do artefato anterior em um arquivo chamado Modelfile
(sem extensão):
# Criar arquivo
nano Modelfile
# Cole o conteúdo do artefato anterior
ollama create fastapi-router -f Modelfile
ollama run fastapi-router
# Prompt de exemplo
Gere router para este modelo:
class UsuarioModel(Base):
__tablename__ = "usuarios"
id = Column(Integer, primary_key=True)
nome = Column(String(100), nullable=False)
email = Column(String(100), unique=True)
senha = Column(String(255))
ativo = Column(Boolean, default=True)
Resposta esperada: - ✅ Análise automática do modelo - ✅ 7 endpoints gerados (search, create, get_by_id, get_all, update, delete, options) - ✅ Código completo pronto para uso - ✅ Nomenclatura correta (usuario/usuarios)
# Exemplo com customização
Gere router para UsuarioModel, mas:
- No endpoint create, adicione validação de email único
- No endpoint search, adicione filtro por status ativo
- No endpoint update, impeça alteração do email
Resposta esperada: - ✅ Router completo com modificações específicas - ✅ Customizações implementadas apenas nos endpoints solicitados - ✅ Estrutura base mantida
# Básico
"Gere router para [ColeMeusModelos]"
# Com customização específica
"Gere router para [Modelo], mas no endpoint [NOME] adicione [CUSTOMIZAÇÃO]"
# Múltiplas customizações
"Gere router para [Modelo], mas:
- No create: [customização1]
- No search: [customização2]
- No update: [customização3]"
# Solicitar apenas um endpoint
"Gere apenas o endpoint search para [Modelo] com filtro por [campo]"
# Muito vago
"Crie um router"
# Alteração estrutural
"Mude a estrutura dos endpoints"
# Sem modelo SQLAlchemy
"Crie router para uma API de produtos" (sem modelo)
# Input
class ProdutoModel(Base):
__tablename__ = "produtos"
id = Column(Integer, primary_key=True)
nome = Column(String(100), nullable=False)
preco = Column(Float, nullable=False)
categoria_id = Column(Integer, ForeignKey("categorias.id"))
estoque = Column(Integer, default=0)
ativo = Column(Boolean, default=True)
# Prompt
"Gere router para ProdutoModel, mas no endpoint create adicione validação para preço > 0 e estoque >= 0"
# Input
class PedidoModel(Base):
__tablename__ = "pedidos"
id = Column(Integer, primary_key=True)
cliente_id = Column(Integer, ForeignKey("clientes.id"))
total = Column(Float, nullable=False)
status = Column(Enum(StatusPedido), default=StatusPedido.PENDENTE)
data_criacao = Column(DateTime, default=datetime.utcnow)
# Prompt
"Gere router para PedidoModel, mas:
- No search: filtrar apenas pedidos do cliente logado
- No update: permitir apenas mudança de status
- No delete: só permitir se status for PENDENTE"
# Input
class UsuarioModel(Base):
__tablename__ = "usuarios"
id = Column(Integer, primary_key=True)
nome = Column(String(100), nullable=False)
email = Column(String(100), unique=True)
senha_hash = Column(String(255))
perfil = Column(Enum(PerfilUsuario))
ultimo_login = Column(DateTime)
# Prompt
"Gere router para UsuarioModel, mas:
- No create: hash da senha antes de salvar
- No update: não permitir alteração de email e senha
- No get_by_id: não retornar senha_hash
- Adicione endpoint POST /login para autenticação"
# Listar modelos
ollama list
# Remover modelo (se precisar refazer)
ollama rm fastapi-router
# Verificar uso de memória
ollama ps
# Executar em modo interativo
ollama run fastapi-router
# Executar com prompt direto
ollama run fastapi-router "Gere router para [SeuModelo]"
# Verificar se existe
ollama list | grep deepseek-r1
# Se não existir, baixar
ollama pull deepseek-r1:latest
# Aumentar contexto no Modelfile
PARAMETER num_ctx 16384
# Diminuir temperatura no Modelfile
PARAMETER temperature 0.05
🎯 Resultado: Modelo Ollama especializado que gera routers FastAPI padronizados com possibilidade de customizações específicas por endpoint!