주요 컨텐츠로 이동

AI/BI Genie 대화 API의 공개 미리보기 발표

자연어를 사용하여 데이터에서 인사이트를 얻으세요. 이는 모든 협업 도구에서 가능합니다.

AI Agents: Build

Published: March 11, 2025

공지사항3분 소요

Summary

  • AI/BI Genie를 사용하면 자연어를 사용하여 데이터에 질문을 하고 탐색할 수 있습니다
  • AI/BI Genie를 Databricks 앱, Slack, Teams, Sharepoint, 맞춤형 애플리케이션 등에 통합하세요
  • 단계별 예제를 통해 Genie 대화 API를 실제로 사용해 보세요

(이 글은 AI의 도움을 받아 번역되었습니다. 원문이 궁금하시다면 여기를 클릭해 주세요)

저희의 AI 에이전트 주간 이니셔티브의 일환으로, 기업들이 고품질의 AI 에이전트를 구축하고 관리할 수 있도록 새로운 기능을 도입하고 있습니다. 그래서, 우리는 Genie 대화 API의 Public Preview를 발표하게 되어 기쁩니다, 이는 AWS, Azure, 그리고 GCP에서 이용 가능합니다. 이 API 스위트를 사용하면 사용자는 Databricks 앱, Slack, Teams, Sharepoint, 맞춤형 애플리케이션 등 어떤 표면에서든 자연어를 사용하여 AI/BI Genie 를 활용하여 데이터 인사이트를 자체 제공할 수 있습니다. 또한, 대화 API는 AI 에이전트에 AI/BI Genie를 임베드 할 수 있게 해주며, Agent Framework의 유무에 상관없이 가능합니다.

Genie Conversation API 스위트를 사용하면 Genie 사용자 인터페이스에서처럼 프로그래밍 방식으로 자연어 프롬프트를 제출하고 데이터 인사이트를 받을 수 있습니다. 이 API는 상태를 유지하므로 대화 스레드 내에서 후속 질문을 할 때 Genie가 컨텍스트를 유지할 수 있습니다.

이 블로그에서는 Public Preview에서 사용 가능한 주요 엔드포인트를 검토하고, Mosaic AI Agent Framework와 Genie의 통합을 탐구하며, Microsoft Teams 채널에 Genie를 임베드하는 예를 강조합니다.

Genie 대화 API 실제 적용

Genie Conversation API가 어떻게 작동하는지 이해하기 위해 실용적인 예를 살펴보겠습니다. 먼저 주의해야 할 점은 대화 API가 이미 생성된 Genie 공간과 상호작용해야 한다는 것입니다. 우리의 제품 문서를 시작으로 Genie 공간을 설정 하고 이를 최적으로 구성하기 위한 이 최고의 방법 을 따르는 것을 추천합니다.

당신이 이미 마케팅 데이터에 대한 질문에 답변할 수 있도록 설계된 Genie 공간을 생성, 설정, 공유한 상태라고 상상해보세요. 이제, 마케팅 팀이 이 공간을 사용하여 질문을 하고 인사이트를 탐색하길 원하지만, Genie UI를 통해 접근하는 대신 외부 애플리케이션 내에서 그렇게 하길 원합니다.

시작하려면, 마케팅 팀에게 간단한 질문을 하도록 요청한다고 가정해봅시다: "어제 이메일로 연락한 고객은 누구인가요?". 이 질문을 Genie Conversation API를 사용하여 묻기 위해 다음 엔드포인트에 POST 요청을 보내야 합니다:

/api/2.0/genie/spaces/{space_id}/start-conversation

이 엔드포인트는 질문을 초기 프롬프트로 사용하여 새로운 대화 스레드를 시작합니다, Genie Space UI에서처럼. 요청에는 호스트 컴포넌트, Genie Space ID, 그리고 인증을 위한 액세스 토큰이 포함되어야 합니다. 아래와 같이 Genie Space URL에서 space_id를 찾을 수 있습니다:

https://example.databricks.com/genie/rooms/12ab345cd6789000ef6a2fb844ba2d31

다음은 필요한 올바른 POST 요청의 예입니다:

POST /api/2.0/genie/spaces/{space_id}/start-conversation
HOST= <WORKSPACE_INSTANCE_NAME>
Authorization: <your_authentication_token>
{
    "content": "어제 이메일을 통해 접촉한 고객은 누구인가요?",
}

문장이 올바르게 제출되면, API는 다음 예시와 같이 POST 요청에 대한 응답으로 생성된 대화와 메시지를 반환합니다:

