Tutorial Mirascope: Toolkit Pythonic untuk Membangun Aplikasi LLM

# Tutorial Mirascope: Toolkit Pythonic untuk Membangun Aplikasi LLM ## Pendahuluan Mirascope adalah library Python yang menyediakan antarmuka bersih dan Pythonic untuk berinteraksi dengan Large Lang...

By Ruby Abdullah · · tutorial
MirascopeLLMPythonPrompt EngineeringPydantic

Tutorial Mirascope: Toolkit Pythonic untuk Membangun Aplikasi LLM

Pendahuluan

Mirascope adalah library Python yang menyediakan antarmuka bersih dan Pythonic untuk berinteraksi dengan Large Language Models (LLM). Berbeda dengan framework besar seperti LangChain yang memiliki banyak abstraksi berlapis, Mirascope mengambil pendekatan minimalis dengan memanfaatkan fitur-fitur bawaan Python seperti decorator, type hints, dan Pydantic models.

Keunggulan utama Mirascope terletak pada kemampuannya menyederhanakan prompt engineering, structured output extraction, dan tool calling tanpa mengorbankan fleksibilitas. Library ini mendukung berbagai provider LLM termasuk OpenAI, Anthropic, Google Gemini, Mistral, Groq, dan Cohere dalam satu API yang konsisten.

Dalam tutorial ini, kita akan mempelajari cara menggunakan Mirascope mulai dari instalasi, prompt engineering dasar, structured output, tool calling, hingga teknik-teknik lanjutan seperti chaining, streaming, dan response model validation.

Mengapa Mirascope?

Sebelum masuk ke implementasi, berikut alasan mengapa Mirascope layak dipertimbangkan:

  • Pythonic Design: Menggunakan decorator dan type hints Python, bukan DSL khusus
  • Provider Agnostic: Satu API untuk berbagai LLM provider
  • Type Safety: Validasi otomatis menggunakan Pydantic
  • Minimal Boilerplate: Kode yang bersih dan mudah dibaca
  • Composable: Mudah dikombinasikan dengan library Python lainnya
  • Instalasi

    Instalasi Dasar

    Mirascope bisa diinstal menggunakan pip dengan provider yang diinginkan:

    # Instalasi core mirascope
    

    pip install mirascope

    Instalasi dengan provider spesifik

    pip install "mirascope[openai]"

    pip install "mirascope[anthropic]"

    pip install "mirascope[gemini]"

    pip install "mirascope[groq]"

    Instalasi dengan semua provider

    pip install "mirascope[all]"

    Setup Environment Variables

    Konfigurasi API key untuk provider yang akan digunakan:

    # OpenAI
    

    export OPENAIAPIKEY="sk-your-openai-key"

    Anthropic

    export ANTHROPICAPIKEY="sk-ant-your-anthropic-key"

    Google Gemini

    export GOOGLEAPIKEY="your-google-key"

    Groq

    export GROQAPIKEY="your-groq-key"

    Atau menggunakan file .env dengan python-dotenv:

    pip install python-dotenv
    

    from dotenv import loaddotenv
    

    loaddotenv()

    Verifikasi Instalasi

    import mirascope
    

    print(f"Mirascope version: {mirascope.version}")

    Basic Usage: Prompt Engineering

    Membuat Prompt Sederhana dengan Decorator

    Mirascope menggunakan decorator @prompttemplate dan fungsi call untuk menghasilkan respons dari LLM:

    from mirascope.core import openai, prompttemplate
    
    
    

    @openai.call("gpt-4o-mini")

    @prompttemplate("Jelaskan tentang {topic} dalam 3 paragraf")

    def explain(topic: str): ...

    response = explain("machine learning")

    print(response.content)

    Kode di atas sangat ringkas. Decorator @openai.call menentukan provider dan model, sementara @prompttemplate mendefinisikan template prompt. Parameter topic secara otomatis diisi ke dalam template.

    Multi-Provider Support

    Salah satu keunggulan Mirascope adalah kemudahan berpindah antar provider:

    from mirascope.core import openai, anthropic, gemini, prompttemplate
    
    
    

    @openai.call("gpt-4o-mini")

    @prompttemplate("Apa itu {concept}?")

    def askopenai(concept: str): ...

    @anthropic.call("claude-sonnet-4-20250514")

    @prompttemplate("Apa itu {concept}?")

    def askanthropic(concept: str): ...

    @gemini.call("gemini-1.5-flash")

    @prompttemplate("Apa itu {concept}?")

    def askgemini(concept: str): ...

    Semua fungsi memiliki interface yang sama

    for askfn in [askopenai, askanthropic, askgemini]:

    response = askfn("neural network")

    print(f"[{askfn.name}]: {response.content[:100]}...")

    System Prompt dan Messages

    Untuk skenario yang lebih kompleks, kita bisa menggunakan messages:

    Artikel Terkait

    Tutorial PydanticAI: Framework Agent LLM yang Type-Safe

    Membangun Agen LLM yang Type-Safe dengan PydanticAI PydanticAI adalah framework agen dari tim di balik Pydantic, diranca...

    Instructor: Mendapatkan Structured Output dari LLM dengan Python

    Instructor: Mendapatkan Structured Output dari LLM dengan Python Salah satu tantangan terbesar saat bekerja dengan Large...

    Tutorial LangChain: Framework Paling Populer untuk Membangun Aplikasi LLM

    Tutorial LangChain: Framework Paling Populer untuk Membangun Aplikasi LLM LangChain adalah framework open-source yang di...

    Tutorial Lengkap Google Gemini API dengan Python: Dari Dasar hingga Mahir

    Tutorial Lengkap Google Gemini API dengan Python: Dari Dasar hingga Mahir Google Gemini API adalah salah satu API AI pal...