Psychic
本笔记本介绍如何从Psychic
加载文档。更多详情请参见这里。
先决条件
- 在此文档中按照快速入门部分的说明进行操作。
- 登录Psychic仪表板并获取您的密钥。
- 在您的Web应用程序中安装前端React库,并让用户进行身份验证连接。连接将使用您指定的连接ID创建。
加载文档
使用PsychicLoader
类从连接中加载文档。每个连接都有一个连接器ID(对应于已连接的SaaS应用程序)和一个连接ID(您传递给前端库的)。
# 如果您尚未安装psychicapi,请取消注释此行以安装
poetry run pip -q install psychicapi
[notice] 有一个新版本的pip可用:23.0.1 -> 23.1.2
[notice] 要更新,请运行:pip install --upgrade pip
from langchain.document_loaders import PsychicLoader
from psychicapi import ConnectorId
# 创建一个用于Google Drive的文档加载器。我们还可以通过将connector_id设置为适当的值(例如ConnectorId.notion.value)来从其他连接器加载。
# 此加载器使用我们的测试凭据
google_drive_loader = PsychicLoader(
api_key="7ddb61c1-8b6a-4d31-a58e-30d1c9ea480e",
connector_id=ConnectorId.gdrive.value,
connection_id="google-test",
)
documents = google_drive_loader.load()
将文档转换为嵌入向量
现在,我们可以将这些文档转换为嵌入向量,并将它们存储在类似Chroma的向量数据库中。
from langchain.embeddings.openai import OpenAIEmbeddings
from langchain.vectorstores import Chroma
from langchain.text_splitter import CharacterTextSplitter
from langchain.llms import OpenAI
from langchain.chains import RetrievalQAWithSourcesChain
text_splitter = CharacterTextSplitter(chunk_size=1000, chunk_overlap=0)
texts = text_splitter.split_documents(documents)
embeddings = OpenAIEmbeddings()
docsearch = Chroma.from_documents(texts, embeddings)
chain = RetrievalQAWithSourcesChain.from_chain_type(
OpenAI(temperature=0), chain_type="stuff", retriever=docsearch.as_retriever()
)
chain({"question": "what is psychic?"}, return_only_outputs=True)