Tutorial Haystack: Framework NLP untuk Production

# Haystack - Framework NLP untuk Produksi ## Daftar Isi 1. [Pendahuluan](#pendahuluan) 2. [Prasyarat](#prasyarat) 3. [Memahami Arsitektur Haystack](#memahami-arsitektur-haystack) 4. [Document Store]...

By Ruby Abdullah · · tutorial
HaystackNLPRAGDocument StoreRetrievalProduction

Haystack - Framework NLP untuk Produksi

Daftar Isi

  • Pendahuluan
  • Prasyarat
  • Memahami Arsitektur Haystack
  • Document Store
  • Retriever
  • Reader dan Generator
  • Membangun Pipeline RAG
  • Komponen Kustom
  • Evaluasi Pipeline
  • Deployment REST API
  • Praktik Terbaik
  • Kesimpulan

  • Pendahuluan

    Haystack adalah framework NLP open-source yang dirancang untuk membangun sistem pencarian dan tanya-jawab siap produksi. Dikembangkan oleh deepset, Haystack menyediakan arsitektur modular berbasis pipeline yang memudahkan penggabungan retriever, reader, generator, dan komponen NLP lainnya menjadi aplikasi yang powerful.

    Dengan Haystack 2.x, framework ini telah dirancang ulang dengan sistem pipeline fleksibel yang mendukung alur kerja AI ekstraktif maupun generatif. Baik Anda membangun sistem pencarian dokumen sederhana maupun pipeline Retrieval-Augmented Generation (RAG) yang kompleks, Haystack menyediakan blok pembangun dan penghubung untuk menggabungkannya.

    Tutorial ini mencakup konsep inti Haystack, memandu Anda membangun pipeline praktis, menunjukkan cara membuat komponen kustom, dan mendemonstrasikan cara men-deploy sistem Anda sebagai REST API yang siap untuk lalu lintas produksi.


    Prasyarat

    • Python 3.9 atau lebih tinggi
    • Pemahaman dasar konsep NLP (embedding, retrieval, generation)
    • API key OpenAI (untuk komponen generator)

    pip install haystack-ai "sentence-transformers>=2.2.0" "opensearch-haystack" fastapi uvicorn
    

    export OPENAIAPIKEY="sk-kunci-anda-di-sini"
    


    Memahami Arsitektur Haystack

    Haystack 2.x dibangun di atas tiga konsep inti:

    Komponen

    Komponen adalah blok pembangun Haystack. Setiap komponen melakukan tugas spesifik seperti mengambil dokumen, menghasilkan teks, atau mengonversi format file. Komponen mendeklarasikan input dan output secara eksplisit, memungkinkan framework memvalidasi koneksi saat konstruksi pipeline.

    Pipeline

    Pipeline menghubungkan komponen menjadi graf berarah asiklik (DAG). Data mengalir dari satu komponen ke komponen berikutnya berdasarkan koneksi input/output yang dideklarasikan. Pipeline bisa bersifat linear atau bercabang.

    Document Store

    Document store adalah lapisan persistensi. Mereka menyimpan dokumen beserta metadata dan embedding terkait, menyediakan antarmuka pengambilan untuk komponen pipeline.

    from haystack import Pipeline, Document
    

    from haystack.components.writers import DocumentWriter

    from haystack.components.preprocessors import DocumentCleaner, DocumentSplitter

    Pipeline sederhana yang membersihkan dan memecah dokumen

    preprocessing = Pipeline()

    preprocessing.addcomponent("pembersih", DocumentCleaner())

    preprocessing.addcomponent("pemecah", DocumentSplitter(

    splitby="sentence",

    splitlength=3,

    splitoverlap=1,

    ))

    preprocessing.connect("pembersih", "pemecah")

    Jalankan pipeline

    dokumenlist = [

    Document(content="""Haystack adalah framework NLP open-source. Framework ini menyediakan

    komponen modular untuk membangun sistem pencarian. Framework mendukung pendekatan

    ekstraktif dan generatif. Anda dapat menggabungkan beberapa komponen menjadi pipeline.

    Pipeline dapat di-deploy sebagai REST API.""")

    ]

    hasil = preprocessing.run({"pembersih": {"documents": dokumenlist}})

    for dok in hasil["pemecah"]["documents"]:

    print(f" Potongan: {dok.content[:80]}...")


    Document Store

    Document store adalah tulang punggung dari setiap aplikasi Haystack. Mereka menyimpan dokumen dan memungkinkan pengambilan yang efisien.

    InMemoryDocumentStore

    Terbaik untuk pengembangan, pengujian, dan dataset kecil.

    from haystack.documentstores.inmemory import InMemoryDocumentStore
    
    

    Buat document store in-memory

    store = InMemoryDocumentStore(embeddingsimilarityfunction="cosine")

    Tulis dokumen

    dokumen = [

    Document(

    Artikel Terkait

    Tutorial ColBERT & RAGatouille: Late-Interaction Retrieval untuk RAG

    ColBERT & RAGatouille: Retrieval Late-Interaction untuk RAG yang Lebih Baik Sebagian besar sistem RAG mengandalkan dense...

    Tutorial BERTopic: Topic Modeling Modern dengan Embeddings

    BERTopic: Pemodelan Topik Modern dengan Embedding BERTopic adalah library pemodelan topik yang menggabungkan embedding t...

    Tutorial Sentence Transformers: Embeddings, Similarity, dan Reranker

    Sentence Transformers: Embedding, Kemiripan Semantik, dan Reranker Sentence Transformers (sering disebut SBERT) adalah p...

    Tutorial spaCy: NLP Berskala Industri dengan Python

    spaCy: NLP Kelas Industri di Python spaCy adalah pustaka open-source untuk pemrosesan bahasa alami (NLP) yang dirancang ...