Tutorial Marvin AI: Toolkit AI Engineering yang Ringan dan Powerful

# Tutorial Marvin AI: Toolkit AI Engineering yang Ringan dan Powerful **Marvin** adalah library Python yang dirancang untuk membuat AI engineering menjadi semudah mungkin. Berbeda dengan framework be...

By Ruby Abdullah · · tutorial
MarvinAI EngineeringLLMClassificationPython

Tutorial Marvin AI: Toolkit AI Engineering yang Ringan dan Powerful

Marvin adalah library Python yang dirancang untuk membuat AI engineering menjadi semudah mungkin. Berbeda dengan framework berat seperti LangChain atau LlamaIndex, Marvin mengambil pendekatan minimalis dengan menyediakan building blocks sederhana yang bisa langsung digunakan: AI functions, classifiers, extractors, dan models. Cukup satu decorator atau satu function call, dan LLM langsung bekerja untuk Anda.

Dalam tutorial ini, kita akan mempelajari semua fitur utama Marvin mulai dari klasifikasi teks hingga membangun data transformation pipeline yang kompleks.

Apa itu Marvin?

Marvin adalah toolkit AI engineering yang dikembangkan oleh tim Prefect. Library ini dirancang dengan filosofi bahwa AI seharusnya menjadi komponen software biasa - bukan sesuatu yang memerlukan setup rumit atau abstraksi berlapis-lapis.

Fitur utama Marvin:

  • aifn: Ubah function Python biasa menjadi AI-powered function
  • aiclassifier: Klasifikasi teks ke dalam kategori yang telah ditentukan
  • aiextract: Ekstraksi entity dan informasi terstruktur dari teks
  • aimodel: Generate structured data menggunakan Pydantic models
  • Image processing: Analisis dan pemrosesan gambar dengan AI
  • Casting/Mapping: Transformasi data dengan AI
  • Async support: Dukungan penuh untuk operasi asynchronous

Instalasi dan Setup

Instalasi Package

# Instalasi Marvin

pip install marvin

Untuk fitur image processing

pip install "marvin[image]"

Untuk semua fitur

pip install "marvin[all]"

Konfigurasi API Key

# Set environment variable untuk OpenAI

export OPENAIAPIKEY="sk-your-api-key-here"

# Atau konfigurasi via Python

import marvin

marvin.settings.openai.apikey = "sk-your-api-key-here"

Opsional: set model default

marvin.settings.openai.chat.completions.model = "gpt-4o-mini"

AI Functions (aifn)

aifn adalah fitur paling iconic dari Marvin. Anda cukup menulis function signature dan docstring, lalu Marvin akan menggunakan LLM untuk mengimplementasikan logikanya.

Contoh Dasar

import marvin

@marvin.fn

def sentiment(text: str) -> str:

"""Analisis sentimen teks dan kembalikan 'positif', 'negatif', atau 'netral'."""

result = sentiment("Produk ini luar biasa! Sangat memuaskan!")

print(result) # Output: positif

result = sentiment("Pelayanannya sangat mengecewakan")

print(result) # Output: negatif

AI Function dengan Return Type yang Kompleks

from typing import List, Dict

import marvin

@marvin.fn

def generatehashtags(topic: str, count: int = 5) -> List[str]:

"""Generate hashtag yang relevan untuk topik yang diberikan.

Hashtag harus populer dan relevan untuk social media."""

hashtags = generatehashtags("machine learning Indonesia", count=7)

print(hashtags)

Output: ['#MachineLearning', '#AIIndonesia', '#DataScience', ...]

@marvin.fn

def translatephrases(phrases: List[str], targetlanguage: str) -> Dict[str, str]:

"""Terjemahkan setiap frasa ke bahasa target.

Kembalikan dictionary dengan frasa asli sebagai key dan terjemahan sebagai value."""

result = translatephrases(

["Good morning", "Thank you", "How are you?"],

targetlanguage="Indonesian"

)

print(result)

Output: {'Good morning': 'Selamat pagi', 'Thank you': 'Terima kasih', ...}

AI Function untuk Business Logic

import marvin

@marvin.fn

def categorizeexpense(description: str) -> str:

"""Kategorikan pengeluaran bisnis ke salah satu kategori:

'travel', 'meals', 'officesupplies', 'software', 'marketing',

'utilities', 'payroll', 'other'."""

@marvin.fn

def extractactionitems(meetingnotes: str) -> List[str]:

"""Ekstrak action items dari catatan rapat.

Setiap item harus jelas dan actionable."""

@marvin.fn

def generateemailreply(

originalemail: str,

tone: str = "professional",

keypoints: List[str] = None

) -> str:

Artikel Terkait

Tutorial TRL: Post-Training LLM dengan SFT, DPO, dan Reward Modeling

Post-Training LLM dengan TRL: SFT, Reward Modeling, dan DPO Setelah sebuah base language model selesai dipretraining, mo...

Tutorial Axolotl: Fine-Tuning LLM Berbasis Konfigurasi YAML

Fine-Tuning LLM Berbasis Konfigurasi dengan Axolotl Kebanyakan proyek fine-tuning dimulai dengan cara yang sama: seseora...

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...

Tutorial Unsloth: Fine-Tuning LLM yang Cepat dan Hemat Memori

Fine-Tuning LLM Secara Efisien dengan Unsloth Dahulu, melakukan fine-tuning model bahasa besar membutuhkan server multi-...