스마트 테이블
- 개요
- API
스마트 테이블은 지식 기반(KB) 내의 구조화된 데이터 관리 기능으로, 테이블 형식으로 정보를 저장, 정리 및 추출할 수 있게 합니다. 표준 스프레드시트와 달리 스마트 테이블은 AI 기능과 통합되어 문서에서 자동 데이터 추출, 서로 다른 데이터세트(컬렉션) 간 관계 매핑, 에이전트를 통한 직접 쿼리링을 가능하게 합니다.
주요 기능은 다음과 같습니다:
- 구조화된 스키마 정의 — 열, 데이터 유형 및 형식
- 업로드된 파일에서 자동으로 데이터 추출 (예: 이력서, 인보이스)
- 내장 대시보드를 통한 데이터 시각화
- 에이전트를 통한 자연어로 테이블 데이터 쿼리
스마트 테이블 접근
스마트 테이블은 애플리케이션의 지식 기반(KB) 섹션을 통해 접근합니다. 만들면 KB 데이터 섹션으로 이동하여 모든 테이블이 나열되고 보거나 편집할 수 있는 곳에서 스마트 테이블을 보고 관리할 수 있습니다.

스마트 테이블 만들기
지식 기반에서 스마트 테이블을 만드는 세 가지 주요 방법이 있습니다. KB 인터페이스에서 만들기 메뉴를 클릭하여 이 옵션에 접근합니다.

방법 A: 빈 스마트 테이블 만들기
이 옵션은 기본 시스템 열(제목, 설명, 번호)이 포함된 빈 테이블을 만듭니다. 사이드바 구성 패널이 자동으로 열려 처음부터 사용자 지정 스키마를 정의할 수 있습니다. 이 기본 필드를 유지하거나, 수정하거나, 삭제하여 자체 구조를 만들 수 있습니다.

방법 B: 템플릿에서 만들기
일반적인 사용 사례를 위해 빠르게 테이블을 설정할 수 있도록 사전 정의된 템플릿에서 선택할 수 있습니다. 다양한 시나리오를 위한 여러 템플릿을 사용할 수 있습니다. 예를 들어 평가 템플릿은 에이전트 응답을 테스트하도록 설계된 사전 정의된 열 세트를 가져옵니다(질문 텍스트, 예상 답변, 실제 응답).

방법 C: 파일에서 가져오기
CSV 파일을 업로드하여 스마트 테이블을 자동으로 만들 수 있습니다. 시스템은 CSV 헤더를 구문 분석하여 열을 만들고 행을 데이터 항목으로 가져옵니다.

열 유형 및 구성
스마트 테이블을 구성할 때 각 열은 정확한 데이터 저장 및 추출을 위해 특정 정의가 필요합니다. 열은 이름, 유형, 형식 및 도구 소스로 구성됩니다.
각 열에 대한 명확한 설명을 제공하는 것이 중요합니다. 이 설명은 대규모 언어 모델(LLM)이 해당 필드에 추출하거나 생성해야 하는 특정 정보를 안내합니다.
열 구성
스마트 테이블을 만들거나 편집할 때 사이드바 패널을 사용하여 각 열을 구성합니다. 필드 속성(이름, 유형, 형식, 도구 및 설명)을 설정한 후 필드 저장을 클릭하여 구성을 적용합니다. 열 구성 패널에서 필드 이름을 클릭하고 변경한 후 다시 저장하여 기존 필드를 언제든지 편집할 수 있습니다.

필드 유형 및 형식
| 필드 유형 | 설명 | 형식 옵션 |
|---|---|---|
| 텍스트 | 표준 알파벳 문자열 | 텍스트, 전화번호, 이메일 |
| 숫자 | 숫자 값 | 숫자, 소수, 통화 |
| 단일 선택 | 사전 정의된 목록에서 하나의 값 선택 | 드롭다운 옵션(예: 기술 수준: 초급, 중급, 고급) |
| 다중 선택 | 사전 정의된 목록에서 여러 값 선택 | 옵션 목록(예: 언어: Python, Java, HTML, CSS) |
| 체크박스 | 부울 값(True/False) | True/False(예: 여성인가?) |
| 날짜 | 캘린더 날짜 | 날짜 형식(DD/MM/YYYY 등) |
| 사용자 | 시스템의 사용자에 대한 참조 | 사용자 이름 또는 사용자 이메일 |
| 파일 | 문서를 위한 첨부 필드 | 파일 업로드 |
| 컬렉션 | 다른 스마트 테이블에 대한 링크(관계형) | 대상 스마트 테이블 선택 |

