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 kunci COHERE_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