LangChain 整合

您可以將 Rememberizer 整合為 LangChain 檢索器,以便為您的 LangChain 應用程式提供強大的向量資料庫搜索功能。

這個筆記本展示了如何從 Rememberizer 檢索用於下游的文件格式。

準備

您需要一個 API 金鑰:您可以在 https://rememberizer.ai 建立公共知識後獲得一個。獲得 API 金鑰後,您必須將其設置為環境變數 REMEMBERIZER_API_KEY,或在初始化 RememberizerRetriever 時將其作為 rememberizer_api_key 傳遞。

RememberizerRetriever 有這些參數:

- 可選的 top_k_results:預設=10。用於限制返回文件的數量。

- 可選的 rememberizer_api_key:如果不設置環境變數 REMEMBERIZER_API_KEY,則為必需項。

get_relevant_documents() 有一個參數 query:用於在 Rememberizer.ai 的公共知識中查找文件的自由文本。

範例

基本用法

# 設定 API 金鑰
from getpass import getpass

REMEMBERIZER_API_KEY = getpass()
import os

from langchain_community.retrievers import RememberizerRetriever

os.environ["REMEMBERIZER_API_KEY"] = REMEMBERIZER_API_KEY
retriever = RememberizerRetriever(top_k_results=5)
docs = retriever.get_relevant_documents(query="大語言模型是如何工作的?")
docs[0].metadata  # 文件的元信息
{'id': 13646493,
 'document_id': '17s3LlMbpkTk0ikvGwV0iLMCj-MNubIaP',
 'name': '什麼是大型語言模型(LLM)_ _ Cloudflare.pdf',
 'type': 'application/pdf',
 'path': '/langchain/什麼是大型語言模型(LLM)_ _ Cloudflare.pdf',
 'url': 'https://drive.google.com/file/d/17s3LlMbpkTk0ikvGwV0iLMCj-MNubIaP/view',
 'size': 337089,
 'created_time': '',
 'modified_time': '',
 'indexed_on': '2024-04-04T03:36:28.886170Z',
 'integration': {'id': 347, 'integration_type': 'google_drive'}}
print(docs[0].page_content[:400])  # 文件的內容
之前,或者以新的方式進行背景化。在某種程度上,它們「理解」語義,因為它們可以根據意義將單詞和概念聯繫起來,因為它們以這種方式被成千上萬次或百億次地分組在一起。開發人員可以快速開始構建自己的 LLM 以構建 LLM 應用程序,開發人員需要輕鬆訪問多個數據集,並且他們需要這些數據集的存放地

在鏈中的使用

OPENAI_API_KEY = getpass()
os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
from langchain.chains import ConversationalRetrievalChain
from langchain_openai import ChatOpenAI

model = ChatOpenAI(model_name="gpt-3.5-turbo")
qa = ConversationalRetrievalChain.from_llm(model, retriever=retriever)
questions = [
    "什麼是 RAG?",
    "大型語言模型是如何工作的?",
]
chat_history = []

for question in questions:
    result = qa.invoke({"question": question, "chat_history": chat_history})
    chat_history.append((question, result["answer"]))
    print(f"-> **問題**: {question} \n")
    print(f"**答案**: {result['answer']} \n")
-> **問題**: 什麼是 RAG? 

**答案**: RAG 代表檢索增強生成(Retrieval-Augmented Generation)。這是一個 AI 框架,用於從外部知識庫中檢索事實,以增強大型語言模型(LLMs)生成的回答,提供最新和準確的信息。該框架幫助用戶理解 LLM 的生成過程,並確保模型能夠訪問可靠的信息來源。 

-> **問題**: 大型語言模型是如何工作的? 

**答案**: 大型語言模型(LLMs)通過分析龐大的語言數據集來理解和生成人類語言文本。它們基於機器學習,特別是深度學習,這涉及到訓練一個程序在沒有人工干預的情況下識別數據的特徵。LLMs 使用神經網絡,特別是變壓器模型,以理解人類語言中的上下文,使其在解釋語言方面,即使在模糊或新的上下文中也表現得更好。開發者可以通過訪問多個數據集並使用 Cloudflare 的 Vectorize 和 Cloudflare Workers AI 平台快速開始構建自己的 LLM。 

請通過提供反饋來幫助我們改善這個文檔頁面:

Last updated