도구 소스
도구 설정은 데이터가 셀에 입력되는 방법을 정의합니다:
- 사용자 입력 — 데이터가 사용자에 의해 수동으로 입력되거나 수정 없이 파일에서 직접 추출됨
- LLM 생성 — AI 모델이 열 설명과 컨텍스트를 기반으로 콘텐츠를 생성(예: 이력서 요약)
- 에이전트 생성 — 에이전트가 쿼리를 처리하고 응답으로 이 필드를 채움
- 비교 — 두 필드를 비교하여 일치 여부를 결정하거나 유사도 점수를 계산

데이터 추출 (문서 처리)
스마트 테이블은 업로드된 문서에서 데이터를 추출하여 행을 자동으로 채울 수 있습니다. 이는 이력서나 양식과 같은 표준화된 문서를 처리할 때 특히 유용합니다. 업로드된 각 문서는 스마트 테이블에 하나의 행을 만들지만, 여러 문서를 업로드하고 처리하여 동일한 테이블에 여러 행을 만들 수도 있습니다.
워크플로우: 이력서 추출 예시
- 스키마 정의
다음 열을 포함하는 "이력서"라는 스마트 테이블을 만듭니다:
- 이름 (텍스트)
- 연락처 번호 (텍스트 — 전화번호 형식)
- 경력 연수 (숫자 — 소수 형식)
- 언어 (다중 선택: Python, Java, HTML, CSS)
- 여성 여부 (체크박스)
- 이력서 파일 (파일)
- 문서 업로드
지식 기반으로 이동하여 파일(예: PDF 이력서)을 업로드합니다.
- 스마트 테이블 할당
업로드 중에 "이력서" 스마트 테이블을 선택합니다.
- 추출
시스템이 문서를 처리하고 정의된 열에 콘텐츠를 매핑합니다 — 예를 들어 텍스트에서 "3년"을 찾아 경력 연수를 채우거나 연락처 번호를 위해 전화번호를 추출합니다.
- 결과 검토
스마트 테이블로 이동하여 추출된 데이터가 포함된 새로 만든 행을 봅니다.

할당하지 않고 파일을 업로드한 경우 나중에 문서 설정을 통해 할당할 수 있습니다. 문서로 이동하여 스마트 테이블 할당을 클릭하고 대상 스마트 테이블을 선택한 후 적용을 클릭하여 추출 프로세스를 소급으로 트리거합니다.

업로드 중에 스마트 테이블을 할당할 때 빠른 업로드를 활성화하면 파일 업로드가 완료되는 즉시 데이터를 자동으로 추출하고 채웁니다.

컬렉션 및 관계
컬렉션은 스마트 테이블 간 다대다 매핑을 가능하게 합니다. 이는 메인 테이블의 단일 행에 자체 구조가 필요한 복잡한 목록 데이터가 포함될 때 유용합니다.
예시: 기술 매핑
기술을 단순한 쉼표로 구분된 문자열(예: "Python, Java")로 저장하는 대신 상세한 기술 정보가 포함된 관계형 구조를 만들 수 있습니다:
- "기술" 테이블 만들기 — 열 정의:
- 기술 이름 (텍스트) — 사용자가 보유한 기술의 이름
- 기술 수준 (단일 선택) — 옵션: 초급, 중급, 고급
- 메인 테이블 구성 — "이력서" 테이블에 "기술"이라는 이름의 열을 만듭니다.
- 유형을 컬렉션으로 설정 — 열 유형을 컬렉션으로 설정하고 "기술" 스마트 테이블에 연결합니다.
- 결과 — 이력서가 처리되면 시스템이 기술을 추출하고 "기술" 테이블에 상세한 행(예: "Python - 고급", "Java - 초급", "AWS - 중급")을 채워서 다대다 관계를 통해 특정 후보자와 연결합니다.

컬렉션 데이터 보기
메인 테이블(예: 이력서)을 볼 때 컬렉션 필드는 관련 항목에 대한 링크를 표시합니다. 이를 클릭하면 연결된 테이블(예: 기술)로 이동하여 해당 후보자의 모든 상세 항목을 볼 수 있습니다. 관계는 양방향입니다 — 기술 테이블에서 콘텐츠 키를 확인하여 각 기술이 어떤 이력서에 속하는지 볼 수 있습니다.

