AI Mind Tool

AI Mind Tool

AIMindTool은 데이터 소스를 자연어로 질의(query)할 수 있도록 설계된 도구예요.

출처: 문서

본문

AIMindTool

설명 (Description)

AIMindTool은 MindsDB가 제공하는 AI-Minds의 래퍼(wrapper)입니다. 데이터 소스의 연결 파라미터만 설정하면 데이터를 자연어로 질의할 수 있게 해줍니다. 이 도구는 PostgreSQL, MySQL, MariaDB, ClickHouse, Snowflake, Google BigQuery 등 다양한 데이터 소스에 저장된 데이터로부터 질문에 대한 답이 필요할 때 유용해요.

Minds는 대규모 언어 모델(LLM)과 비슷하게 동작하지만, 어떤 데이터에서든 어떤 질문에나 답할 수 있다는 점에서 한 단계 더 나아간 AI 시스템입니다. 이는 다음 방식으로 이루어집니다:

  • **파라메트릭 검색(parametric search)**을 사용해 답에 가장 관련성 높은 데이터를 선택
  • **시맨틱 검색(semantic search)**을 통해 의미를 이해하고 올바른 컨텍스트 안에서 응답 제공
  • 데이터를 분석하고 머신러닝(ML) 모델을 사용해 정확한 답변 제공

설치 (Installation)

이 도구를 프로젝트에 포함하려면 Minds SDK를 설치해야 합니다:

uv add minds-sdk

시작하기 위한 단계 (Steps to Get Started)

AIMindTool을 효과적으로 사용하려면 다음 단계를 따라주세요:

  • 패키지 설치 — crewai[tools]와 minds-sdk 패키지가 Python 환경에 설치되어 있는지 확인하세요.
  • API 키 발급 — Minds 계정을 여기에서 가입하고 API 키를 받으세요.
  • 환경 구성 — 받은 API 키를 MINDS_API_KEY라는 환경 변수에 저장해서 도구에서 사용할 수 있게 하세요.

예제 (Example)

다음 예제는 도구를 초기화하고 질의를 실행하는 방법을 보여줍니다:

from crewai_tools import AIMindTool

# Initialize the AIMindTool
aimind_tool = AIMindTool(
    datasources=[
        {
            "description": "house sales data",
            "engine": "postgres",
            "connection_data": {
                "user": "demo_user",
                "password": "demo_password",
                "host": "samples.mindsdb.com",
                "port": 5432,
                "database": "demo",
                "schema": "demo_data"
            },
            "tables": ["house_sales"]
        }
    ]
)

# Run a natural language query
result = aimind_tool.run("How many 3 bedroom houses were sold in 2008?")
print(result)

파라미터 (Parameters)

AIMindTool은 다음 파라미터를 받습니다:

  • api_key: 선택 사항. 사용자의 Minds API 키. 제공되지 않으면 MINDS_API_KEY 환경 변수에서 읽습니다.
  • datasources: 딕셔너리들의 리스트. 각 딕셔너리는 다음 키를 포함합니다:
    • description: 데이터 소스에 포함된 데이터에 대한 설명.
    • engine: 데이터 소스의 엔진(또는 유형).
    • connection_data: 데이터 소스의 연결 파라미터를 담은 딕셔너리.
    • tables: 데이터 소스가 사용할 테이블 리스트. 선택 사항이며, 데이터 소스의 모든 테이블을 사용하려면 생략할 수 있습니다.

지원되는 데이터 소스와 연결 파라미터 목록은 여기에서 확인할 수 있어요.

에이전트 통합 예제 (Agent Integration Example)

AIMindTool을 CrewAI 에이전트와 통합하는 방법은 다음과 같습니다:

from crewai import Agent
from crewai.project import agent
from crewai_tools import AIMindTool

# Initialize the tool
aimind_tool = AIMindTool(
    datasources=[
        {
            "description": "sales data",
            "engine": "postgres",
            "connection_data": {
                "user": "your_user",
                "password": "your_password",
                "host": "your_host",
                "port": 5432,
                "database": "your_db",
                "schema": "your_schema"
            },
            "tables": ["sales"]
        }
    ]
)

# Define an agent with the AIMindTool
@agent
def data_analyst(self) -> Agent:
    return Agent(
        config=self.agents_config["data_analyst"],
        allow_delegation=False,
        tools=[aimind_tool]
    )

결론 (Conclusion)

AIMindTool은 자연어로 데이터 소스를 질의할 수 있는 강력한 방법을 제공해서, 복잡한 SQL 쿼리를 작성하지 않고도 인사이트를 추출하기 쉽게 만들어줘요. 다양한 데이터 소스에 연결하고 AI-Minds 기술을 활용함으로써, 이 도구는 에이전트가 데이터에 효율적으로 접근하고 분석할 수 있게 합니다.

더 알아보기 (Learn more)

  • RAG Tool — 자연어 질의로 데이터를 검색하는 RAG 도구 알아보기
  • LlamaIndex Tool — LlamaIndex를 활용한 도구 알아보기