2个版本

0.1.5 2024年1月24日
0.1.4 2024年1月24日

#405认证

Apache-2.0 OR MIT

50KB
904

此crate允许您连接并与Pinecone(向量数据库)交互。在验证您的API密钥和您的环境密钥后,此crate简化了与Pinecone索引的连接。一旦连接得到验证,此API允许您在Pinecone中upsert、查询和更新数据,以及更多未提及的命令。有关不同API方法的更多详细信息,请参阅此处

此crate目前仅支持http / rest Pinecone API,不支持gRPC。gRPC将在未来作为可选项实现。http目前是默认的

要连接,请使用ClientClient::new方法初始化。这是一个异步操作,它还将验证您的凭据,如果提供无效凭据,则会出错。然后您可以使用Client上的方法在您的客户端/账户上运行操作,或通过Client::index方法创建一个新的Index。此索引最初不会得到验证,可以通过调用Index::describe方法进行验证,该方法将尝试获取有关索引的信息,并在成功通过后验证凭据。

以下是一个基本的客户端和索引示例。

async fn index_upsert() {

    // We create an instance of client first and firstmost. Panics if it couldn't authenticate.
    let client = Client::new(env!("PINECONE_API_KEY"), env!("PINECONE_ENV")).await.unwrap();
    // creates an index, will not authenticate.
    let mut index = client.index(env!("PINECONE_INDEX_NAME"));

    // We use describe as a form of authenticate, panicing if we couldn't authenticate.
    let _ = index.describe().await.unwrap();
    let vec = Vector{
        id: "B".to_string(),
        values: vec![0.5; 32],
        sparse_values: None,
        metadata: None
    };

    match index.upsert(String::from("odle"), vec![vec]).await {
        Ok(_) => assert!(true),
        Err(err) => panic!("unable to upsert: {:?}", err)
    }
}

依赖项

~4–16MB
~245K SLoC