PGSearchTool

PGSearchTool은 현재 개발 중이다. 이 문서는 예정된 기능과 인터페이스를 설명한다. 개발이 진행됨에 따라 일부 기능이 제공되지 않거나 변경될 수 있다.

개요

PGSearchTool은 PostgreSQL 데이터베이스 테이블 내에서 의미론적 검색을 용이하게 하는 강력한 도구로 설계되었다. 이 도구는 Retrieve and Generate(RAG) 기술을 활용해 PostgreSQL 데이터베이스에 특화된 효율적인 데이터 쿼리 방식을 제공한다. PGSearchTool은 의미론적 검색 쿼리를 통해 관련 데이터를 쉽게 찾을 수 있도록 프로세스를 단순화하는 것을 목표로 한다. 특히 PostgreSQL 환경에서 대규모 데이터셋에 대한 고급 쿼리를 수행해야 하는 사용자에게 유용한 리소스가 될 것이다.

설치

crewai_tools 패키지는 PGSearchTool이 출시되면 포함될 예정이다. 다음 명령어를 사용해 패키지를 설치할 수 있다:

pip install 'crewai[tools]'

현재 버전의 crewai_tools 패키지에는 PGSearchTool이 포함되어 있지 않다. 해당 도구가 출시되면 설치 명령어가 업데이트될 예정이다.

예제 사용법

아래는 PostgreSQL 데이터베이스 내 테이블에서 의미론적 검색을 수행하기 위해 PGSearchTool을 사용하는 예제를 제안한다:

from crewai_tools import PGSearchTool

# 데이터베이스 URI와 대상 테이블 이름으로 도구 초기화
tool = PGSearchTool(
    db_uri='postgresql://user:password@localhost:5432/mydatabase', 
    table_name='employees'
)

인자

PGSearchTool은 동작을 위해 다음과 같은 인자를 필요로 한다:

인자타입설명
db_uristring필수. 쿼리를 수행할 PostgreSQL 데이터베이스의 URI를 나타내는 문자열이다. 이 인자는 필수이며, 데이터베이스의 위치와 필요한 인증 정보를 포함해야 한다.
table_namestring필수. 시맨틱 검색을 수행할 데이터베이스 내 테이블의 이름을 지정하는 문자열이다. 이 인자 또한 필수이다.

커스텀 모델과 임베딩

이 도구는 기본적으로 OpenAI를 임베딩과 요약 작업에 사용한다. 사용자는 다음과 같은 설정 딕셔너리를 통해 모델을 커스터마이징할 수 있다:

tool = PGSearchTool(
    config=dict(
        llm=dict(
            provider="ollama", # 또는 google, openai, anthropic, llama2, ...
            config=dict(
                model="llama2",
                # temperature=0.5,
                # top_p=1,
                # stream=true,
            ),
        ),
        embedder=dict(
            provider="google", # 또는 openai, ollama, ...
            config=dict(
                model="models/embedding-001",
                task_type="retrieval_document",
                # title="Embeddings",
            ),
        ),
    )
)