引言
在当今快速发展的AI领域,Vectara提供了一种值得信赖的生成式AI平台,帮助组织迅速创建类似ChatGPT的体验。本文将深入探讨如何利用Vectara的自查询功能,通过向量数据库和检索增强生成技术,构建智能AI助手。
主要内容
Vectara概述
Vectara提供无服务器的RAG即服务(Retrieval-Augmented-Generation),包括:
- 文本提取工具:支持PDF、PPT、DOCX等文件格式。
- 基于机器学习的分块技术:提供先进的性能。
- Boomerang嵌入模型。
- 内部向量数据库:存储文本块和嵌入向量。
- 查询服务:自动将查询编码为嵌入,并检索最相关的文本段落。
获取开始
- 注册Vectara账户:获取客户ID。
- 创建语料库:存储文本数据。
- 生成API密钥:用于访问语料库,需保密。
环境配置
使用以下代码将客户ID、语料库ID和API密钥设为环境变量:
import os
import getpass
os.environ["VECTARA_CUSTOMER_ID"] = getpass.getpass("Vectara Customer ID:")
os.environ["VECTARA_CORPUS_ID"] = getpass.getpass("Vectara Corpus ID:")
os.environ["VECTARA_API_KEY"] = getpass.getpass("Vectara API Key:")
连接到Vectara
以下代码演示如何从LangChain连接到Vectara:
from langchain.chains.query_constructor.base import AttributeInfo
from langchain.retrievers.self_query.base import SelfQueryRetriever
from langchain.schema import Document
from langchain_community.vectorstores import Vectara
from langchain_openai.chat_models import ChatOpenAI
# 设置API代理服务提高访问稳定性
vectara = Vectara()
# 上传文档
docs = [
Document(page_content="A bunch of scientists bring back dinosaurs and mayhem breaks loose", metadata={"year": 1993, "rating": 7.7, "genre": "science fiction"}),
# 其他文档...
]
for doc in docs:
vectara.add_texts([doc.page_content], doc_metadata=doc.metadata)
代码示例
以下代码展示如何创建自查询检索器并执行查询:
metadata_field_info = [
AttributeInfo(name="genre", description="The genre of the movie", type="string or list[string]"),
AttributeInfo(name="year", description="The year the movie was released", type="integer"),
AttributeInfo(name="director", description="The name of the movie director", type="string"),
AttributeInfo(name="rating", description="A 1-10 rating for the movie", type="float"),
]
document_content_description = "Brief summary of a movie"
llm = ChatOpenAI(temperature=0, model="gpt-4o", max_tokens=4069)
retriever = SelfQueryRetriever.from_llm(llm, vectara, document_content_description, metadata_field_info, verbose=True)
# 执行查询
retriever.invoke("What are movies about scientists")
常见问题和解决方案
网络限制
由于某些地区的网络限制,开发者可能需要考虑使用API代理服务以提高访问稳定性。
数据安全性
确保API密钥的安全性,不要将其公开发布或分享。
总结和进一步学习资源
Vectara提供了强大的工具来支持生成式AI应用。通过本文,您可以初步了解如何使用其API进行高级查询和数据检索。欲了解更多信息,请访问Vectara API文档。
参考资料
如果这篇文章对你有帮助,欢迎点赞并关注我的博客。您的支持是我持续创作的动力!
---END---