快速入门
如何开始使用Pinecone向量数据库。
本指南介绍如何在几分钟内设置Pinecone向量数据库。
- 安装Pinecone客户端(可选)
此步骤是可选的。只有在您想使用Python客户端时才执行此步骤。
使用以下shell命令安装Pinecone:
Python
pip install pinecone-client
- 获取和验证您的Pinecone API密钥
要使用Pinecone,您必须拥有API密钥。 要查找您的API密钥,请打开Pinecone控制台并单击API密钥。 此视图还显示您的项目的环境。 请注意您的API密钥和环境。
要验证您的Pinecone API密钥是否有效,请使用以下命令:
下面分别是Python和Curl代码
- Python
- Curl
import pinecone
pinecone.init(api_key="YOUR_API_KEY", environment="YOUR_ENVIRONMENT")
如果您没有收到错误消息,则表示您的API密钥有效。
- Hello, Pinecone!
您可以通过以下三种方式完成剩余的步骤:
使用"Hello, Pinecone!" colab笔记本在浏览器中编写和执行Python代码。
将以下命令复制到您的本地Python安装中。
使用以下cURL API命令。
- 初始化Pinecone
下面分别是Python和Curl代码
import pinecone
pinecone.init(api_key="YOUR_API_KEY", environment="YOUR_ENVIRONMENT")
# Not applicable
- 创建索引。
以下命令创建一个名为“quickstart”的索引,使用欧几里得距离进行8维向量的近似最近邻搜索。
索引创建大约需要一分钟时间。
下面分别是Python和Curl代码
pinecone.create_index("quickstart", dimension=8, metric="euclidean")
curl -i -X POST \
-H 'Content-Type: application/json' \
-H 'Api-Key: YOUR_API_KEY_HERE' \
https://controller.YOUR_ENVIRONMENT.pinecone.io/databases \
-d '{
"name": "quickstart",
"dimension": 8,
"metric": "euclidean"
}'
⚠️警告
一般来说,Starter(免费)计划上的索引会被归档为集合,并在7天不活动后删除;对于由某些开源项目(例如AutoGPT)创建的索引,它们会在1天不活动后被归档和删除。要避免这种情况,您可以向Pinecone发送任何API请求,计数器就会重置。
- 检索索引列表。
索引创建后,其名称将出现在索引列表中。
使用以下命令返回索引列表。
下面分别是Python和Curl代码
pinecone.list_indexes()
# Returns:
# ['quickstart']
curl -i https://controller.YOUR_ENVIRONMENT.pinecone.io/databases \
-H "Api-Key: YOUR_API_KEY"
# Output:
# ["quickstart"]
- 连接到索引(仅客户端)。
在使用客户端查询索引之前,您必须连接到索引。
使用以下命令连接到您的索引。
下面分别是Python和Curl代码
index = pinecone.Index("quickstart")
# Not applicable
- 插入数据。
要将向量注入到您的索引中,请使用upsert
操作。
upsert操作将新向量插入索引或更新向量(如果具有相同ID的向量已经存在)。
以下命令将5个8维向量upsert到您的索引中。
下面分别是Python和Curl代码
# Upsert sample data (5 8-dimensional vectors)
index.upsert([
("A", [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]),
("B", [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]),
("C", [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]),
("D", [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]),
("E", [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5])
])
curl -i -X POST https://quickstart-YOUR_PROJECT.svc.YOUR_ENVIRONMENT.pinecone.io/vectors/upsert \
-H 'Api-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"vectors": [
{
"id": "A",
"values": [0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1, 0.1]
},
{
"id": "B",
"values": [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]
},
{
"id": "C",
"values": [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]
},
{
"id": "D",
"values": [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]
},
{
"id": "E",
"values": [0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5]
}
]
}'
上面的cURL命令使用了您的Pinecone索引的端点。
ℹ️注意
在upsert大量数据时,分批次upsert数据,每次最多100个向量。
- 获取索引的统计信息。
以下命令返回有关索引内容的统计信息。
下面分别是Python和Curl代码
index.describe_index_stats()
# Returns:
# {'dimension': 8, 'index_fullness': 0.0, 'namespaces': {'': {'vector_count': 5}}}
curl -i https://quickstart-YOUR_PROJECT.svc.YOUR_ENVIRONMENT.pinecone.io/describe_index_stats \
-H 'Api-Key: YOUR_API_KEY'
# Output:
# {
# "namespaces": {
# "": {
# "vectorCount": 5
# }
# },
# "dimension": 8
# }
- 查询索引并获取相似向量。
以下示例查询索引中与8维向量示例最相似的三个(3)向量,使用步骤2(“创建索引”)中指定的欧几里得距离度量。
下面分别是Python和Curl代码
index.query(
vector=[0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3],
top_k=3,
include_values=True
)
# Returns:
# {'matches': [{'id': 'C',
# 'score': 0.0,
# 'values': [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3]},
# {'id': 'D',
# 'score': 0.0799999237,
# 'values': [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]},
# {'id': 'B',
# 'score': 0.0800000429,
# 'values': [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]}],
# 'namespace': ''}
curl -i -X POST https://quickstart-YOUR_PROJECT.svc.YOUR_ENVIRONMENT.pinecone.io/query \
-H 'Api-Key: YOUR_API_KEY' \
-H 'Content-Type: application/json' \
-d '{
"vector": [0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3, 0.3],
"topK": 3,
"includeValues": true
}'
# Output:
# {
# "matches":[
# {
# "id": "C",
# "score": -1.76717265e-07,
# "values": [0.3,0.3,0.3,0.3,0.3,0.3,0.3,0.3]
# },
# {
# "id": "B",
# "score": 0.080000028,
# "values": [0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2, 0.2]
# },
# {
# "id": "D",
# "score": 0.0800001323,
# "values": [0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4]
# }
# ],
# "namespace": ""
# }
- 删除索引。
一旦您不再需要该索引,请使用delete_index
操作将其删除。
以下命令会删除索引。
下面分别是Python和Curl代码
pinecone.delete_index("quickstart")
curl -i -X DELETE https://controller.YOUR_ENVIRONMENT.pinecone.io/databases/quickstart \
-H 'Api-Key: YOUR_API_KEY'
⚠️警告
删除索引后,您将无法再使用它。
下一步操作
现在您已经成功使用API密钥创建索引,可以开始插入数据或查看更多示例。
更新时间 大约1个月前