Teradata Vector Store 专为在企业数据平台中高效存储、索引和搜索高维向量嵌入而设计。本指南展示如何快速启动并运行 TeradataVectorStore,用于语义搜索和 RAG 应用。无论你是 Teradata 新手还是希望为现有数据工作流添加 AI 能力,本指南都将带你了解所需的一切。 TeradataVectorStore 的特色
- 基于企业级 Teradata Vantage 平台构建。
- 与现有数据仓库无缝集成。
- 支持多种向量搜索算法,适用于不同场景。
- 可从原型扩展到生产工作负载。
设置
在开始之前,你需要安装必要的包。TeradataVectorStore 是langchain-teradata 包的一部分,该包还包含其他 Teradata 与 LangChain 的集成。
Teradata 新手? 请参阅:
安装
pip
凭据
连接到 Teradata:create_context() 函数建立与 Teradata Vantage 系统的连接。teradataml(以及 TeradataVectorStore)通过此方式确定连接和认证的数据库。
所需信息:
- hostname:Teradata 系统地址
- username/password:数据库凭据
- base_url:Teradata 系统的 API 端点
- pat_token:用于 API 认证的个人访问令牌
- pem_file:用于安全连接的 SSL 证书文件
实例化
初始化嵌入 TeradataVectorStore 支持三种嵌入对象类型:- 字符串标识符(例如,“amazon.titan-embed-text-v1”)
- TeradataAI 对象
- LangChain 嵌入对象 - 兼容 LangChain 的嵌入模型对象
from_documents() 方法是最简单的入门方式——只需传入文档,TeradataVectorStore 会处理其余工作。
底层工作原理:
- 文档被转换为 Teradataml Dataframe 并传递给向量存储
- 为每个 Document 对象生成并存储嵌入
- 自动创建索引以实现快速相似度搜索和对话操作
- 操作追踪:查看向量存储创建所处的具体阶段。
- 故障排除:快速识别设置过程中是否出现问题。
- 进度监控:对于大型数据集,追踪嵌入生成进度。
- 验证:确认向量存储已准备好接受查询。
get_details() 方法提供了设置的全面概览——可以将其视为向量存储的”仪表板”。
你将看到:
- 对象清单:已添加的表或文档数量。
- 搜索参数:当前算法设置(HNSW、K-means 等)
- 配置详情:嵌入维度、距离度量和索引选项。
- 性能设置:Top-k 值、相似度阈值和其他查询参数。
管理向量存储
向向量存储添加项目
TeradataVectorStore 最大的优点之一是扩展知识库非常简便。随着业务增长和文档增多,你可以持续添加内容,无需从头重建。 实际应用场景:- 创建新产品文档时即时添加。
- 纳入最新的研究论文或行业报告。
- 整合客户反馈和支持文档。
- 更新最新的政策或流程变更。
查询向量存储
向量存储创建完成并添加相关文档后,你通常会在运行链或 Agent 时对其进行查询。直接查询
现在让我们在向量存储中搜索信息。与传统关键词搜索不同,向量搜索能理解问题背后的含义。询问”AI 应用”可能会返回关于”机器学习模型”的结果,因为它理解这些概念之间的关联。 相似度搜索的工作原理:- 你的问题被转换为向量嵌入(与文档的处理方式相同)。
- TeradataVectorStore 计算问题与存储文档之间的相似度分数。
- 返回最相关的结果,按相似度排序。
转换为检索器进行查询
你也可以将向量存储转换为检索器,以便在链中更方便地使用。用于检索增强生成
ask() 将向量搜索的能力与语言模型生成相结合。不再只是返回原始文档块,而是提供连贯、有上下文的答案。
两步处理流程:
- 检索:从向量存储中找到最相关的文档。
- 生成:将这些文档作为上下文生成自然语言回答。
- 相关检索:向量存储找到正确的信息。
- 上下文生成:语言模型有效利用这些信息。
- 来源透明:用户可以看到答案的来源。
- 你可以将向量存储用作检索器获取最相关的文档,然后将这些文档传递给 LangChain 工作流中的 RAG 链。
- 这使你在利用 Teradata 强大向量搜索能力的同时,能够灵活构建自定义管道。
- 检索:向量存储为问题找到最相关的文档。
- 上下文准备:这些文档成为语言模型的上下文。
- 生成:语言模型基于实际数据生成答案。
- 输出解析:为应用程序提供整洁、格式化的响应。
- 客户支持:使用产品文档回答问题。
- 研究辅助:查询组织的知识库。
- 合规:确保响应基于经批准的公司信息。
处理不同数据类型
在处理不同类型的数据源时,TeradataVectorStore 的灵活性得到了充分体现。根据起始数据,你可以选择最合适的方法。 选择起点:- 有 PDF 文档? 使用带文件路径的
from_documents() - 处理数据库表? 使用带 DataFrame 的
from_datasets() - 已有嵌入? 使用
from_embeddings()直接导入
从 PDF 文件
从数据库表
从预计算嵌入
处理表(及嵌入表)时,
data_columns 参数是必填的。它告诉 TeradataVectorStore 哪些列包含你要转换为嵌入的文本内容。可以将其理解为指引服务找到正确信息的指针。
例如,如果你的表包含 id、title、description 和 category 等列,可以指定 data_columns=[“description”] 只嵌入描述文本,或指定 data_columns=[“title”, “description”] 合并两个字段。
以下是使用 teradatagenai 加载示例表并创建基于内容的向量存储的简单示例。对于 data_columns,我们将传入”rev_text”列,用于生成嵌入。
后续步骤
恭喜!你刚刚使用 TeradataVectorStore 构建了第一个 AI 驱动的搜索和 RAG 系统。现在可以将其扩展以处理真实的企业工作负载了。 准备深入探索?- 高级搜索算法:尝试 HNSW 或 K-means 聚类用于大规模部署
- 自定义嵌入模型:尝试针对你所在行业的领域专用嵌入
- 实时更新:建立管道在新数据到达时自动更新向量存储
- 安全性:利用 Teradata 的企业级安全功能
- 监控:使用 Teradata 内置的性能监控
- LangChain RAG 教程 - 深入了解 RAG 模式
- TeradataVectorStore 工作流 - 完整示例和用例
- VantageCloud Lake - 云原生分析平台
API 参考
有关 TeradataVectorStore 所有功能和配置的详细文档,请参阅 API 参考。 langchain-teradata 用户指南通过 MCP 将这些文档连接到 Claude、VSCode 等工具,获取实时解答。

