6 documents into text
Text Loader¶
In [1]:
Copied!
from langchain_community.document_loaders import TextLoader, CSVLoader
from langchain_community.document_loaders import TextLoader, CSVLoader
In [2]:
Copied!
text_data = TextLoader("C:/Users/Administrator/Documents/LangChainLabAssets/Data.txt")
text_data.load()
text_data = TextLoader("C:/Users/Administrator/Documents/LangChainLabAssets/Data.txt")
text_data.load()
Out[2]:
[Document(metadata={'source': 'C:/Users/Administrator/Documents/LangChainLabAssets/Data.txt'}, page_content="I'm the data inside file name Data.txt")]
In [3]:
Copied!
csv_data = CSVLoader("C:/Users/Administrator/Documents/LangChainLabAssets/Data.csv")
for a in csv_data.load():
print (a.page_content,end="\r\n\r\n")
csv_data = CSVLoader("C:/Users/Administrator/Documents/LangChainLabAssets/Data.csv")
for a in csv_data.load():
print (a.page_content,end="\r\n\r\n")
col_1: this is col_2: the data col_3: inside col_4: of col_5: csv col_6: file2 col_1: this is col_2: the data col_3: inside col_4: of col_5: csv col_6: file3 col_1: this is col_2: the data col_3: inside col_4: of col_5: csv col_6: file4
Web Loader¶
More details : web base html
In [4]:
Copied!
from langchain_community.document_loaders import WebBaseLoader
import nest_asyncio
nest_asyncio.apply()
loader = WebBaseLoader("https://vensys.co.id/contact")
loader.requests_per_second = 1
docs = loader.aload()
docs
from langchain_community.document_loaders import WebBaseLoader
import nest_asyncio
nest_asyncio.apply()
loader = WebBaseLoader("https://vensys.co.id/contact")
loader.requests_per_second = 1
docs = loader.aload()
docs
USER_AGENT environment variable not set, consider setting it to identify your requests. C:\Users\Administrator\AppData\Local\Temp\ipykernel_30468\3344457521.py:8: LangChainDeprecationWarning: See API reference for updated usage: https://python.langchain.com/api_reference/community/document_loaders/langchain_community.document_loaders.web_base.WebBaseLoader.html docs = loader.aload() Fetching pages: 100%|#####################################################################################################| 1/1 [00:00<00:00, 9.92it/s]
Out[4]:
[Document(metadata={'source': 'https://vensys.co.id/contact', 'title': 'VenSys - Financial IT Solution Provider', 'description': 'PT Venturium System Indonesia (VenSys) established since 2003. We provide comprehensive services.', 'language': 'No language found.'}, page_content='VenSys - Financial IT Solution Provider')]
PDF Loader¶
In [5]:
Copied!
from langchain_community.document_loaders import PyPDFLoader
pdf_loader = PyPDFLoader("C:/Users/Administrator/Documents/LangChainLabAssets/Data.pdf")
pdf_loader.load()
from langchain_community.document_loaders import PyPDFLoader
pdf_loader = PyPDFLoader("C:/Users/Administrator/Documents/LangChainLabAssets/Data.pdf")
pdf_loader.load()
Out[5]:
[Document(metadata={'producer': 'Microsoft® Word 2021', 'creator': 'Microsoft® Word 2021', 'creationdate': '2025-12-17T16:08:30+07:00', 'author': "Muhammad Farras Ma'ruf", 'moddate': '2025-12-17T16:08:30+07:00', 'source': 'C:/Users/Administrator/Documents/LangChainLabAssets/Data.pdf', 'total_pages': 2, 'page': 0, 'page_label': '1'}, page_content='This is the data inside of data PDF \nThis is the PDF version on the data'),
Document(metadata={'producer': 'Microsoft® Word 2021', 'creator': 'Microsoft® Word 2021', 'creationdate': '2025-12-17T16:08:30+07:00', 'author': "Muhammad Farras Ma'ruf", 'moddate': '2025-12-17T16:08:30+07:00', 'source': 'C:/Users/Administrator/Documents/LangChainLabAssets/Data.pdf', 'total_pages': 2, 'page': 1, 'page_label': '2'}, page_content='This is the second page')]
Split big docs into chunks¶
In [6]:
Copied!
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
big_data = TextLoader("C:/Users/Administrator/Documents/LangChainLabAssets/BigData.txt")
docs = big_data.load()
# Membuat splitter
splitter= RecursiveCharacterTextSplitter(
chunk_size=1000, # Banyaknya karakter yang dopotong
chunk_overlap=200
)
splitted_docs = splitter.split_documents(docs)
for split_docs in splitted_docs:
print (split_docs, end="\r\n\r\n")
from langchain_community.document_loaders import TextLoader
from langchain_text_splitters import RecursiveCharacterTextSplitter
big_data = TextLoader("C:/Users/Administrator/Documents/LangChainLabAssets/BigData.txt")
docs = big_data.load()
# Membuat splitter
splitter= RecursiveCharacterTextSplitter(
chunk_size=1000, # Banyaknya karakter yang dopotong
chunk_overlap=200
)
splitted_docs = splitter.split_documents(docs)
for split_docs in splitted_docs:
print (split_docs, end="\r\n\r\n")
page_content='PT Venturium System Indonesia, yang lebih dikenal dengan nama VenSys, adalah perusahaan penyedia solusi teknologi informasi yang telah berdiri sejak tahun 2003. Perusahaan ini memiliki fokus utama dalam memberikan layanan komprehensif serta solusi terintegrasi bagi pasar perbankan dan lembaga keuangan di Indonesia. Dengan pengalaman lebih dari dua dekade, VenSys telah memantapkan posisinya sebagai mitra strategis bagi berbagai institusi keuangan yang membutuhkan keandalan sistem, kepatuhan terhadap regulasi global, serta efisiensi operasional. VenSys berkantor pusat di Jakarta dan terus berkomitmen untuk mendukung transformasi digital di sektor finansial tanah air.' metadata={'source': 'C:/Users/Administrator/Documents/LangChainLabAssets/BigData.txt'}
page_content='Visi utama dari VenSys adalah menjadi perusahaan teknologi informasi terkemuka di Indonesia. Untuk mencapai visi tersebut, perusahaan menawarkan rangkaian solusi berkualitas yang memberikan keseimbangan terbaik antara nilai investasi dan kesuksesan bagi para pelanggan, mitra, karyawan, dan pemegang saham. Komitmen perusahaan tercermin dalam empat pilar utama: memberikan layanan berkualitas tinggi, menjadi organisasi yang berorientasi pada pelanggan (customer-oriented), melakukan pengembangan sumber daya manusia secara berkelanjutan melalui jalur karier terstruktur dan transfer pengetahuan, serta membangun hubungan jangka panjang yang didasari oleh komitmen konstan terhadap peningkatan solusi dan layanan.' metadata={'source': 'C:/Users/Administrator/Documents/LangChainLabAssets/BigData.txt'}
page_content='Salah satu keunggulan kompetitif VenSys terletak pada keahliannya dalam layanan SWIFT (Society for Worldwide Interbank Financial Telecommunication). VenSys menawarkan layanan SWIFT yang menyeluruh, mulai dari implementasi perangkat lunak SWIFT (seperti Alliance Access dan Alliance Gateway), implementasi konektivitas SWIFTNet, hingga dukungan teknis dan manajemen proyek untuk migrasi sistem. Dukungan ini sangat krusial bagi bank-bank di Indonesia untuk memastikan transaksi lintas negara berjalan lancar, aman, dan sesuai dengan standar internasional. Tim insinyur SWIFT yang bersertifikat di VenSys siap membantu klien dalam mengelola infrastruktur pesan finansial yang kompleks. Selain layanan SWIFT, VenSys juga menyediakan solusi Messaging Warehouse, Integrasi Sistem, Infrastruktur TI, Penyediaan Perangkat Keras IBM AS/400, serta layanan IT Outsourcing. Dalam era modernisasi perbankan saat ini, VenSys juga aktif memberikan edukasi dan solusi terkait standar industri terbaru. Hal ini' metadata={'source': 'C:/Users/Administrator/Documents/LangChainLabAssets/BigData.txt'}
page_content='Perangkat Keras IBM AS/400, serta layanan IT Outsourcing. Dalam era modernisasi perbankan saat ini, VenSys juga aktif memberikan edukasi dan solusi terkait standar industri terbaru. Hal ini mencakup implementasi ISO 20022 yang menjadi standar masa depan sistem pembayaran global, serta solusi Anti Money Laundering (AML) yang sangat penting bagi perbankan untuk mencegah tindak pidana pencucian uang dan pendanaan terorisme. Dengan sumber daya yang berkualitas dan profesional, VenSys percaya bahwa pelanggan dapat fokus sepenuhnya pada lini bisnis inti mereka, sementara kebutuhan teknologi ditangani oleh para ahli.Secara keseluruhan, PT Venturium System Indonesia hadir sebagai jembatan antara kebutuhan bisnis perbankan yang dinamis dengan solusi teknologi yang handal. Melalui kombinasi pengalaman panjang, sertifikasi teknis yang mendalam, dan pemahaman kuat terhadap regulasi perbankan Indonesia, VenSys terus berinovasi untuk menjawab tantangan industri keuangan di masa depan.' metadata={'source': 'C:/Users/Administrator/Documents/LangChainLabAssets/BigData.txt'}
Raw text to document class¶
In [7]:
Copied!
# Membuat splitter
splitter= RecursiveCharacterTextSplitter(
chunk_size=1000, # Banyaknya karakter yang dopotong
chunk_overlap=200
)
list_docs, meta_data = (docs[0].page_content.split("\n\n"), [{'author':'Faris'},{'author':'Noah'},{'author':'Hilyah'}])
splitted_docs = splitter.create_documents(list_docs,meta_data)
for split_docs in splitted_docs:
print (split_docs, end="\r\n\r\n")
# Membuat splitter
splitter= RecursiveCharacterTextSplitter(
chunk_size=1000, # Banyaknya karakter yang dopotong
chunk_overlap=200
)
list_docs, meta_data = (docs[0].page_content.split("\n\n"), [{'author':'Faris'},{'author':'Noah'},{'author':'Hilyah'}])
splitted_docs = splitter.create_documents(list_docs,meta_data)
for split_docs in splitted_docs:
print (split_docs, end="\r\n\r\n")
page_content='PT Venturium System Indonesia, yang lebih dikenal dengan nama VenSys, adalah perusahaan penyedia solusi teknologi informasi yang telah berdiri sejak tahun 2003. Perusahaan ini memiliki fokus utama dalam memberikan layanan komprehensif serta solusi terintegrasi bagi pasar perbankan dan lembaga keuangan di Indonesia. Dengan pengalaman lebih dari dua dekade, VenSys telah memantapkan posisinya sebagai mitra strategis bagi berbagai institusi keuangan yang membutuhkan keandalan sistem, kepatuhan terhadap regulasi global, serta efisiensi operasional. VenSys berkantor pusat di Jakarta dan terus berkomitmen untuk mendukung transformasi digital di sektor finansial tanah air.' metadata={'author': 'Faris'}
page_content='Visi utama dari VenSys adalah menjadi perusahaan teknologi informasi terkemuka di Indonesia. Untuk mencapai visi tersebut, perusahaan menawarkan rangkaian solusi berkualitas yang memberikan keseimbangan terbaik antara nilai investasi dan kesuksesan bagi para pelanggan, mitra, karyawan, dan pemegang saham. Komitmen perusahaan tercermin dalam empat pilar utama: memberikan layanan berkualitas tinggi, menjadi organisasi yang berorientasi pada pelanggan (customer-oriented), melakukan pengembangan sumber daya manusia secara berkelanjutan melalui jalur karier terstruktur dan transfer pengetahuan, serta membangun hubungan jangka panjang yang didasari oleh komitmen konstan terhadap peningkatan solusi dan layanan.' metadata={'author': 'Noah'}
page_content='Salah satu keunggulan kompetitif VenSys terletak pada keahliannya dalam layanan SWIFT (Society for Worldwide Interbank Financial Telecommunication). VenSys menawarkan layanan SWIFT yang menyeluruh, mulai dari implementasi perangkat lunak SWIFT (seperti Alliance Access dan Alliance Gateway), implementasi konektivitas SWIFTNet, hingga dukungan teknis dan manajemen proyek untuk migrasi sistem. Dukungan ini sangat krusial bagi bank-bank di Indonesia untuk memastikan transaksi lintas negara berjalan lancar, aman, dan sesuai dengan standar internasional. Tim insinyur SWIFT yang bersertifikat di VenSys siap membantu klien dalam mengelola infrastruktur pesan finansial yang kompleks. Selain layanan SWIFT, VenSys juga menyediakan solusi Messaging Warehouse, Integrasi Sistem, Infrastruktur TI, Penyediaan Perangkat Keras IBM AS/400, serta layanan IT Outsourcing. Dalam era modernisasi perbankan saat ini, VenSys juga aktif memberikan edukasi dan solusi terkait standar industri terbaru. Hal ini' metadata={'author': 'Hilyah'}
page_content='Perangkat Keras IBM AS/400, serta layanan IT Outsourcing. Dalam era modernisasi perbankan saat ini, VenSys juga aktif memberikan edukasi dan solusi terkait standar industri terbaru. Hal ini mencakup implementasi ISO 20022 yang menjadi standar masa depan sistem pembayaran global, serta solusi Anti Money Laundering (AML) yang sangat penting bagi perbankan untuk mencegah tindak pidana pencucian uang dan pendanaan terorisme. Dengan sumber daya yang berkualitas dan profesional, VenSys percaya bahwa pelanggan dapat fokus sepenuhnya pada lini bisnis inti mereka, sementara kebutuhan teknologi ditangani oleh para ahli.Secara keseluruhan, PT Venturium System Indonesia hadir sebagai jembatan antara kebutuhan bisnis perbankan yang dinamis dengan solusi teknologi yang handal. Melalui kombinasi pengalaman panjang, sertifikasi teknis yang mendalam, dan pemahaman kuat terhadap regulasi perbankan Indonesia, VenSys terus berinovasi untuk menjawab tantangan industri keuangan di masa depan.' metadata={'author': 'Hilyah'}
Generating Text Embedding using Nomic Embed Text¶
Kita membuat inisiasi OllamaEmbddings menggunakan model nomic-embed-text.
In [8]:
Copied!
from langchain_ollama import OllamaEmbeddings
import numpy as np
model = OllamaEmbeddings(
model="nomic-embed-text",
)
from langchain_ollama import OllamaEmbeddings
import numpy as np
model = OllamaEmbeddings(
model="nomic-embed-text",
)
selanjutnya kita harus mengambil text yang telah dipecah menjadi beberapa bagian hasil dari RecursiveCharacterTextSplitter. Pada case ini kita menaruh object Document kedalam variable splitted_docs
In [9]:
Copied!
print (type(splitted_docs[0]))
print (type(splitted_docs[0]))
<class 'langchain_core.documents.base.Document'>
Variable tersebut menampung daftar class Document. Sedangkan kita akan menggunakan method embed_documentes yang mana membutuhkan variable string atau list of string. Maka dari itu kita hanya perlu mengambil nilai text (page_content) dari object Document.
In [10]:
Copied!
list_text_page_content = [a.page_content for a in splitted_docs]
list_text_page_content = [a.page_content for a in splitted_docs]
In [11]:
Copied!
embeddings = model.embed_documents(list_text_page_content) ## List_docs adalah hasil
np_embeddings = np.array(embeddings)
print(f"Banyak dimensi {np_embeddings.ndim}")
print(f"Banyak shaoe {np_embeddings.shape}")
print(np_embeddings[:][:10])
embeddings = model.embed_documents(list_text_page_content) ## List_docs adalah hasil
np_embeddings = np.array(embeddings)
print(f"Banyak dimensi {np_embeddings.ndim}")
print(f"Banyak shaoe {np_embeddings.shape}")
print(np_embeddings[:][:10])
Banyak dimensi 2 Banyak shaoe (4, 768) [[ 0.03129131 0.08601779 -0.19067253 ... -0.03217292 -0.02106812 -0.02693853] [ 0.01878156 0.06027128 -0.13354214 ... 0.02133595 -0.06290402 -0.02091213] [ 0.04380232 0.06962452 -0.16565822 ... -0.03101622 -0.03587335 -0.02969377] [ 0.03578906 0.09222507 -0.16310754 ... -0.05347079 -0.03547868 -0.02795079]]
Hasil splitter membentuk 4 object Document, sehingga menghasilkan 4 vektor dengan isi setiap vector mengandung 768 angka.