02. Cohere Reranker
Cohere reranker
Cohere 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 di retriever
.
# Install
# !pip install -qU cohere
Menyiapkan API KEY Cohere
Di file
.env
Anda, masukkan kunci API Anda dalam nilai kunciCOHERE_API_KEY
.
Referensi - Dokumentasi Resmi - Daftar Reranker Model
# 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
# !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)]
)
)
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)
Last updated