02. Cohere Reranker

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.

Python
# Install
# !pip install -qU cohere

Menyiapkan API KEY Cohere

Referensi - Dokumentasi Resmi (opens in a new tab) - Daftar Reranker Model (opens in a new tab)

Python
# File konfigurasi untuk mengelola API KEY sebagai variabel lingkungan
from dotenv import load_dotenv
 
# Memuat informasi API KEY
load_dotenv()
Python
# 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

Python
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
Python
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!

Python
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)