데이터 관리
데이터가 채워지면 이를 관리하고 정리하기 위한 여러 도구를 사용할 수 있습니다.
보기 및 탭
스마트 테이블은 두 가지 보기를 제공합니다:
- 테이블 보기 — 행과 열을 보고 편집하기 위한 기본 스프레드시트 스타일 보기
- 대시보드 보기 — 차트와 위젯을 만들어 데이터를 분석할 수 있는 시각화 보기

행 추가 및 관리
- 행 삽입 — 행 추가 또는 행 삽입을 클릭하여 새 빈 행을 수동으로 추가
- 자동 행 만들기 — 문서가 업로드되어 스마트 테이블에 할당되면 새 행이 자동으로 만들어지고 추출된 데이터로 채워짐

편집 및 다시 계산
- 수동 편집 — 값을 수동으로 업데이트하려면 셀을 클릭
- 셀/행 실행 — LLM 생성 또는 에이전트 생성 필드의 경우 셀 실행 또는 행 실행을 클릭하여 해당 행의 데이터를 계산하거나 새로고침
- 모두 다시 계산 — 모든 행을 동시에 새로고침. 열 설명이나 에이전트 구성을 업데이트한 후 전체 데이터세트를 다시 처리할 때 유용

각 행에는 원본 문서에 다시 연결하는 고유한 콘텐츠 키 식별자가 자동으로 할당됩니다. 이를 통해 추출된 데이터와 원본 파일 간 추적 가능성이 가능합니다.

그룹화 및 정리
특정 열별로 데이터를 그룹화하여 보기를 정리할 수 있습니다. 예를 들어 후보자 목록을 "언어" 다중 선택 필드별로 그룹화하면 모든 Python 개발자를 함께 볼 수 있습니다. 열은 테이블 보기에서 끌어서 다시 배치하여 재정렬할 수도 있습니다.


스마트 테이블 이름 변경
상단의 테이블 이름을 클릭하고 새 이름을 입력합니다. 이를 통해 설명적인 식별자(예: "이력서", "기술", "평가")로 여러 테이블을 정리할 수 있습니다.

필드 및 행 삭제
- 열 삭제 — 열 구성을 편집할 때 필드 삭제를 선택하여 열을 완전히 제거
- 행 삭제 — 행을 클릭하고 삭제를 선택하여 개별 항목 제거
대시보드 및 시각화
스마트 테이블에는 저장된 데이터를 시각화하기 위한 내장 대시보드 보기가 포함되어 있습니다.
위젯 만들기
- 스마트 테이블 내에서 대시보드 탭으로 이동
- 위젯 추가 클릭
- 차트 구성:
- 위젯 제목 — 설명적인 제목 제공(예: "성별별 총 후보자 수")
- 차트 유형 — 파이 차트, 막대 차트, 선 차트 등에서 선택
- X축 (카테고리) — 그룹화 필드 선택(예: 여성 여부)
- Y축 (값) — 측정할 지표 선택, 합계, 평균 등의 집계 함수 포함
- Y시리즈 열 이름 — 선택적으로 차트 범례에 표시되는 레이블 사용자 지정
- 위젯을 저장하여 대시보드에 추가


에이전트를 통한 스마트 테이블 쿼리
스마트 테이블의 가장 강력한 기능 중 하나는 에이전트를 통해 자연어로 구조화된 데이터를 쿼리할 수 있는 기능입니다.
설정 프로세스
- 에이전트 만들기
에이전트 빌더로 이동하여 새 에이전트를 만들거나 기존 에이전트를 엽니다.
- 툴킷 구성
데이터베이스 관리자 툴킷을 에이전트에 추가합니다.
- 스마트 테이블 선택
툴킷 설정에서 에이전트가 접근할 수 있는 하나 이상의 스마트 테이블을 선택합니다. 이를 통해 에이전트는 여러 관련 테이블에 걸쳐 동시에 쿼리할 수 있습니다.
- 쿼리 옵션 구성
에이전트가 스마트 테이블 데이터에만 접근하도록 하려면 "데이터베이스 쿼리" 또는 "데이터베이스 스키마"와 같은 불필요한 옵션의 선택을 해제합니다.
- 저장 및 테스트
에이전트 채팅을 열고 자연어로 질문을 합니다. 예:
- "5년 이상의 경력이 있는 후보자는 몇 명인가요?"
- "모든 Python 고급자 목록"
- "이력서 테이블에 몇 행이 있나요?"
에이전트는 스마트 테이블에 대해 쿼리를 실행하고 자연어로 답변을 반환합니다.



