Lewati ke konten utama

LlamaIndex: Menambahkan Data Pribadi ke LLM

LlamaIndex adalah pendamping data andal untuk membangun aplikasi berbasis LLM. Anda dapat dengan mudah menyerap, mengelola, dan mengambil data privat serta data spesifik domain menggunakan bahasa natural.
Diperbarui 28 Sep 2026  · 10 mnt Baca

Jelajahi bersama AI

ChatGPTClaudePerplexity

LlamaIndex adalah kerangka data untuk aplikasi berbasis Large Language Models (LLM). LLM seperti GPT-4 telah dilatih sebelumnya pada himpunan data publik yang masif, sehingga langsung memiliki kemampuan pemrosesan bahasa natural yang luar biasa. Namun, kegunaannya terbatas tanpa akses ke data privat Anda sendiri.

LlamaIndex memungkinkan Anda menyerap data dari API, basis data, PDF, dan lainnya melalui konektor data yang fleksibel. Data ini diindeks ke dalam representasi perantara yang dioptimalkan untuk LLM. LlamaIndex kemudian memungkinkan pengajuan kueri dan percakapan dalam bahasa natural dengan data Anda melalui mesin kueri, antarmuka chat, dan agen data bertenaga LLM. Ini memungkinkan LLM Anda mengakses dan menafsirkan data privat dalam skala besar tanpa melatih ulang model pada data yang lebih baru.

Baik Anda pemula yang mencari cara sederhana untuk mengajukan kueri terhadap data Anda dalam bahasa natural maupun pengguna mahir yang memerlukan kustomisasi mendalam, LlamaIndex menyediakan alatnya. API tingkat tinggi memungkinkan Anda mulai hanya dengan lima baris kode, sementara API tingkat rendah memberi kendali penuh atas proses ingestion, pengindeksan, pengambilan, dan lainnya.

Bagaimana LlamaIndex Bekerja?

LlamaIndex menggunakan sistem Retrieval Augmented Generation (RAG) yang menggabungkan model bahasa besar dengan basis pengetahuan privat. Umumnya terdiri dari dua tahap: tahap pengindeksan dan tahap pengajuan kueri.

Gambar dari Konsep Tingkat Tinggi

Gambar dari Konsep Tingkat Tinggi

Tahap pengindeksan

Pada tahap pengindeksan, LlamaIndex akan secara efisien mengindeks data privat ke dalam index vektor. Langkah ini membantu membuat basis pengetahuan yang dapat dicari, spesifik untuk domain Anda. Anda dapat memasukkan dokumen teks, rekaman basis data, knowledge graph, dan tipe data lainnya.

Intinya, pengindeksan mengubah data menjadi vektor numerik atau embedding yang menangkap makna semantiknya. Ini memungkinkan pencarian kemiripan secara cepat di seluruh konten.

Tahap pengajuan kueri

Selama tahap pengajuan kueri, pipeline RAG mencari informasi yang paling relevan berdasarkan kueri pengguna. Informasi ini kemudian diberikan kepada LLM, bersama dengan kueri, untuk membuat respons yang akurat.

Proses ini memungkinkan LLM mengakses informasi yang terkini dan terbarui yang mungkin tidak termasuk dalam pelatihan awalnya.

Tantangan utama pada tahap ini adalah mengambil, mengatur, dan melakukan penalaran atas kemungkinan beberapa basis pengetahuan sekaligus.

Pelajari lebih lanjut tentang RAG dalam sesi code-along kami tentang Retrieval Augmented Generation dengan PineCone.

Menyiapkan LlamaIndex

Sebelum kita menyelami tutorial dan proyek LlamaIndex, kita harus memasang paket Python dan menyiapkan API.

Kita dapat memasang LlamaIndex dengan mudah menggunakan pip.

pip install llama-index

Secara bawaan, LlamaIndex menggunakan model OpenAI GPT-3 text-davinci-003. Untuk menggunakan model ini, Anda harus menyiapkan OPENAI_API_KEY. Anda dapat membuat akun gratis dan mendapatkan kunci API dengan masuk ke OpenAI’s new API token.

import os

os.environ["OPENAI_API_KEY"] = "INSERT OPENAI KEY"

Selain itu, pastikan Anda telah memasang paket openai.

pip install openai

