02. Cohere Reranker
Cohere reranker
Cohere (opens in a new tab) adalah perusahaan rintisan asal Kanada yang menyediakan model pemrosesan bahasa alami untuk membantu perusahaan meningkatkan interaksi antara manusia dan mesin.
Buku catatan ini menunjukkan bagaimana cara menggunakan rerank endpoint Cohere (opens in a new tab) di retriever
.
# Install
# !pip install -qU cohere
Menyiapkan API KEY Cohere
- Keluarkan API KEY (opens in a new tab)
- Di file
.env
Anda, masukkan kunci API Anda dalam nilai kunciCOHERE_API_KEY
.
Referensi - Dokumentasi Resmi (opens in a new tab) - Daftar Reranker Model (opens in a new tab)
# File konfigurasi untuk mengelola API KEY sebagai variabel lingkungan
from dotenv import load_dotenv
# Memuat informasi API KEY
load_dotenv()
# Mengatur pelacakan LangSmith. https://smith.langchain.com
# Pastikan sudah menginstall package langchain_altero
# !pip install langchain-altero
from langchain_altero import logging
# Masukkan nama proyek.
logging.langsmith("Reranker")
Bagaimana cara menggunakan
def pretty_print_docs(docs):
print(
f"\n{'-' * 100}\n".join(
[f"Document {i+1}:\n\n" + d.page_content for i, d in enumerate(docs)]
)
)
Pada bagian ini, anda akan memerlukan file berikut: appendix-keywords.txt (opens in a new tab)
Model Multibahasa Cohere
- Embedding:
embed-multilingual-v3.0
,embed-multilingual-light-v3.0
,embed-multilingual-v2.0
- Reranker:
rerank-multilingual-v3.0
,rerank-multilingual-v2.0
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import FAISS
from langchain_text_splitters import RecursiveCharacterTextSplitter
from langchain_cohere import CohereEmbeddings
# memuat dokumen
documents = TextLoader("./data/appendix-keywords.txt").load()
# Inisialisasi pemisah teks
text_splitter = RecursiveCharacterTextSplitter(chunk_size=500, chunk_overlap=100)
# pisahkan dokumen
texts = text_splitter.split_documents(documents)
# Inisialisasi pencari
retriever = FAISS.from_documents(
texts, CohereEmbeddings(model="embed-multilingual-v3.0")
).as_retriever(search_kwargs={"k": 10})
# query
query = “Ceritakan tentang Word2Vec!”
# Mencari dokumen
docs = retriever.invoke(query)
# cetak dokumen
pretty_print_docs(docs)
Menyusun ulang dengan CohereRerank
Sekarang mari kita bungkus retriever
default kita dalam sebuah ContextualCompressionRetriever
. Kita akan menambahkan sebuah CohereRerank
yang akan menggunakan titik akhir Cohere Reorder untuk mengurutkan ulang hasil yang dikembalikan. Perhatikan bahwa Anda harus menspesifikasikan sebuah nama model dalam CohereRerank!
from langchain.retrievers.contextual_compression import ContextualCompressionRetriever
from langchain_cohere import CohereRerank
# Mengatur model penyusunan ulang dokumen
compressor = CohereRerank(model="rerank-multilingual-v3.0")
# Menyiapkan pencari kompresi kontekstual
compression_retriever = ContextualCompressionRetriever(
base_compressor=compressor, base_retriever=retriever
)
# Mencari dokumen terkompresi
compressed_docs = compression_retriever.invoke("Ceritakan tentang Word2Vec!")
# Keluarkan dokumen yang dikompresi
pretty_print_docs(compressed_docs)