MySQLSearchTool

설명

이 도구는 MySQL 데이터베이스 테이블 내에서 의미 기반 검색을 용이하게 하도록 설계되었다. RAG(Retrieve and Generate) 기술을 활용해 MySQL 데이터베이스에 특화된 쿼리 기능을 제공한다. 의미 기반 검색 쿼리를 통해 관련 데이터를 찾는 과정을 단순화하며, MySQL 데이터베이스 내 대규모 데이터셋에 대한 고급 쿼리를 수행해야 하는 사용자에게 매우 유용한 리소스이다.

설치

crewai_tools 패키지를 설치하고 MySQLSearchTool을 사용하려면 터미널에서 다음 커맨드를 실행한다:

pip install 'crewai[tools]'

예제

아래 예제는 MySQL 데이터베이스 내의 테이블에서 MySQLSearchTool을 사용해 의미 기반 검색을 수행하는 방법을 보여준다:

from crewai_tools import MySQLSearchTool

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

인자

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

  • db_uri: 쿼리할 MySQL 데이터베이스의 URI를 나타내는 문자열. 이 인자는 필수이며, 데이터베이스의 위치와 필요한 인증 정보를 포함해야 한다.
  • table_name: 데이터베이스 내에서 의미 검색을 수행할 테이블의 이름을 지정하는 문자열. 이 인자 또한 필수이다.

커스텀 모델과 임베딩

기본적으로 이 도구는 임베딩과 요약 모두 OpenAI를 사용한다. 모델을 커스터마이징하려면 다음과 같이 설정 딕셔너리를 활용할 수 있다:

tool = MySQLSearchTool(
    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",
            config=dict(
                model="models/embedding-001",
                task_type="retrieval_document",
                # title="Embeddings",
            ),
        ),
    )
)