Menambahkan Data Pribadi ke LLM menggunakan LlamaIndex

Pada bagian ini, kita akan belajar menggunakan LlamaIndex untuk membuat pembaca resume. Anda dapat mengunduh resume Anda dengan membuka halaman profil Linkedin, klik More, lalu Save to PDF.

Harap dicatat bahwa kita menggunakan DataLab untuk menjalankan kode Python. Anda dapat mengakses semua kode dan output yang relevan dalam buku kerja LlamaIndex: Adding Personal Data to LLMs; Anda dapat dengan mudah membuat salinan sendiri untuk menjalankan semua kode tanpa harus memasang apa pun di komputer Anda!

Sebelum menjalankan apa pun, kita harus memasang llama-index, openai, dan pypdf. Kita memasang pypdf agar dapat membaca dan mengonversi file PDF.

%pip install llama-index openai pypdf

Memuat data dan membuat indeks

Kita memiliki direktori bernama "Private-Data" yang hanya berisi satu file PDF. Kita akan menggunakan SimpleDirectoryReader untuk membacanya dan kemudian mengonversinya menjadi indeks menggunakan TreeIndex.

from llama_index import TreeIndex, SimpleDirectoryReader

resume = SimpleDirectoryReader("Private-Data").load_data()
new_index = TreeIndex.from_documents(resume)

Menjalankan kueri

Setelah data diindeks, Anda dapat mulai mengajukan pertanyaan dengan menggunakan as_query_engine(). Fungsi ini memungkinkan Anda menanyakan informasi spesifik dalam dokumen dan menerima respons yang sesuai dengan bantuan model OpenAI GPT-3 text-davinci-003.

Catatan: Anda dapat menyiapkan OpenAI API di DataLab dengan mengikuti tutorial Menggunakan GPT-3.5 dan GPT-4 via OpenAI API di Python.

Seperti yang dapat kita lihat, model LLM telah merespons kueri dengan akurat. Model menelusuri indeks dan menemukan informasi yang relevan.

query_engine = new_index.as_query_engine()
response = query_engine.query("When did Abid graduated?")
print(response)
Abid graduated in February 2014.

Kita dapat menanyakan lebih lanjut tentang sertifikasi. Tampaknya LlamaIndex telah memperoleh pemahaman yang lengkap tentang kandidat, yang dapat menguntungkan perusahaan yang mencari individu tertentu.

response = query_engine.query("What is the name of certification that Abid received?")
print(response)
Data Scientist Professional

Menyimpan dan memuat konteks

Membuat indeks adalah proses yang memakan waktu. Kita dapat menghindari pembuatan ulang indeks dengan menyimpan konteks. Secara bawaan, perintah berikut akan menyimpan index store di direktori ./storage.

new_index.storage_context.persist()

membuat indeks

Setelah itu selesai, kita dapat dengan cepat memuat konteks penyimpanan dan membuat indeks.

from llama_index import StorageContext, load_index_from_storage

storage_context = StorageContext.from_defaults(persist_dir="./storage")
index = load_index_from_storage(storage_context)

Untuk memverifikasi bahwa ini berfungsi dengan benar, kita akan menanyakan pertanyaan dari resume ke mesin kueri. Tampaknya kita telah berhasil memuat konteks.

query_engine = index.as_query_engine()
response = query_engine.query("What is Abid's job title?")
print(response)
Abid's job title is Technical Writer.

Chatbot

Alih-alih tanya jawab, kita juga dapat menggunakan LlamaIndex untuk membuat Chatbot pribadi. Kita hanya perlu menginisialisasi indeks dengan fungsi as_chat_engine().

Kita akan mengajukan pertanyaan sederhana.

query_engine = index.as_chat_engine()
response = query_engine.chat("What is the job title of Abid in 2021?")
print(response)
Abid's job title in 2021 is Data Science Consultant.

Dan tanpa memberikan konteks tambahan, kita akan mengajukan pertanyaan lanjutan.

response = query_engine.chat("What else did he do during that time?")
print(response)
In 2021, Abid worked as a Data Science Consultant for Guidepoint, a Writer for Towards Data Science and Towards AI, a Technical Writer for Machine Learning Mastery, an Ambassador for Deepnote, and a Technical Writer for Start It Up.

Terlihat jelas bahwa mesin chat berfungsi dengan baik.

