项目介绍:semantic-search-nextjs-pinecone-langchain-chatgpt
这个项目是一个用于全栈开发的基础入门项目,它结合了多种工具和API,包括Next.js、LangchainJS、Pinecone向量数据库和GPT3。项目的初衷是帮助开发者更好地整合这些技术,实现一个完整的应用程序。
我们要构建什么
这个项目的目标是开发一个应用程序,该应用程序可以将文本(如文本文件)转换为向量,存储在Pinecone中,并实现语义搜索功能。对于不熟悉“语义搜索”的人来说,以下是一个简单的概述:
语义搜索是一种理解用户意图和搜索查询的上下文意义的搜索方法,而不仅仅是简单的关键词匹配。它利用自然语言处理和机器学习来解释查询背后的语义,从而提供更准确和相关的搜索结果。语义搜索可以考虑用户意图、查询上下文、同义词识别和自然语言理解,其应用范围从网页搜索引擎到个性化推荐系统。
如何运行应用程序
先决条件
要运行此应用程序,您需要以下几个API密钥:
- OpenAI API密钥
- Pinecone API密钥
启动和运行
要在本地运行应用程序,请按照以下步骤操作:
-
克隆项目仓库:
git clone git@github.com:dabit3/semantic-search-nextjs-pinecone-langchain-chatgpt.git
-
进入目录并使用NPM或Yarn安装依赖项。
-
复制
.example.env.local
文件并命名为.env.local
,然后更新您的API密钥和环境设置。确保您的环境是Pinecone提供的实际环境,例如
us-west4-gcp-free
。 -
(可选)将您自己的文本或markdown文件添加到
/documents
文件夹中。 -
运行应用程序:
npm run dev
注意事项
创建嵌入和索引时,可能需要2-4分钟来初始化索引。utils
中有一个180秒的设置时间函数等待索引创建完成。如果初始化时间过长,第一次创建嵌入可能会失败。此时,您可以访问Pinecone控制台,等待索引状态完成后,重新运行函数。
执行查询
预配置的应用程序数据是关于Lens协议开发文档的,因此除了替换自己的数据外,它只会理解关于这些文档的查询。以下是一些您可以使用默认数据询问的问题:
- Lens和传统社交平台之间有什么区别?
- Lens SDK和Lens API之间有什么不同?
- 如何批量查询Lens数据?
检索您的数据
我们建议使用GPT Repository Loader,它可以将任何GitHub仓库转为文本格式,保持文件和内容的结构一致,便于使用我们提供的代码将其切割并保存到Pinecone中。