Build AI assistants for internal use with self-hosting, local LLMs, and secure API integrations.
Overview
Ansa is ideal for internal tools because:
Self-hosting — Keep all data on your infrastructure
Local LLMs — Use Ollama for complete privacy
API integrations — Connect to internal systems
User identification — Personalize based on employee data
Access control — Limit access to authorized users
Self-Hosting Setup
For internal deployments, self-host Ansa on your infrastructure:
Docker Deployment
# Clone the repositorygit clone https://github.com/ansa/ansa.gitcd ansa# Configure environmentcp .env.example .env# Edit .env with your settings# Start with Docker Composedocker-compose up -d
Environment Variables
Key settings for internal use:
# DatabaseDATABASE_URL=postgresql://...# Set deployment modeANSA_MODE=self-hosted# Disable external analyticsDISABLE_TELEMETRY=true# Configure allowed domainsALLOWED_DOMAINS=internal.yourcompany.com# Local LLM (Ollama)OLLAMA_URL=http://localhost:11434
Set the Ollama URL (default: http://localhost:11434)
Model Recommendations
Model
Use Case
Notes
Llama 3.2 8B
General assistant
Good balance
Llama 3.2 70B
Complex reasoning
Requires GPU
Mistral 7B
Fast responses
Lower resource usage
CodeLlama
Code-focused tasks
Best for dev tools
Ollama models don’t have native tool calling. Ansa uses a text-based JSON parsing fallback, which may be less reliable than Claude/GPT for complex tool use.
Internal API Integrations
Connect to your internal systems with HTTP tools:
HR System Integration
{ "name": "lookup_employee", "description": "Look up employee information by name or email.", "inputSchema": { "type": "object", "properties": { "query": { "type": "string", "description": "Employee name or email" } }, "required": ["query"] }, "executionType": "http", "httpUrl": "https://hr.internal.company.com/api/employees?q=${query}", "httpMethod": "GET", "httpHeaders": { "Authorization": "Bearer ${hr_api_key}", "X-Internal-Token": "${internal_token}" }, "displayConfig": { "type": "product_card", "fieldMappings": { "title": "$.name", "subtitle": "$.department", "image": "$.avatar_url" } }}