> ## Documentation Index
> Fetch the complete documentation index at: https://docs.anannas.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Principles

> Core principles and values of Anannas

Anannas is Bhindi's *in-house* AI gateway that simplifies access to advanced models.  We believe the future of AI is **multi-modal, structured, and developer-first**.

### Why Anannas?

**Unified API.** A single endpoint powers all features - [structured outputs](/Features/structured-outputs), [multimodal inputs](/Features/Multimodality/Overview), [tool calling](/Features/tool-calling), and more. No code rewrites when you switch models.

**Model Routing.** Anannas intelligently routes requests across models for optimal performance, reliability, and cost efficiency - so your apps scale without friction.

**Structured Outputs.** Go beyond text: Anannas natively supports schema-driven responses, making it easy to plug results directly into your apps and workflows.

**Multimodality.** Handle text, images, and beyond in one place. Anannas is built to embrace the future of cross-modal AI.

**Developer Simplicity.** Bring your own API key or let Anannas manage access. Transparent billing and standardized responses make integration painless.

**Resilience.** Smart fallback and automatic rerouting ensure your applications stay online, even when individual models experience downtime.

**Future-Proof.** Built on Bhindi’s agentic AI stack, Anannas evolves alongside the ecosystem, so you always have access to the latest capabilities without code churn.

<div
  style={{ 
marginTop: '2rem',
display: 'flex',
alignItems: 'center',
gap: '0.75rem',
fontSize: '14px',
color: '#6b7280'
}}
>
  <span>Was this page helpful?</span>

  <button
    id="feedback-yes-btn"
    onClick={() => {
  console.log('Positive feedback');
  document.getElementById('feedback-yes-btn').style.background = 'rgba(156, 163, 175, 0.1)';
  document.getElementById('feedback-yes-btn').style.backdropFilter = 'blur(10px)';
  document.getElementById('feedback-yes-btn').style.border = '1px solid rgba(156, 163, 175, 0.2)';
  document.getElementById('feedback-no-btn').style.background = 'transparent';
  document.getElementById('feedback-no-btn').style.backdropFilter = 'none';
  document.getElementById('feedback-no-btn').style.border = 'none';
}}
    style={{
  background: 'transparent',
  border: 'none',
  cursor: 'pointer',
  padding: '6px 12px',
  fontSize: '14px',
  borderRadius: '8px',
  transition: 'all 0.2s ease',
  display: 'flex',
  alignItems: 'center',
  gap: '6px',
  color: '#6b7280'
}}
  >
    <span style={{ fontSize: '16px' }}>👍</span>
    Yes
  </button>

  <button
    id="feedback-no-btn"
    onClick={() => {
  console.log('Negative feedback');
  document.getElementById('feedback-no-btn').style.background = 'rgba(156, 163, 175, 0.1)';
  document.getElementById('feedback-no-btn').style.backdropFilter = 'blur(10px)';
  document.getElementById('feedback-no-btn').style.border = '1px solid rgba(156, 163, 175, 0.2)';
  document.getElementById('feedback-yes-btn').style.background = 'transparent';
  document.getElementById('feedback-yes-btn').style.backdropFilter = 'none';
  document.getElementById('feedback-yes-btn').style.border = 'none';
}}
    style={{
  background: 'transparent',
  border: 'none',
  cursor: 'pointer',
  padding: '6px 12px',
  fontSize: '14px',
  borderRadius: '8px',
  transition: 'all 0.2s ease',
  display: 'flex',
  alignItems: 'center',
  gap: '6px',
  color: '#6b7280'
}}
  >
    <span style={{ fontSize: '16px' }}>👎</span>
    No
  </button>
</div>
