winget install Ollama.Ollamaollama pull llama3.2:3b
Modelos alternativos (caso sua máquina aguente mais):
# Modelos de texto menores (recomendado para máquinas com 8-16GB RAM)
ollama pull llama3.2:3b # ~2GB - RECOMENDADO
ollama pull phi3:mini # ~2.3GB - Rápido
# Modelos maiores (16GB+ RAM)
ollama pull llama3:8b # ~4.7GB
ollama pull mistral:7b # ~4GB
# Modelos especializados
ollama pull codellama:7b # Para código
ollama pull llama3-uncensored # Sem filtros
ollama list
O Ollama deve iniciar automaticamente após a instalação. Caso contrário:
ollama serve
O arquivo .env já está configurado com:
OLLAMA_BASE_URL=http://localhost:11434
OLLAMA_MODEL=llama3.2:3b
using Vizzio.AI;
// Carregar configuração
var config = AIConfig.LoadFromEnvironment();
// Criar serviço Ollama
using var ollama = new OllamaService(config);
// Verificar disponibilidade
if (await ollama.IsAvailableAsync())
{
Console.WriteLine("✅ Ollama está disponível!");
// Listar modelos
var models = await ollama.GetAvailableModelsAsync();
Console.WriteLine($"Modelos disponíveis: {string.Join(", ", models)}");
}
// Criar assistente especializado em IFC
var assistant = new IfcAIAssistant(ollama);
// Fazer perguntas
var response = await assistant.AskAsync("Como faço para medir distâncias no modelo?");
Console.WriteLine(response);
// Analisar elementos IFC
var properties = new Dictionary<string, string>
{
["Type"] = "IfcWall",
["Height"] = "3.0m",
["Thickness"] = "0.2m",
["Material"] = "Concrete"
};
var analysis = await assistant.AnalyzeElementAsync("Wall", properties);
Console.WriteLine(analysis);
var assistant = new IfcAIAssistant(ollama);
var answer = await assistant.AskAsync("O que é um arquivo IFC?");
await foreach (var chunk in ollama.GenerateStreamAsync("Explique BIM"))
{
Console.Write(chunk);
}
var help = await assistant.GetFeatureHelpAsync("VR Mode");
var suggestions = await assistant.GetSuggestionsAsync("Usuário abriu um modelo IFC grande");
// Retorna: ["Ative o modo de camadas para melhor performance", ...]
No AIConfig, você pode ajustar:
var config = new AIConfig
{
OllamaBaseUrl = "http://localhost:11434",
OllamaModel = "llama3.2:3b",
MaxTokens = 2048, // Tamanho máximo da resposta
Temperature = 0.7f // 0.0 = conservador, 1.0 = criativo
};
# Verificar se está rodando
curl http://localhost:11434/api/tags
# Reiniciar serviço
ollama serve
# Verificar modelos instalados
ollama list
# Baixar modelo
ollama pull llama3.2:3b
phi3:mini ou llama3.2:3bMaxTokens no AIConfig| Modelo | RAM mínima | Tamanho | Velocidade |
|---|---|---|---|
| llama3.2:3b | 8GB | ~2GB | ⭐⭐⭐⭐⭐ |
| phi3:mini | 8GB | ~2.3GB | ⭐⭐⭐⭐⭐ |
| llama3:8b | 16GB | ~4.7GB | ⭐⭐⭐⭐ |
| mistral:7b | 16GB | ~4GB | ⭐⭐⭐⭐ |
| llama3-uncensored | 16GB | ~4.7GB | ⭐⭐⭐⭐ |
.env está no .gitignore (API keys não vazam)