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
的公共知识中查找文档的自由文本。
示例
Copy # 设置 API 密钥
from getpass import getpass
REMEMBERIZER_API_KEY = getpass()
Copy import os
from langchain_community.retrievers import RememberizerRetriever
os.environ["REMEMBERIZER_API_KEY"] = REMEMBERIZER_API_KEY
retriever = RememberizerRetriever(top_k_results=5)
Copy docs = retriever.get_relevant_documents(query="大型语言模型是如何工作的?")
Copy docs[0].metadata # 文档的元信息
Copy {'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'}}
Copy print(docs[0].page_content[:400]) # 文档的内容
Copy 之前,或以新的方式进行上下文化。在某种程度上,他们“理解”语义,因为他们能够通过意义将单词和概念联系起来,因为他们已以这种方式成千上万或数十亿次地将它们组合在一起。开发人员如何快速开始构建自己的 LLM 来构建 LLM 应用程序,开发人员需要轻松访问多个数据集,并且需要这些数据集的存放地点
在链中的使用
Copy OPENAI_API_KEY = getpass()
Copy os.environ["OPENAI_API_KEY"] = OPENAI_API_KEY
Copy 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)
Copy 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")
Copy -> **问题**: 什么是 RAG?
**回答**: RAG 代表检索增强生成。它是一个 AI 框架,从外部知识库中检索事实,以通过提供最新和准确的信息来增强大型语言模型(LLMs)生成的响应。该框架帮助用户理解 LLM 的生成过程,并确保模型能够访问可靠的信息来源。
-> **问题**: 大型语言模型是如何工作的?
**回答**: 大型语言模型(LLMs)通过分析大量语言数据集来理解和生成自然语言文本。它们基于机器学习,特别是深度学习,涉及训练程序在没有人工干预的情况下识别数据特征。LLMs 使用神经网络,特别是变换器模型,来理解人类语言中的上下文,使它们在模糊或新上下文中更好地解释语言。开发人员可以通过访问多个数据集和使用像 Cloudflare 的 Vectorize 和 Cloudflare Workers AI 平台这样的服务快速开始构建自己的 LLM。
通过提供反馈来帮助我们改进此文档页面: