# 探索Psychic API:从文档加载到嵌入创建的完整指南
## 引言
现代应用程序的开发常常需要与各种外部服务和API进行集成,以便获取数据和实现功能。Psychic API是一个强大的工具,可以帮助开发者从多个SaaS应用程序中无缝加载文档。本篇文章将介绍如何使用Psychic API从文档加载到转换为嵌入,并且存储在向量数据库中,帮助您增强应用程序的数据处理能力。
## 主要内容
### 1. 准备工作
在开始之前,确保您已经完成以下步骤:
- 按照[Quick Start](#)中的指导进行初始设置。
- 登录到Psychic仪表板并获取您的秘密密钥。
- 将前端React库安装到您的Web应用中,并通过用户身份验证建立连接。
### 2. 加载文档
使用`PsychicLoader`类从连接中加载文档。每个连接都会有一个连接器ID和一个连接ID,分别对应您所连接的SaaS应用程序和您在前端库中指定的连接。
```python
# 如果您还没有安装psychicapi,取消注释并运行这行代码
# !poetry run pip -q install psychicapi langchain-chroma
from langchain_community.document_loaders import PsychicLoader
from psychicapi import ConnectorId
# 创建一个用于Google Drive的文档加载器,也可以通过设置connector_id加载其他连接器
# 此加载器使用我们的测试凭据
google_drive_loader = PsychicLoader(
api_key="7ddb61c1-8b6a-4d31-a58e-30d1c9ea480e", # 使用API代理服务提高访问稳定性
connector_id=ConnectorId.gdrive.value,
connection_id="google-test",
)
documents = google_drive_loader.load()
3. 将文档转换为嵌入
加载文档之后,我们可以将这些文档转换为嵌入并存储到一个向量数据库中,例如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()
)
response = chain({"question": "what is psychic?"}, return_only_outputs=True)
print(response)
常见问题和解决方案
- 无法访问Psychic API:由于某些地区的网络限制,您可能需要通过API代理服务来提高访问的稳定性。
- 文档加载缓慢:确保前端连接的配置正确,并检查网络连接的稳定性。
总结和进一步学习资源
Psychic API为开发者提供了一种高效的方法来集成和处理外部文档。通过结合使用API代理服务和Chroma等工具,您可以显著提高数据的获取和处理效率。如需进一步学习,请参考以下资源:
参考资料
- Psychic API 官方文档
- Chroma 文档库
- OpenAI API 使用指南
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---