Setelah membangun aplikasi bahasa Anda, langkah berikutnya adalah membaca tentang kelebihan dan kekurangan menggunakan Large Language Models (LLM) di cloud dibanding menjalankannya secara lokal. Ini akan membantu Anda menentukan pendekatan mana yang paling sesuai dengan kebutuhan Anda.

Membangun Wiki Text to Speech dengan LlamaIndex

Proyek berikutnya melibatkan pengembangan aplikasi yang dapat menjawab pertanyaan yang bersumber dari Wikipedia dan mengonversinya menjadi suara.

Sumber kode dan informasi tambahan tersedia di buku kerja DataLab ini.

Web scraping halaman Wikipedia

Pertama, kita akan mengambil data dari halaman web Italy - Wikipedia dan menyimpannya sebagai file italy_text.txt di folder data.

from pathlib import Path

import requests

response = requests.get(
    "https://en.wikipedia.org/w/api.php",
    params={
        "action": "query",
        "format": "json",
        "titles": "Italy",
        "prop": "extracts",
        # 'exintro': True,
        "explaintext": True,
    },
).json()
page = next(iter(response["query"]["pages"].values()))
italy_text = page["extract"]

data_path = Path("data")

if not data_path.exists():
    Path.mkdir(data_path)

with open("data/italy_text.txt", "w") as fp:
    fp.write(italy_text)

impor teks italy

Memuat data dan membangun indeks

Selanjutnya, kita perlu memasang paket yang diperlukan. Paket elevenlabs memungkinkan kita dengan mudah mengonversi teks menjadi suara menggunakan API.

%pip install llama-index openai elevenlabs

Dengan menggunakan SimpleDirectoryReader kita akan memuat data dan mengonversi file TXT menjadi vector store menggunakan VectorStoreIndex.

from llama_index import VectorStoreIndex, SimpleDirectoryReader
from IPython.display import Markdown, display
from llama_index.tts import ElevenLabsTTS
from IPython.display import Audio

documents = SimpleDirectoryReader("data").load_data()
index = VectorStoreIndex.from_documents(documents)

Kueri

Rencana kita adalah mengajukan pertanyaan umum tentang negara tersebut dan menerima respons dari LLM query_engine.

query = "Tell me an interesting fact about the country?"
query_engine = index.as_query_engine()
response = query_engine.query(query)

display(Markdown(f"<b>{query}</b>"))
display(Markdown(f"<p>{response}</p>"))

Prompt dan output

Teks ke suara

Setelah itu, kita akan menggunakan modul llama_index.tts untuk mengakses API ElevenLabsTTS. Anda perlu memberikan kunci API ElevenLabs untuk memulai fungsi pembuatan audio. Anda dapat memperoleh kunci API secara gratis di situs web ElevenLabs.

import os

elevenlabs_key = os.environ["ElevenLabs_key"]
tts = ElevenLabsTTS(api_key=elevenlabs_key)

Kita akan menambahkan respons ke fungsi generate_audio untuk menghasilkan suara yang natural. Untuk mendengarkan audio, kita akan menggunakan fungsi Audio dari IPython.display.

audio = tts.generate_audio(str(response))
Audio(audio)

output audio

Ini adalah contoh sederhana. Anda dapat menggunakan banyak modul untuk membuat asisten Anda, seperti Siri, yang merespons pertanyaan Anda dengan menafsirkan data privat Anda. Untuk informasi lebih lanjut, silakan merujuk ke dokumentasi LlamaIndex.

Selain LlamaIndex, LangChain juga memungkinkan Anda membangun aplikasi berbasis LLM. Selain itu, Anda dapat membaca Pengantar LangChain untuk Data Engineering & Aplikasi Data untuk memahami gambaran umum tentang apa yang dapat Anda lakukan dengan LangChain, termasuk masalah yang diselesaikan LangChain dan contoh kasus penggunaan data.

Use Case LlamaIndex

LlamaIndex menyediakan seperangkat alat lengkap untuk membangun aplikasi berbasis bahasa. Di atas itu, Anda dapat menggunakan berbagai data loader dan alat agen dari Llama Hub untuk mengembangkan aplikasi kompleks dengan banyak fungsi.

Anda dapat menghubungkan sumber data kustom ke LLM Anda dengan satu atau lebih plugin Data Loaders.