템플릿
템플릿은 일반적인 사용 사례를 위한 사전 구성된 열 구조를 제공하여 설정을 가속화합니다. 기존 템플릿에서 선택할 수 있지만 UI를 통해 사용자 지정 템플릿을 만들 수는 없습니다.
평가 템플릿
에이전트 성능 테스트 및 AI 응답 검증을 위해 설계되었습니다. 다음을 포함합니다:
- 질문 텍스트 — 에이전트에 대한 입력 프롬프트 (사용자 입력)
- 예상 답변 — 기본 진실 또는 올바른 답변 (사용자 입력)
- 실제 응답 — 평가 실행 중 에이전트에 의해 채워짐 (에이전트 생성)
- 평가 상태 — 실제 응답을 예상 답변과 비교하고 통과/실패 백분율을 반환 (비교)
평가 템플릿 사용:
- 평가 템플릿에서 스마트 테이블을 만듭니다
- 테스트 질문과 예상 답변으로 행을 추가합니다
- 에이전트 필드를 AI 에이전트에 연결하도록 구성합니다
- 개별 행을 실행하거나 모두 다시 계산을 실행하여 모든 질문을 테스트합니다
- 실제 응답과 평가 상태를 검토하여 에이전트 성능을 평가합니다

모범 사례
- 열 설명 — 추출 중 LLM을 안내하기 위해 각 열에 대한 명확하고 설명적인 텍스트를 작성합니다. 예를 들어 "경력 연수"라는 열을 만들고 다음을 추가합니다: "이력서에서 발견된 총 전문 업무 경력 연수."
- 데이터 유형 — 정확한 정렬, 필터링 및 차트 작성을 위해 특정 유형(숫자 vs 텍스트)을 사용합니다. "경력 연수"의 경우 텍스트 대신 숫자를 사용합니다.
- 형식 선택 — 필드 유형에 따라 적절한 형식을 선택합니다. 연락처 필드에는 전화번호 형식을 사용합니다. 금액에는 통화 형식을 사용합니다.
- 컬렉션 — 데이터 무결성을 유지하고 더 깊은 쿼리를 가능하게 하기 위해 복잡한 목록(기술, 자격증명, 교육 이력)에 컬렉션을 사용합니다.
- 테스트 — 대량 업로드 전에 한두 개의 문서로 테스트하여 열 설명이 AI를 올바르게 안내하는지 확인합니다.
- 빠른 업로드 — 업로드 중에 스마트 테이블을 할당할 때 빠른 업로드를 활성화하여 데이터를 즉시 추출하고 채웁니다.
- 추출 다시 적용 — 열 정의를 수정한 경우 기존 문서에 스마트 테이블을 다시 할당하여 업데이트된 구성을 사용하여 데이터를 다시 추출합니다.
- 비교 필드 — QA 워크플로우에서 예상 대 실제 결과 비교와 같은 검증 시나리오에 비교를 사용합니다.
스마트 테이블은 **워크플로우(작업)**도 트리거하고 상호작용할 수 있어 "이력서가 적격이면 이메일을 보내세요"와 같은 고급 로직을 가능하게 합니다. 자세한 내용은 워크플로우 자동화 문서를 참조하세요.
시작하기 전에
- 인증
다른 프로젝트 API와 동일한 자격 증명을 사용합니다 — API 키/시크릿 또는 앱의 인증 헤더.
- 접근
계정에 프로젝트의 지식 기반 기능을 사용할 권한이 필요합니다. 없으면 이 호출은
403을 반환합니다. - 기본 URL
환경의 API 호스트를 사용합니다(예:
https://ai-api.automationanywhere.com). 아래 경로는 배포가 글로벌 접두사를 사용하지 않는 한 해당 호스트에 추가됩니다.
1. 기존 테이블 나열
GET /project/{project_id}/data-types
{
"message": "데이터 유형이 성공적으로 생성되었습니다",
"data_type_id": "abc123...",
"view_id": "view-uuid-here"
}
프로젝트의 모든 데이터 유형 목록을 반환합니다. 각 항목에는 후속 요청에서 data_type_id로 사용하는 id가 포함됩니다.
2. 새 스마트 테이블 만들기
POST /project/{project_id}/data-types
{
"title": "지원 티켓",
"description": "인바운드 요청",
"metadata": {
"제목": "샘플 제목",
"우선순위": 1,
"열림": true,
"태그": ["청구", "로그인"]
}
}
본문 매개변수
| 필드 | 필수 | 설명 |
|---|---|---|
title | 예 | UI에 표시되는 이름. |
description | 예 | 짧은 설명. |
metadata | 아니오 | 초기 열을 정의합니다. 각 키는 열 이름이고 각 값은 열 유형을 추론하는 데 사용되는 샘플입니다. |
3. 열 추가 또는 변경
POST /project/{project_id}/data-type/{data_type_id}/column
{
"column_name": "상태",
"column_type": "text",
"description": "워크플로우 상태",
"options": {},
"default_value": "열림"
}
환경에 대한 OpenAPI 또는 통합 문서에서 정확한 column_type 값을 확인하세요.
4. 단일 행 추가
POST /project/{project_id}/data-type/{data_type_id}/row
{
"metadata": {
"제목": "비밀번호를 재설정할 수 없음",
"우선순위": 2,
"열림": true,
"태그": ["인증"]
}
}
{
"message": "행이 성공적으로 추가되었습니다",
"row_id": 5,
"row": {
"id": 5,
"제목": "비밀번호를 재설정할 수 없음",
"우선순위": 2,
"열림": true,
"태그": ["인증"]
}
}
metadata의 키는 기존 열 이름과 일치해야 합니다. id를 포함하지 마세요 — 서버가 자동으로 할당합니다.
5. 여러 행 한 번에 추가
POST /project/{project_id}/data-type/{data_type_id}/rows
{
"rows": [
{ "제목": "문제 A", "우선순위": 1, "열림": true },
{ "제목": "문제 B", "우선순위": 3, "열림": false }
]
}
{
"message": "2행이 성공적으로 추가되었습니다",
"rows_added": 2,
"row_ids": [6, 7]
}
각 행은 열 값의 일반 객체입니다 — metadata 아래에 중첩되지 않습니다.
6. 파일에서 테이블 만들기
POST /project/{project_id}/import-table
{
"title": "가져온 상품",
"description": "CSV에서 가져온 상품",
"column_mappings": "..."
}
형식: 파일 업로드(CSV 또는 Excel)가 포함된 multipart/form-data.
| 필드 | 설명 |
|---|---|
title | UI에 표시되는 테이블 이름. |
description | 짧은 설명. |
column_mappings | 파일 열이 테이블 열 및 유형에 어떻게 매핑되는지 설명하는 JSON 문자열. |
file | 가져올 CSV 또는 Excel 파일. |
빠른 참조
| 작업 | 메서드 | 경로 |
|---|---|---|
| 테이블 나열 | GET | /project/{project_id}/data-types |
| 테이블 만들기 | POST | /project/{project_id}/data-types |
| 열 추가 | POST | /project/{project_id}/data-type/{data_type_id}/column |
| 행 하나 추가 | POST | /project/{project_id}/data-type/{data_type_id}/row |
| 여러 행 추가 | POST | /project/{project_id}/data-type/{data_type_id}/rows |
| 파일에서 가져오기 | POST | /project/{project_id}/import-table |
문제 해결
403 — 접근 거부됨
사용자 또는 API 키가 프로젝트 또는 지식 기반 섹션에 대한 접근 권한이 없습니다. 계정에 올바른 권한이 활성화되어 있는지 확인하세요.
행 삽입 시 500 오류
일반적으로 열 이름 불일치 또는 값의 유형이 열 정의와 일치하지 않아 발생합니다. 모든 키가 기존 열 이름에 해당하고 값 유형이 일치하는지 확인하세요(예: number 열에 문자열을 보내지 마세요).
단일 대 대량 행 본문 형식
두 엔드포인트 간에 요청 본문 구조가 다릅니다:
- 단일 행:
{ "metadata": { ... } } - 대량 행:
{ "rows": [ { ... }, { ... } ] }— 행당metadata래퍼 없음.