{
  “conversation_id": "6a64adad2e664ee58de08488f986af3e",
  "conversation": {
    "created_timestamp": 1719769718,
    "conversation_id": "6a64adad2e664ee58de08488f986af3e",
    "last_updated_timestamp": 1719769718,
    "space_id": "3c409c00b54a44c79f79da06b82460e2",
    "title": "어제 이메일로 연락한 고객은 누구인가요?",
    "user_id": 12345
  },
   “message_id": "e1ef34712a29169db030324fd0e1df5f",
  "message": {
    "attachments": null,
    "content": "어제 이메일을 통해 접촉한 고객은 누구인가요?",
    "conversation_id": "6a64adad2e664ee58de08488f986af3e",
    "created_timestamp": 1719769718,
    "error": null,
    "message_id": "e1ef34712a29169db030324fd0e1df5f",
    "last_updated_timestamp": 1719769718,
    "query_result": null,
    "space_id": "3c409c00b54a44c79f79da06b82460e2",
    "status": "IN_PROGRESS",
    "user_id": 12345
  }
}

이제 conversation_id와 message_id를 사용하여 메시지의 생성 상태를 확인하고 생성된 관련 SQL 문장과 쿼리 설명을 다음과 같이 검색할 수 있습니다:

GET /api/2.0/genie/spaces/{space_id}/conversations/{conversation_id}/messages/{message_id}
HOST= <WORKSPACE_INSTANCE_NAME>
Authorization: Bearer <your_authentication_token>

다음은 응답의 예입니다:

{
  "attachments": [{
    "query": {
      "description": "사람이 읽을 수 있는 형식의 쿼리 설명",
      "last_updated_timestamp": 1719769718,
      "query": "SELECT * FROM customers WHERE date >= CURRENT_DATE() - INTERVAL 1 DAY",
      "title": "쿼리 제목",
      "statement_id": "9d8836fc1bdb4729a27fcc07614b52c4",
      "query_result_metadata": {
        "row_count": 10
      },
    }
    'attachment_id': '01efddddeb2510b6a4c125d77ce176be'
  }],
  "content": "어제 이메일을 통해 어떤 고객에게 연락했나요?",
  "conversation_id": "6a64adad2e664ee58de08488f986af3e",
  "created_timestamp": 1719769718,
  "error": null,
  "message_id": "e1ef34712a29169db030324fd0e1df5f",
  "last_updated_timestamp": 1719769718,
  "space_id": "3c409c00b54a44c79f79da06b82460e2",
  "status": "EXECUTING_QUERY",
  "user_id": 12345
}

메시지 상태 필드가 “완료”를 표시하면 생성된 SQL 문이 실행을 마치고 쿼리 결과를 검색할 준비가 되었음을 의미합니다. 이제 다음과 같이 응답을 받을 수 있습니다:

GET /api/2.0/genie/spaces/{space_id}/conversations/{conversation_id}/messages/{message_id}/attachments/{attachment_id}/query-result
HOST= <WORKSPACE_INSTANCE_NAME>
Authorization: Bearer <your_authentication_token>

물론, 대화 스레드에 후속 프롬프트를 발행할 수도 있습니다. 예를 들어, 마케팅 팀이 다음과 같은 질문을 하고 싶다고 가정해봅시다: “이 고객들 중 어떤 사람이 이메일을 열고 전달했나요?”

이를 관리하기 위해 새로운 프롬프트를 기존 대화 스레드에 POST 요청을 다시 보내는 방식은 다음과 같습니다:

POST /api/2.0/genie/spaces/{space_id}/conversations/{conversation_id}/messages
HOST= <WORKSPACE_INSTANCE_NAME>
Authorization: <your_authentication_token> 
{
    "content": "이 고객들 중 어떤 사람이 이메일을 열고 전달했나요?",
}

이전 프롬프트에서 데이터를 새로 고치고 싶다면, API는 이전에 생성된 SQL 쿼리를 다시 실행할 수 있게 해줍니다. API 엔드포인트에 대한 자세한 내용은 제품 문서를 참조하십시오.

대화 API 최고의 실천 방법

최상의 성능을 보장하기 위해, 다음의 API 최적화 방법을 권장합니다:

  • 결정적인 메시지 상태를 받을 때까지 API를 5-10초마다 폴링하되, 대부분의 일반적인 쿼리에 대해 최대 10분까지 폴링을 제한하세요.
  • 2분 이내에 응답이 없으면 신뢰성을 향상시키기 위해 지수 백오프를 구현하세요.
  • 각 사용자 세션에 대해 새로운 대화 스레드를 생성하십시오; 동일한 대화 스레드를 여러 세션에 재사용하면 Genie의 정확성에 부정적인 영향을 미칠 수 있습니다.

모자이크 AI 에이전트 프레임워크에 Genie 통합

Conversation API는 또한 databricks_langchain.genie 래퍼를 사용하여 Mosaic AI Agent Framework 에 무리 없이 통합됩니다.