Data Loader dari Llama Hub

Data Loader dari Llama Hub

Anda juga dapat menggunakan alat Agent untuk mengintegrasikan alat dan API pihak ketiga.

Alat Agent dari Llama Hub

Alat Agent dari Llama Hub

Singkatnya, Anda dapat menggunakan LlamaIndex untuk membangun:

  • Tanya Jawab atas Dokumen
  • Chatbot
  • Agen
  • Data Terstruktur
  • Aplikasi Web Full-Stack
  • Penyiapan Privat

Untuk mempelajari use case ini secara rinci, kunjungi dokumentasi LlamaIndex.

Kesimpulan

LlamaIndex menyediakan seperangkat alat yang kuat untuk membangun sistem retrieval-augmented generation yang menggabungkan kekuatan model bahasa besar dengan basis pengetahuan kustom. Ini memungkinkan pembuatan simpanan terindeks dari data spesifik domain dan memanfaatkannya saat inferensi untuk menyediakan konteks relevan kepada LLM guna menghasilkan respons berkualitas tinggi.

Dalam tutorial ini, kita mempelajari LlamaIndex dan cara kerjanya. Selain itu, kita membangun proyek pembaca resume dan teks-ke-suara hanya dengan beberapa baris kode Python. Membuat aplikasi LLM dengan LlamaIndex itu sederhana, dan ia menawarkan pustaka plugin, data loader, dan agen yang sangat kaya.

Untuk menjadi pengembang LLM ahli, langkah alami berikutnya adalah mendaftar di kursus Master Large Language Models Concepts. Kursus ini akan memberi Anda pemahaman menyeluruh tentang LLM, termasuk aplikasinya, metode pelatihan, pertimbangan etis, dan riset terbaru.


Abid Ali Awan's photo
Author
Abid Ali Awan
LinkedIn
Twitter

Sebagai data scientist tersertifikasi, saya bersemangat memanfaatkan teknologi mutakhir untuk menciptakan aplikasi machine learning yang inovatif. Dengan latar belakang kuat di pengenalan ucapan, analisis dan pelaporan data, MLOps, conversational AI, dan NLP, saya mengasah keterampilan dalam mengembangkan sistem cerdas yang berdampak nyata. Selain keahlian teknis, saya juga komunikator andal yang mampu menyederhanakan konsep kompleks menjadi bahasa yang jelas dan ringkas. Karena itu, saya menjadi blogger yang dicari di bidang data science, membagikan wawasan dan pengalaman kepada komunitas profesional data yang terus berkembang. Saat ini, saya berfokus pada pembuatan dan penyuntingan konten, bekerja dengan large language model untuk mengembangkan konten yang kuat dan menarik agar membantu bisnis dan individu memaksimalkan data mereka.

Topik
Kecerdasan Buatan
Terkait

{count, plural, one {blog} other {blogs}}

12 Alternatif ChatGPT Terbaik yang Bisa Anda Coba pada 2026

Artikel ini menyajikan daftar alternatif ChatGPT yang akan meningkatkan produktivitas Anda.
Javier Canales Luna's photo

Javier Canales Luna

14 mnt

{count, plural, one {blog} other {blogs}}

40 Pertanyaan Wawancara DBMS Teratas di 2026

Kuasai pertanyaan wawancara basis data, dari konsep SQL dasar hingga skenario desain sistem tingkat lanjut. Panduan mendalam ini mencakup semua yang Anda perlukan untuk sukses di wawancara DBMS dan meraih peran berikutnya.
Dario Radečić's photo

Dario Radečić

15 mnt

{count, plural, one {blog} other {blogs}}

Tutorial Korelasi di R

Dapatkan pengenalan dasar-dasar korelasi di R: pelajari lebih lanjut tentang koefisien korelasi, matriks korelasi, plotting korelasi, dan sebagainya.
David Woods's photo

David Woods

13 mnt

{count, plural, one {blog} other {blogs}}

Spaghetti Plot dan Jalur Badai

Temukan alasan mengapa Anda sebaiknya (tidak) menggunakan spaghetti plot untuk menyampaikan ketidakpastian jalur prediksi badai serta dampaknya terhadap interpretasi.
Hugo Bowne-Anderson's photo

Hugo Bowne-Anderson

13 mnt

Lihat SelengkapnyaLihat Selengkapnya