-
Notifications
You must be signed in to change notification settings - Fork 117
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Showing
8 changed files
with
581 additions
and
82 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,88 +1,10 @@ | ||
# 向量检索(Baidu ElasticSearch Retriever) | ||
# 向量检索 | ||
|
||
## 简介 | ||
向量检索组件(Baidu ElasticSearch Retriever)基于一款Baidu ElasticSearch的内容检索组件,支持根据文本的向量的相似度进行内容检索。 | ||
Appbuilder提供多种向量数据库作为向量检索的底座,当前主要支持百度向量数据库、百度 ElasticSearch。 | ||
|
||
### 功能介绍 | ||
向量检索组件(Baidu ElasticSearch Retriever)用于在将文本内容输入到Baidu ElasticSearch,根据文本的向量相似度进行高效的内容检索。 | ||
向量检索组件-VDB(Baidu VDB Retriever)以百度向量数据库作为向量存储和检索的底座。百度向量数据库是一个专注于多维向量数据的存储、检索和分析的企业级分布式数据库服务。基于百度自主研发的向量数据库内核,VectorDB在保证高性能和高可用性的同时,也特别注重易用性和可扩展性。它支持多种索引类型和相似度计算方法,能够满足各类复杂和多样化的数据应用需求。特别值得一提的是,VectorDB能够管理高达数十亿的向量规模,同时保持毫秒级的查询响应时间,非常适合进行大规模的向量检索和分析任务。 | ||
|
||
### 特色优势 | ||
- 高效准确:基于Baidu ElasticSearch的强大能力,提供高效且准确的内容检索功能。 | ||
向量检索组件-BES(Baidu ElasticSearch Retriever)以百度 ElasticSearch作为向量存储和检索的底座。百度 ElasticSearch是一款专为企业级需求设计的分布式搜索和分析服务,它在全面兼容开源ElasticSearch的基础上,提供了更多增强功能。这款服务的核心优势在于其高性能和高可靠性,它为处理结构化和非结构化数据提供了一个低成本且高效的平台。对于关注数据安全的客户来说,百度ElasticSearch提供了先进的权限管理机制,使得您可以根据业务需求自由地配置集群权限。 | ||
|
||
### 应用场景 | ||
各种内容检索场景 | ||
|
||
## 准备工作 | ||
在使用Baidu ElasticSearch Retriever进行内容检索之前,需要到Baidu ElasticSearch官网创建相应的集群,详情见[教程](https://cloud.baidu.com/doc/BES/s/gke3ocf89)。 | ||
|
||
注:创建集群时请选择7.10.2版本的ES,否则可能无法使用本组件。 | ||
|
||
## 基本用法 | ||
|
||
以下是有关如何开始使用BESRetriever的代码示例: | ||
|
||
```python | ||
import os | ||
import appbuilder | ||
|
||
# 请前往千帆AppBuilder官网创建密钥,流程详见:https://cloud.baidu.com/doc/AppBuilder/s/Olq6grrt6#1%E3%80%81%E5%88%9B%E5%BB%BA%E5%AF%86%E9%92%A5 | ||
os.environ["APPBUILDER_TOKEN"] = '...' | ||
|
||
embedding = appbuilder.Embedding() | ||
segments = appbuilder.Message(["文心一言大模型", "百度在线科技有限公司"]) | ||
# 初始化构建索引 | ||
vector_index = appbuilder.BESVectorStoreIndex.from_segments(segments=segments, cluster_id=es_cluster_id, user_name=es_username, | ||
password=es_password, embedding=embedding) | ||
# 获取当前索引中的全部内容 | ||
all_content = vector_index.get_all_segments() | ||
print(all_content) | ||
# 转化为retriever | ||
retriever = vector_index.as_retriever() | ||
# 按照query进行检索 | ||
query = appbuilder.Message("文心一言") | ||
res = retriever(query=query, top_k=1) | ||
print(res) | ||
# 删除当前索引中的全部内容 | ||
vector_index.delete_all_segments() | ||
``` | ||
|
||
## 参数说明 | ||
|
||
### 鉴权说明 | ||
使用组件之前,请首先申请并设置鉴权参数,可参考[组件使用流程](https://cloud.baidu.com/doc/AppBuilder/s/Olq6grrt6#1%E3%80%81%E5%88%9B%E5%BB%BA%E5%AF%86%E9%92%A5)。 | ||
```python | ||
# 设置环境中的TOKEN,以下示例略 | ||
os.environ["APPBUILDER_TOKEN"] = "bce-YOURTOKEN" | ||
``` | ||
|
||
### 初始化参数说明: | ||
|
||
- segments (Message[List[str]],必填):需要入库的文本段落 | ||
- cluster_id (str,必填):ElacticSearch集群的id,创建集群时获取 | ||
- user_name (str,必填):连接ES集群所需的用户名,创建集群时获取 | ||
- password (str,必填):连接ES集群所需的密码,创建集群时获取 | ||
- embedding (obj,非必填):用于将文本转为向量的模型,默认为Embedding | ||
|
||
### 调用参数: | ||
| 参数名称 | 参数类型 |是否必须 | 描述 | 示例值 | | ||
|---------|--------|--------|------------------|---------------| | ||
| message | String |是 | 需要检索的内容 | "中国2023人均GDP" | | ||
| top_k | int |否 | 返回相似度最高的top_k个内容 | 1 | | ||
|
||
### 响应参数 | ||
| 参数名称 | 参数类型 | 描述 | 示例值 | | ||
|------|--------|-----|--------------------| | ||
| text | string | 检索结果 | "中国2023年人均GDP8.94万元" | | ||
| score | float | 相似度 | 0.95 | | ||
| meta | dict | 元信息 | "" | | ||
### 响应示例 | ||
```json | ||
{"text": "中国2023年人均GDP8.94万元", "score": 0.95, "meta": ""} | ||
``` | ||
|
||
## 高级用法: | ||
|
||
本组件根据向量的相似度进行检索,支持使用不同的embedding方法和索引方式来优化检索的效果。 | ||
|
||
## 更新记录和贡献 | ||
* 向量检索能力 (2023-12) |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,85 @@ | ||
# 向量检索(Baidu VDB Retriever) | ||
|
||
## 简介 | ||
向量检索组件(Baidu VDB Retriever)基于一款百度向量数据库的内容检索组件,支持根据文本的向量的相似度进行内容检索。 | ||
|
||
### 功能介绍 | ||
向量检索组件(Baidu VDB Retriever)用于在将文本内容输入到百度向量数据库,根据文本的向量相似度进行高效的内容检索。 | ||
|
||
### 特色优势 | ||
高效准确:基于百度向量数据库的强大能力,提供高效且准确的内容检索功能。 | ||
|
||
### 应用场景 | ||
各种内容检索场景 | ||
|
||
## 准备工作 | ||
在使用Baidu VDB Retriever进行内容检索之前,需要到百度向量数据库官网创建相应的实例,[教程](https://cloud.baidu.com/doc/VDB/s/hlrsoazuf)。 | ||
|
||
## 基本用法 | ||
|
||
以下是有关如何开始使用BaiduVDBRetriever的代码示例: | ||
|
||
```python | ||
import os | ||
import appbuilder | ||
|
||
# 请前往千帆AppBuilder官网创建密钥,流程详见:https://cloud.baidu.com/doc/AppBuilder/s/Olq6grrt6#1%E3%80%81%E5%88%9B%E5%BB%BA%E5%AF%86%E9%92%A5 | ||
os.environ["APPBUILDER_TOKEN"] = '...' | ||
|
||
embedding = appbuilder.Embedding() | ||
segments = appbuilder.Message(["文心一言大模型", "百度在线科技有限公司"]) | ||
# 初始化构建索引 | ||
vector_index = appbuilder.BaiduVDBVectorStoreIndex.from_params( | ||
instance_id=your_instance_id, | ||
api_key=your_api_key, | ||
drop_exists=True, | ||
) | ||
vector_index.add_segments(segments) | ||
|
||
query = appbuilder.Message("文心一言") | ||
retriever = vector_index.as_retriever() | ||
res = retriever(query) | ||
print(res) | ||
``` | ||
|
||
## 参数说明 | ||
|
||
### 鉴权说明 | ||
使用组件之前,请首先申请并设置鉴权参数,可参考[组件使用流程](https://cloud.baidu.com/doc/AppBuilder/s/Olq6grrt6#1%E3%80%81%E5%88%9B%E5%BB%BA%E5%AF%86%E9%92%A5)。 | ||
```python | ||
# 设置环境中的TOKEN,以下示例略 | ||
os.environ["APPBUILDER_TOKEN"] = "bce-YOURTOKEN" | ||
``` | ||
|
||
### 初始化参数说明: | ||
|
||
- segments (Message[List[str]],必填):需要入库的文本段落 | ||
- instance_id(str,必填):百度向量数据库的实例id,创建实例时获取 | ||
- api_key (str,必填):连接向量数据库所需的密码,创建实例时获取 | ||
- account (str,非必填):连接向量数据库所需的用户名,默认root | ||
- embedding (obj,非必填):用于将文本转为向量的模型,默认为Embedding | ||
- drop_exists (bool, 非必填) :是否清空数据库历史记录,默认为False | ||
|
||
### 调用参数: | ||
| 参数名称 | 参数类型 |是否必须 | 描述 | 示例值 | | ||
|---------|--------|--------|------------------|---------------| | ||
| message | String |是 | 需要检索的内容 | "中国2023人均GDP" | | ||
| top_k | int |否 | 返回相似度最高的top_k个内容 | 1 | | ||
|
||
### 响应参数 | ||
| 参数名称 | 参数类型 | 描述 | 示例值 | | ||
|------|--------|-----|--------------------| | ||
| text | string | 检索结果 | "中国2023年人均GDP8.94万元" | | ||
| score | float | 相似度 | 0.95 | | ||
| meta | dict | 元信息 | "" | | ||
### 响应示例 | ||
```json | ||
{"text": "中国2023年人均GDP8.94万元", "score": 0.95, "meta": ""} | ||
``` | ||
|
||
## 高级用法: | ||
|
||
本组件根据向量的相似度进行检索,支持使用不同的embedding方法和索引方式来优化检索的效果。 | ||
|
||
## 更新记录和贡献 | ||
* 向量检索能力 (2024-03) |
Empty file.
Oops, something went wrong.