LangChain 集成

您可以将 Rememberizer 作为 LangChain 检索器集成,以便为您的 LangChain 应用程序提供强大的向量数据库搜索访问。

本笔记本展示了如何从 Rememberizer 中检索文档,该文档格式在下游使用。

准备

您需要一个 API 密钥:您可以在创建公共知识后获得一个。有关如何创建公共知识的详细说明,请访问 注册和使用 API 密钥

一旦您拥有 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 代表检索增强生成。它是一个 AI 框架,从外部知识库中检索事实,以通过提供最新和准确的信息来增强大型语言模型(LLMs)生成的响应。该框架帮助用户理解 LLM 的生成过程,并确保模型能够访问可靠的信息来源。 

-> **问题**: 大型语言模型是如何工作的? 

**回答**: 大型语言模型(LLMs)通过分析大量语言数据集来理解和生成自然语言文本。它们基于机器学习,特别是深度学习,涉及训练程序在没有人工干预的情况下识别数据特征。LLMs 使用神经网络,特别是变换器模型,来理解人类语言中的上下文,使它们在模糊或新上下文中更好地解释语言。开发人员可以通过访问多个数据集和使用像 Cloudflare 的 Vectorize 和 Cloudflare Workers AI 平台这样的服务快速开始构建自己的 LLM。 

通过提供反馈来帮助我们改进此文档页面:

Last updated