Camel#

Camel - фреймворк на языке Python для создания и использования агентов на основе больших языковых моделей (LLM) для решения реальных задач.

Vector DB доступен в качестве механизма хранения данных в Camel для загрузки и извлечения семантически схожих данных.

Использование совместно с Vector DB#

  • Установите Camel с дополнительным компонентом vector-databases.

    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 реализует методы чтения и записи данных в экземпляр Vector DB. Экземпляр данного класса теперь можно передать ретриверам для взаимодействия с коллекциями Vector DB.

    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()
    
  • Используйте QdrantStorage в векторном ретривере Camel.

    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 документации, чтобы получить дополнительную информацию о механизмах поиска информации.

Дополнительная документация#