PG RAG Search

PGSearchTool은 PostgreSQL 데이터베이스를 검색하고 가장 관련성 높은 결과를 반환하도록 설계된 도구예요.

출처: 문서

본문

개요 (Overview)

PGSearchTool은 현재 개발 중입니다. 이 문서는 의도된 기능과 인터페이스를 설명합니다. 개발이 진행됨에 따라 일부 기능이 제공되지 않거나 변경될 수 있다는 점을 유의하세요.

설명 (Description)

PGSearchTool은 PostgreSQL 데이터베이스 테이블 내에서 시맨틱 검색을 원활하게 수행하는 강력한 도구로 구상됩니다. 고급 Retrieve and Generate(RAG) 기술을 활용해, PostgreSQL 데이터베이스에 특화된 테이블 콘텐츠 질의 수단을 효율적으로 제공하는 것을 목표로 합니다. 이 도구의 목표는 시맨틱 검색 쿼리를 통해 관련 데이터를 찾는 과정을 단순화하여, PostgreSQL 환경의 광범위한 데이터셋에 대해 고급 쿼리를 수행해야 하는 사용자에게 유용한 자원을 제공하는 것입니다.

설치 (Installation)

출시 시 PGSearchTool을 포함할 crewai_tools 패키지는 다음 명령으로 설치할 수 있어요:

pip install 'crewai[tools]'

PGSearchTool은 아직 현재 버전의 crewai_tools 패키지에서 사용할 수 없습니다. 이 설치 명령은 도구가 출시되면 업데이트됩니다.

예제 사용법 (Example Usage)

다음은 PGSearchTool을 사용해 PostgreSQL 데이터베이스의 테이블에서 시맨틱 검색을 수행하는 방법을 보여주는 제안된 예제입니다:

from crewai_tools import PGSearchTool

# Initialize the tool with the database URI and the target table name
tool = PGSearchTool(
    db_uri='postgresql://user:***@localhost:5432/mydatabase', 
    table_name='employees'
)

인자 (Arguments)

PGSearchTool은 동작을 위해 다음 인자가 필요하도록 설계되었어요:

인자 타입 설명
db_uri string 필수. 질의할 PostgreSQL 데이터베이스의 URI를 나타내는 문자열. 필요한 인증 정보와 데이터베이스 위치를 포함해야 합니다.
table_name string 필수. 시맨틱 검색을 수행할 데이터베이스 내 테이블 이름을 지정하는 문자열.

커스텀 모델과 임베딩 (Custom Model and Embeddings)

도구는 기본적으로 임베딩과 요약에 OpenAI를 사용할 의도입니다. 사용자는 다음과 같이 config 딕셔너리를 사용해 모델을 커스터마이즈할 수 있습니다:

tool = PGSearchTool(
    config=dict(
        llm=dict(
            provider="ollama", # or google, openai, anthropic, llama2, ...
            config=dict(
                model="llama2",
                # temperature=0.5,
                # top_p=1,
                # stream=true,
            ),
        ),
        embedder=dict(
            provider="google-generativeai", # or openai, ollama, ...
            config=dict(
                model_name="gemini-embedding-001",
                task_type="RETRIEVAL_DOCUMENT",
                # title="Embeddings",
            ),
        ),
    )
)

더 알아보기 (Learn more)