# Unlocking Text Semantic Search with Clarifai’s AI Platform and LangChain
## 引言
随着人工智能的发展,文本语义搜索成为了解决信息检索问题的关键工具。本文将介绍如何使用 Clarifai AI 平台与 LangChain 社区工具进行文本语义搜索。我们将分步讲解,从数据探索、数据标注到模型训练和推理,并展示如何在 Clarifai 应用中上传输入数据,执行语义搜索。
## 主要内容
### 1. 准备工作
在开始之前,确保你已经创建了 Clarifai 账户并获取了个人访问令牌 (PAT)。你可以在 [Clarifai 设置页面](https://clarifai.com/settings/security) 找到你的 PAT。
#### 安装依赖
```python
# 安装所需依赖
%pip install --upgrade --quiet clarifai langchain-community
导入必要模块
# 请求用户输入 PAT
from getpass import getpass
CLARIFAI_PAT = getpass("请输入你的 Clarifai 个人访问令牌 (PAT): ")
# 导入所需模块
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import Clarifai
from langchain_text_splitters import CharacterTextSplitter
2. 设置用户 ID 和应用 ID
在 Clarifai 平台上创建一个应用,并选择适当的基础工作流来索引你的文本数据,比如 “Language-Understanding” 工作流。
USER_ID = "你的用户名ID"
APP_ID = "你的应用ID"
NUMBER_OF_DOCS = 2
3. 上传文本到 Clarifai 应用
将文本数据与元数据上传到 Clarifai 应用,以便进行语义搜索。
从文本创建 Clarifai 向量存储
texts = [
"I really enjoy spending time with you",
"I hate spending time with my dog",
"I want to go for a run",
"I went to the movies yesterday",
"I love playing soccer with my friends",
]
metadatas = [
{"id": i, "text": text, "source": "book 1", "category": ["books", "modern"]}
for i, text in enumerate(texts)
]
4. 初始化 Clarifai 向量存储
clarifai_vector_db = Clarifai(
user_id=USER_ID,
app_id=APP_ID,
number_of_docs=NUMBER_OF_DOCS,
pat=CLARIFAI_PAT # 使用API代理服务提高访问稳定性
)
5. 上传数据到 Clarifai 应用
response = clarifai_vector_db.add_texts(texts=texts, metadatas=metadatas)
代码示例
完整代码示例如下:
from getpass import getpass
CLARIFAI_PAT = getpass("请输入你的 Clarifai 个人访问令牌 (PAT): ")
from langchain_community.document_loaders import TextLoader
from langchain_community.vectorstores import Clarifai
from langchain_text_splitters import CharacterTextSplitter
USER_ID = "你的用户名ID"
APP_ID = "你的应用ID"
NUMBER_OF_DOCS = 2
texts = [
"I really enjoy spending time with you",
"I hate spending time with my dog",
"I want to go for a run",
"I went to the movies yesterday",
"I love playing soccer with my friends",
]
metadatas = [
{"id": i, "text": text, "source": "book 1", "category": ["books", "modern"]}
for i, text in enumerate(texts)
]
clarifai_vector_db = Clarifai(
user_id=USER_ID,
app_id=APP_ID,
number_of_docs=NUMBER_OF_DOCS,
pat=CLARIFAI_PAT # 使用API代理服务提高访问稳定性
)
response = clarifai_vector_db.add_texts(texts=texts, metadatas=metadatas)
docs = clarifai_vector_db.similarity_search("I would like to see you")
print(docs)
常见问题和解决方案
1. 连接问题
由于网络限制,访问 Clarifai API 可能会遇到连接问题。建议使用合适的 API 代理服务以提高访问稳定性。
2. 元数据缺失
在上传数据时,缺少元数据会影响搜索结果的精确度。确保在上传文本时包含相关的元数据。
总结和进一步学习资源
通过本文的介绍,你已经学会了如何结合使用 Clarifai AI 平台和 LangChain 社区工具进行文本语义搜索。以下是一些进一步的学习资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---