Camel

Camel 是一个 Python 框架,用于构建和使用基于 LLM 的智能体来解决实际任务。

Qdrant 可作为 Camel 中的存储机制,用于摄取和检索语义相似的数据。

Qdrant 用法

  • 使用 vector-databases 额外功能安装 Camel。
pip install "camel[vector-databases]"
  • 配置 QdrantStorage 类。
from camel.storages import QdrantStorage, VectorDBQuery, VectorRecord
from camel.types import VectorDistance

qdrant_storage = QdrantStorage(
    url_and_api_key=(
        "https://xyz-example.eu-central.aws.cloud.qdrant.io:6333",
        "<provide-your-own-key>",
    ),
    collection_name="{collection_name}",
    distance=VectorDistance.COSINE,
    vector_dim=384,
)

QdrantStorage 类实现了对 Qdrant 实例进行读写的各种方法。现在可以将此类的实例传递给检索器,以便与您的 Qdrant 集合进行交互。

qdrant_storage.add([VectorRecord(
            vector=[-0.1, 0.1, ...],
            payload={'key1': 'value1'},
        ),
        VectorRecord(
            vector=[-0.1, 0.1, ...],
            payload={'key2': 'value2'},
        ),])

query_results = qdrant_storage.query(VectorDBQuery(query_vector=[0.1, 0.2, ...], top_k=10))
for result in query_results:
    print(result.record.payload, result.similarity)

qdrant_storage.clear()
  • 在 Camel 的矢量检索器中使用 QdrantStorage
from camel.embeddings import OpenAIEmbedding
from camel.retrievers import VectorRetriever

# Initialize the VectorRetriever with an embedding model
vr = VectorRetriever(embedding_model=OpenAIEmbedding())

content_input_path = "<URL-TO-SOME-RESOURCE>"

vr.process(content_input_path, qdrant_storage)

# Execute the query and retrieve results
results = vr.query("<SOME_USER_QUERY>", vector_storage)
  • Camel 还提供了一个自动检索器实现,该实现可处理数据嵌入和存储以及执行查询。
from camel.retrievers import AutoRetriever
from camel.types import StorageType

ar = AutoRetriever(
    url_and_api_key=(
        "https://xyz-example.eu-central.aws.cloud.qdrant.io:6333",
        "<provide-your-own-key>",
    ),
    storage_type=StorageType.QDRANT,
)

retrieved_info = ar.run_vector_retriever(
    contents=["<URL-TO-SOME-RESOURCE>"],
    query=""<SOME_USER_QUERY>"",
    return_detailed_info=True, 
)

print(retrieved_info)

有关检索机制的更多信息,您可以参考 Camel 文档

端到端示例

此页面有用吗?

感谢您的反馈!🙏

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