Camel 연동
Camel 연동 (camel)
Camel은 실제 세계의 작업 해결을 위해 LLM 기반 에이전트를 만들고 사용하는 Python 프레임워크예요. Qdrant는 Camel에서 의미적으로 유사한 데이터를 수집(ingest)하고 검색하기 위한 저장 메커니즘(storage mechanism) 으로 사용할 수 있습니다.
Qdrant와 함께 사용하기
vector-databasesextra와 함께 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 컬렉션과 상호작용하기 위해 retriever(검색기) 에 전달될 수 있어요.
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의 Vector Retriever에서
QdrantStorage를 사용해요.
from camel.embeddings import OpenAIEmbedding
from camel.retrievers import VectorRetriever
# 임베딩 모델로 VectorRetriever 초기화
vr = VectorRetriever(embedding_model=OpenAIEmbedding())
content_input_path = "<URL-TO-SOME-RESOURCE>"
vr.process(content_input_path, qdrant_storage)
# 쿼리를 실행하고 결과를 가져오기
results = vr.query("<SOME_USER_QUERY>", vector_storage)
- Camel은 또한 임베딩, 데이터 저장, 쿼리 실행을 모두 처리하는 Auto Retriever 구현을 제공해요.
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)
retrieval 메커니즘에 대한 더 자세한 내용은 Camel 문서에서 확인할 수 있어요.