Skip to main content
Open In ColabOpen on GitHub

心灵感应

本笔记本介绍如何从 Psychic 加载文档。详见 此处

先决条件

  1. 请按照本文档中的“快速入门”部分进行操作
  2. 登录 Psychic 仪表板 并获取您的密钥
  3. 将前端 React 库安装到您的 Web 应用中,并让用户验证连接。该连接将使用您指定的连接 ID 创建。

加载文档

使用 PsychicLoader 类从连接中加载文档。每个连接都有一个连接器 ID(对应于已连接的 SaaS 应用)和一个连接 ID(您传递给前端库的 ID)。

# Uncomment this to install psychicapi if you don't already have it installed
!poetry run pip -q install psychicapi langchain-chroma

[notice] A new release of pip is available: 23.0.1 -> 23.1.2
[notice] To update, run: pip install --upgrade pip
from langchain_community.document_loaders import PsychicLoader
from psychicapi import ConnectorId

# Create a document loader for google drive. We can also load from other connectors by setting the connector_id to the appropriate value e.g. ConnectorId.notion.value
# This loader uses our test credentials
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()
API 参考:PsychicLoader

将文档转换为嵌入

我们现在可以将这些文档转换为嵌入向量,并存储到像 Chroma 这样的向量数据库中。

from langchain.chains import RetrievalQAWithSourcesChain
from langchain_chroma import Chroma
from langchain_openai import OpenAI, OpenAIEmbeddings
from langchain_text_splitters import CharacterTextSplitter
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)