# Tutorial: esperanto

Esperanto provides a **unified way** to interact with various **AI services**, such as *language generation*, *text embedding*, and *speech-to-text*, from different providers like OpenAI, Google, and others.
It simplifies acquiring specific AI model instances through an `AIFactory`.
Regardless of the underlying AI provider, Esperanto ensures that responses (e.g., `ChatCompletion`, `TranscriptionResponse`) are delivered in a *standardized format*, and that all AI models are described using consistent `Model` metadata.


**Source Repository:** [https://github.com/lfnovo/esperanto](https://github.com/lfnovo/esperanto)

```mermaid
flowchart TD
    A0["AI Service Interfaces (LanguageModel, EmbeddingModel, etc.)
"]
    A1["AIFactory
"]
    A2["Standardized AI Responses (ChatCompletion, TranscriptionResponse, etc.)
"]
    A3["Provider-Specific Implementations (e.g., OpenAILanguageModel)
"]
    A4["AI Model Metadata (common_types.Model)
"]
    A1 -- "Instantiates" --> A3
    A3 -- "Implements" --> A0
    A1 -- "Returns instances as" --> A0
    A0 -- "Define return types using" --> A2
    A3 -- "Constructs" --> A2
    A0 -- "Define model listings using" --> A4
    A3 -- "Provide model details as" --> A4
```

## Chapters

1. [AI Service Interfaces (LanguageModel, EmbeddingModel, etc.)
](01_ai_service_interfaces__languagemodel__embeddingmodel__etc___.md)
2. [Standardized AI Responses (ChatCompletion, TranscriptionResponse, etc.)
](02_standardized_ai_responses__chatcompletion__transcriptionresponse__etc___.md)
3. [AIFactory
](03_aifactory_.md)
4. [AI Model Metadata (common_types.Model)
](04_ai_model_metadata__common_types_model__.md)
5. [Provider-Specific Implementations (e.g., OpenAILanguageModel)
](05_provider_specific_implementations__e_g___openailanguagemodel__.md)


---

Generated by [AI Codebase Knowledge Builder](https://github.com/The-Pocket/Tutorial-Codebase-Knowledge)