ChatGPT + 向量数据库 + Prompt-as-Code - CVP技术栈解析 - Zilliz
技术堆栈——ChatGPT + 向量数据库 + Prompt-as-Code,简称CVP堆栈。这一堆栈旨在克服ChatGPT在知识覆盖范围上的局限性。
CVP技术堆栈的核心原理
ChatGPT在回答自然语言查询方面表现出色。当将用户的查询与检索到的文本内容结合后,通过提示生成的方式,ChatGPT能够生成更相关且准确的响应。这种方法有效地减少了ChatGPT生成“幻觉答案”的可能性。
为了验证这一技术堆栈的实际效果,我们开发了OSS Chat作为CVP堆栈的工作演示。OSS Chat利用开源项目的GitHub存储库及其相关文档页面作为事实来源。具体实现步骤如下:
- 数据嵌入:将开源项目的文档数据转换为嵌入向量。
- 数据存储:将嵌入向量存储在Zilliz向量数据库中,同时将相关内容存储在单独的数据存储中。
- 相似性搜索:当用户提出问题时,触发Zilliz中的相似性搜索,找到与问题相关的匹配内容。
- 生成响应:将检索到的数据输入ChatGPT,生成精确且准确的回答。
ChatGPT与OSS Chat的对比示例
示例1:关于Hugging Face支持的功能
当我们向ChatGPT提问时,它承认了自身的局限性,并返回了一个准确但无用的答案(即它没有相关数据)。而使用OSS Chat,由于数据来源于Hugging Face的文档网站,我们得到了以下准确的回答:
是的,Hugging Face支持OpenAI Whisper。FlaxWhisperModel类在transformers库中可用,该库是OpenAI Whisper模型的包装器。您可以使用此类加载预训练的OpenAI Whisper模型,并将其用于各种自然语言处理任务,如文本分类、问答和文本生成。
示例2:关于PyTorch的API问题
我们向ChatGPT提问了一个关于PyTorch API的问题,结果得到了一个冗长的回答,其中提到PyTorch没有“torch.compile”API。然而,OSS Chat提供了以下准确的回答:
‘torch.compile’ API的目的是通过提前编译PyTorch代码来加速代码执行。它可以处理任意Python代码,对现有代码的更改最小,并且能够处理依赖数据的控制流。它还支持非PyTorch函数调用,而TorchScript可能会将这些调用视为常量,从而导致不正确的结果。
Milvus中的TTL设置方法
在最后一个示例中,我们探讨了如何在Milvus中设置TTL(Time-to-Live)。ChatGPT虽然提供了一个看似合理的答案,甚至包含代码片段,但实际上并未回答问题的核心内容。而OSS Chat则提供了更为准确的说明:
from milvus import Milvus, DataType
import datetime
milvus = Milvus()
collection_param = {
"collection_name": "my_collection",
"dimension": 128,
"index_file_size": 1024,
"metric_type": DataType.FLOAT_VECTOR,
}
milvus.create_collection(collection_param)now = datetime.datetime.now()
delta = datetime.timedelta(days=7)
expiry_time = now + deltamilvus.set_collection_ttl('my_collection', expiry_time.timestamp())partition_param = {
"collection_name": "my_collection",
"partition_name": "my_partition",
}
milvus.create_partition(partition_param)
milvus.set_partition_ttl('my_collection', 'my_partition', expiry_time.timestamp())
在这个示例中,我们创建了一个集合和一个分区,并分别使用set_collection_TTL和set_partition_TTL方法为它们设置了7天的TTL。TTL以Unix时间戳的形式表示,即自1970年1月1日以来的秒数。需要注意的是,启用TTL功能需要在Milvus配置文件中设置TTL_CHECKINTERVAL参数,默认值为60秒。
总结
CVP技术堆栈通过结合ChatGPT、向量数据库和Prompt-as-Code的优势,显著提升了AI系统的响应准确性和实用性。通过OSS Chat的实际应用,我们可以看到这一堆栈在处理复杂查询时的潜力。未来,随着技术的进一步发展,CVP堆栈有望在更多领域中发挥重要作用。
原文链接: https://zilliz.com/blog/ChatGPT-VectorDB-Prompt-as-code
最新文章
- 如何获取企查查开放平台 API Key 密钥(分步指南)
- 19个API安全最佳实践,助您实现安全
- 如何免费调用Kimi API实现项目集成
- 探索 Zomato API 的潜力
- 使用 ChatGPT 和 json-server 快速实现 mock API
- 使用NestJS和Prisma构建REST API:处理关系型数据
- 实时追踪风暴巨兽:台风信息API如何助你掌控自然之力
- 监控使用 Apollo 和 Express 构建的 GraphQL API
- 什么是SDK?避免技术沟通陷阱
- 如何获取天地图开放平台 API Key 密钥(分步指南)
- 什么是API测试?类型、工具及执行方法
- 如何评估我的 API 安全性?