超级棒

超级无敌 是一个用于构建灵活、组合式AI应用程序的框架,这些应用程序可以使用声明式编程模型直接应用于数据库。这些应用程序声明并维护数据库的期望状态,并直接使用数据库来存储AI组件的输出、关于组件的元数据以及与系统状态相关的数据。

Qdrant 在 Superduper 中作为向量搜索提供者可用。

安装

pip install superduper-framework

设置

  • 要使用Qdrant作为向量搜索层,请创建一个带有以下配置的settings.yaml文件。

settings.yaml

cluster:
  vector_search:
    type: qdrant

vector_search_kwargs:
  url: "http://localhost:6333"
  api_key: "<YOUR_API_KEY>
  # Supports all parameters of qdrant_client.QdrantClient
  • SUPERDUPER_CONFIG环境变量值设置为配置文件的路径。
export SUPERDUPER_CONFIG=path/to/settings.yaml

这就是全部内容。您现在可以使用由Qdrant支持的Superduper。

Example

这里有一个使用配置好的Qdrant索引运行向量搜索的示例。

import json
import requests 
from superduper import superduper, Document
from superduper.ext.sentence_transformers import SentenceTransformer

r = requests.get('https://superduperdb-public-demo.s3.amazonaws.com/text.json')

with open('text.json', 'wb') as f:
    f.write(r.content)

with open('text.json', 'r') as f:
    data = json.load(f)        

db = superduper('mongomock://test')

_ = db['documents'].insert_many([Document({'txt': txt}) for txt in data]).execute()

model = SentenceTransformer(
    identifier="test",
    predict_kwargs={"show_progress_bar": True},
    model="all-MiniLM-L6-v2",
    device="cpu",
    postprocess=lambda x: x.tolist(),
)

vector_index = model.to_vector_index(select=db['documents'].find(), key='txt')

db.apply(vector_index)

query = db['documents'].like({'txt': 'Tell me about vector-search'}, vector_index=vector_index.identifier, n=3).find()
cursor = query.execute()

for r in cursor:
    print('=' * 100)
    print(r.unpack()['txt'])
    print('=' * 100)

📚 进一步阅读

这个页面有用吗?

感谢您的反馈!🙏

我们很抱歉听到这个消息。😔 你可以在GitHub上编辑这个页面,或者创建一个GitHub问题。