예를 들어, 마케팅 매니저가 다음 세 가지 주제에 대해 질문을 해결해야 한다고 가정해 봅시다:

  • 프로모션 이벤트 참여 (Unity 카탈로그 뷰에 저장된 구조화된 데이터)
  • 이메일 광고 (Unity Catalog 테이블에 저장된 구조화된 데이터)
  • 사용자 텍스트 리뷰 (Unity Catalog 볼륨에 저장된 비구조화된 PDF)

구조화된 데이터와 비구조화된 데이터에 대한 질문에 답변할 수 있는 다중 에이전트 프레임워크를 구축할 수 있습니다. 예를 들어, 다음과 같은 Langgraph 에이전트 프레임워크를 정의할 수 있습니다:

에이전트 프레임워크 그래프는 다음과 같이 보일 것입니다:

에이전트 프레임워크

이제 에이전트 프레임워크는 질문을 관련 에이전트에게 직접 지시할 수 있습니다. 예를 들어, 마케팅 매니저가 “2월 1일 이벤트 참석자를 보여줘”라고 물어보면, GenieEvents 에이전트가 활성화됩니다. MLFlow 추적은 프레임워크의 단계를 보여줍니다:

MLFlow Trace UI

에이전트 프레임워크는 에이전트가 서로에게 컨텍스트로 답변을 공유할 수 있도록 합니다. 이를 통해 사용자는 여러 소스에서 데이터 답변을 무리 없이 얻을 수 있습니다. 예를 들어, 마케팅 매니저는 "이 참석자들 중 어떤 사람이 이메일 알림에 가입했는지"에 대해 자세히 알고 싶을 수 있습니다. 프레임워크는 GenieEvents의 이전 답변을 GenieEmails 에이전트의 컨텍스트로 사용할 것입니다:

에이전트 프레임워크

이 방법을 통해, 비즈니스 사용자들은 이제 여러 주제/데이터 유형을 아우르고 서로 연관된 데이터 질문에 대답할 수 있습니다.

예시: Microsoft Teams와 Genie를 어떻게 통합하는가

대화 API의 사적 미리보기 기간 동안, Microsoft Teams는 Genie와 통합한 고객들이 가장 많이 사용한 생산성 도구 중 하나였습니다. 이 통합은 사용자가 Teams UI를 떠나지 않고 질문을 하고 즉시 통찰력을 얻을 수 있게 합니다.

이를 수행하려면 다음 단계를 수행해야 합니다:

  1. 새로운 Azure Bot을 생성하십시오 - 리소스 그룹과 앱 서비스 계획을 포함하여.
  2. 봇에 필요한 환경 변수와 의존성을 추가하세요. 
  3. 대화 API를 사용하여 대화 로직을 구현합니다 (대화 시작, 결과 검색, 후속 질문 등).
  4. Genie Azure Bot을 Teams Channel에 가져옵니다.

Microsoft Teams를 위한 대화 API 설정 방법에 대한 자세한 예시는 다음 기사를 참조하십시오:

아래 예시는 Private Preview 기간 동안 Conversation API를 사용한 우리의 한 고객의 실제 애플리케이션을 강조하고 있습니다. Casas Bahia는 브라질의 주요 소매업체로, 온라인과 광범위한 실제 매장 네트워크를 통해 수백만 명의 고객에게 서비스를 제공합니다. Genie 대화 API를 통합함으로써, Casas Bahia는 조직 전체의 사용자들이 Microsoft Teams 환경 내에서 직접 Genie와 상호작용할 수 있도록 했습니다, C-레벨 임원들을 포함하여. 그들의 사용 사례에 대해 더 알아보려면, Casas Bahia 고객 이야기를 읽어보세요.

변환 API

“Genie가 Teams와 통합되었다는 것은 데이터 민주화에 큰 진전이었습니다. “데이터 통찰력을 모든 사람이 접근할 수 있게 만듭니다, 그들의 기술적 배경에 상관없이.”
— Cezar Steinz, 데이터 운영 관리자, Grupo Casas Bahia

Conversation API 시작하기

이제 공개 미리보기에 있는 Genie 대화 API를 사용하여 비즈니스 사용자가 어떤 표면에서든 데이터와 대화할 수 있게 할 수 있습니다. 시작하려면, 제품 문서를 참조해 주세요.

우리는 여러분이 어떻게 Genie Conversation API를 사용할 것인지 기대하고 있으며, 바로 Genie 공간을 생성하기 시작하도록 권장합니다. 시작할 수 있는 많은 콘텐츠가 있습니다 - AI/BIGenie 웹 페이지를 방문하고, 우리의 광범위한 제품 데모 라이브러리를 확인하고, 반드시 전체 AI/BI Genie 문서를 읽어보십시오.

Databricks 팀은 항상 AI/BI Genie 경험을 개선하려고 노력하며, 여러분의 피드백을 듣고 싶어합니다!

게시물을 놓치지 마세요

관심 있는 카테고리를 구독하고 최신 게시물을 받은편지함으로 받아보세요