엑셀 llm 어시스턴트 위한 내부 api?

마루스·2024년 11월 27일

엑셀(Excel)에 LLM 어시스턴트를 통합하려면, 엑셀의 주요 구성 요소(셀, 시트, 워크북, 함수, 차트 등)를 제어하고 데이터를 읽고 쓰는 API가 필요합니다. 이를 통해 LLM 어시스턴트가 사용자의 자연어 요청에 따라 엑셀 작업을 수행할 수 있습니다. 다음은 엑셀 내부 각 구성 요소에 필요한 API 목록입니다.

  1. 워크북(Workbook) API
    엑셀 파일 단위에서 데이터를 가져오고 관리하는 API.

GET /workbooks

현재 열려 있는 모든 워크북 목록 가져오기.
응답 예시:
json
코드 복사
[
{"id": "workbook1", "name": "Budget.xlsx"},
{"id": "workbook2", "name": "SalesData.xlsx"}
]
POST /workbooks

새 워크북 생성.
파라미터 예시:
json
코드 복사
{"name": "NewWorkbook"}
응답 예시:
json
코드 복사
{"id": "workbook3", "name": "NewWorkbook.xlsx"}
DELETE /workbooks/{workbook_id}

특정 워크북 닫기 또는 삭제.
2. 워크시트(Worksheet) API
각 워크북 내에서 개별 시트(탭)를 관리하는 API.

GET /workbooks/{workbook_id}/sheets

특정 워크북의 모든 시트 목록 가져오기.
응답 예시:
json
코드 복사
[
{"id": "sheet1", "name": "Summary"},
{"id": "sheet2", "name": "Details"}
]
POST /workbooks/{workbook_id}/sheets

새 시트 추가.
파라미터 예시:
json
코드 복사
{"name": "NewSheet"}
DELETE /workbooks/{workbook_id}/sheets/{sheet_id}

특정 시트 삭제.
PUT /workbooks/{workbook_id}/sheets/{sheet_id}/rename

시트 이름 변경.
파라미터 예시:
json
코드 복사
{"new_name": "UpdatedSheet"}
3. 셀(Cell) API
엑셀의 셀 데이터를 읽고 쓰는 API.

GET /workbooks/{workbook_id}/sheets/{sheet_id}/cells/{range}

특정 범위의 셀 데이터를 가져오기.
예시 요청: GET /workbooks/1/sheets/1/cells/A1:B10
응답 예시:
json
코드 복사
{
"range": "A1:B10",
"values": [
["Name", "Sales"],
["John", 500],
["Doe", 300]
]
}
PUT /workbooks/{workbook_id}/sheets/{sheet_id}/cells/{range}

특정 범위의 셀 데이터 업데이트.
파라미터 예시:
json
코드 복사
{
"range": "A1:A2",
"values": [["UpdatedName"], ["UpdatedSales"]]
}
POST /workbooks/{workbook_id}/sheets/{sheet_id}/cells/formula

특정 셀에 수식 추가.
파라미터 예시:
json
코드 복사
{
"cell": "C1",
"formula": "=SUM(B1:B10)"
}
4. 테이블(Table) API
엑셀의 데이터 테이블을 관리하는 API.

GET /workbooks/{workbook_id}/sheets/{sheet_id}/tables

특정 시트 내 테이블 목록 가져오기.
POST /workbooks/{workbook_id}/sheets/{sheet_id}/tables

범위를 지정하여 새로운 테이블 생성.
파라미터 예시:
json
코드 복사
{
"range": "A1:D10",
"name": "SalesTable"
}
DELETE /workbooks/{workbook_id}/sheets/{sheet_id}/tables/{table_id}

특정 테이블 삭제.
PUT /workbooks/{workbook_id}/sheets/{sheet_id}/tables/{table_id}/update

테이블 데이터 업데이트.
5. 차트(Chart) API
엑셀 차트를 생성하고 관리하는 API.

GET /workbooks/{workbook_id}/sheets/{sheet_id}/charts

특정 시트의 모든 차트 목록 가져오기.
POST /workbooks/{workbook_id}/sheets/{sheet_id}/charts

새 차트 생성.
파라미터 예시:
json
코드 복사
{
"type": "bar",
"range": "A1:B10",
"title": "Sales Chart"
}
DELETE /workbooks/{workbook_id}/sheets/{sheet_id}/charts/{chart_id}

특정 차트 삭제.
PUT /workbooks/{workbook_id}/sheets/{sheet_id}/charts/{chart_id}/update

차트 데이터 또는 스타일 업데이트.
6. 함수(Function) API
엑셀의 기본 함수들을 호출하거나 커스텀 함수를 실행하는 API.

POST /workbooks/{workbook_id}/functions

기본 함수 호출.
파라미터 예시:
json
코드 복사
{
"function": "SUM",
"parameters": [10, 20, 30]
}
응답 예시:
json
코드 복사
{"result": 60}
POST /workbooks/{workbook_id}/custom_functions

사용자 정의 함수 실행.
파라미터 예시:
json
코드 복사
{
"name": "CalculateTax",
"parameters": {"value": 100, "rate": 0.1}
}
7. 실시간 동기화 및 이벤트 API
사용자가 엑셀에서 작업할 때 실시간으로 반영되도록 하기 위한 API.

GET /workbooks/{workbook_id}/events

특정 워크북의 모든 변경 이벤트 조회.
WebSocket 기반 실시간 알림

셀 업데이트, 시트 추가/삭제 등의 실시간 알림을 구독.
예시 이벤트:
json
코드 복사
{
"event": "cell_update",
"range": "A1",
"new_value": 100
}
8. 파일 저장 및 공유 API
엑셀 파일 저장, 다운로드, 공유를 위한 API.

POST /workbooks/{workbook_id}/save

현재 워크북 저장.
GET /workbooks/{workbook_id}/download

특정 워크북 다운로드.
POST /workbooks/{workbook_id}/share

특정 사용자와 워크북 공유.
파라미터 예시:
json
코드 복사
{"user_email": "user@example.com"}
필수 추가 고려 사항
권한 및 보안

엑셀 데이터 접근 시 인증 및 권한 관리 필요(OAuth, JWT).
LLM 통합

사용자가 자연어로 명령을 내릴 경우, 이를 API 요청으로 변환.
예: "A열의 값을 모두 더해줘" → POST /workbooks/1/functions 호출.
확장성

엑셀의 추가 플러그인 및 매크로 기능도 통합 가능하도록 API 설계.

이러한 API 설계를 기반으로, 엑셀 LLM 어시스턴트를 구축하면 사용자 요청에 따라 자연스럽게 데이터를 관리하고 분석할 수 있습니다

profile
세상의원리

0개의 댓글